]>
Commit | Line | Data |
---|---|---|
67427ff7 | 1 | /*************************************************************************** |
2 | * | |
3 | * $Id: | |
4 | * | |
5 | * Author: Mike Lisa, Ohio State, lisa@mps.ohio-state.edu | |
6 | *************************************************************************** | |
7 | * | |
8 | * Description: part of STAR HBT Framework: AliFemtoMaker package | |
9 | * a simple particle cut that selects on phasespace, #hits, DCA, and PID | |
10 | * | |
11 | *************************************************************************** | |
12 | * | |
13 | * $Log: | |
14 | **************************************************************************/ | |
15 | ||
16 | #include "Cut/AliFemtoBasicTrackCut.h" | |
17 | #include <cstdio> | |
18 | ||
19 | #ifdef __ROOT__ | |
20 | ClassImp(AliFemtoBasicTrackCut) | |
21 | #endif | |
22 | ||
23 | AliFemtoBasicTrackCut::AliFemtoBasicTrackCut(){ | |
24 | fNTracksPassed = fNTracksFailed = 0; | |
25 | fCharge = 1; // takes both charges 0 | |
26 | fNSigmaPion[0] = -100.0; fNSigmaPion[1] = 100.0; | |
27 | fNSigmaKaon[0] = -100.0; fNSigmaKaon[1] = 100.0; | |
28 | fNSigmaProton[0] = -100.0; fNSigmaProton[1] = 100.0; | |
29 | fNHits[0] = 10; fNHits[1] = 180; | |
30 | fPt[0]=0.0; fPt[1] = 100.0;//100 | |
31 | fRapidity[0]=-2; fRapidity[1]=2;//-2 2 | |
32 | fDCA[0] = -1.0; fDCA[1] = 20.0; | |
33 | ||
34 | } | |
35 | //------------------------------ | |
36 | //AliFemtoBasicTrackCut::~AliFemtoBasicTrackCut(){ | |
37 | // /* noop */ | |
38 | //} | |
39 | //------------------------------ | |
40 | bool AliFemtoBasicTrackCut::Pass(const AliFemtoTrack* track){ | |
41 | ||
42 | ||
43 | // return true ; // THIS CUT IS A STHBTDUMMY!! | |
44 | ||
45 | /* | |
46 | cout << endl; | |
47 | cout << "#track " << trackCount++; | |
48 | cout << " * pion " << (track->NSigmaPion() > fNSigmaPion[0]) && (track->NSigmaPion() < fNSigmaPion[1]); | |
49 | cout << " * kaon " << (track->NSigmaKaon() > fNSigmaKaon[0]) && (track->NSigmaKaon() < fNSigmaKaon[1]); | |
50 | cout << " * proton " << (track->NSigmaProton() > fNSigmaProton[0]) && (track->NSigmaProton() < fNSigmaProton[1]); | |
51 | cout << " * charge " << (track->Charge() == fCharge); | |
52 | */ | |
53 | bool goodPID = 1; | |
54 | /* ----- NOT DOING PID CUTS !!!! ------ | |
55 | bool goodPID = ((track->NSigmaPion() > fNSigmaPion[0]) && | |
56 | (track->NSigmaPion() < fNSigmaPion[1]) && | |
57 | (track->NSigmaKaon() > fNSigmaKaon[0]) && | |
58 | (track->NSigmaKaon() < fNSigmaKaon[1]) && | |
59 | (track->NSigmaProton() > fNSigmaProton[0]) && | |
60 | (track->NSigmaProton() < fNSigmaProton[1])); | |
61 | ----- NOT DOING PID CUTS !!!! ------ */ | |
62 | if (fCharge !=0){ // if user requests "charge=0" then that means ignore charge | |
63 | goodPID = (goodPID&&(track->Charge() == fCharge)); | |
64 | } | |
65 | if (goodPID){ | |
66 | float TEnergy = ::sqrt(track->P().mag2()+fMass*fMass); | |
67 | float TRapidity = 0.5*::log((TEnergy+track->P().z())/ | |
68 | (TEnergy-track->P().z())); | |
69 | ||
70 | float Pt = ::sqrt((track->P().x())*(track->P().x())+ | |
71 | (track->P().y())*(track->P().y())); | |
72 | ||
73 | ||
74 | /* | |
75 | cout << " * DCAxy " << (track->DCAxy() > fDCA[0]) && (track->DCAxy() < fDCA[1]); | |
76 | cout << " * fDCA[0] " << fDCA[0]; | |
77 | cout << " * fDCA[1] " << fDCA[1]; | |
78 | cout << " * track->DCAxy " << track->DCAxy(); | |
79 | cout << " * NHits " << (track->NHits() > fNHits[0]) && (track->NHits() < fNHits[1]); | |
80 | cout << " * Pt " << (Pt > fPt[0]) && (Pt < fPt[1]); | |
81 | cout << " * y " << (TRapidity > fRapidity[0]) && (TRapidity < fRapidity[1]); | |
82 | cout << endl; | |
83 | */ | |
84 | ||
85 | bool goodTrack= | |
86 | (//(track->DCAxy() > fDCA[0]) && | |
87 | // (track->DCAxy() < fDCA[1]) && | |
88 | // (track->NHits() > fNHits[0]) && | |
89 | // (track->NHits() < fNHits[1]) && | |
90 | (Pt > fPt[0]) && | |
91 | (Pt < fPt[1]) && | |
92 | (TRapidity > fRapidity[0]) && | |
93 | (TRapidity < fRapidity[1]))&& | |
94 | (track->PidProbPion()>0.5)&&//moje | |
95 | (track->PidProbMuon()<0.47)&&//moje | |
96 | (track->Label()>0);//moje | |
97 | ||
98 | // cout << track->DCAxy() << " " << track->NHits() << " " << Pt << " " << TRapidity << " " << TEnergy << endl; | |
99 | ||
100 | goodTrack ? fNTracksPassed++ : fNTracksFailed++; | |
101 | return (goodTrack); | |
102 | } | |
103 | else{ | |
104 | fNTracksFailed++; | |
105 | return (goodPID); | |
106 | } | |
107 | } | |
108 | //------------------------------ | |
109 | AliFemtoString AliFemtoBasicTrackCut::Report(){ | |
110 | string Stemp; | |
111 | char Ctemp[100]; | |
112 | sprintf(Ctemp,"Particle mass:\t%E\n",this->Mass()); | |
113 | Stemp=Ctemp; | |
114 | sprintf(Ctemp,"Particle charge:\t%d\n",fCharge); | |
115 | Stemp=Ctemp; | |
116 | sprintf(Ctemp,"Particle Nsigma from pion:\t%E - %E\n",fNSigmaPion[0],fNSigmaPion[1]); | |
117 | Stemp+=Ctemp; | |
118 | sprintf(Ctemp,"Particle Nsigma from kaon:\t%E - %E\n",fNSigmaKaon[0],fNSigmaKaon[1]); | |
119 | Stemp+=Ctemp; | |
120 | sprintf(Ctemp,"Particle Nsigma from proton:\t%E - %E\n",fNSigmaProton[0],fNSigmaProton[1]); | |
121 | Stemp+=Ctemp; | |
122 | sprintf(Ctemp,"Particle #hits:\t%d - %d\n",fNHits[0],fNHits[1]); | |
123 | Stemp+=Ctemp; | |
124 | sprintf(Ctemp,"Particle pT:\t%E - %E\n",fPt[0],fPt[1]); | |
125 | Stemp+=Ctemp; | |
126 | sprintf(Ctemp,"Particle rapidity:\t%E - %E\n",fRapidity[0],fRapidity[1]); | |
127 | Stemp+=Ctemp; | |
128 | sprintf(Ctemp,"Particle DCA:\t%E - %E\n",fDCA[0],fDCA[1]); | |
129 | Stemp+=Ctemp; | |
130 | sprintf(Ctemp,"Number of tracks which passed:\t%ld Number which failed:\t%ld\n",fNTracksPassed,fNTracksFailed); | |
131 | Stemp += Ctemp; | |
132 | AliFemtoString returnThis = Stemp; | |
133 | return returnThis; | |
134 | } |