1 ////////////////////////////////////////////////////////////////////////////////
3 // AliFemtoBasicTrackCut - the basic cut for tracks. //
4 // Cuts on particle identification, transverse momentum, rapidity, distance //
5 // of closest approach to primary vertex and charge //
7 ////////////////////////////////////////////////////////////////////////////////
9 #include "AliFemtoBasicTrackCut.h"
13 ClassImp(AliFemtoBasicTrackCut)
16 AliFemtoBasicTrackCut::AliFemtoBasicTrackCut():
21 fNTracksPassed = fNTracksFailed = 0;
22 fCharge = 1; // takes both charges 0
23 fNSigmaPion[0] = -100.0; fNSigmaPion[1] = 100.0;
24 fNSigmaKaon[0] = -100.0; fNSigmaKaon[1] = 100.0;
25 fNSigmaProton[0] = -100.0; fNSigmaProton[1] = 100.0;
26 fNHits[0] = 10; fNHits[1] = 180;
27 fPt[0]=0.0; fPt[1] = 100.0;//100
28 fRapidity[0]=-2; fRapidity[1]=2;//-2 2
29 fDCA[0] = -1.0; fDCA[1] = 20.0;
32 //------------------------------
33 //AliFemtoBasicTrackCut::~AliFemtoBasicTrackCut(){
36 //------------------------------
37 bool AliFemtoBasicTrackCut::Pass(const AliFemtoTrack* track){
40 // return true ; // THIS CUT IS A STHBTDUMMY!!
44 cout << "#track " << trackCount++;
45 cout << " * pion " << (track->NSigmaPion() > fNSigmaPion[0]) && (track->NSigmaPion() < fNSigmaPion[1]);
46 cout << " * kaon " << (track->NSigmaKaon() > fNSigmaKaon[0]) && (track->NSigmaKaon() < fNSigmaKaon[1]);
47 cout << " * proton " << (track->NSigmaProton() > fNSigmaProton[0]) && (track->NSigmaProton() < fNSigmaProton[1]);
48 cout << " * charge " << (track->Charge() == fCharge);
51 /* ----- NOT DOING PID CUTS !!!! ------
52 bool goodPID = ((track->NSigmaPion() > fNSigmaPion[0]) &&
53 (track->NSigmaPion() < fNSigmaPion[1]) &&
54 (track->NSigmaKaon() > fNSigmaKaon[0]) &&
55 (track->NSigmaKaon() < fNSigmaKaon[1]) &&
56 (track->NSigmaProton() > fNSigmaProton[0]) &&
57 (track->NSigmaProton() < fNSigmaProton[1]));
58 ----- NOT DOING PID CUTS !!!! ------ */
59 if (fCharge !=0){ // if user requests "charge=0" then that means ignore charge
60 goodPID = (goodPID&&(track->Charge() == fCharge));
63 float TEnergy = ::sqrt(track->P().mag2()+fMass*fMass);
64 float TRapidity = 0.5*::log((TEnergy+track->P().z())/
65 (TEnergy-track->P().z()));
67 float Pt = ::sqrt((track->P().x())*(track->P().x())+
68 (track->P().y())*(track->P().y()));
72 cout << " * DCAxy " << (track->DCAxy() > fDCA[0]) && (track->DCAxy() < fDCA[1]);
73 cout << " * fDCA[0] " << fDCA[0];
74 cout << " * fDCA[1] " << fDCA[1];
75 cout << " * track->DCAxy " << track->DCAxy();
76 cout << " * NHits " << (track->NHits() > fNHits[0]) && (track->NHits() < fNHits[1]);
77 cout << " * Pt " << (Pt > fPt[0]) && (Pt < fPt[1]);
78 cout << " * y " << (TRapidity > fRapidity[0]) && (TRapidity < fRapidity[1]);
83 (//(track->DCAxy() > fDCA[0]) &&
84 // (track->DCAxy() < fDCA[1]) &&
85 // (track->NHits() > fNHits[0]) &&
86 // (track->NHits() < fNHits[1]) &&
89 (TRapidity > fRapidity[0]) &&
90 (TRapidity < fRapidity[1]))&&
91 (track->PidProbPion()>0.5)&&//moje
92 (track->PidProbMuon()<0.47)&&//moje
93 (track->Label()>0);//moje
95 // cout << track->DCAxy() << " " << track->NHits() << " " << Pt << " " << TRapidity << " " << TEnergy << endl;
97 goodTrack ? fNTracksPassed++ : fNTracksFailed++;
105 //------------------------------
106 AliFemtoString AliFemtoBasicTrackCut::Report(){
109 sprintf(Ctemp,"Particle mass:\t%E\n",this->Mass());
111 sprintf(Ctemp,"Particle charge:\t%d\n",fCharge);
113 sprintf(Ctemp,"Particle Nsigma from pion:\t%E - %E\n",fNSigmaPion[0],fNSigmaPion[1]);
115 sprintf(Ctemp,"Particle Nsigma from kaon:\t%E - %E\n",fNSigmaKaon[0],fNSigmaKaon[1]);
117 sprintf(Ctemp,"Particle Nsigma from proton:\t%E - %E\n",fNSigmaProton[0],fNSigmaProton[1]);
119 sprintf(Ctemp,"Particle #hits:\t%d - %d\n",fNHits[0],fNHits[1]);
121 sprintf(Ctemp,"Particle pT:\t%E - %E\n",fPt[0],fPt[1]);
123 sprintf(Ctemp,"Particle rapidity:\t%E - %E\n",fRapidity[0],fRapidity[1]);
125 sprintf(Ctemp,"Particle DCA:\t%E - %E\n",fDCA[0],fDCA[1]);
127 sprintf(Ctemp,"Number of tracks which passed:\t%ld Number which failed:\t%ld\n",fNTracksPassed,fNTracksFailed);
129 AliFemtoString returnThis = Stemp;