117 TParticlePDG* part =
_fdbPDG->GetParticle(t->
pdt());
118 double mass = (part) ? part->Mass() : t->
p4().M();
119 double p=t->
p4().Vect().Mag();
125 double m_e =
_fdbPDG->GetParticle(11)->Mass();
126 double m_mu =
_fdbPDG->GetParticle(13)->Mass();
127 double m_pi =
_fdbPDG->GetParticle(211)->Mass();
128 double m_K =
_fdbPDG->GetParticle(321)->Mass();
129 double m_p =
_fdbPDG->GetParticle(2212)->Mass();
141 double measdEdx =
_rand->Gaus(dEdx,sig);
157 return (1.0/(
sqrt(2.0*M_PI)*s))*
158 exp(-(x-x0)*(x-x0)/(2.0*s*s));
175 beta=p/
sqrt(M*M+p*p);
178 gamma=1./
sqrt(1-beta*beta);
180 const double I=10e-6*
Z;
181 const double me=0.511;
184 Wmax=(2*me*beta*beta*gamma*gamma) / (1 + 2*gamma*me/M + (me/M)*(me/M));
189 double kappa=0.307075;
201 delta=2*
log(10.)*X+C+a*(X1-
X)*(X1-X)*(X1-
X);
203 delta=2*
log(10.)*X+
C;
205 dEdX= ( kappa * (Z/A) * z*z /(beta*beta)) * (
log(2*me*beta*beta*gamma*gamma*Wmax / (I*I)) - 2*beta*beta - delta);
216 double theta = t->
p4().Theta();
217 double p=t->
p4().Vect().Mag();
218 double charge=t->
charge();
226 double p=t->
p4().Vect().Mag();
227 double th=t->
p4().Vect().Theta();
230 int idxR = int(p/6.0*
_cols);
233 int idxT = int(th/160.*
_rows);
244 double p=t->
p4().Vect().Mag();
245 double th=t->
p4().Vect().Theta();
248 int idxR = int(p/6.0*
_cols);
251 int idxT = int(th/160.*
_rows);
254 double Dphi=
_sigPhi[idxT][idxR]*M_PI/180.0;
262 double p=t->
p4().Vect().Mag();
263 double th=t->
p4().Vect().Theta();
266 int idxR = int(p/6.0*
_cols);
269 int idxT = int(th/160.*
_rows);
272 double dt=
_sigTht[idxT][idxR]*M_PI/180.0;
280 o <<
"Parameters for detector <"<<
detName()<<
">"<<endl;
281 o <<
" _thtMin = "<<
_thtMin<<endl;
282 o <<
" _thtMax = "<<
_thtMax<<endl;
284 o <<
" _pmin = "<<
_pmin<<endl;
285 o <<
" _pRes = "<<
_pRes <<endl;
286 o <<
" _phiRes = "<<
_phiRes <<
" degree" << endl;
287 o <<
" _thetaRes = "<<
_thetaRes <<
" degree" << endl;
288 o <<
" _dEdxRes = "<<
_dEdxRes <<
" (rel)"<< endl;
290 o <<
" Parametrizations:"<<endl<<
"Phi:"<<endl;
296 o <<endl<<
"Theta:"<<endl;
301 o <<endl<<
"Mom:"<<endl;
337 if (name ==
"thtMin")
340 if (name ==
"thtMax")
343 if (name ==
"radiationLength")
352 if (name ==
"phiRes")
355 if (name ==
"thetaRes")
358 if (name ==
"dEdxRes")
361 if (name ==
"efficiency")
374 for (
int j=0;j<_cols;j++) parFile >>
_sigPhi[
i][j];
377 for (
int j=0;j<_cols;j++) parFile >>
_sigTht[
i][j];
380 for (
int j=0;j<_cols;j++) parFile >>
_sigMom[
i][j];
double gauss(double x, double x0, double s)
void setLHElectron(double val)
virtual PndFsmResponse * respond(PndFsmTrack *t)
friend F32vec4 exp(const F32vec4 &a)
void setLHProton(double val)
std::list< std::string > ArgList
double dtheta(PndFsmTrack *t) const
friend F32vec4 sqrt(const F32vec4 &a)
void setTpcdEdx(double val, double err=0)
void setLHMuon(double val)
bool hitMapResponse(unsigned int)
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()
void setLHKaon(double val)
friend F32vec4 fabs(const F32vec4 &a)
void setDetected(bool isdet)
double dp(PndFsmTrack *t) const
void setdtheta(double val)
double compdEdx(double p, double M)
virtual ~PndFsmEffTracker()
double dphi(PndFsmTrack *t) const
bool detected(PndFsmTrack *t) const
void print(std::ostream &o)
void setLHPion(double val)
bool setParameter(std::string &name, double value)