16 std::unique_ptr<AtVertexPropagator> AtVertexPropagator::fInstance =
nullptr;
20 if (fInstance ==
nullptr)
21 fInstance = std::make_unique<concrete_AtVertexPropagator>();
22 return fInstance.get();
26 : fGlobalEvtCnt(0), fBeamEvtCnt(0), fDecayEvtCnt(0), fVx(0.), fVy(0.), fVz(0.), fPx(0.), fPy(0.), fPz(0.), fE(0.),
27 fBeamMass(0), fRndELoss(0), fBeamNomE(0), fInVx(0), fInVy(0), fInVz(0), fRecoilE(0), fRecoilA(0), fScatterE(0),
28 fScatterA(0), fBURes1E(0), fBURes1A(0), fBURes2E(0), fBURes2A(0), fIsValidKine(false), fAiso(0), fZiso(0),
29 fExEjectile(0), fIsd2HeEvt(false)
41 Double_t px, Double_t py, Double_t pz, Double_t E)
94 fTrackEn[trackID] = energy;
98 fTrackAngle[trackID] = angle;
103 auto it = fTrackAngle.find(trackID);
104 if (it == fTrackAngle.end())
111 auto it = fTrackEn.find(trackID);
112 if (it == fTrackEn.end())
177 vz = 100.0 * (gRandom->Uniform());
178 vx = x0 + vz * tan(Ax);
179 vy = y0 + sqrt(pow(vz, 2) + pow(vx - x0, 2)) * tan(Ay);
180 fd2HeVtx.SetXYZ(vx, vy, vz);
186 return fGlobalEvtCnt;