ROOT logo
#ifndef ALIRUNTAGCUTS_H
#define ALIRUNTAGCUTS_H
/*  See cxx source for full Copyright notice */


/* $Id$ */

//-------------------------------------------------------------------------
//                       Class AliRunTagCuts
//              This is the class for the cuts in run tags
//
//    Origin: Panos Christakoglou, UOA-CERN, Panos.Christakoglou@cern.ch
//-------------------------------------------------------------------------

#include <TObject.h>

class AliRunTag;

//___________________________________________________________________________
class AliRunTagCuts : public TObject {
 public:
  AliRunTagCuts();
  ~AliRunTagCuts();
  void Reset();
  
 //____________________________________________________//
  void SetRunId(Int_t Pid) {fAliceRunId = Pid; fAliceRunIdFlag = kTRUE;}
  void SetMagneticField(Float_t Pmag) {fAliceMagneticField = Pmag; fAliceMagneticFieldFlag = kTRUE;}
  void SetDipoleField(Float_t Pmag) {fAliceDipoleField = Pmag; fAliceDipoleFieldFlag = kTRUE;}
  void SetRunStartTimeRange(Int_t t0, Int_t t1) {fAliceRunStartTimeMin = t0; fAliceRunStartTimeMax = t1; fAliceRunStartTimeFlag = kTRUE;}
  void SetRunStopTimeRange(Int_t t0, Int_t t1) {fAliceRunStopTimeMin = t0; fAliceRunStopTimeMax = t1; fAliceRunStartTimeFlag = kTRUE;}
  void SetAlirootVersion(TString v) {fAlirootVersion = "VO_ALICE@AliRoot::"; fAlirootVersion += v; fAlirootVersionFlag = kTRUE;}
  void SetRootVersion(TString v) {fRootVersion = "VO_ALICE@ROOT::"; fRootVersion += v; fRootVersionFlag = kTRUE;}
  void SetGeant3Version(TString v) {fGeant3Version = "VO_ALICE@GEANT3::"; fGeant3Version += v; fGeant3VersionFlag = kTRUE;}
  void SetLHCPeriod(TString v) {fLHCPeriod = v; fLHCPeriodFlag = kTRUE; }
  void SetReconstructionPass(TString v) {fRecPass = v; fRecPassFlag = kTRUE; }
  void SetProductionName(TString v) {fProdName = v; fProdNameFlag = kTRUE; }
  void SetRunValidation(Int_t Pn) {fAliceRunValidation = Pn; fAliceRunValidationFlag = kTRUE;}
  void AddRunQualityValue(Int_t qval);
  void SetBeamEnergy(Float_t PE) {fAliceBeamEnergy = PE; fAliceBeamTypeFlag = kTRUE;}
  void SetBeamType(TString Ptype) {fAliceBeamType = Ptype; fAliceCalibrationVersionFlag = kTRUE;}
  void SetCalibVersion(Int_t Pn) {fAliceCalibrationVersion = Pn; fAliceCalibrationVersionFlag = kTRUE;}
  void SetDataType(Int_t i) {fAliceDataType = i; fAliceDataTypeFlag = kTRUE;}
  void SetBeamTriggersRange(ULong_t tmin, ULong_t tmax) { fBeamTriggerRange[0] = tmin; fBeamTriggerRange[1] = tmax; fBeamTriggerFlag = kTRUE; }
  void SetCollisionTriggersRange(ULong_t tmin, ULong_t tmax) { fCollisionTriggerRange[0] = tmin; fCollisionTriggerRange[1] = tmax; fCollisionTriggerFlag = kTRUE; }
  void SetEmptyTriggersRange(ULong_t tmin, ULong_t tmax) { fEmptyTriggerRange[0] = tmin; fEmptyTriggerRange[1] = tmax; fEmptyTriggerFlag = kTRUE; }
  void SetASideTriggersRange(ULong_t tmin, ULong_t tmax) { fASideTriggerRange[0] = tmin; fASideTriggerRange[1] = tmax; fASideTriggerFlag = kTRUE; }
  void SetCSideTriggersRange(ULong_t tmin, ULong_t tmax) { fCSideTriggerRange[0] = tmin; fCSideTriggerRange[1] = tmax; fCSideTriggerFlag = kTRUE; }
  void SetHMTriggersRange(ULong_t tmin, ULong_t tmax) { fHMTriggerRange[0] = tmin; fHMTriggerRange[1] = tmax; fHMTriggerFlag = kTRUE; }
  void SetMuonTriggersRange(ULong_t tmin, ULong_t tmax) { fMuonTriggerRange[0] = tmin; fMuonTriggerRange[1] = tmax; fMuonTriggerFlag = kTRUE; }
  void SetCollisionRatesRange(ULong_t tmin, ULong_t tmax) { fCollisionRateRange[0] = tmin; fCollisionRateRange[1] = tmax; fCollisionRateFlag = kTRUE; }
  void SetMeanVertexsRange(ULong_t tmin, ULong_t tmax) { fMeanVertexRange[0] = tmin; fMeanVertexRange[1] = tmax; fMeanVertexFlag = kTRUE; }
  void SetVertexQualitysRange(ULong_t tmin, ULong_t tmax) { fVertexQualityRange[0] = tmin; fVertexQualityRange[1] = tmax; fVertexQualityFlag = kTRUE; }

  Bool_t IsAccepted(AliRunTag *RunTag) const;

  //____________________________________________________//
 private:
  Int_t   fAliceRunId;                  //the run id
  Bool_t  fAliceRunIdFlag;              //Shows whether this cut is used or not
  Float_t fAliceMagneticField;          //value of the magnetic field
  Bool_t  fAliceMagneticFieldFlag;      //Shows whether this cut is used or not
  Float_t fAliceDipoleField;            //value of the dipole field
  Bool_t  fAliceDipoleFieldFlag;        //Shows whether this cut is used or not
  Int_t   fAliceRunStartTimeMin;        //minimum run start date
  Int_t   fAliceRunStartTimeMax;        //maximum run start date
  Bool_t  fAliceRunStartTimeFlag;       //Shows whether this cut is used or not
  Int_t   fAliceRunStopTimeMin;         //minmum run stop date
  Int_t   fAliceRunStopTimeMax;         //maximum run stop date
  Bool_t  fAliceRunStopTimeFlag;        //Shows whether this cut is used or not
  TString fAlirootVersion;              //aliroot version
  Bool_t  fAlirootVersionFlag;          //Shows whether this cut is used or not
  TString fRootVersion;                 //root version
  Bool_t  fRootVersionFlag;             //Shows whether this cut is used or not
  TString fGeant3Version;               //geant3 version
  Bool_t  fGeant3VersionFlag;           //Shows whether this cut is used or not
  TString fLHCPeriod;                   //LHC period version
  Bool_t  fLHCPeriodFlag;               //Shows whether this cut is used or not
  TString fRecPass;                     //Reconstruction pass
  Bool_t  fRecPassFlag;                 //Shows whether this cut is used or not
  TString fProdName;                    //Production Name
  Bool_t  fProdNameFlag;                //Shows whether this cut is used or not
  Bool_t  fAliceRunValidation;          //validation script
  Bool_t  fAliceRunValidationFlag;      //Shows whether this cut is used or not
  TString fAliceRunQualities;           //selected qualities
  Bool_t  fAliceRunQualitiesFlag;       //Shows whether this cut is used or not
  Float_t fAliceBeamEnergy;             //beam energy cm
  Bool_t  fAliceBeamEnergyFlag;         //Shows whether this cut is used or not
  TString fAliceBeamType;               //run type (pp, AA, pA)
  Bool_t  fAliceBeamTypeFlag;           //Shows whether this cut is used or not
  Int_t   fAliceCalibrationVersion;     //calibration version  
  Bool_t  fAliceCalibrationVersionFlag; //Shows whether this cut is used or not
  Int_t   fAliceDataType;               //0: simulation -- 1: data  
  Bool_t  fAliceDataTypeFlag;           //Shows whether this cut is used or not
  ULong_t fBeamTriggerRange[2];         //Beam trigger maximum and minimum
  Bool_t  fBeamTriggerFlag;             //Shows whether this cut is used or not
  ULong_t fCollisionTriggerRange[2];    //Collision trigger maximum and minimum
  Bool_t  fCollisionTriggerFlag;        //Shows whether this cut is used or not
  ULong_t fEmptyTriggerRange[2];        //Empty trigger maximum and minimum
  Bool_t  fEmptyTriggerFlag;            //Shows whether this cut is used or not
  ULong_t fASideTriggerRange[2];        //ASide trigger maximum and minimum
  Bool_t  fASideTriggerFlag;            //Shows whether this cut is used or not
  ULong_t fCSideTriggerRange[2];        //CSide trigger maximum and minimum
  Bool_t  fCSideTriggerFlag;            //Shows whether this cut is used or not
  ULong_t fHMTriggerRange[2];           //High Multiplicity trigger maximum and minimum
  Bool_t  fHMTriggerFlag;               //Shows whether this cut is used or not
  ULong_t fMuonTriggerRange[2];         //Muon trigger maximum and minimum
  Bool_t  fMuonTriggerFlag;             //Shows whether this cut is used or not
  Float_t fCollisionRateRange[2];       //Collision rate range
  Bool_t  fCollisionRateFlag;           //Shows whether this cut is used or not
  Float_t fMeanVertexRange[2];          //Mean Vertex Postion
  Bool_t  fMeanVertexFlag;              //Shows whether this cut is used or not
  Float_t fVertexQualityRange[2];       //Mean Vertex quality
  Bool_t  fVertexQualityFlag;           //Shows whether this cut is used or not

  ClassDef(AliRunTagCuts, 2)
};

#endif
 AliRunTagCuts.h:1
 AliRunTagCuts.h:2
 AliRunTagCuts.h:3
 AliRunTagCuts.h:4
 AliRunTagCuts.h:5
 AliRunTagCuts.h:6
 AliRunTagCuts.h:7
 AliRunTagCuts.h:8
 AliRunTagCuts.h:9
 AliRunTagCuts.h:10
 AliRunTagCuts.h:11
 AliRunTagCuts.h:12
 AliRunTagCuts.h:13
 AliRunTagCuts.h:14
 AliRunTagCuts.h:15
 AliRunTagCuts.h:16
 AliRunTagCuts.h:17
 AliRunTagCuts.h:18
 AliRunTagCuts.h:19
 AliRunTagCuts.h:20
 AliRunTagCuts.h:21
 AliRunTagCuts.h:22
 AliRunTagCuts.h:23
 AliRunTagCuts.h:24
 AliRunTagCuts.h:25
 AliRunTagCuts.h:26
 AliRunTagCuts.h:27
 AliRunTagCuts.h:28
 AliRunTagCuts.h:29
 AliRunTagCuts.h:30
 AliRunTagCuts.h:31
 AliRunTagCuts.h:32
 AliRunTagCuts.h:33
 AliRunTagCuts.h:34
 AliRunTagCuts.h:35
 AliRunTagCuts.h:36
 AliRunTagCuts.h:37
 AliRunTagCuts.h:38
 AliRunTagCuts.h:39
 AliRunTagCuts.h:40
 AliRunTagCuts.h:41
 AliRunTagCuts.h:42
 AliRunTagCuts.h:43
 AliRunTagCuts.h:44
 AliRunTagCuts.h:45
 AliRunTagCuts.h:46
 AliRunTagCuts.h:47
 AliRunTagCuts.h:48
 AliRunTagCuts.h:49
 AliRunTagCuts.h:50
 AliRunTagCuts.h:51
 AliRunTagCuts.h:52
 AliRunTagCuts.h:53
 AliRunTagCuts.h:54
 AliRunTagCuts.h:55
 AliRunTagCuts.h:56
 AliRunTagCuts.h:57
 AliRunTagCuts.h:58
 AliRunTagCuts.h:59
 AliRunTagCuts.h:60
 AliRunTagCuts.h:61
 AliRunTagCuts.h:62
 AliRunTagCuts.h:63
 AliRunTagCuts.h:64
 AliRunTagCuts.h:65
 AliRunTagCuts.h:66
 AliRunTagCuts.h:67
 AliRunTagCuts.h:68
 AliRunTagCuts.h:69
 AliRunTagCuts.h:70
 AliRunTagCuts.h:71
 AliRunTagCuts.h:72
 AliRunTagCuts.h:73
 AliRunTagCuts.h:74
 AliRunTagCuts.h:75
 AliRunTagCuts.h:76
 AliRunTagCuts.h:77
 AliRunTagCuts.h:78
 AliRunTagCuts.h:79
 AliRunTagCuts.h:80
 AliRunTagCuts.h:81
 AliRunTagCuts.h:82
 AliRunTagCuts.h:83
 AliRunTagCuts.h:84
 AliRunTagCuts.h:85
 AliRunTagCuts.h:86
 AliRunTagCuts.h:87
 AliRunTagCuts.h:88
 AliRunTagCuts.h:89
 AliRunTagCuts.h:90
 AliRunTagCuts.h:91
 AliRunTagCuts.h:92
 AliRunTagCuts.h:93
 AliRunTagCuts.h:94
 AliRunTagCuts.h:95
 AliRunTagCuts.h:96
 AliRunTagCuts.h:97
 AliRunTagCuts.h:98
 AliRunTagCuts.h:99
 AliRunTagCuts.h:100
 AliRunTagCuts.h:101
 AliRunTagCuts.h:102
 AliRunTagCuts.h:103
 AliRunTagCuts.h:104
 AliRunTagCuts.h:105
 AliRunTagCuts.h:106
 AliRunTagCuts.h:107
 AliRunTagCuts.h:108
 AliRunTagCuts.h:109
 AliRunTagCuts.h:110
 AliRunTagCuts.h:111
 AliRunTagCuts.h:112
 AliRunTagCuts.h:113
 AliRunTagCuts.h:114
 AliRunTagCuts.h:115
 AliRunTagCuts.h:116
 AliRunTagCuts.h:117
 AliRunTagCuts.h:118
 AliRunTagCuts.h:119