]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliRunTagCuts.h
TOF PID: possibility to know the detector giving the event time measurement (F. Nofer...
[u/mrichter/AliRoot.git] / STEER / AliRunTagCuts.h
1 #ifndef ALIRUNTAGCUTS_H
2 #define ALIRUNTAGCUTS_H
3 /*  See cxx source for full Copyright notice */
4
5
6 /* $Id$ */
7
8 //-------------------------------------------------------------------------
9 //                       Class AliRunTagCuts
10 //              This is the class for the cuts in run tags
11 //
12 //    Origin: Panos Christakoglou, UOA-CERN, Panos.Christakoglou@cern.ch
13 //-------------------------------------------------------------------------
14
15 #include <TObject.h>
16
17 class AliRunTag;
18
19 //___________________________________________________________________________
20 class AliRunTagCuts : public TObject {
21  public:
22   AliRunTagCuts();
23   ~AliRunTagCuts();
24   void Reset();
25   
26  //____________________________________________________//
27   void SetRunId(Int_t Pid) {fAliceRunId = Pid; fAliceRunIdFlag = kTRUE;}
28   void SetMagneticField(Float_t Pmag) {fAliceMagneticField = Pmag; fAliceMagneticFieldFlag = kTRUE;}
29   void SetDipoleField(Float_t Pmag) {fAliceDipoleField = Pmag; fAliceDipoleFieldFlag = kTRUE;}
30   void SetRunStartTimeRange(Int_t t0, Int_t t1) {fAliceRunStartTimeMin = t0; fAliceRunStartTimeMax = t1; fAliceRunStartTimeFlag = kTRUE;}
31   void SetRunStopTimeRange(Int_t t0, Int_t t1) {fAliceRunStopTimeMin = t0; fAliceRunStopTimeMax = t1; fAliceRunStartTimeFlag = kTRUE;}
32   void SetAlirootVersion(TString v) {fAlirootVersion = "VO_ALICE@AliRoot::"; fAlirootVersion += v; fAlirootVersionFlag = kTRUE;}
33   void SetRootVersion(TString v) {fRootVersion = "VO_ALICE@ROOT::"; fRootVersion += v; fRootVersionFlag = kTRUE;}
34   void SetGeant3Version(TString v) {fGeant3Version = "VO_ALICE@GEANT3::"; fGeant3Version += v; fGeant3VersionFlag = kTRUE;}
35   void SetLHCPeriod(TString v) {fLHCPeriod = v; fLHCPeriodFlag = kTRUE; }
36   void SetReconstructionPass(TString v) {fRecPass = v; fRecPassFlag = kTRUE; }
37   void SetProductionName(TString v) {fProdName = v; fProdNameFlag = kTRUE; }
38   void SetRunValidation(Int_t Pn) {fAliceRunValidation = Pn; fAliceRunValidationFlag = kTRUE;}
39   void AddRunQualityValue(Int_t qval);
40   void SetBeamEnergy(Float_t PE) {fAliceBeamEnergy = PE; fAliceBeamTypeFlag = kTRUE;}
41   void SetBeamType(TString Ptype) {fAliceBeamType = Ptype; fAliceCalibrationVersionFlag = kTRUE;}
42   void SetCalibVersion(Int_t Pn) {fAliceCalibrationVersion = Pn; fAliceCalibrationVersionFlag = kTRUE;}
43   void SetDataType(Int_t i) {fAliceDataType = i; fAliceDataTypeFlag = kTRUE;}
44   void SetBeamTriggersRange(ULong_t tmin, ULong_t tmax) { fBeamTriggerRange[0] = tmin; fBeamTriggerRange[1] = tmax; fBeamTriggerFlag = kTRUE; }
45   void SetCollisionTriggersRange(ULong_t tmin, ULong_t tmax) { fCollisionTriggerRange[0] = tmin; fCollisionTriggerRange[1] = tmax; fCollisionTriggerFlag = kTRUE; }
46   void SetEmptyTriggersRange(ULong_t tmin, ULong_t tmax) { fEmptyTriggerRange[0] = tmin; fEmptyTriggerRange[1] = tmax; fEmptyTriggerFlag = kTRUE; }
47   void SetASideTriggersRange(ULong_t tmin, ULong_t tmax) { fASideTriggerRange[0] = tmin; fASideTriggerRange[1] = tmax; fASideTriggerFlag = kTRUE; }
48   void SetCSideTriggersRange(ULong_t tmin, ULong_t tmax) { fCSideTriggerRange[0] = tmin; fCSideTriggerRange[1] = tmax; fCSideTriggerFlag = kTRUE; }
49   void SetHMTriggersRange(ULong_t tmin, ULong_t tmax) { fHMTriggerRange[0] = tmin; fHMTriggerRange[1] = tmax; fHMTriggerFlag = kTRUE; }
50   void SetMuonTriggersRange(ULong_t tmin, ULong_t tmax) { fMuonTriggerRange[0] = tmin; fMuonTriggerRange[1] = tmax; fMuonTriggerFlag = kTRUE; }
51   void SetCollisionRatesRange(ULong_t tmin, ULong_t tmax) { fCollisionRateRange[0] = tmin; fCollisionRateRange[1] = tmax; fCollisionRateFlag = kTRUE; }
52   void SetMeanVertexsRange(ULong_t tmin, ULong_t tmax) { fMeanVertexRange[0] = tmin; fMeanVertexRange[1] = tmax; fMeanVertexFlag = kTRUE; }
53   void SetVertexQualitysRange(ULong_t tmin, ULong_t tmax) { fVertexQualityRange[0] = tmin; fVertexQualityRange[1] = tmax; fVertexQualityFlag = kTRUE; }
54
55   Bool_t IsAccepted(AliRunTag *RunTag) const;
56
57   //____________________________________________________//
58  private:
59   Int_t   fAliceRunId;                  //the run id
60   Bool_t  fAliceRunIdFlag;              //Shows whether this cut is used or not
61   Float_t fAliceMagneticField;          //value of the magnetic field
62   Bool_t  fAliceMagneticFieldFlag;      //Shows whether this cut is used or not
63   Float_t fAliceDipoleField;            //value of the dipole field
64   Bool_t  fAliceDipoleFieldFlag;        //Shows whether this cut is used or not
65   Int_t   fAliceRunStartTimeMin;        //minimum run start date
66   Int_t   fAliceRunStartTimeMax;        //maximum run start date
67   Bool_t  fAliceRunStartTimeFlag;       //Shows whether this cut is used or not
68   Int_t   fAliceRunStopTimeMin;         //minmum run stop date
69   Int_t   fAliceRunStopTimeMax;         //maximum run stop date
70   Bool_t  fAliceRunStopTimeFlag;        //Shows whether this cut is used or not
71   TString fAlirootVersion;              //aliroot version
72   Bool_t  fAlirootVersionFlag;          //Shows whether this cut is used or not
73   TString fRootVersion;                 //root version
74   Bool_t  fRootVersionFlag;             //Shows whether this cut is used or not
75   TString fGeant3Version;               //geant3 version
76   Bool_t  fGeant3VersionFlag;           //Shows whether this cut is used or not
77   TString fLHCPeriod;                   //LHC period version
78   Bool_t  fLHCPeriodFlag;               //Shows whether this cut is used or not
79   TString fRecPass;                     //Reconstruction pass
80   Bool_t  fRecPassFlag;                 //Shows whether this cut is used or not
81   TString fProdName;                    //Production Name
82   Bool_t  fProdNameFlag;                //Shows whether this cut is used or not
83   Bool_t  fAliceRunValidation;          //validation script
84   Bool_t  fAliceRunValidationFlag;      //Shows whether this cut is used or not
85   TString fAliceRunQualities;           //selected qualities
86   Bool_t  fAliceRunQualitiesFlag;       //Shows whether this cut is used or not
87   Float_t fAliceBeamEnergy;             //beam energy cm
88   Bool_t  fAliceBeamEnergyFlag;         //Shows whether this cut is used or not
89   TString fAliceBeamType;               //run type (pp, AA, pA)
90   Bool_t  fAliceBeamTypeFlag;           //Shows whether this cut is used or not
91   Int_t   fAliceCalibrationVersion;     //calibration version  
92   Bool_t  fAliceCalibrationVersionFlag; //Shows whether this cut is used or not
93   Int_t   fAliceDataType;               //0: simulation -- 1: data  
94   Bool_t  fAliceDataTypeFlag;           //Shows whether this cut is used or not
95   ULong_t fBeamTriggerRange[2];         //Beam trigger maximum and minimum
96   Bool_t  fBeamTriggerFlag;             //Shows whether this cut is used or not
97   ULong_t fCollisionTriggerRange[2];    //Collision trigger maximum and minimum
98   Bool_t  fCollisionTriggerFlag;        //Shows whether this cut is used or not
99   ULong_t fEmptyTriggerRange[2];        //Empty trigger maximum and minimum
100   Bool_t  fEmptyTriggerFlag;            //Shows whether this cut is used or not
101   ULong_t fASideTriggerRange[2];        //ASide trigger maximum and minimum
102   Bool_t  fASideTriggerFlag;            //Shows whether this cut is used or not
103   ULong_t fCSideTriggerRange[2];        //CSide trigger maximum and minimum
104   Bool_t  fCSideTriggerFlag;            //Shows whether this cut is used or not
105   ULong_t fHMTriggerRange[2];           //High Multiplicity trigger maximum and minimum
106   Bool_t  fHMTriggerFlag;               //Shows whether this cut is used or not
107   ULong_t fMuonTriggerRange[2];         //Muon trigger maximum and minimum
108   Bool_t  fMuonTriggerFlag;             //Shows whether this cut is used or not
109   Float_t fCollisionRateRange[2];       //Collision rate range
110   Bool_t  fCollisionRateFlag;           //Shows whether this cut is used or not
111   Float_t fMeanVertexRange[2];          //Mean Vertex Postion
112   Bool_t  fMeanVertexFlag;              //Shows whether this cut is used or not
113   Float_t fVertexQualityRange[2];       //Mean Vertex quality
114   Bool_t  fVertexQualityFlag;           //Shows whether this cut is used or not
115
116   ClassDef(AliRunTagCuts, 2)
117 };
118
119 #endif