109 TParticlePDG* part =
_fdbPDG->GetParticle(t->
pdt());
110 double mass = (part) ? part->Mass() : t->
p4().M();
111 double p=t->
p4().Vect().Mag();
117 double m_e =
_fdbPDG->GetParticle(11)->Mass();
118 double m_mu =
_fdbPDG->GetParticle(13)->Mass();
119 double m_pi =
_fdbPDG->GetParticle(211)->Mass();
120 double m_K =
_fdbPDG->GetParticle(321)->Mass();
121 double m_p =
_fdbPDG->GetParticle(2212)->Mass();
132 double measdEdx =
_rand->Gaus(dEdx,sig);
149 return (1.0/(
sqrt(2.0*M_PI)*s))*
150 exp(-(x-x0)*(x-x0)/(2.0*s*s));
167 beta=p/
sqrt(M*M+p*p);
170 gamma=1./
sqrt(1-beta*beta);
172 const double I=10e-6*
Z;
173 const double me=0.511;
176 Wmax=(2*me*beta*beta*gamma*gamma) / (1 + 2*gamma*me/M + (me/M)*(me/M));
181 double kappa=0.307075;
193 delta=2*
log(10.)*X+C+a*(X1-
X)*(X1-X)*(X1-
X);
195 delta=2*
log(10.)*X+
C;
197 dEdX= ( kappa * (Z/A) * z*z /(beta*beta)) * (
log(2*me*beta*beta*gamma*gamma*Wmax / (I*I)) - 2*beta*beta - delta);
208 double theta = t->
p4().Theta();
209 double p=t->
p4().Vect().Mag();
210 double charge=t->
charge();
218 double p=t->
p4().Vect().Mag();
226 double Dphi=
_phiRes*M_PI/180.0;
240 o <<
"Parameters for detector <"<<
detName()<<
">"<<endl;
241 o <<
" _thtMin = "<<
_thtMin<<endl;
242 o <<
" _thtMax = "<<
_thtMax<<endl;
244 o <<
" _pmin = "<<
_pmin<<endl;
245 o <<
" _vtxRes = "<<
_vtxRes*1e5<<
"um"<<endl;
246 o <<
" _phiRes = "<<
_phiRes <<
" degree" << endl;
247 o <<
" _thetaRes = "<<
_thetaRes <<
" degree" << endl;
248 o <<
" _dEdxRes = "<<
_dEdxRes <<
" (rel)"<< endl;
277 if (name ==
"thtMin")
280 if (name ==
"thtMax")
283 if (name ==
"radiationLength")
289 if (name ==
"vtxRes")
295 if (name ==
"phiRes")
298 if (name ==
"thetaRes")
301 if (name ==
"dEdxRes")
304 if (name ==
"efficiency")
bool setParameter(std::string &name, double value)
void setLHElectron(double val)
friend F32vec4 exp(const F32vec4 &a)
void setLHProton(double val)
std::list< std::string > ArgList
friend F32vec4 sqrt(const F32vec4 &a)
double dp(PndFsmTrack *t) const
double compdEdx(double p, double M)
void setLHMuon(double val)
bool hitMapResponse(unsigned int)
friend F32vec4 log(const F32vec4 &a)
void parseParameterList(ArgList &par)
static const std::string & name(unsigned int t)
double dtheta(PndFsmTrack *t) const
void print(std::ostream &o)
basic_ostream< char, char_traits< char > > ostream
void setDetector(PndFsmAbsDet *detector)
double gauss(double x, double x0, double s)
const std::string & detName()
void setLHKaon(double val)
friend F32vec4 fabs(const F32vec4 &a)
double dphi(PndFsmTrack *t) const
void setDetected(bool isdet)
virtual PndFsmResponse * respond(PndFsmTrack *t)
void setdtheta(double val)
bool detected(PndFsmTrack *t) const
void setMvddEdx(double val, double err=0)
void setLHPion(double val)