#include "AliFemtoBasicTrackCut.h"
#include <cstdio>
#ifdef __ROOT__
ClassImp(AliFemtoBasicTrackCut)
#endif
AliFemtoBasicTrackCut::AliFemtoBasicTrackCut():
fCharge(0),
fNTracksPassed(0),
fNTracksFailed(0)
{
fNTracksPassed = fNTracksFailed = 0;
fCharge = 1;
fNSigmaPion[0] = -100.0; fNSigmaPion[1] = 100.0;
fNSigmaKaon[0] = -100.0; fNSigmaKaon[1] = 100.0;
fNSigmaProton[0] = -100.0; fNSigmaProton[1] = 100.0;
fNHits[0] = 10; fNHits[1] = 180;
fPt[0]=0.0; fPt[1] = 100.0;
fRapidity[0]=-2; fRapidity[1]=2;
fDCA[0] = -1.0; fDCA[1] = 20.0;
}
bool AliFemtoBasicTrackCut::Pass(const AliFemtoTrack* track){
bool goodPID = 1;
if (fCharge !=0){
goodPID = (goodPID&&(track->Charge() == fCharge));
}
if (goodPID){
float tEnergy = ::sqrt(track->P().Mag2()+fMass*fMass);
float tRapidity = 0.5*::log((tEnergy+track->P().z())/
(tEnergy-track->P().z()));
float tPt = ::sqrt((track->P().x())*(track->P().x())+
(track->P().y())*(track->P().y()));
bool goodTrack=
(
(tPt > fPt[0]) &&
(tPt < fPt[1]) &&
(tRapidity > fRapidity[0]) &&
(tRapidity < fRapidity[1]));
goodTrack ? fNTracksPassed++ : fNTracksFailed++;
return (goodTrack);
}
else{
fNTracksFailed++;
return (goodPID);
}
}
AliFemtoString AliFemtoBasicTrackCut::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 Nsigma from pion:\t%E - %E\n",fNSigmaPion[0],fNSigmaPion[1]);
tStemp+=tCtemp;
snprintf(tCtemp , 100, "Particle Nsigma from kaon:\t%E - %E\n",fNSigmaKaon[0],fNSigmaKaon[1]);
tStemp+=tCtemp;
snprintf(tCtemp , 100, "Particle Nsigma from proton:\t%E - %E\n",fNSigmaProton[0],fNSigmaProton[1]);
tStemp+=tCtemp;
snprintf(tCtemp , 100, "Particle #hits:\t%d - %d\n",fNHits[0],fNHits[1]);
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 DCA:\t%E - %E\n",fDCA[0],fDCA[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 *AliFemtoBasicTrackCut::ListSettings()
{
TList *tListSetttings = new TList();
char buf[200];
snprintf(buf, 200, "AliFemtoBasicTrackCut.mass=%f", this->Mass());
tListSetttings->AddLast(new TObjString(buf));
snprintf(buf, 200, "AliFemtoBasicTrackCut.charge=%i", fCharge);
tListSetttings->AddLast(new TObjString(buf));
snprintf(buf, 200, "AliFemtoBasicTrackCut.nsigmapion.minimum=%f", fNSigmaPion[0]);
tListSetttings->AddLast(new TObjString(buf));
snprintf(buf, 200, "AliFemtoBasicTrackCut.nsigmapion.maximum=%f", fNSigmaPion[1]);
tListSetttings->AddLast(new TObjString(buf));
snprintf(buf, 200, "AliFemtoBasicTrackCut.nsigmakaon.minimum=%f", fNSigmaKaon[0]);
tListSetttings->AddLast(new TObjString(buf));
snprintf(buf, 200, "AliFemtoBasicTrackCut.nsigmakaon.maximum=%f", fNSigmaKaon[1]);
tListSetttings->AddLast(new TObjString(buf));
snprintf(buf, 200, "AliFemtoBasicTrackCut.nsigmaproton.minimum=%f", fNSigmaProton[0]);
tListSetttings->AddLast(new TObjString(buf));
snprintf(buf, 200, "AliFemtoBasicTrackCut.nsigmaproton.maximum=%f", fNSigmaProton[1]);
tListSetttings->AddLast(new TObjString(buf));
snprintf(buf, 200, "AliFemtoBasicTrackCut.nhits.minimum=%i", fNHits[0]);
tListSetttings->AddLast(new TObjString(buf));
snprintf(buf, 200, "AliFemtoBasicTrackCut.nhits.maximum=%i", fNHits[1]);
tListSetttings->AddLast(new TObjString(buf));
snprintf(buf, 200, "AliFemtoBasicTrackCut.pt.minimum=%f", fPt[0]);
tListSetttings->AddLast(new TObjString(buf));
snprintf(buf, 200, "AliFemtoBasicTrackCut.pt.maximum=%f", fPt[1]);
tListSetttings->AddLast(new TObjString(buf));
snprintf(buf, 200, "AliFemtoBasicTrackCut.rapidity.minimum=%f", fRapidity[0]);
tListSetttings->AddLast(new TObjString(buf));
snprintf(buf, 200, "AliFemtoBasicTrackCut.rapidity.maximum=%f", fRapidity[1]);
tListSetttings->AddLast(new TObjString(buf));
snprintf(buf, 200, "AliFemtoBasicTrackCut.dca.minimum=%f", fDCA[0]);
tListSetttings->AddLast(new TObjString(buf));
snprintf(buf, 200, "AliFemtoBasicTrackCut.dca.maximum=%f", fDCA[1]);
tListSetttings->AddLast(new TObjString(buf));
return tListSetttings;
}
AliFemtoBasicTrackCut.cxx:1 AliFemtoBasicTrackCut.cxx:2 AliFemtoBasicTrackCut.cxx:3 AliFemtoBasicTrackCut.cxx:4 AliFemtoBasicTrackCut.cxx:5 AliFemtoBasicTrackCut.cxx:6 AliFemtoBasicTrackCut.cxx:7 AliFemtoBasicTrackCut.cxx:8 AliFemtoBasicTrackCut.cxx:9 AliFemtoBasicTrackCut.cxx:10 AliFemtoBasicTrackCut.cxx:11 AliFemtoBasicTrackCut.cxx:12 AliFemtoBasicTrackCut.cxx:13 AliFemtoBasicTrackCut.cxx:14 AliFemtoBasicTrackCut.cxx:15 AliFemtoBasicTrackCut.cxx:16 AliFemtoBasicTrackCut.cxx:17 AliFemtoBasicTrackCut.cxx:18 AliFemtoBasicTrackCut.cxx:19 AliFemtoBasicTrackCut.cxx:20 AliFemtoBasicTrackCut.cxx:21 AliFemtoBasicTrackCut.cxx:22 AliFemtoBasicTrackCut.cxx:23 AliFemtoBasicTrackCut.cxx:24 AliFemtoBasicTrackCut.cxx:25 AliFemtoBasicTrackCut.cxx:26 AliFemtoBasicTrackCut.cxx:27 AliFemtoBasicTrackCut.cxx:28 AliFemtoBasicTrackCut.cxx:29 AliFemtoBasicTrackCut.cxx:30 AliFemtoBasicTrackCut.cxx:31 AliFemtoBasicTrackCut.cxx:32 AliFemtoBasicTrackCut.cxx:33 AliFemtoBasicTrackCut.cxx:34 AliFemtoBasicTrackCut.cxx:35 AliFemtoBasicTrackCut.cxx:36 AliFemtoBasicTrackCut.cxx:37 AliFemtoBasicTrackCut.cxx:38 AliFemtoBasicTrackCut.cxx:39 AliFemtoBasicTrackCut.cxx:40 AliFemtoBasicTrackCut.cxx:41 AliFemtoBasicTrackCut.cxx:42 AliFemtoBasicTrackCut.cxx:43 AliFemtoBasicTrackCut.cxx:44 AliFemtoBasicTrackCut.cxx:45 AliFemtoBasicTrackCut.cxx:46 AliFemtoBasicTrackCut.cxx:47 AliFemtoBasicTrackCut.cxx:48 AliFemtoBasicTrackCut.cxx:49 AliFemtoBasicTrackCut.cxx:50 AliFemtoBasicTrackCut.cxx:51 AliFemtoBasicTrackCut.cxx:52 AliFemtoBasicTrackCut.cxx:53 AliFemtoBasicTrackCut.cxx:54 AliFemtoBasicTrackCut.cxx:55 AliFemtoBasicTrackCut.cxx:56 AliFemtoBasicTrackCut.cxx:57 AliFemtoBasicTrackCut.cxx:58 AliFemtoBasicTrackCut.cxx:59 AliFemtoBasicTrackCut.cxx:60 AliFemtoBasicTrackCut.cxx:61 AliFemtoBasicTrackCut.cxx:62 AliFemtoBasicTrackCut.cxx:63 AliFemtoBasicTrackCut.cxx:64 AliFemtoBasicTrackCut.cxx:65 AliFemtoBasicTrackCut.cxx:66 AliFemtoBasicTrackCut.cxx:67 AliFemtoBasicTrackCut.cxx:68 AliFemtoBasicTrackCut.cxx:69 AliFemtoBasicTrackCut.cxx:70 AliFemtoBasicTrackCut.cxx:71 AliFemtoBasicTrackCut.cxx:72 AliFemtoBasicTrackCut.cxx:73 AliFemtoBasicTrackCut.cxx:74 AliFemtoBasicTrackCut.cxx:75 AliFemtoBasicTrackCut.cxx:76 AliFemtoBasicTrackCut.cxx:77 AliFemtoBasicTrackCut.cxx:78 AliFemtoBasicTrackCut.cxx:79 AliFemtoBasicTrackCut.cxx:80 AliFemtoBasicTrackCut.cxx:81 AliFemtoBasicTrackCut.cxx:82 AliFemtoBasicTrackCut.cxx:83 AliFemtoBasicTrackCut.cxx:84 AliFemtoBasicTrackCut.cxx:85 AliFemtoBasicTrackCut.cxx:86 AliFemtoBasicTrackCut.cxx:87 AliFemtoBasicTrackCut.cxx:88 AliFemtoBasicTrackCut.cxx:89 AliFemtoBasicTrackCut.cxx:90 AliFemtoBasicTrackCut.cxx:91 AliFemtoBasicTrackCut.cxx:92 AliFemtoBasicTrackCut.cxx:93 AliFemtoBasicTrackCut.cxx:94 AliFemtoBasicTrackCut.cxx:95 AliFemtoBasicTrackCut.cxx:96 AliFemtoBasicTrackCut.cxx:97 AliFemtoBasicTrackCut.cxx:98 AliFemtoBasicTrackCut.cxx:99 AliFemtoBasicTrackCut.cxx:100 AliFemtoBasicTrackCut.cxx:101 AliFemtoBasicTrackCut.cxx:102 AliFemtoBasicTrackCut.cxx:103 AliFemtoBasicTrackCut.cxx:104 AliFemtoBasicTrackCut.cxx:105 AliFemtoBasicTrackCut.cxx:106 AliFemtoBasicTrackCut.cxx:107 AliFemtoBasicTrackCut.cxx:108 AliFemtoBasicTrackCut.cxx:109 AliFemtoBasicTrackCut.cxx:110 AliFemtoBasicTrackCut.cxx:111 AliFemtoBasicTrackCut.cxx:112 AliFemtoBasicTrackCut.cxx:113 AliFemtoBasicTrackCut.cxx:114 AliFemtoBasicTrackCut.cxx:115 AliFemtoBasicTrackCut.cxx:116 AliFemtoBasicTrackCut.cxx:117 AliFemtoBasicTrackCut.cxx:118 AliFemtoBasicTrackCut.cxx:119 AliFemtoBasicTrackCut.cxx:120 AliFemtoBasicTrackCut.cxx:121 AliFemtoBasicTrackCut.cxx:122 AliFemtoBasicTrackCut.cxx:123 AliFemtoBasicTrackCut.cxx:124 AliFemtoBasicTrackCut.cxx:125 AliFemtoBasicTrackCut.cxx:126 AliFemtoBasicTrackCut.cxx:127 AliFemtoBasicTrackCut.cxx:128 AliFemtoBasicTrackCut.cxx:129 AliFemtoBasicTrackCut.cxx:130 AliFemtoBasicTrackCut.cxx:131 AliFemtoBasicTrackCut.cxx:132 AliFemtoBasicTrackCut.cxx:133 AliFemtoBasicTrackCut.cxx:134 AliFemtoBasicTrackCut.cxx:135 AliFemtoBasicTrackCut.cxx:136 AliFemtoBasicTrackCut.cxx:137 AliFemtoBasicTrackCut.cxx:138 AliFemtoBasicTrackCut.cxx:139 AliFemtoBasicTrackCut.cxx:140 AliFemtoBasicTrackCut.cxx:141 AliFemtoBasicTrackCut.cxx:142 AliFemtoBasicTrackCut.cxx:143 AliFemtoBasicTrackCut.cxx:144 AliFemtoBasicTrackCut.cxx:145 AliFemtoBasicTrackCut.cxx:146 AliFemtoBasicTrackCut.cxx:147 AliFemtoBasicTrackCut.cxx:148 AliFemtoBasicTrackCut.cxx:149 AliFemtoBasicTrackCut.cxx:150 AliFemtoBasicTrackCut.cxx:151 AliFemtoBasicTrackCut.cxx:152 AliFemtoBasicTrackCut.cxx:153 AliFemtoBasicTrackCut.cxx:154 AliFemtoBasicTrackCut.cxx:155 AliFemtoBasicTrackCut.cxx:156 AliFemtoBasicTrackCut.cxx:157 AliFemtoBasicTrackCut.cxx:158 AliFemtoBasicTrackCut.cxx:159 AliFemtoBasicTrackCut.cxx:160 AliFemtoBasicTrackCut.cxx:161 AliFemtoBasicTrackCut.cxx:162 AliFemtoBasicTrackCut.cxx:163 AliFemtoBasicTrackCut.cxx:164 AliFemtoBasicTrackCut.cxx:165 AliFemtoBasicTrackCut.cxx:166 AliFemtoBasicTrackCut.cxx:167 AliFemtoBasicTrackCut.cxx:168 AliFemtoBasicTrackCut.cxx:169 AliFemtoBasicTrackCut.cxx:170 AliFemtoBasicTrackCut.cxx:171 AliFemtoBasicTrackCut.cxx:172 AliFemtoBasicTrackCut.cxx:173 AliFemtoBasicTrackCut.cxx:174 AliFemtoBasicTrackCut.cxx:175 AliFemtoBasicTrackCut.cxx:176 AliFemtoBasicTrackCut.cxx:177 AliFemtoBasicTrackCut.cxx:178