Update the Tag framework to correspond to current datataking conditions
[u/mrichter/AliRoot.git] / STEER / AliRunTag.h
1 #ifndef ALIRUNTAG_H
2 #define ALIRUNTAG_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6
7 /* $Id$ */
8
9 //-------------------------------------------------------------------------
10 //                          Class AliRunTag
11 //   This is the class to deal with the tags for the run level
12 //
13 //    Origin: Panos Christakoglou, UOA-CERN, Panos.Christakoglou@cern.ch
14 //-------------------------------------------------------------------------
15
16 #include <TObject.h>
17 #include <TString.h>
18 #include <TClonesArray.h>
19 #include "AliLHCTag.h"
20 #include "AliDetectorTag.h"
21 #include "AliQA.h"
22
23 class AliEventTag;
24 //class AliDetectorTag;
25
26
27 //___________________________________________________________________________
28 class AliRunTag : public TObject {
29  public:
30   AliRunTag();
31   virtual ~AliRunTag();
32   AliRunTag(const AliRunTag& qa) ;   
33   AliRunTag& operator = (const AliRunTag& tag) ;
34   //____________________________________________________//
35   void SetRunId(Int_t Pid) {fAliceRunId = Pid;}
36   void SetMagneticField(Float_t Pmag) {fAliceMagneticField = Pmag;}
37   void SetDipoleField(Float_t Pmag) {fAliceDipoleField = Pmag;}
38   void SetRunStartTime(Int_t Pt0) {fAliceRunStartTime = Pt0;}
39   void SetRunStopTime(Int_t Pt1) {fAliceRunStopTime = Pt1;}
40   void SetAlirootVersion(TString v) {fAlirootVersion = v;}
41   void SetRootVersion(TString v) {fRootVersion = v;}
42   void SetGeant3Version(TString v) {fGeant3Version = v;}
43   void SetLHCPeriod(TString v) {fLHCPeriod = v; }
44   void SetReconstructionPass(TString v) {fRecPass = v; }
45   void SetProductionName(TString v) {fProductionName = v; }
46   void SetRunQuality(Int_t Pn) {fAliceRunQuality = Pn;}
47   void SetBeamEnergy(Float_t PE) {fAliceBeamEnergy = PE;}
48   void SetBeamType(TString Ptype) {fAliceBeamType = Ptype;}
49   void SetCalibVersion(Int_t Pn) {fAliceCalibrationVersion = Pn;}
50   void SetDataType(Int_t i) {fAliceDataType = i;}
51   void SetNEvents(Int_t Pn) { fNumEvents = Pn; }
52   void SetLHCTag(Float_t Plumin, TString type);
53   void SetDetectorTag(UInt_t mask);
54   void SetQA(const AliQA &qa) { fQA=qa; }       
55   void SetQAArray(ULong_t * qa, Int_t qalength) ; 
56   void SetEventSpecies(Bool_t * es, Int_t eslength) ;
57   void AddEventTag(const AliEventTag &t);
58   void Clear(const char * opt = "");
59
60   void CopyStandardContent(AliRunTag *oldtag);
61   
62   //____________________________________________________//
63   Int_t       GetRunId() const {return fAliceRunId;}
64   Float_t     GetMagneticField() const {return fAliceMagneticField;}
65   Float_t     GetDipoleField() const {return fAliceDipoleField;}
66   Int_t       GetRunStartTime() const {return fAliceRunStartTime;}
67   Int_t       GetRunStopTime() const {return fAliceRunStopTime;}
68   const char* GetAlirootVersion() const {return fAlirootVersion.Data();}
69   const char* GetRootVersion() const {return fRootVersion.Data();}
70   const char* GetGeant3Version() const {return fGeant3Version.Data();}
71   const char* GetLHCPeriod() const {return fLHCPeriod.Data();}
72   const char* GetReconstructionPass() const {return fRecPass.Data();}
73   const char* GetProductionName() const {return fProductionName.Data();}
74   Int_t       GetRunQuality() const {return fAliceRunQuality;}
75   Float_t     GetBeamEnergy() const {return fAliceBeamEnergy;}
76   const char *GetBeamType() const {return fAliceBeamType.Data();}
77   Int_t       GetCalibVersion() const {return fAliceCalibrationVersion;}
78   Int_t       GetDataType() const {return fAliceDataType;}
79   Int_t       GetNEvents() const {return fNumEvents;}
80   AliLHCTag  *GetLHCTag() {return &fLHCTag; } 
81   AliDetectorTag *GetDetectorTags() {return &fDetectorTag;}
82   const TClonesArray *GetEventTags() const {return &fEventTag;}
83   const AliQA *GetQA() const {return &fQA;}
84   ULong_t *  GetQAArray() const {return fQAArray;}      
85   Int_t      GetQALength() const { return fQALength ; }
86   Bool_t *   GetEventSpecies() const {return fEventSpecies;}    
87   Int_t      GetESLength() const { return fESLength ; }
88   
89   //____________________________________________________//
90  private:
91   Int_t        fAliceRunId;              //the run id
92   Float_t      fAliceMagneticField;      //value of the magnetic field
93   Float_t      fAliceDipoleField;        //value of the magnetic field in dipole
94   Int_t        fAliceRunStartTime;       //run start date
95   Int_t        fAliceRunStopTime;        //run stop date
96   TString      fAlirootVersion;          //aliroot version
97   TString      fRootVersion;             //root version
98   TString      fGeant3Version;           //geant3 version
99   TString      fLHCPeriod;               //datataking period
100   TString      fRecPass;                 //Reconstruction pass number
101   TString      fProductionName;          //production name
102   Bool_t       fAliceRunQuality;         //validation script
103   Float_t      fAliceBeamEnergy;         //beam energy cm
104   TString      fAliceBeamType;           //run type (pp, AA, pA)
105   Int_t        fAliceCalibrationVersion; //calibration version  
106   Int_t        fAliceDataType;           //0: simulation -- 1: data  
107   Int_t        fNumEvents;               //number of events per file
108   Int_t        fNumDetectors;            //number of detector configs per file
109   TClonesArray fEventTag;                //array with all event tags
110   AliDetectorTag fDetectorTag;           //array with all the detector tags
111   AliLHCTag    fLHCTag;                  //LHC tag object
112   AliQA        fQA;                      //needed for backward compaibility
113   Int_t        fQALength;                // Length of the fQA array  
114   ULong_t *    fQAArray ;                //[fQALength] QA objects's data        
115   Int_t        fESLength;                // Length of the Event Specie Length
116   Bool_t *     fEventSpecies;           //[fESLength] EventSpecies in this run  
117   
118   ClassDef(AliRunTag,7)  //(ClassName, ClassVersion)
119 };
120 //___________________________________________________________________________
121
122 #endif