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