Line data Source code
1 : /**************************************************************************
2 : * Author: Panos Christakoglou. *
3 : * Contributors are mentioned in the code where appropriate. *
4 : * *
5 : * Permission to use, copy, modify and distribute this software and its *
6 : * documentation strictly for non-commercial purposes is hereby granted *
7 : * without fee, provided that the above copyright notice appears in all *
8 : * copies and that both the copyright notice and this permission notice *
9 : * appear in the supporting documentation. The authors make no claims *
10 : * about the suitability of this software for any purpose. It is *
11 : * provided "as is" without express or implied warranty. *
12 : **************************************************************************/
13 :
14 : /* $Id$ */
15 :
16 : //-----------------------------------------------------------------
17 : // AliRunTagCuts class
18 : // This is the class to deal with the run tag level cuts
19 : // Origin: Panos Christakoglou, UOA-CERN, Panos.Christakoglou@cern.ch
20 : //-----------------------------------------------------------------
21 :
22 : class AliLog;
23 : class AliESD;
24 :
25 : #include "AliRunTag.h"
26 : #include "AliRunTagCuts.h"
27 :
28 176 : ClassImp(AliRunTagCuts)
29 :
30 :
31 : //___________________________________________________________________________
32 : AliRunTagCuts::AliRunTagCuts() :
33 0 : TObject(),
34 0 : fAliceRunId(-1),
35 0 : fAliceRunIdFlag(kFALSE),
36 0 : fAliceMagneticField(-1.),
37 0 : fAliceMagneticFieldFlag(kFALSE),
38 0 : fAliceDipoleField(-1.),
39 0 : fAliceDipoleFieldFlag(kFALSE),
40 0 : fAliceRunStartTimeMin(-1),
41 0 : fAliceRunStartTimeMax(-1),
42 0 : fAliceRunStartTimeFlag(kFALSE),
43 0 : fAliceRunStopTimeMin(-1),
44 0 : fAliceRunStopTimeMax(-1),
45 0 : fAliceRunStopTimeFlag(kFALSE),
46 0 : fAlirootVersion(""),
47 0 : fAlirootVersionFlag(kFALSE),
48 0 : fRootVersion(""),
49 0 : fRootVersionFlag(kFALSE),
50 0 : fGeant3Version(""),
51 0 : fGeant3VersionFlag(kFALSE),
52 0 : fLHCPeriod(""),
53 0 : fLHCPeriodFlag(kFALSE),
54 0 : fRecPass(""),
55 0 : fRecPassFlag(kFALSE),
56 0 : fProdName(""),
57 0 : fProdNameFlag(kFALSE),
58 0 : fAliceRunValidation(0),
59 0 : fAliceRunValidationFlag(kFALSE),
60 0 : fAliceRunQualities(""),
61 0 : fAliceRunQualitiesFlag(kFALSE),
62 0 : fAliceBeamEnergy(-1),
63 0 : fAliceBeamEnergyFlag(kFALSE),
64 0 : fAliceBeamType(""),
65 0 : fAliceBeamTypeFlag(kFALSE),
66 0 : fAliceCalibrationVersion(-1),
67 0 : fAliceCalibrationVersionFlag(kFALSE),
68 0 : fAliceDataType(-1),
69 0 : fAliceDataTypeFlag(kFALSE),
70 0 : fBeamTriggerRange(),
71 0 : fBeamTriggerFlag(kFALSE),
72 0 : fCollisionTriggerRange(),
73 0 : fCollisionTriggerFlag(kFALSE),
74 0 : fEmptyTriggerRange(),
75 0 : fEmptyTriggerFlag(kFALSE),
76 0 : fASideTriggerRange(),
77 0 : fASideTriggerFlag(kFALSE),
78 0 : fCSideTriggerRange(),
79 0 : fCSideTriggerFlag(kFALSE),
80 0 : fHMTriggerRange(),
81 0 : fHMTriggerFlag(kFALSE),
82 0 : fMuonTriggerRange(),
83 0 : fMuonTriggerFlag(kFALSE),
84 0 : fCollisionRateRange(),
85 0 : fCollisionRateFlag(kFALSE),
86 0 : fMeanVertexRange(),
87 0 : fMeanVertexFlag(kFALSE),
88 0 : fVertexQualityRange(),
89 0 : fVertexQualityFlag(kFALSE)
90 0 : {
91 : //Default constructor which calls the Reset method.
92 0 : }
93 :
94 : //___________________________________________________________________________
95 0 : AliRunTagCuts::~AliRunTagCuts() {
96 : //Defaut destructor.
97 0 : }
98 :
99 : //___________________________________________________________________________
100 : void AliRunTagCuts::Reset() {
101 : //Sets dummy values to every private member.
102 0 : fAliceRunId = -1;
103 0 : fAliceRunIdFlag = kFALSE;
104 0 : fAliceMagneticField = -1.;
105 0 : fAliceMagneticFieldFlag = kFALSE;
106 0 : fAliceDipoleField = -1.;
107 0 : fAliceDipoleFieldFlag = kFALSE;
108 0 : fAliceRunStartTimeMin = -1;
109 0 : fAliceRunStartTimeMax = -1;
110 0 : fAliceRunStartTimeFlag = kFALSE;
111 0 : fAliceRunStopTimeMin = -1;
112 0 : fAliceRunStopTimeMax = -1;
113 0 : fAliceRunStopTimeFlag = kFALSE;
114 0 : fAlirootVersion = "";
115 0 : fAlirootVersionFlag = kFALSE;
116 0 : fRootVersion = "";
117 0 : fRootVersionFlag = kFALSE;
118 0 : fGeant3Version = "";
119 0 : fGeant3VersionFlag = kFALSE;
120 0 : fLHCPeriod = "";
121 0 : fLHCPeriodFlag = kFALSE;
122 0 : fRecPass = "";
123 0 : fRecPassFlag = kFALSE;
124 0 : fProdName = "";
125 0 : fProdNameFlag = kFALSE;
126 0 : fAliceRunValidation = 0;
127 0 : fAliceRunValidationFlag = kFALSE;
128 0 : fAliceRunQualities = "";
129 0 : fAliceRunQualitiesFlag = kFALSE;
130 0 : fAliceBeamEnergy = -1;
131 0 : fAliceBeamEnergyFlag = kFALSE;
132 0 : fAliceBeamType = "";
133 0 : fAliceBeamTypeFlag = kFALSE;
134 0 : fAliceCalibrationVersion = -1;
135 0 : fAliceCalibrationVersionFlag = kFALSE;
136 0 : fAliceDataType = -1;
137 0 : fAliceDataTypeFlag = kFALSE;
138 0 : fBeamTriggerRange[0] = 0;
139 0 : fBeamTriggerRange[1] = 0;
140 0 : fBeamTriggerFlag = kFALSE;
141 0 : fCollisionTriggerRange[0] = 0;
142 0 : fCollisionTriggerRange[1] = 0;
143 0 : fCollisionTriggerFlag = kFALSE;
144 0 : fEmptyTriggerRange[0] = 0;
145 0 : fEmptyTriggerRange[1] = 0;
146 0 : fEmptyTriggerFlag = kFALSE;
147 0 : fASideTriggerRange[0] = 0;
148 0 : fASideTriggerRange[1] = 0;
149 0 : fASideTriggerFlag = kFALSE;
150 0 : fCSideTriggerRange[0] = 0;
151 0 : fCSideTriggerRange[1] = 0;
152 0 : fCSideTriggerFlag = kFALSE;
153 0 : fHMTriggerRange[0] = 0;
154 0 : fHMTriggerRange[1] = 0;
155 0 : fHMTriggerFlag = kFALSE;
156 0 : fMuonTriggerRange[0] = 0;
157 0 : fMuonTriggerRange[1] = 0;
158 0 : fMuonTriggerFlag = kFALSE;
159 0 : fCollisionRateRange[0] = 0;
160 0 : fCollisionRateRange[1] = 0;
161 0 : fCollisionRateFlag = kFALSE;
162 0 : fMeanVertexRange[0] = 0;
163 0 : fMeanVertexRange[1] = 0;
164 0 : fMeanVertexFlag = kFALSE;
165 0 : fVertexQualityRange[0] = 0;
166 0 : fVertexQualityRange[1] = 0;
167 0 : fVertexQualityFlag = kFALSE;
168 0 : }
169 :
170 : void AliRunTagCuts::AddRunQualityValue(Int_t qval)
171 : {
172 : // Adds to the list of selected run qualities
173 0 : fAliceRunQualities += qval;
174 0 : fAliceRunQualities += " ";
175 0 : fAliceRunQualitiesFlag = kTRUE;
176 0 : }
177 :
178 : //___________________________________________________________________________
179 : Bool_t AliRunTagCuts::IsAccepted(AliRunTag *RunTag) const {
180 : //Returns true if the event is accepted otherwise false.
181 0 : if(fAliceRunIdFlag)
182 0 : if((RunTag->GetRunId() != fAliceRunId))
183 0 : return kFALSE;
184 0 : if(fAliceMagneticFieldFlag)
185 0 : if((RunTag->GetMagneticField() != fAliceMagneticField))
186 0 : return kFALSE;
187 0 : if(fAliceDipoleFieldFlag)
188 0 : if((RunTag->GetDipoleField() != fAliceDipoleField))
189 0 : return kFALSE;
190 0 : if(fAliceRunStartTimeFlag)
191 0 : if((RunTag->GetRunStartTime() < fAliceRunStartTimeMin) || (RunTag->GetRunStartTime() > fAliceRunStartTimeMax))
192 0 : return kFALSE;
193 0 : if(fAliceRunStopTimeFlag)
194 0 : if((RunTag->GetRunStopTime() < fAliceRunStopTimeMin) || (RunTag->GetRunStopTime() > fAliceRunStopTimeMax))
195 0 : return kFALSE;
196 0 : if(fAlirootVersionFlag)
197 0 : if((RunTag->GetAlirootVersion() != fAlirootVersion))
198 0 : return kFALSE;
199 0 : if(fRootVersionFlag)
200 0 : if((RunTag->GetRootVersion() != fRootVersion))
201 0 : return kFALSE;
202 0 : if(fGeant3VersionFlag)
203 0 : if((RunTag->GetGeant3Version() != fGeant3Version))
204 0 : return kFALSE;
205 0 : if(fLHCPeriodFlag)
206 0 : if((RunTag->GetLHCPeriod() != fLHCPeriod))
207 0 : return kFALSE;
208 0 : if(fRecPassFlag)
209 0 : if((RunTag->GetReconstructionPass() != fRecPass))
210 0 : return kFALSE;
211 0 : if(fProdNameFlag)
212 0 : if((RunTag->GetProductionName() != fProdName))
213 0 : return kFALSE;
214 0 : if(fAliceRunValidationFlag)
215 0 : if(RunTag->GetRunValidation())
216 0 : return kFALSE;
217 0 : if (fAliceRunQualitiesFlag) {
218 0 : TObjArray *tQualities = fAliceRunQualities.Tokenize(" ");
219 : Bool_t tQual = kFALSE;
220 :
221 0 : TString tRQual = "";
222 0 : tRQual += RunTag->GetRunQuality();
223 :
224 0 : for (int iqual=0; iqual<tQualities->GetEntries(); iqual++)
225 0 : if (((TObjString *) tQualities->At(iqual))->GetString().Contains(tRQual))
226 0 : tQual = kTRUE;
227 : // if (EvTag->GetFiredTriggerClasses().Contains(((TObjString *) tClasses->At(iqual))->GetString()))
228 :
229 0 : tQualities->Delete();
230 0 : delete tQualities;
231 :
232 0 : if (!tQual)
233 0 : return kFALSE;
234 0 : }
235 0 : if(fAliceBeamEnergyFlag)
236 0 : if(RunTag->GetBeamEnergy() != fAliceBeamEnergy)
237 0 : return kFALSE;
238 0 : if(fAliceBeamTypeFlag)
239 0 : if(RunTag->GetBeamType() != fAliceBeamType)
240 0 : return kFALSE;
241 0 : if(fAliceCalibrationVersionFlag)
242 0 : if(RunTag->GetBeamEnergy() != fAliceBeamEnergy)
243 0 : return kFALSE;
244 0 : if(fAliceDataTypeFlag)
245 0 : if(RunTag->GetDataType() != fAliceDataType)
246 0 : return kFALSE;
247 0 : if (fBeamTriggerFlag)
248 0 : if ((RunTag->GetBeamTriggers() < fBeamTriggerRange[0]) || (RunTag->GetBeamTriggers() > fBeamTriggerRange[1]))
249 0 : return kFALSE;
250 0 : if (fCollisionTriggerFlag)
251 0 : if ((RunTag->GetCollisionTriggers() < fCollisionTriggerRange[0]) || (RunTag->GetCollisionTriggers() > fCollisionTriggerRange[1]))
252 0 : return kFALSE;
253 0 : if (fEmptyTriggerFlag)
254 0 : if ((RunTag->GetEmptyTriggers() < fEmptyTriggerRange[0]) || (RunTag->GetEmptyTriggers() > fEmptyTriggerRange[1]))
255 0 : return kFALSE;
256 0 : if (fCSideTriggerFlag)
257 0 : if ((RunTag->GetCSideTriggers() < fCSideTriggerRange[0]) || (RunTag->GetCSideTriggers() > fCSideTriggerRange[1]))
258 0 : return kFALSE;
259 0 : if (fASideTriggerFlag)
260 0 : if ((RunTag->GetASideTriggers() < fASideTriggerRange[0]) || (RunTag->GetASideTriggers() > fASideTriggerRange[1]))
261 0 : return kFALSE;
262 0 : if (fHMTriggerFlag)
263 0 : if ((RunTag->GetHMTriggers() < fHMTriggerRange[0]) || (RunTag->GetHMTriggers() > fHMTriggerRange[1]))
264 0 : return kFALSE;
265 0 : if (fMuonTriggerFlag)
266 0 : if ((RunTag->GetMuonTriggers() < fMuonTriggerRange[0]) || (RunTag->GetMuonTriggers() > fMuonTriggerRange[1]))
267 0 : return kFALSE;
268 0 : if (fCollisionRateFlag)
269 0 : if ((RunTag->GetCollisionRate() < fCollisionRateRange[0]) || (RunTag->GetCollisionRate() > fCollisionRateRange[1]))
270 0 : return kFALSE;
271 0 : if (fMeanVertexFlag)
272 0 : if ((RunTag->GetMeanVertex() < fMeanVertexRange[0]) || (RunTag->GetMeanVertex() > fMeanVertexRange[1]))
273 0 : return kFALSE;
274 0 : if (fVertexQualityFlag)
275 0 : if ((RunTag->GetVertexQuality() < fVertexQualityRange[0]) || (RunTag->GetVertexQuality() > fVertexQualityRange[1]))
276 0 : return kFALSE;
277 :
278 0 : return kTRUE;
279 0 : }
|