]>
Commit | Line | Data |
---|---|---|
76ce4b5b | 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 | } |