Line data Source code
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 "AliFileTag.h"
22 : #include "AliQA.h"
23 :
24 : class AliEventTag;
25 : //class AliDetectorTag;
26 :
27 :
28 : //___________________________________________________________________________
29 : class AliRunTag : public TObject {
30 : public:
31 : AliRunTag();
32 : virtual ~AliRunTag();
33 : AliRunTag(const AliRunTag& qa) ;
34 : AliRunTag& operator = (const AliRunTag& tag) ;
35 : Bool_t Add(const AliRunTag* tag) ;
36 : //____________________________________________________//
37 8 : void SetRunId(Int_t Pid) {fAliceRunId = Pid;}
38 8 : void SetMagneticField(Float_t Pmag) {fAliceMagneticField = Pmag;}
39 8 : void SetDipoleField(Float_t Pmag) {fAliceDipoleField = Pmag;}
40 8 : void SetRunStartTime(Int_t Pt0) {fAliceRunStartTime = Pt0;}
41 8 : void SetRunStopTime(Int_t Pt1) {fAliceRunStopTime = Pt1;}
42 4 : void SetAlirootVersion(TString v) {fAlirootVersion = v;}
43 4 : void SetRootVersion(TString v) {fRootVersion = v;}
44 4 : void SetGeant3Version(TString v) {fGeant3Version = v;}
45 4 : void SetLHCPeriod(TString v) {fLHCPeriod = v; }
46 4 : void SetReconstructionPass(TString v) {fRecPass = v; }
47 4 : void SetProductionName(TString v) {fProductionName = v; }
48 2 : void SetRunValidation(Bool_t val) {fAliceRunValidated = val; }
49 4 : void SetRunQuality(Int_t Pn) {fAliceRunGlobalQuality = Pn;}
50 8 : void SetBeamEnergy(Float_t PE) {fAliceBeamEnergy = PE;}
51 8 : void SetBeamType(TString Ptype) {fAliceBeamType = Ptype;}
52 4 : void SetCalibVersion(Int_t Pn) {fAliceCalibrationVersion = Pn;}
53 4 : void SetDataType(Int_t i) {fAliceDataType = i;}
54 : /* void SetNEvents(Int_t Pn) { fNumEvents = Pn; } */
55 4 : void SetBeamTriggers(ULong_t bt) { fBeamTriggers = bt; }
56 4 : void SetCollisionTriggers(ULong_t ct) { fCollisionTriggers = ct; }
57 4 : void SetEmptyTriggers(ULong_t et) {fEmptyTriggers = et; }
58 4 : void SetASideTriggers(ULong_t at) {fASideTriggers = at; }
59 4 : void SetCSideTriggers(ULong_t ct) {fCSideTriggers = ct; }
60 4 : void SetHMTriggers(ULong_t ht) {fHMTriggers = ht; }
61 4 : void SetMuonTriggers(ULong_t mt) {fMuonTriggers = mt; }
62 4 : void SetCollisionRate(Float_t rate) {fCollisionRate = rate; }
63 4 : void SetMeanVertex(Float_t mv) {fMeanVertex = mv; }
64 4 : void SetVertexQuality(Float_t vq) {fVertexQuality = vq; }
65 : void SetLHCTag(Float_t Plumin, TString type);
66 : void SetDetectorTag(UInt_t mask, UInt_t maskReco=0);
67 4 : void SetQA(const AliQA &qa) { fQA=qa; }
68 : void SetQAArray(ULong_t * qa, Int_t qalength) ;
69 : void SetEventSpecies(Bool_t * es, Int_t eslength) ;
70 : void AddEventTag(const AliEventTag &t);
71 : void Clear(const char * opt = "");
72 : void AddFileTag(AliFileTag *t);
73 :
74 8 : void SetActiveTriggerClasses(TString str) { fActiveTriggerClasses = str; }
75 :
76 : void CopyStandardContent(AliRunTag *oldtag);
77 : void UpdateFromRunTable(AliRunTag *tabtag);
78 :
79 : //____________________________________________________//
80 4 : Int_t GetRunId() const {return fAliceRunId;}
81 4 : Float_t GetMagneticField() const {return fAliceMagneticField;}
82 4 : Float_t GetDipoleField() const {return fAliceDipoleField;}
83 4 : Int_t GetRunStartTime() const {return fAliceRunStartTime;}
84 4 : Int_t GetRunStopTime() const {return fAliceRunStopTime;}
85 4 : const char* GetAlirootVersion() const {return fAlirootVersion.Data();}
86 4 : const char* GetRootVersion() const {return fRootVersion.Data();}
87 4 : const char* GetGeant3Version() const {return fGeant3Version.Data();}
88 4 : const char* GetLHCPeriod() const {return fLHCPeriod.Data();}
89 4 : const char* GetReconstructionPass() const {return fRecPass.Data();}
90 4 : const char* GetProductionName() const {return fProductionName.Data();}
91 4 : Bool_t GetRunValidation() const {return fAliceRunValidated;}
92 4 : Int_t GetRunQuality() const {return fAliceRunGlobalQuality;}
93 4 : Float_t GetBeamEnergy() const {return fAliceBeamEnergy;}
94 4 : const char *GetBeamType() const {return fAliceBeamType.Data();}
95 4 : Int_t GetCalibVersion() const {return fAliceCalibrationVersion;}
96 4 : Int_t GetDataType() const {return fAliceDataType;}
97 : Int_t GetNEvents() const;
98 4 : ULong_t GetBeamTriggers() const {return fBeamTriggers;}
99 4 : ULong_t GetCollisionTriggers() const {return fCollisionTriggers;}
100 4 : ULong_t GetEmptyTriggers() const {return fEmptyTriggers;}
101 4 : ULong_t GetASideTriggers() const {return fASideTriggers;}
102 4 : ULong_t GetCSideTriggers() const {return fCSideTriggers;}
103 4 : ULong_t GetHMTriggers() const {return fHMTriggers;}
104 4 : ULong_t GetMuonTriggers() const {return fMuonTriggers;}
105 4 : Float_t GetCollisionRate() const {return fCollisionRate;}
106 4 : Float_t GetMeanVertex() const {return fMeanVertex;}
107 4 : Float_t GetVertexQuality() const {return fVertexQuality;}
108 8 : AliLHCTag *GetLHCTag() {return &fLHCTag; }
109 8 : AliDetectorTag *GetDetectorTags() {return &fDetectorTag;}
110 : // const TClonesArray *GetEventTags() const {return &fEventTag;}
111 : const AliEventTag* GetEventTag(int evt) const;
112 : AliFileTag *GetFileTagForEvent(int evt);
113 24 : Int_t GetNFiles() const { return fFileTags.GetEntries(); }
114 20 : AliFileTag *GetFileTag(Int_t ifile) const {return (AliFileTag *) fFileTags.At(ifile);}
115 4 : const AliQA *GetQA() const {return &fQA;}
116 4 : ULong_t * GetQAArray() const {return fQAArray;}
117 4 : Int_t GetQALength() const { return fQALength ; }
118 4 : Bool_t * GetEventSpecies() const {return fEventSpecies;}
119 4 : Int_t GetESLength() const { return fESLength ; }
120 : Int_t GetFileId(const char *guid);
121 0 : Int_t GetNumFiles() const {return fNumFiles;}
122 4 : TString GetActiveTriggerClasses() const {return fActiveTriggerClasses; }
123 :
124 : //____________________________________________________//
125 : private:
126 : Int_t fAliceRunId; //the run id
127 : Float_t fAliceMagneticField; //value of the magnetic field
128 : Float_t fAliceDipoleField; //value of the magnetic field in dipole
129 : Int_t fAliceRunStartTime; //run start date
130 : Int_t fAliceRunStopTime; //run stop date
131 : TString fAlirootVersion; //aliroot version
132 : TString fRootVersion; //root version
133 : TString fGeant3Version; //geant3 version
134 : TString fLHCPeriod; //datataking period
135 : TString fRecPass; //Reconstruction pass number
136 : TString fProductionName; //production name
137 : Bool_t fAliceRunValidated; //validation script
138 : Int_t fAliceRunGlobalQuality; //validation script
139 : Float_t fAliceBeamEnergy; //beam energy cm
140 : TString fAliceBeamType; //run type (pp, AA, pA)
141 : Int_t fAliceCalibrationVersion; //calibration version
142 : Int_t fAliceDataType; //0: simulation -- 1: data
143 : /* Int_t fNumEvents; //number of events per file */
144 : Int_t fNumFiles; //number of files in the run
145 : ULong_t fBeamTriggers; //number of beam triggers in run (CBEAMB)
146 : ULong_t fCollisionTriggers; //number of collision triggers in run (CINT1-B)
147 : ULong_t fEmptyTriggers; //number of empty triggers in run (CINT1-E)
148 : ULong_t fASideTriggers; //number of A-side triggers in run (CINT1-A)
149 : ULong_t fCSideTriggers; //number of C-side triggers in run (CINT1-C)
150 : ULong_t fHMTriggers; //number of High-Mult triggers
151 : ULong_t fMuonTriggers; //number of Muon Triggers
152 : Float_t fCollisionRate; //Average collision rate
153 : Float_t fMeanVertex; //mean vertex position
154 : Float_t fVertexQuality; //vertex quality
155 : Int_t fNumDetectors; //number of detector configs per file
156 : // TClonesArray fEventTag; //array with all event tags
157 : // TClonesArray fFileTags; //array of file tags
158 : // AliFileTag **fFileTags; //array of file tags
159 : TObjArray fFileTags; //array of file tags
160 : AliDetectorTag fDetectorTag; //array with all the detector tags
161 : AliLHCTag fLHCTag; //LHC tag object
162 : TString fActiveTriggerClasses; //Active trigger classes for run
163 : AliQA fQA; //needed for backward compaibility
164 : Int_t fQALength; // Length of the fQA array
165 : ULong_t * fQAArray ; //[fQALength] QA objects's data
166 : Int_t fESLength; // Length of the Event Specie Length
167 : Bool_t * fEventSpecies; //[fESLength] EventSpecies in this run
168 :
169 :
170 196 : ClassDef(AliRunTag,9) //(ClassName, ClassVersion)
171 : };
172 : //___________________________________________________________________________
173 :
174 : #endif
|