]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - STEER/AliRunTagCuts.cxx
Adding the posibility to set the participating detectors when running in AliHLTSystem.
[u/mrichter/AliRoot.git] / STEER / AliRunTagCuts.cxx
... / ...
CommitLineData
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
22class AliLog;
23class AliESD;
24
25#include "AliRunTag.h"
26#include "AliRunTagCuts.h"
27
28ClassImp(AliRunTagCuts)
29
30
31//___________________________________________________________________________
32AliRunTagCuts::AliRunTagCuts() :
33 TObject(),
34 fAliceRunId(-1),
35 fAliceRunIdFlag(kFALSE),
36 fAliceMagneticField(-1.),
37 fAliceMagneticFieldFlag(kFALSE),
38 fAliceDipoleField(-1.),
39 fAliceDipoleFieldFlag(kFALSE),
40 fAliceRunStartTimeMin(-1),
41 fAliceRunStartTimeMax(-1),
42 fAliceRunStartTimeFlag(kFALSE),
43 fAliceRunStopTimeMin(-1),
44 fAliceRunStopTimeMax(-1),
45 fAliceRunStopTimeFlag(kFALSE),
46 fAlirootVersion(""),
47 fAlirootVersionFlag(kFALSE),
48 fRootVersion(""),
49 fRootVersionFlag(kFALSE),
50 fGeant3Version(""),
51 fGeant3VersionFlag(kFALSE),
52 fLHCPeriod(""),
53 fLHCPeriodFlag(kFALSE),
54 fRecPass(""),
55 fRecPassFlag(kFALSE),
56 fProdName(""),
57 fProdNameFlag(kFALSE),
58 fAliceRunValidation(0),
59 fAliceRunValidationFlag(kFALSE),
60 fAliceRunQualities(""),
61 fAliceRunQualitiesFlag(kFALSE),
62 fAliceBeamEnergy(-1),
63 fAliceBeamEnergyFlag(kFALSE),
64 fAliceBeamType(""),
65 fAliceBeamTypeFlag(kFALSE),
66 fAliceCalibrationVersion(-1),
67 fAliceCalibrationVersionFlag(kFALSE),
68 fAliceDataType(-1),
69 fAliceDataTypeFlag(kFALSE),
70 fBeamTriggerRange(),
71 fBeamTriggerFlag(kFALSE),
72 fCollisionTriggerRange(),
73 fCollisionTriggerFlag(kFALSE),
74 fEmptyTriggerRange(),
75 fEmptyTriggerFlag(kFALSE),
76 fASideTriggerRange(),
77 fASideTriggerFlag(kFALSE),
78 fCSideTriggerRange(),
79 fCSideTriggerFlag(kFALSE),
80 fHMTriggerRange(),
81 fHMTriggerFlag(kFALSE),
82 fMuonTriggerRange(),
83 fMuonTriggerFlag(kFALSE),
84 fCollisionRateRange(),
85 fCollisionRateFlag(kFALSE),
86 fMeanVertexRange(),
87 fMeanVertexFlag(kFALSE),
88 fVertexQualityRange(),
89 fVertexQualityFlag(kFALSE)
90{
91 //Default constructor which calls the Reset method.
92}
93
94//___________________________________________________________________________
95AliRunTagCuts::~AliRunTagCuts() {
96 //Defaut destructor.
97}
98
99//___________________________________________________________________________
100void AliRunTagCuts::Reset() {
101 //Sets dummy values to every private member.
102 fAliceRunId = -1;
103 fAliceRunIdFlag = kFALSE;
104 fAliceMagneticField = -1.;
105 fAliceMagneticFieldFlag = kFALSE;
106 fAliceDipoleField = -1.;
107 fAliceDipoleFieldFlag = kFALSE;
108 fAliceRunStartTimeMin = -1;
109 fAliceRunStartTimeMax = -1;
110 fAliceRunStartTimeFlag = kFALSE;
111 fAliceRunStopTimeMin = -1;
112 fAliceRunStopTimeMax = -1;
113 fAliceRunStopTimeFlag = kFALSE;
114 fAlirootVersion = "";
115 fAlirootVersionFlag = kFALSE;
116 fRootVersion = "";
117 fRootVersionFlag = kFALSE;
118 fGeant3Version = "";
119 fGeant3VersionFlag = kFALSE;
120 fLHCPeriod = "";
121 fLHCPeriodFlag = kFALSE;
122 fRecPass = "";
123 fRecPassFlag = kFALSE;
124 fProdName = "";
125 fProdNameFlag = kFALSE;
126 fAliceRunValidation = 0;
127 fAliceRunValidationFlag = kFALSE;
128 fAliceRunQualities = "";
129 fAliceRunQualitiesFlag = kFALSE;
130 fAliceBeamEnergy = -1;
131 fAliceBeamEnergyFlag = kFALSE;
132 fAliceBeamType = "";
133 fAliceBeamTypeFlag = kFALSE;
134 fAliceCalibrationVersion = -1;
135 fAliceCalibrationVersionFlag = kFALSE;
136 fAliceDataType = -1;
137 fAliceDataTypeFlag = kFALSE;
138 fBeamTriggerRange[0] = 0;
139 fBeamTriggerRange[1] = 0;
140 fBeamTriggerFlag = kFALSE;
141 fCollisionTriggerRange[0] = 0;
142 fCollisionTriggerRange[1] = 0;
143 fCollisionTriggerFlag = kFALSE;
144 fEmptyTriggerRange[0] = 0;
145 fEmptyTriggerRange[1] = 0;
146 fEmptyTriggerFlag = kFALSE;
147 fASideTriggerRange[0] = 0;
148 fASideTriggerRange[1] = 0;
149 fASideTriggerFlag = kFALSE;
150 fCSideTriggerRange[0] = 0;
151 fCSideTriggerRange[1] = 0;
152 fCSideTriggerFlag = kFALSE;
153 fHMTriggerRange[0] = 0;
154 fHMTriggerRange[1] = 0;
155 fHMTriggerFlag = kFALSE;
156 fMuonTriggerRange[0] = 0;
157 fMuonTriggerRange[1] = 0;
158 fMuonTriggerFlag = kFALSE;
159 fCollisionRateRange[0] = 0;
160 fCollisionRateRange[1] = 0;
161 fCollisionRateFlag = kFALSE;
162 fMeanVertexRange[0] = 0;
163 fMeanVertexRange[1] = 0;
164 fMeanVertexFlag = kFALSE;
165 fVertexQualityRange[0] = 0;
166 fVertexQualityRange[1] = 0;
167 fVertexQualityFlag = kFALSE;
168}
169
170void AliRunTagCuts::AddRunQualityValue(Int_t qval)
171{
172 // Adds to the list of selected run qualities
173 fAliceRunQualities += qval;
174 fAliceRunQualities += " ";
175 fAliceRunQualitiesFlag = kTRUE;
176}
177
178//___________________________________________________________________________
179Bool_t AliRunTagCuts::IsAccepted(AliRunTag *RunTag) const {
180 //Returns true if the event is accepted otherwise false.
181 if(fAliceRunIdFlag)
182 if((RunTag->GetRunId() != fAliceRunId))
183 return kFALSE;
184 if(fAliceMagneticFieldFlag)
185 if((RunTag->GetMagneticField() != fAliceMagneticField))
186 return kFALSE;
187 if(fAliceDipoleFieldFlag)
188 if((RunTag->GetDipoleField() != fAliceDipoleField))
189 return kFALSE;
190 if(fAliceRunStartTimeFlag)
191 if((RunTag->GetRunStartTime() < fAliceRunStartTimeMin) || (RunTag->GetRunStartTime() > fAliceRunStartTimeMax))
192 return kFALSE;
193 if(fAliceRunStopTimeFlag)
194 if((RunTag->GetRunStopTime() < fAliceRunStopTimeMin) || (RunTag->GetRunStopTime() > fAliceRunStopTimeMax))
195 return kFALSE;
196 if(fAlirootVersionFlag)
197 if((RunTag->GetAlirootVersion() != fAlirootVersion))
198 return kFALSE;
199 if(fRootVersionFlag)
200 if((RunTag->GetRootVersion() != fRootVersion))
201 return kFALSE;
202 if(fGeant3VersionFlag)
203 if((RunTag->GetGeant3Version() != fGeant3Version))
204 return kFALSE;
205 if(fLHCPeriodFlag)
206 if((RunTag->GetLHCPeriod() != fLHCPeriod))
207 return kFALSE;
208 if(fRecPassFlag)
209 if((RunTag->GetReconstructionPass() != fRecPass))
210 return kFALSE;
211 if(fProdNameFlag)
212 if((RunTag->GetProductionName() != fProdName))
213 return kFALSE;
214 if(fAliceRunValidationFlag)
215 if(RunTag->GetRunValidation())
216 return kFALSE;
217 if (fAliceRunQualitiesFlag) {
218 TObjArray *tQualities = fAliceRunQualities.Tokenize(" ");
219 Bool_t tQual = kFALSE;
220
221 TString tRQual = "";
222 tRQual += RunTag->GetRunQuality();
223
224 for (int iqual=0; iqual<tQualities->GetEntries(); iqual++)
225 if (((TObjString *) tQualities->At(iqual))->GetString().Contains(tRQual))
226 tQual = kTRUE;
227 // if (EvTag->GetFiredTriggerClasses().Contains(((TObjString *) tClasses->At(iqual))->GetString()))
228
229 tQualities->Delete();
230 delete tQualities;
231
232 if (!tQual)
233 return kFALSE;
234 }
235 if(fAliceBeamEnergyFlag)
236 if(RunTag->GetBeamEnergy() != fAliceBeamEnergy)
237 return kFALSE;
238 if(fAliceBeamTypeFlag)
239 if(RunTag->GetBeamType() != fAliceBeamType)
240 return kFALSE;
241 if(fAliceCalibrationVersionFlag)
242 if(RunTag->GetBeamEnergy() != fAliceBeamEnergy)
243 return kFALSE;
244 if(fAliceDataTypeFlag)
245 if(RunTag->GetDataType() != fAliceDataType)
246 return kFALSE;
247 if (fBeamTriggerFlag)
248 if ((RunTag->GetBeamTriggers() < fBeamTriggerRange[0]) || (RunTag->GetBeamTriggers() > fBeamTriggerRange[1]))
249 return kFALSE;
250 if (fCollisionTriggerFlag)
251 if ((RunTag->GetCollisionTriggers() < fCollisionTriggerRange[0]) || (RunTag->GetCollisionTriggers() > fCollisionTriggerRange[1]))
252 return kFALSE;
253 if (fEmptyTriggerFlag)
254 if ((RunTag->GetEmptyTriggers() < fEmptyTriggerRange[0]) || (RunTag->GetEmptyTriggers() > fEmptyTriggerRange[1]))
255 return kFALSE;
256 if (fCSideTriggerFlag)
257 if ((RunTag->GetCSideTriggers() < fCSideTriggerRange[0]) || (RunTag->GetCSideTriggers() > fCSideTriggerRange[1]))
258 return kFALSE;
259 if (fASideTriggerFlag)
260 if ((RunTag->GetASideTriggers() < fASideTriggerRange[0]) || (RunTag->GetASideTriggers() > fASideTriggerRange[1]))
261 return kFALSE;
262 if (fHMTriggerFlag)
263 if ((RunTag->GetHMTriggers() < fHMTriggerRange[0]) || (RunTag->GetHMTriggers() > fHMTriggerRange[1]))
264 return kFALSE;
265 if (fMuonTriggerFlag)
266 if ((RunTag->GetMuonTriggers() < fMuonTriggerRange[0]) || (RunTag->GetMuonTriggers() > fMuonTriggerRange[1]))
267 return kFALSE;
268 if (fCollisionRateFlag)
269 if ((RunTag->GetCollisionRate() < fCollisionRateRange[0]) || (RunTag->GetCollisionRate() > fCollisionRateRange[1]))
270 return kFALSE;
271 if (fMeanVertexFlag)
272 if ((RunTag->GetMeanVertex() < fMeanVertexRange[0]) || (RunTag->GetMeanVertex() > fMeanVertexRange[1]))
273 return kFALSE;
274 if (fVertexQualityFlag)
275 if ((RunTag->GetVertexQuality() < fVertexQualityRange[0]) || (RunTag->GetVertexQuality() > fVertexQualityRange[1]))
276 return kFALSE;
277
278 return kTRUE;
279}