#include "AliFemtoMCTrackCut.h"
#include <cstdio>
#ifdef __ROOT__
ClassImp(AliFemtoMCTrackCut)
#endif
AliFemtoMCTrackCut::AliFemtoMCTrackCut() :
fCharge(0),
fLabel(0),
fPDGcode(211),
fNTracksPassed(0),
fNTracksFailed(0)
{
fNTracksPassed = fNTracksFailed = 0;
fCharge = 0;
fPt[0]=0.0; fPt[1] = 100.0;
fPDGcode = 0;
fRapidity[0]=-2; fRapidity[1]=2;
fEta[0]=-2; fEta[1]=2;
fLabel=false;
}
AliFemtoMCTrackCut::~AliFemtoMCTrackCut(){
}
bool AliFemtoMCTrackCut::Pass(const AliFemtoTrack* track)
{
if (fLabel)
{
if(track->Label()<0)
{
fNTracksFailed++;
return false;
}
}
if (fCharge!=0)
{
if (fCharge==10)
{
if(track->Charge()==0){
fNTracksFailed++;
return false;
}
}
else if (track->Charge()!= fCharge)
{
fNTracksFailed++;
return false;
}
}
if (fPDGcode!=0)
{
if(fPDGcode==11 || fPDGcode==-11 )
{ if(!fMass) fMass=0.000511;
if (track->PidProbElectron()!=1000)
{
fNTracksFailed++;
return false;
}
}
if(fPDGcode==13 || fPDGcode==-13)
{
if (track->PidProbMuon()!=1000)
{if(!fMass) fMass=0.105658;
fNTracksFailed++;
return false;
}
}
if(fPDGcode==211 || fPDGcode==-211 )
{
if (track->PidProbPion()!=1000)
{if(!fMass) fMass= 0.1395699;
fNTracksFailed++;
return false;
}
}
if(fPDGcode==2212 || fPDGcode==-2212 )
{ if(!fMass) fMass=0.938272013;
if (track->PidProbProton()!=1000)
{
fNTracksFailed++;
return false;
}
}
if(fPDGcode==321 || fPDGcode==-321 )
{ if(!fMass) fMass=0.493677;
if (track->PidProbKaon()!=1000)
{
fNTracksFailed++;
return false;
}
}
}
float tEnergy = ::sqrt(track->P().Mag2()+fMass*fMass);
float tRapidity;
if(tEnergy-track->P().z() == 0 || (tEnergy+track->P().z())/(tEnergy-track->P().z()) == 0)
{
fNTracksFailed++;
return false;
}
else
{
if((tEnergy+track->P().z())/(tEnergy-track->P().z())>0)
tRapidity = 0.5*TMath::Log((tEnergy+track->P().z())/(tEnergy-track->P().z()));
else
tRapidity = 0;
}
float tPt = ::sqrt((track->P().x())*(track->P().x())+(track->P().y())*(track->P().y()));
float tEta = track->P().PseudoRapidity();
if ((tRapidity<fRapidity[0])||(tRapidity>fRapidity[1]))
{
fNTracksFailed++;
return false;
}
if ((tEta<fEta[0])||(tEta>fEta[1]))
{
fNTracksFailed++;
return false;
}
if ((tPt<fPt[0])||(tPt>fPt[1]))
{
fNTracksFailed++;
return false;
}
fNTracksPassed++ ;
return true;
}
AliFemtoString AliFemtoMCTrackCut::Report()
{
string tStemp;
char tCtemp[100];
snprintf(tCtemp,100,"Particle mass:\t%E\n",this->Mass());
tStemp=tCtemp;
snprintf(tCtemp,100,"Particle charge:\t%d\n",fCharge);
tStemp+=tCtemp;
snprintf(tCtemp,100,"Particle pT:\t%E - %E\n",fPt[0],fPt[1]);
tStemp+=tCtemp;
snprintf(tCtemp,100,"Particle rapidity:\t%E - %E\n",fRapidity[0],fRapidity[1]);
tStemp+=tCtemp;
snprintf(tCtemp,100,"Particle eta:\t%E - %E\n",fEta[0],fEta[1]);
tStemp+=tCtemp;
snprintf(tCtemp,100,"Number of tracks which passed:\t%ld Number which failed:\t%ld\n",fNTracksPassed,fNTracksFailed);
tStemp += tCtemp;
AliFemtoString returnThis = tStemp;
return returnThis;
}
TList *AliFemtoMCTrackCut::ListSettings()
{
TList *tListSetttings = new TList();
char buf[200];
snprintf(buf, 200, "AliFemtoMCTrackCut.mass=%f", this->Mass());
tListSetttings->AddLast(new TObjString(buf));
snprintf(buf, 200, "AliFemtoMCTrackCut.charge=%i", fCharge);
tListSetttings->AddLast(new TObjString(buf));
return tListSetttings;
}
AliFemtoMCTrackCut.cxx:10 AliFemtoMCTrackCut.cxx:11 AliFemtoMCTrackCut.cxx:12 AliFemtoMCTrackCut.cxx:13 AliFemtoMCTrackCut.cxx:14 AliFemtoMCTrackCut.cxx:15 AliFemtoMCTrackCut.cxx:16 AliFemtoMCTrackCut.cxx:17 AliFemtoMCTrackCut.cxx:18 AliFemtoMCTrackCut.cxx:19 AliFemtoMCTrackCut.cxx:20 AliFemtoMCTrackCut.cxx:21 AliFemtoMCTrackCut.cxx:22 AliFemtoMCTrackCut.cxx:23 AliFemtoMCTrackCut.cxx:24 AliFemtoMCTrackCut.cxx:25 AliFemtoMCTrackCut.cxx:26 AliFemtoMCTrackCut.cxx:27 AliFemtoMCTrackCut.cxx:28 AliFemtoMCTrackCut.cxx:29 AliFemtoMCTrackCut.cxx:30 AliFemtoMCTrackCut.cxx:31 AliFemtoMCTrackCut.cxx:32 AliFemtoMCTrackCut.cxx:33 AliFemtoMCTrackCut.cxx:34 AliFemtoMCTrackCut.cxx:35 AliFemtoMCTrackCut.cxx:36 AliFemtoMCTrackCut.cxx:37 AliFemtoMCTrackCut.cxx:38 AliFemtoMCTrackCut.cxx:39 AliFemtoMCTrackCut.cxx:40 AliFemtoMCTrackCut.cxx:41 AliFemtoMCTrackCut.cxx:42 AliFemtoMCTrackCut.cxx:43 AliFemtoMCTrackCut.cxx:44 AliFemtoMCTrackCut.cxx:45 AliFemtoMCTrackCut.cxx:46 AliFemtoMCTrackCut.cxx:47 AliFemtoMCTrackCut.cxx:48 AliFemtoMCTrackCut.cxx:49 AliFemtoMCTrackCut.cxx:50 AliFemtoMCTrackCut.cxx:51 AliFemtoMCTrackCut.cxx:52 AliFemtoMCTrackCut.cxx:53 AliFemtoMCTrackCut.cxx:54 AliFemtoMCTrackCut.cxx:55 AliFemtoMCTrackCut.cxx:56 AliFemtoMCTrackCut.cxx:57 AliFemtoMCTrackCut.cxx:58 AliFemtoMCTrackCut.cxx:59 AliFemtoMCTrackCut.cxx:60 AliFemtoMCTrackCut.cxx:61 AliFemtoMCTrackCut.cxx:62 AliFemtoMCTrackCut.cxx:63 AliFemtoMCTrackCut.cxx:64 AliFemtoMCTrackCut.cxx:65 AliFemtoMCTrackCut.cxx:66 AliFemtoMCTrackCut.cxx:67 AliFemtoMCTrackCut.cxx:68 AliFemtoMCTrackCut.cxx:69 AliFemtoMCTrackCut.cxx:70 AliFemtoMCTrackCut.cxx:71 AliFemtoMCTrackCut.cxx:72 AliFemtoMCTrackCut.cxx:73 AliFemtoMCTrackCut.cxx:74 AliFemtoMCTrackCut.cxx:75 AliFemtoMCTrackCut.cxx:76 AliFemtoMCTrackCut.cxx:77 AliFemtoMCTrackCut.cxx:78 AliFemtoMCTrackCut.cxx:79 AliFemtoMCTrackCut.cxx:80 AliFemtoMCTrackCut.cxx:81 AliFemtoMCTrackCut.cxx:82 AliFemtoMCTrackCut.cxx:83 AliFemtoMCTrackCut.cxx:84 AliFemtoMCTrackCut.cxx:85 AliFemtoMCTrackCut.cxx:86 AliFemtoMCTrackCut.cxx:87 AliFemtoMCTrackCut.cxx:88 AliFemtoMCTrackCut.cxx:89 AliFemtoMCTrackCut.cxx:90 AliFemtoMCTrackCut.cxx:91 AliFemtoMCTrackCut.cxx:92 AliFemtoMCTrackCut.cxx:93 AliFemtoMCTrackCut.cxx:94 AliFemtoMCTrackCut.cxx:95 AliFemtoMCTrackCut.cxx:96 AliFemtoMCTrackCut.cxx:97 AliFemtoMCTrackCut.cxx:98 AliFemtoMCTrackCut.cxx:99 AliFemtoMCTrackCut.cxx:100 AliFemtoMCTrackCut.cxx:101 AliFemtoMCTrackCut.cxx:102 AliFemtoMCTrackCut.cxx:103 AliFemtoMCTrackCut.cxx:104 AliFemtoMCTrackCut.cxx:105 AliFemtoMCTrackCut.cxx:106 AliFemtoMCTrackCut.cxx:107 AliFemtoMCTrackCut.cxx:108 AliFemtoMCTrackCut.cxx:109 AliFemtoMCTrackCut.cxx:110 AliFemtoMCTrackCut.cxx:111 AliFemtoMCTrackCut.cxx:112 AliFemtoMCTrackCut.cxx:113 AliFemtoMCTrackCut.cxx:114 AliFemtoMCTrackCut.cxx:115 AliFemtoMCTrackCut.cxx:116 AliFemtoMCTrackCut.cxx:117 AliFemtoMCTrackCut.cxx:118 AliFemtoMCTrackCut.cxx:119 AliFemtoMCTrackCut.cxx:120 AliFemtoMCTrackCut.cxx:121 AliFemtoMCTrackCut.cxx:122 AliFemtoMCTrackCut.cxx:123 AliFemtoMCTrackCut.cxx:124 AliFemtoMCTrackCut.cxx:125 AliFemtoMCTrackCut.cxx:126 AliFemtoMCTrackCut.cxx:127 AliFemtoMCTrackCut.cxx:128 AliFemtoMCTrackCut.cxx:129 AliFemtoMCTrackCut.cxx:130 AliFemtoMCTrackCut.cxx:131 AliFemtoMCTrackCut.cxx:132 AliFemtoMCTrackCut.cxx:133 AliFemtoMCTrackCut.cxx:134 AliFemtoMCTrackCut.cxx:135 AliFemtoMCTrackCut.cxx:136 AliFemtoMCTrackCut.cxx:137 AliFemtoMCTrackCut.cxx:138 AliFemtoMCTrackCut.cxx:139 AliFemtoMCTrackCut.cxx:140 AliFemtoMCTrackCut.cxx:141 AliFemtoMCTrackCut.cxx:142 AliFemtoMCTrackCut.cxx:143 AliFemtoMCTrackCut.cxx:144 AliFemtoMCTrackCut.cxx:145 AliFemtoMCTrackCut.cxx:146 AliFemtoMCTrackCut.cxx:147 AliFemtoMCTrackCut.cxx:148 AliFemtoMCTrackCut.cxx:149 AliFemtoMCTrackCut.cxx:150 AliFemtoMCTrackCut.cxx:151 AliFemtoMCTrackCut.cxx:152 AliFemtoMCTrackCut.cxx:153 AliFemtoMCTrackCut.cxx:154 AliFemtoMCTrackCut.cxx:155 AliFemtoMCTrackCut.cxx:156 AliFemtoMCTrackCut.cxx:157 AliFemtoMCTrackCut.cxx:158 AliFemtoMCTrackCut.cxx:159 AliFemtoMCTrackCut.cxx:160 AliFemtoMCTrackCut.cxx:161 AliFemtoMCTrackCut.cxx:162 AliFemtoMCTrackCut.cxx:163 AliFemtoMCTrackCut.cxx:164 AliFemtoMCTrackCut.cxx:165 AliFemtoMCTrackCut.cxx:166 AliFemtoMCTrackCut.cxx:167 AliFemtoMCTrackCut.cxx:168 AliFemtoMCTrackCut.cxx:169 AliFemtoMCTrackCut.cxx:170 AliFemtoMCTrackCut.cxx:171 AliFemtoMCTrackCut.cxx:172 AliFemtoMCTrackCut.cxx:173 AliFemtoMCTrackCut.cxx:174 AliFemtoMCTrackCut.cxx:175 AliFemtoMCTrackCut.cxx:176 AliFemtoMCTrackCut.cxx:177 AliFemtoMCTrackCut.cxx:178 AliFemtoMCTrackCut.cxx:179 AliFemtoMCTrackCut.cxx:180 AliFemtoMCTrackCut.cxx:181 AliFemtoMCTrackCut.cxx:182 AliFemtoMCTrackCut.cxx:183 AliFemtoMCTrackCut.cxx:184 AliFemtoMCTrackCut.cxx:185 AliFemtoMCTrackCut.cxx:186 AliFemtoMCTrackCut.cxx:187 AliFemtoMCTrackCut.cxx:188 AliFemtoMCTrackCut.cxx:189 AliFemtoMCTrackCut.cxx:190 AliFemtoMCTrackCut.cxx:191