1 ////////////////////////////////////////////////////////////////////////////////
3 // AliFemtoEventCutEstimators - the basic cut for events. //
4 // Only cuts on event multiplicity and z-vertex position //
6 ////////////////////////////////////////////////////////////////////////////////
8 #include "AliFemtoEventCutEstimators.h"
12 ClassImp(AliFemtoEventCutEstimators)
15 AliFemtoEventCutEstimators::AliFemtoEventCutEstimators() :
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;
45 //------------------------------
46 AliFemtoEventCutEstimators::~AliFemtoEventCutEstimators(){
49 //------------------------------
50 AliFemtoEventCutEstimators& AliFemtoEventCutEstimators::operator=(AliFemtoEventCutEstimators& 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];
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();
73 bool goodEvent = true;
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());
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])); }
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;
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)) &&
106 //------------------------------
107 AliFemtoString AliFemtoEventCutEstimators::Report(){
111 snprintf(ctemp , 100, "\nMultiplicity:\t %d-%d",fEventMultEst2[0],fEventMultEst2[1]);
113 snprintf(ctemp , 100, "\nVertex Z-position:\t %E-%E",fVertZPos[0],fVertZPos[1]);
115 snprintf(ctemp , 100, "\nNumber of events which passed:\t%ld Number which failed:\t%ld",fNEventsPassed,fNEventsFailed);
117 AliFemtoString returnThis = stemp;