]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FEMTOSCOPY/AliFemto/AliFemtoEventCutEstimators.cxx
Lines getting the matched track moved to a method in AliCalorimeterUtils. Lines copie...
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / AliFemto / AliFemtoEventCutEstimators.cxx
1 ////////////////////////////////////////////////////////////////////////////////
2 //                                                                            //
3 // AliFemtoEventCutEstimators - the basic cut for events.                          //
4 // Only cuts on event multiplicity and z-vertex position                      //
5 //                                                                            //
6 ////////////////////////////////////////////////////////////////////////////////
7
8 #include "AliFemtoEventCutEstimators.h"
9 //#include <cstdio>
10
11 #ifdef __ROOT__
12 ClassImp(AliFemtoEventCutEstimators)
13 #endif
14
15 AliFemtoEventCutEstimators::AliFemtoEventCutEstimators() :
16   AliFemtoEventCut(),
17   fEventMultEst1(),
18   fEventMultEst2(),
19   fEventMultEst3(),
20   fUseMultEst1(0), 
21   fUseMultEst2(0), 
22   fUseMultEst3(0), 
23   fEventCentEst1(),
24   fEventCentEst2(),
25   fEventCentEst3(),
26   fEventCentEst4(),
27   fUseCentEst1(0), 
28   fUseCentEst2(0), 
29   fUseCentEst3(0), 
30   fUseCentEst4(0),
31   fNEventsPassed(0), 
32   fNEventsFailed(0) 
33 {
34   // Default constructor
35   fEventMultEst1[0] = 0;  fEventMultEst1[1] = 10000;
36   fEventMultEst2[0] = 0;  fEventMultEst2[1] = 10000;
37   fEventMultEst3[0] = 0;  fEventMultEst3[1] = 10000;
38   fEventCentEst1[0] = 0;  fEventCentEst1[1] = 1000.0;
39   fEventCentEst2[0] = 0;  fEventCentEst2[1] = 1000.0;
40   fEventCentEst3[0] = 0;  fEventCentEst3[1] = 1000.0;
41   fEventCentEst4[0] = 0;  fEventCentEst4[1] = 1000.0;
42   fVertZPos[0] = -100.0;
43   fVertZPos[1] = 100.0;
44
45 //------------------------------
46 AliFemtoEventCutEstimators::~AliFemtoEventCutEstimators(){
47   // Default destructor
48 }
49 //------------------------------
50 AliFemtoEventCutEstimators& AliFemtoEventCutEstimators::operator=(AliFemtoEventCutEstimators& c)
51 {
52   if (this != &c) {
53     fEventMultEst1[0] = c.fEventMultEst1[0];  fEventMultEst1[1] = c.fEventMultEst1[1];
54     fEventMultEst2[0] = c.fEventMultEst2[0];  fEventMultEst2[1] = c.fEventMultEst2[1];
55     fEventMultEst3[0] = c.fEventMultEst3[0];  fEventMultEst3[1] = c.fEventMultEst3[1];
56     fEventCentEst1[0] = c.fEventCentEst1[0];  fEventCentEst1[1] = c.fEventCentEst1[1];
57     fEventCentEst2[0] = c.fEventCentEst2[0];  fEventCentEst2[1] = c.fEventCentEst2[1];
58     fEventCentEst3[0] = c.fEventCentEst3[0];  fEventCentEst3[1] = c.fEventCentEst3[1];
59     fEventCentEst4[0] = c.fEventCentEst4[0];  fEventCentEst4[1] = c.fEventCentEst4[1];
60     fVertZPos[0] = c.fVertZPos[0];
61     fVertZPos[1] = c.fVertZPos[1];
62   }
63
64   return *this;
65 }
66
67 //------------------------------
68 bool AliFemtoEventCutEstimators::Pass(const AliFemtoEvent* event){
69   // Pass events if they fall within the multiplicity and z-vertex
70   // position range. Fail otherwise
71   //  int mult =  event->NumberOfTracks();
72   
73   bool goodEvent = true;
74
75   printf("Cutting event with %i %i %i - %i %i %i %i\n", fUseMultEst1, fUseMultEst2, fUseMultEst3, fUseCentEst1, fUseCentEst2, fUseCentEst3, fUseCentEst4);
76   printf("  On %i %i %i - %f %f %f %f\n", event->MultiplicityEstimateTracklets(), event->MultiplicityEstimateITSTPC(), event->MultiplicityEstimateITSPure(),
77          event->CentralityV0(), event->CentralityFMD(), event->CentralitySPD1(), event->CentralityTrk());
78
79   if (fUseMultEst1) { goodEvent &= ((event->MultiplicityEstimateTracklets() >= fEventMultEst1[0]) &&
80                                     (event->MultiplicityEstimateTracklets() <= fEventMultEst1[1])); }
81   if (fUseMultEst2) { goodEvent &= ((event->MultiplicityEstimateITSTPC() >= fEventMultEst2[0]) &&
82                                     (event->MultiplicityEstimateITSTPC() <= fEventMultEst2[1])); }
83   if (fUseMultEst3) { goodEvent &= ((event->MultiplicityEstimateITSPure() >= fEventMultEst3[0]) &&
84                                     (event->MultiplicityEstimateITSPure() <= fEventMultEst3[1])); }
85
86   if (fUseCentEst1) { goodEvent &= ((event->CentralityV0() > fEventCentEst1[0]) &&
87                                     (event->CentralityV0() < fEventCentEst1[1])); }
88   if (fUseCentEst2) { goodEvent &= ((event->CentralityFMD() > fEventCentEst2[0]) &&
89                                     (event->CentralityFMD() < fEventCentEst2[1])); }
90   if (fUseCentEst3) { goodEvent &= ((event->CentralitySPD1() > fEventCentEst3[0]) &&
91                                     (event->CentralitySPD1() < fEventCentEst3[1])); }
92   if (fUseCentEst4) { goodEvent &= ((event->CentralityTrk() > fEventCentEst4[0]) &&
93                                     (event->CentralityTrk() < fEventCentEst4[1])); }
94   double vertexZPos = event->PrimVertPos().z();
95   //   cout << "AliFemtoEventCutEstimators:: mult:       " << fEventMult[0] << " < " << mult << " < " << fEventMult[1] << endl;
96   //   cout << "AliFemtoEventCutEstimators:: VertexZPos: " << fVertZPos[0] << " < " << vertexZPos << " < " << fVertZPos[1] << endl;
97   //   cout << "AliFemtoEventCutEstimators:: VertexZErr: " << event->PrimVertCov()[4] << endl;
98   goodEvent &=
99     ((vertexZPos > fVertZPos[0]) &&
100      (vertexZPos < fVertZPos[1]));
101   goodEvent ? fNEventsPassed++ : fNEventsFailed++ ;
102   //   cout << "AliFemtoEventCutEstimators:: return : " << goodEvent << endl;
103   //     (fAcceptBadVertex || (event->PrimVertCov()[4] > -1000.0)) &&
104   return (goodEvent);
105 }
106   //------------------------------
107 AliFemtoString AliFemtoEventCutEstimators::Report(){
108   // Prepare report
109   string stemp;
110   char ctemp[100];
111   snprintf(ctemp , 100, "\nMultiplicity:\t %d-%d",fEventMultEst2[0],fEventMultEst2[1]);
112   stemp = ctemp;
113   snprintf(ctemp , 100, "\nVertex Z-position:\t %E-%E",fVertZPos[0],fVertZPos[1]);
114   stemp += ctemp;
115   snprintf(ctemp , 100, "\nNumber of events which passed:\t%ld  Number which failed:\t%ld",fNEventsPassed,fNEventsFailed);
116   stemp += ctemp;
117   AliFemtoString returnThis = stemp;
118   return returnThis;
119 }