]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliRunTagCuts.cxx
replacing fabs with TMath::Abs
[u/mrichter/AliRoot.git] / STEER / AliRunTagCuts.cxx
index 57d1f7e072dded86c27043d8cfbe58a22bf878a7..94d09d3998e81eda53d741dad1ea9e219c639df2 100644 (file)
@@ -29,9 +29,66 @@ ClassImp(AliRunTagCuts)
 
 
 //___________________________________________________________________________
-AliRunTagCuts::AliRunTagCuts() {
+AliRunTagCuts::AliRunTagCuts() :
+  TObject(),
+  fAliceRunId(-1),                  
+  fAliceRunIdFlag(kFALSE),              
+  fAliceMagneticField(-1.),          
+  fAliceMagneticFieldFlag(kFALSE),      
+  fAliceDipoleField(-1.),
+  fAliceDipoleFieldFlag(kFALSE),
+  fAliceRunStartTimeMin(-1),        
+  fAliceRunStartTimeMax(-1),        
+  fAliceRunStartTimeFlag(kFALSE),       
+  fAliceRunStopTimeMin(-1),         
+  fAliceRunStopTimeMax(-1),         
+  fAliceRunStopTimeFlag(kFALSE),        
+  fAlirootVersion(""),              
+  fAlirootVersionFlag(kFALSE),          
+  fRootVersion(""),                 
+  fRootVersionFlag(kFALSE),             
+  fGeant3Version(""),               
+  fGeant3VersionFlag(kFALSE),   
+  fLHCPeriod(""),
+  fLHCPeriodFlag(kFALSE),
+  fRecPass(""),
+  fRecPassFlag(kFALSE),
+  fProdName(""),
+  fProdNameFlag(kFALSE),
+  fAliceRunValidation(0),             
+  fAliceRunValidationFlag(kFALSE),         
+  fAliceRunQualities(""),
+  fAliceRunQualitiesFlag(kFALSE),
+  fAliceBeamEnergy(-1),             
+  fAliceBeamEnergyFlag(kFALSE),         
+  fAliceBeamType(""),               
+  fAliceBeamTypeFlag(kFALSE),           
+  fAliceCalibrationVersion(-1),    
+  fAliceCalibrationVersionFlag(kFALSE),
+  fAliceDataType(-1),                
+  fAliceDataTypeFlag(kFALSE),
+  fBeamTriggerRange(),
+  fBeamTriggerFlag(kFALSE),
+  fCollisionTriggerRange(),
+  fCollisionTriggerFlag(kFALSE),
+  fEmptyTriggerRange(),
+  fEmptyTriggerFlag(kFALSE),
+  fASideTriggerRange(),
+  fASideTriggerFlag(kFALSE),
+  fCSideTriggerRange(),
+  fCSideTriggerFlag(kFALSE),
+  fHMTriggerRange(),
+  fHMTriggerFlag(kFALSE),
+  fMuonTriggerRange(),
+  fMuonTriggerFlag(kFALSE),
+  fCollisionRateRange(),
+  fCollisionRateFlag(kFALSE),
+  fMeanVertexRange(),
+  fMeanVertexFlag(kFALSE),
+  fVertexQualityRange(),
+  fVertexQualityFlag(kFALSE)
+{
   //Default constructor which calls the Reset method.
-  Reset();
 }
 
 //___________________________________________________________________________
@@ -46,6 +103,8 @@ void AliRunTagCuts::Reset() {
   fAliceRunIdFlag = kFALSE;              
   fAliceMagneticField = -1.;          
   fAliceMagneticFieldFlag = kFALSE;      
+  fAliceDipoleField = -1.;
+  fAliceDipoleFieldFlag = kFALSE;
   fAliceRunStartTimeMin = -1;        
   fAliceRunStartTimeMax = -1;        
   fAliceRunStartTimeFlag = kFALSE;       
@@ -58,8 +117,16 @@ void AliRunTagCuts::Reset() {
   fRootVersionFlag = kFALSE;             
   fGeant3Version = "";               
   fGeant3VersionFlag = kFALSE;           
-  fAliceRunQuality = 0;             
-  fAliceRunQualityFlag = kFALSE;         
+  fLHCPeriod = "";
+  fLHCPeriodFlag = kFALSE;
+  fRecPass = "";
+  fRecPassFlag = kFALSE;
+  fProdName = "";
+  fProdNameFlag = kFALSE;
+  fAliceRunValidation = 0;             
+  fAliceRunValidationFlag = kFALSE;         
+  fAliceRunQualities = "";
+  fAliceRunQualitiesFlag = kFALSE;
   fAliceBeamEnergy = -1;             
   fAliceBeamEnergyFlag = kFALSE;         
   fAliceBeamType = "";               
@@ -68,6 +135,44 @@ void AliRunTagCuts::Reset() {
   fAliceCalibrationVersionFlag = kFALSE;
   fAliceDataType = -1;                
   fAliceDataTypeFlag = kFALSE;           
+  fBeamTriggerRange[0] = 0;
+  fBeamTriggerRange[1] = 0;
+  fBeamTriggerFlag = kFALSE;
+  fCollisionTriggerRange[0] = 0;
+  fCollisionTriggerRange[1] = 0;
+  fCollisionTriggerFlag = kFALSE;
+  fEmptyTriggerRange[0] = 0;
+  fEmptyTriggerRange[1] = 0;
+  fEmptyTriggerFlag = kFALSE;
+  fASideTriggerRange[0] = 0;
+  fASideTriggerRange[1] = 0;
+  fASideTriggerFlag = kFALSE;
+  fCSideTriggerRange[0] = 0;
+  fCSideTriggerRange[1] = 0;
+  fCSideTriggerFlag = kFALSE;
+  fHMTriggerRange[0] = 0;
+  fHMTriggerRange[1] = 0;
+  fHMTriggerFlag = kFALSE;
+  fMuonTriggerRange[0] = 0;
+  fMuonTriggerRange[1] = 0;
+  fMuonTriggerFlag = kFALSE;
+  fCollisionRateRange[0] = 0;
+  fCollisionRateRange[1] = 0;
+  fCollisionRateFlag = kFALSE;
+  fMeanVertexRange[0] = 0;
+  fMeanVertexRange[1] = 0;
+  fMeanVertexFlag = kFALSE;
+  fVertexQualityRange[0] = 0;
+  fVertexQualityRange[1] = 0;
+  fVertexQualityFlag = kFALSE;
+}
+
+void AliRunTagCuts::AddRunQualityValue(Int_t qval)
+{
+  // Adds to the list of selected run qualities
+  fAliceRunQualities += qval;
+  fAliceRunQualities += " ";
+  fAliceRunQualitiesFlag = kTRUE;
 }
 
 //___________________________________________________________________________
@@ -79,6 +184,9 @@ Bool_t AliRunTagCuts::IsAccepted(AliRunTag *RunTag) const {
   if(fAliceMagneticFieldFlag)
     if((RunTag->GetMagneticField() != fAliceMagneticField))
       return kFALSE;
+  if(fAliceDipoleFieldFlag)
+    if((RunTag->GetDipoleField() != fAliceDipoleField))
+      return kFALSE;
   if(fAliceRunStartTimeFlag)
     if((RunTag->GetRunStartTime() < fAliceRunStartTimeMin) || (RunTag->GetRunStartTime() > fAliceRunStartTimeMax))
       return kFALSE;
@@ -94,9 +202,36 @@ Bool_t AliRunTagCuts::IsAccepted(AliRunTag *RunTag) const {
   if(fGeant3VersionFlag)
     if((RunTag->GetGeant3Version() != fGeant3Version))
       return kFALSE;
-  if(fAliceRunQualityFlag)
-    if(RunTag->GetRunQuality())
+  if(fLHCPeriodFlag)
+    if((RunTag->GetLHCPeriod() != fLHCPeriod))
+      return kFALSE;
+  if(fRecPassFlag)
+    if((RunTag->GetReconstructionPass() != fRecPass))
+      return kFALSE;
+  if(fProdNameFlag)
+    if((RunTag->GetProductionName() != fProdName))
+      return kFALSE;
+  if(fAliceRunValidationFlag)
+    if(RunTag->GetRunValidation())
       return kFALSE;
+  if (fAliceRunQualitiesFlag) {
+    TObjArray *tQualities = fAliceRunQualities.Tokenize(" ");
+    Bool_t tQual = kFALSE;
+
+    TString tRQual = "";
+    tRQual += RunTag->GetRunQuality();
+
+    for (int iqual=0; iqual<tQualities->GetEntries(); iqual++)
+      if (((TObjString *) tQualities->At(iqual))->GetString().Contains(tRQual))
+       tQual = kTRUE;
+       //      if (EvTag->GetFiredTriggerClasses().Contains(((TObjString *) tClasses->At(iqual))->GetString()))
+  
+    tQualities->Delete();
+    delete tQualities;
+
+    if (!tQual)
+      return kFALSE;
+  }
   if(fAliceBeamEnergyFlag)
     if(RunTag->GetBeamEnergy() != fAliceBeamEnergy)
       return kFALSE;
@@ -109,6 +244,36 @@ Bool_t AliRunTagCuts::IsAccepted(AliRunTag *RunTag) const {
   if(fAliceDataTypeFlag)
     if(RunTag->GetDataType() != fAliceDataType)
       return kFALSE;
+  if (fBeamTriggerFlag)
+    if ((RunTag->GetBeamTriggers() < fBeamTriggerRange[0]) || (RunTag->GetBeamTriggers() > fBeamTriggerRange[1]))
+      return kFALSE;
+  if (fCollisionTriggerFlag)
+    if ((RunTag->GetCollisionTriggers() < fCollisionTriggerRange[0]) || (RunTag->GetCollisionTriggers() > fCollisionTriggerRange[1]))
+      return kFALSE;
+  if (fEmptyTriggerFlag)
+    if ((RunTag->GetEmptyTriggers() < fEmptyTriggerRange[0]) || (RunTag->GetEmptyTriggers() > fEmptyTriggerRange[1]))
+      return kFALSE;
+  if (fCSideTriggerFlag)
+    if ((RunTag->GetCSideTriggers() < fCSideTriggerRange[0]) || (RunTag->GetCSideTriggers() > fCSideTriggerRange[1]))
+      return kFALSE;
+  if (fASideTriggerFlag)
+    if ((RunTag->GetASideTriggers() < fASideTriggerRange[0]) || (RunTag->GetASideTriggers() > fASideTriggerRange[1]))
+      return kFALSE;
+  if (fHMTriggerFlag)
+    if ((RunTag->GetHMTriggers() < fHMTriggerRange[0]) || (RunTag->GetHMTriggers() > fHMTriggerRange[1]))
+      return kFALSE;
+  if (fMuonTriggerFlag)
+    if ((RunTag->GetMuonTriggers() < fMuonTriggerRange[0]) || (RunTag->GetMuonTriggers() > fMuonTriggerRange[1]))
+      return kFALSE;
+  if (fCollisionRateFlag)
+    if ((RunTag->GetCollisionRate() < fCollisionRateRange[0]) || (RunTag->GetCollisionRate() > fCollisionRateRange[1]))
+      return kFALSE;
+  if (fMeanVertexFlag)
+    if ((RunTag->GetMeanVertex() < fMeanVertexRange[0]) || (RunTag->GetMeanVertex() > fMeanVertexRange[1]))
+      return kFALSE;
+  if (fVertexQualityFlag)
+    if ((RunTag->GetVertexQuality() < fVertexQualityRange[0]) || (RunTag->GetVertexQuality() > fVertexQualityRange[1]))
+      return kFALSE;
+
   return kTRUE;
 }