103 TParticlePDG* part =
_fdbPDG->GetParticle(t->
pdt());
104 double mass = (part) ? part->Mass() : t->
p4().M();
105 double p=t->
p4().Vect().Mag();
111 double m_e =
_fdbPDG->GetParticle(11)->Mass();
112 double m_mu =
_fdbPDG->GetParticle(13)->Mass();
113 double m_pi =
_fdbPDG->GetParticle(211)->Mass();
114 double m_K =
_fdbPDG->GetParticle(321)->Mass();
115 double m_p =
_fdbPDG->GetParticle(2212)->Mass();
126 double measdEdx =
_rand->Gaus(dEdx,sig);
144 return (1.0/(
sqrt(2.0*M_PI)*s))*
145 exp(-(x-x0)*(x-x0)/(2.0*s*s));
161 beta=p/
sqrt(M*M+p*p);
164 gamma=1./
sqrt(1-beta*beta);
166 const double I=10e-6*
Z;
167 const double me=0.511;
170 Wmax=(2*me*beta*beta*gamma*gamma) / (1 + 2*gamma*me/M + (me/M)*(me/M));
175 double kappa=0.307075;
187 delta=2*
log(10.)*X+C+a*(X1-
X)*(X1-X)*(X1-
X);
189 delta=2*
log(10.)*X+
C;
191 dEdX= ( kappa * (Z/A) * z*z /(beta*beta)) * (
log(2*me*beta*beta*gamma*gamma*Wmax / (I*I)) - 2*beta*beta - delta);
199 double theta = t->
p4().Theta();
200 double p_t=t->
p4().Vect().Perp(TVector3(0.,0.,1.));
201 double charge=t->
charge();
209 o <<
"Parameters for detector <"<<
detName()<<
">"<<endl;
210 o <<
" _thtMin = "<<
_thtMin<<endl;
211 o <<
" _thtMax = "<<
_thtMax<<endl;
212 o <<
" _ptmin = "<<
_ptmin<<endl;
213 o <<
" _dEdxRes = "<<
_dEdxRes <<
" (rel)"<< endl;
238 if (name ==
"thtMin")
241 if (name ==
"thtMax")
247 if (name ==
"dEdxRes")
250 if (name ==
"efficiency")
double compdEdx(double p, double M)
void setLHElectron(double val)
friend F32vec4 exp(const F32vec4 &a)
void setLHProton(double val)
std::list< std::string > ArgList
bool detected(PndFsmTrack *t) const
friend F32vec4 sqrt(const F32vec4 &a)
void setLHMuon(double val)
virtual PndFsmResponse * respond(PndFsmTrack *t)
friend F32vec4 log(const F32vec4 &a)
void parseParameterList(ArgList &par)
basic_ostream< char, char_traits< char > > ostream
void setDetector(PndFsmAbsDet *detector)
const std::string & detName()
bool setParameter(std::string &name, double value)
void setLHKaon(double val)
friend F32vec4 fabs(const F32vec4 &a)
double gauss(double x, double x0, double s)
void print(std::ostream &o)
void setDetected(bool isdet)
void setSttdEdx(double val, double err=0)
void setLHPion(double val)