25 #include <TDatabasePDG.h>
32 pdgCode_(0), propDir_(0), debugLvl_(0)
38 pdgCode_(pdgCode), propDir_(propDir), debugLvl_(0)
44 TObject(rep), pdgCode_(rep.pdgCode_), propDir_(rep.propDir_), debugLvl_(rep.debugLvl_)
53 bool calcJacobianNoise)
const {
65 stateVec(0) = pos.X();
66 stateVec(1) = pos.Y();
67 stateVec(2) = pos.Z();
69 stateVec(3) = mom.X();
70 stateVec(4) = mom.Y();
71 stateVec(5) = mom.Z();
83 stateVec(0) = pos.X();
84 stateVec(1) = pos.Y();
85 stateVec(2) = pos.Z();
87 stateVec(3) = mom.X();
88 stateVec(4) = mom.Y();
89 stateVec(5) = mom.Z();
95 assert(particle !=
nullptr);
96 return particle->Charge()/(3.);
101 return TDatabasePDG::Instance()->GetParticle(
pdgCode_)->Mass();
107 TMatrixD& jacobian)
const {
119 const double defaultStepX = 1.E-5;
133 double temp = stateCopy.
getState()(
i) + defaultStepX / 2;
147 stepX = 2 * (temp - stateCopy.
getState()(
i));
174 double derivFull = (rightFull(
j) - leftFull(
j)) / 2 / stepX;
175 double derivShort = (rightShort(
j) - leftShort(
j)) / stepX;
177 jacobian(
j,
i) = 1./3.*(4*derivShort - derivFull);
185 if(particle !=
nullptr) {