Remove event number reading due to interface changes
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / AliFemtoUser / Cut / AliFemtoESDTrackCut.cxx
CommitLineData
67427ff7 1/***************************************************************************
2 *
3 * $Id$
4 *
5 *
6 ***************************************************************************
7 *
8 *
9 *
10 *
11 ***************************************************************************
12 *
13 * $Log$
b2f60a91 14 * Revision 1.1.1.1 2007/04/25 15:38:41 panos
15 * Importing the HBT code dir
16 *
67427ff7 17 * Revision 1.4 2007-04-03 16:00:08 mchojnacki
18 * Changes to iprove memory managing
19 *
20 * Revision 1.3 2007/03/13 15:30:03 mchojnacki
21 * adding reader for simulated data
22 *
23 * Revision 1.2 2007/03/08 14:58:03 mchojnacki
24 * adding some alice stuff
25 *
26 * Revision 1.1.1.1 2007/03/07 10:14:49 mchojnacki
27 * First version on CVS
28 *
29 **************************************************************************/
30
b2f60a91 31#include "AliFemtoESDTrackCut.h"
67427ff7 32#include <cstdio>
33
34#ifdef __ROOT__
35ClassImp(AliFemtoESDTrackCut)
36#endif
37
38AliFemtoESDTrackCut::AliFemtoESDTrackCut()
39{
40 fNTracksPassed = fNTracksFailed = 0;
41 fCharge = 0; // takes both charges 0
42 fPt[0]=0.0; fPt[1] = 100.0;//100
43 fRapidity[0]=-2; fRapidity[1]=2;//-2 2
44 fPidProbElectron[0]=-1;fPidProbElectron[1]=2;
45 fPidProbPion[0]=-1; fPidProbPion[1]=2;
46 fPidProbKaon[0]=-1;fPidProbKaon[1]=2;
47 fPidProbProton[0]=-1;fPidProbProton[1]=2;
48 fPidProbMuon[0]=-1;fPidProbMuon[1]=2;
49 fLabel=false;
50 fStatus=0;
51 fminTPCclsF=0;
52 fminITScls=0;
53
54}
55//------------------------------
56//AliFemtoESDTrackCut::~AliFemtoESDTrackCut(){
57// /* noop */
58//}
59//------------------------------
60bool AliFemtoESDTrackCut::Pass(const AliFemtoTrack* track)
61{
62 //cout<<"AliFemtoESD cut"<<endl;
63 //cout<<fPidProbPion[0]<<" < pi ="<<track->PidProbPion()<<" <"<<fPidProbPion[1]<<endl;
64 if (fStatus!=0)
65 {
66 //cout<<" status "<<track->Label()<<" "<<track->Flags()<<" "<<track->TPCnclsF()<<" "<<track->ITSncls()<<endl;
67 if ((track->Flags()&fStatus)!=fStatus)
68 {
69 // cout<<track->Flags()<<" "<<fStatus<<" no go through status"<<endl;
70 return false;
71 }
72
73 }
74 if (fminTPCclsF>track->TPCnclsF())
75 {
76 //cout<<" No go because TPC Number of ClsF"<<fminTPCclsF<< " "<<track->TPCnclsF()<<endl;
77 return false;
78 }
79 if (fminITScls>track->ITSncls())
80 {
81 //cout<<" No go because ITS Number of Cls"<<fminITScls<< " "<<track->ITSncls()<<endl;
82 return false;
83 }
84
85 if (fLabel)
86 {
87 //cout<<"labels"<<endl;
88 if(track->Label()<0)
89 {
90 fNTracksFailed++;
91 // cout<<"No Go Through the cut"<<endl;
92 // cout<<fLabel<<" Label="<<track->Label()<<endl;
93 return false;
94 }
95 }
96 if (fCharge!=0)
97 {
98 //cout<<"AliFemtoESD cut ch "<<endl;
99 //cout<<fCharge<<" Charge="<<track->Charge()<<endl;
100 if (track->Charge()!= fCharge)
101 {
102 fNTracksFailed++;
103 // cout<<"No Go Through the cut"<<endl;
104 // cout<<fCharge<<" Charge="<<track->Charge()<<endl;
105 return false;
106 }
107 }
108 float TEnergy = ::sqrt(track->P().mag2()+fMass*fMass);
109 float TRapidity = 0.5*::log((TEnergy+track->P().z())/(TEnergy-track->P().z()));
110 float Pt = ::sqrt((track->P().x())*(track->P().x())+(track->P().y())*(track->P().y()));
111 if ((TRapidity<fRapidity[0])||(TRapidity>fRapidity[1]))
112 {
113 fNTracksFailed++;
114 //cout<<"No Go Through the cut"<<endl;
115 //cout<<fRapidity[0]<<" < Rapidity ="<<TRapidity<<" <"<<fRapidity[1]<<endl;
116 return false;
117 }
118 if ((Pt<fPt[0])||(Pt>fPt[1]))
119 {
120 fNTracksFailed++;
121 //cout<<"No Go Through the cut"<<endl;
122 //cout<<fPt[0]<<" < Pt ="<<Pt<<" <"<<fPt[1]<<endl;
123 return false;
124 }
125 if ((track->PidProbElectron()<fPidProbElectron[0])||(track->PidProbElectron()>fPidProbElectron[1]))
126 {
127 fNTracksFailed++;
128 //cout<<"No Go Through the cut"<<endl;
129 //cout<<fPidProbElectron[0]<<" < e ="<<track->PidProbElectron()<<" <"<<fPidProbElectron[1]<<endl;
130 return false;
131 }
132 if ((track->PidProbPion()<fPidProbPion[0])||(track->PidProbPion()>fPidProbPion[1]))
133 {
134 fNTracksFailed++;
135 //cout<<"No Go Through the cut"<<endl;
136 //cout<<fPidProbPion[0]<<" < pi ="<<track->PidProbPion()<<" <"<<fPidProbPion[1]<<endl;
137 return false;
138 }
139 if ((track->PidProbKaon()<fPidProbKaon[0])||(track->PidProbKaon()>fPidProbKaon[1]))
140 {
141 fNTracksFailed++;
142 //cout<<"No Go Through the cut"<<endl;
143 //cout<<fPidProbKaon[0]<<" < k ="<<track->PidProbKaon()<<" <"<<fPidProbKaon[1]<<endl;
144 return false;
145 }
146 if ((track->PidProbProton()<fPidProbProton[0])||(track->PidProbProton()>fPidProbProton[1]))
147 {
148 fNTracksFailed++;
149 //cout<<"No Go Through the cut"<<endl;
150 //cout<<fPidProbProton[0]<<" < p ="<<track->PidProbProton()<<" <"<<fPidProbProton[1]<<endl;
151 return false;
152 }
153 if ((track->PidProbMuon()<fPidProbMuon[0])||(track->PidProbMuon()>fPidProbMuon[1]))
154 {
155 fNTracksFailed++;
156 //cout<<"No Go Through the cut"<<endl;
157 //cout<<fPidProbMuon[0]<<" < mi="<<track->PidProbMuon()<<" <"<<fPidProbMuon[1]<<endl;
158 return false;
159 }
160
161 // cout<<"Go Through the cut"<<endl;
162 // cout<<fLabel<<" Label="<<track->Label()<<endl;
163 // cout<<fCharge<<" Charge="<<track->Charge()<<endl;
164 // cout<<fPt[0]<<" < Pt ="<<Pt<<" <"<<fPt[1]<<endl;
165 //cout<<fRapidity[0]<<" < Rapidity ="<<TRapidity<<" <"<<fRapidity[1]<<endl;
166 //cout<<fPidProbElectron[0]<<" < e="<<track->PidProbElectron()<<" <"<<fPidProbElectron[1]<<endl;
167 //cout<<fPidProbPion[0]<<" < pi="<<track->PidProbPion()<<" <"<<fPidProbPion[1]<<endl;
168 //cout<<fPidProbKaon[0]<<" < k="<<track->PidProbKaon()<<" <"<<fPidProbKaon[1]<<endl;
169 //cout<<fPidProbProton[0]<<" < p="<<track->PidProbProton()<<" <"<<fPidProbProton[1]<<endl;
170 //cout<<fPidProbMuon[0]<<" < mi="<<track->PidProbMuon()<<" <"<<fPidProbMuon[1]<<endl;
171 fNTracksPassed++ ;
172 return true;
173
174
175}
176//------------------------------
177AliFemtoString AliFemtoESDTrackCut::Report()
178{
179 string Stemp;
180 char Ctemp[100];
181 sprintf(Ctemp,"Particle mass:\t%E\n",this->Mass());
182 Stemp=Ctemp;
183 sprintf(Ctemp,"Particle charge:\t%d\n",fCharge);
184 Stemp+=Ctemp;
185 sprintf(Ctemp,"Particle pT:\t%E - %E\n",fPt[0],fPt[1]);
186 Stemp+=Ctemp;
187 sprintf(Ctemp,"Particle rapidity:\t%E - %E\n",fRapidity[0],fRapidity[1]);
188 Stemp+=Ctemp;
189 sprintf(Ctemp,"Number of tracks which passed:\t%ld Number which failed:\t%ld\n",fNTracksPassed,fNTracksFailed);
190 Stemp += Ctemp;
191 AliFemtoString returnThis = Stemp;
192 return returnThis;
193}