AliRoot Core  3dc7879 (3dc7879)
AliVEvent.h
Go to the documentation of this file.
1 // -*- mode: C++ -*-
2 #ifndef ALIVEVENT_H
3 #define ALIVEVENT_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice */
6 
7 
8 /* $Id$ */
9 
10 //-------------------------------------------------------------------------
11 // Class AliVEvent
12 //
13 // Origin: Markus Oldenburg, CERN, Markus.Oldenburg@cern.ch
14 //-------------------------------------------------------------------------
15 
16 #include <TObject.h>
17 #include <TTree.h>
18 #include <TGeoMatrix.h>
19 #include "AliVHeader.h"
20 #include "AliVParticle.h"
21 #include "AliVVertex.h"
22 #include "AliVCluster.h"
23 #include "AliVCaloCells.h"
24 #include "AliVCaloTrigger.h"
25 #include "TRefArray.h"
26 #include "AliTOFHeader.h"
27 #include "AliVTrdTrack.h"
28 #include "AliVMultiplicity.h"
29 class AliVfriendEvent;
30 class AliCentrality;
31 class AliEventplane;
32 class AliVVZERO;
33 class AliVZDC;
34 class AliVMFT; // AU
35 class AliESDkink;
36 class AliESDv0;
37 class AliESDVertex;
38 class AliESDVZERO;
39 class AliMultiplicity;
40 class AliVTrack;
41 class AliVAD;
42 
43 class AliVEvent : public TObject {
44 
45 public:
48  kMB = BIT( 0), // Minimum bias trigger in PbPb 2010-11
49  kINT1 = BIT( 0), // V0A | V0C | SPD minimum bias trigger
50  kINT7 = BIT( 1), // V0AND minimum bias trigger
51  kMUON = BIT( 2), // Single muon trigger in pp2010-11, INT1 suite
52  kHighMult = BIT( 3), // High-multiplicity SPD trigger
53  kHighMultSPD = BIT( 3), // High-multiplicity SPD trigger
54  kEMC1 = BIT( 4), // EMCAL trigger in pp2011, INT1 suite
55  kCINT5 = BIT( 5), // V0OR minimum bias trigger
56  kINT5 = BIT( 5), // V0OR minimum bias trigger
57  kCMUS5 = BIT( 6), // Single muon trigger, INT5 suite
58  kMUSPB = BIT( 6), // Single muon trigger in PbPb 2011
59  kINT7inMUON = BIT( 6), // INT7 in MUON or MUFAST cluster
60  kMuonSingleHighPt7 = BIT( 7), // Single muon high-pt, INT7 suite
61  kMUSH7 = BIT( 7), // Single muon high-pt, INT7 suite
62  kMUSHPB = BIT( 7), // Single muon high-pt in PbPb 2011
63  kMuonLikeLowPt7 = BIT( 8), // Like-sign dimuon low-pt, INT7 suite
64  kMUL7 = BIT( 8), // Like-sign dimuon low-pt, INT7 suite
65  kMuonLikePB = BIT( 8), // Like-sign dimuon low-pt in PbPb 2011
66  kMuonUnlikeLowPt7 = BIT( 9), // Unlike-sign dimuon low-pt, INT7 suite
67  kMUU7 = BIT( 9), // Unlike-sign dimuon low-pt, INT7 suite
68  kMuonUnlikePB = BIT( 9), // Unlike-sign dimuon low-pt in PbPb 2011
69  kEMC7 = BIT(10), // EMCAL/DCAL L0 trigger, INT7 suite
70  kEMC8 = BIT(10), // EMCAL/DCAL L0 trigger, INT8 suite
71  kMUS7 = BIT(11), // Single muon low-pt, INT7 suite
72  kMuonSingleLowPt7 = BIT(11), // Single muon low-pt, INT7 suite
73  kPHI1 = BIT(12), // PHOS L0 trigger in pp2011, INT1 suite
74  kPHI7 = BIT(13), // PHOS trigger, INT7 suite
75  kPHI8 = BIT(13), // PHOS trigger, INT8 suite
76  kPHOSPb = BIT(13), // PHOS trigger in PbPb 2011
77  kEMCEJE = BIT(14), // EMCAL/DCAL L1 jet trigger
78  kEMCEGA = BIT(15), // EMCAL/DCAL L1 gamma trigger
79  kHighMultV0 = BIT(16), // High-multiplicity V0 trigger
80  kCentral = BIT(16), // Central trigger in PbPb 2011
81  kSemiCentral = BIT(17), // Semicentral trigger in PbPb 2011
82  kDG = BIT(18), // Double gap diffractive
83  kDG5 = BIT(18), // Double gap diffractive
84  kZED = BIT(19), // ZDC electromagnetic dissociation
85  kSPI7 = BIT(20), // Power interaction trigger
86  kSPI = BIT(20), // Power interaction trigger
87  kINT8 = BIT(21), // 0TVX trigger
88  kMuonSingleLowPt8 = BIT(22), // Single muon low-pt, INT8 suite
89  kMuonSingleHighPt8 = BIT(23), // Single muon high-pt, INT8 suite
90  kMuonLikeLowPt8 = BIT(24), // Like-sign dimuon low-pt, INT8 suite
91  kMuonUnlikeLowPt8 = BIT(25), // Unlike-sign dimuon low-pt, INT8 suite
92  kMuonUnlikeLowPt0 = BIT(26), // Unlike-sign dimuon low-pt, no additional L0 requirement
93  kUserDefined = BIT(27), // Set when custom trigger classes are set in AliPhysicsSelection
94  kTRD = BIT(28), // TRD trigger
95  kMuonCalo = BIT(29), // Muon-calo triggers
96  kCaloOnly = BIT(29), // MB, EMCAL and PHOS triggers in CALO or CALOFAST cluster
97  // Bits 30 and above are reserved for FLAGS
98  kFastOnly = BIT(30), // The fast cluster fired. This bit is set in to addition another trigger bit, e.g. kMB
99  kAny = 0xffffffff, // to accept any defined trigger
100  kAnyINT = kMB | kINT7 | kINT5 | kINT8 | kSPI7 // to accept any interaction (aka minimum bias) trigger
101  };
102 
103  AliVEvent() { }
104  virtual ~AliVEvent() { }
105  AliVEvent(const AliVEvent& vEvnt);
106  AliVEvent& operator=(const AliVEvent& vEvnt);
107 
108  // Services
109  virtual void AddObject(TObject* obj) = 0;
110  virtual TObject* FindListObject(const char *name) const = 0;
111  virtual TList* GetList() const = 0;
112 
113  virtual void CreateStdContent() = 0;
114  virtual void GetStdContent() = 0;
115 
116  virtual void ReadFromTree(TTree *tree, Option_t* opt) = 0;
117  virtual void WriteToTree(TTree* tree) const = 0;
118 
119  virtual void Reset() = 0;
120  //virtual void ResetStdContent() = 0;
121  virtual void SetStdNames() = 0;
122 
123  virtual void Print(Option_t *option="") const = 0;
124 
125  // Header
126  virtual AliVHeader* GetHeader() const = 0;
127  //
128  // field initialization
129  virtual Bool_t InitMagneticField() const {return kFALSE;}
130 
131  // Delegated methods for fESDRun or AODHeader
132 
133  virtual void SetRunNumber(Int_t n) = 0;
134  virtual void SetPeriodNumber(UInt_t n) = 0;
135  virtual void SetMagneticField(Double_t mf) = 0;
136 
137  virtual Int_t GetRunNumber() const = 0;
138  virtual UInt_t GetPeriodNumber() const = 0;
139  virtual Double_t GetMagneticField() const = 0;
140 
141  virtual Double_t GetDiamondX() const {return -999.;}
142  virtual Double_t GetDiamondY() const {return -999.;}
143  virtual void GetDiamondCovXY(Float_t cov[3]) const
144  {cov[0]=-999.; return;}
145 
146  // Delegated methods for fHeader
147  virtual void SetOrbitNumber(UInt_t n) = 0;
148  virtual void SetBunchCrossNumber(UShort_t n) = 0;
149  virtual void SetEventType(UInt_t eventType)= 0;
150  virtual void SetTriggerMask(ULong64_t n) = 0;
151  virtual void SetTriggerCluster(UChar_t n) = 0;
152 
153  virtual UInt_t GetOrbitNumber() const = 0;
154  virtual UShort_t GetBunchCrossNumber() const = 0;
155  virtual UInt_t GetEventType() const = 0;
156  virtual ULong64_t GetTriggerMask() const = 0;
157  virtual ULong64_t GetTriggerMaskNext50() const {return 0;}
158  virtual UChar_t GetTriggerCluster() const = 0;
159  virtual TString GetFiredTriggerClasses() const = 0;
160  virtual Bool_t IsTriggerClassFired(const char* /*name*/) const {return 0;}
161  virtual Double_t GetZDCN1Energy() const = 0;
162  virtual Double_t GetZDCP1Energy() const = 0;
163  virtual Double_t GetZDCN2Energy() const = 0;
164  virtual Double_t GetZDCP2Energy() const = 0;
165  virtual Double_t GetZDCEMEnergy(Int_t i) const = 0;
166 
167  // Tracks
168  virtual AliVParticle *GetTrack(Int_t i) const = 0;
169  virtual AliVTrack *GetVTrack(Int_t /*i*/) const {return NULL;}
170  //virtual AliVTrack *GetVTrack(Int_t /*i*/) {return NULL;}
171  //virtual Int_t AddTrack(const AliVParticle *t) = 0;
172  virtual Int_t GetNumberOfTracks() const = 0;
173  virtual Int_t GetNumberOfV0s() const = 0;
174  virtual Int_t GetNumberOfCascades() const = 0;
175 
176  // TOF header and T0 methods
177  virtual const AliTOFHeader *GetTOFHeader() const {return NULL;}
178  virtual Float_t GetEventTimeSpread() const {return 0.;}
179  virtual Float_t GetTOFTimeResolution() const {return 0.;}
180  virtual Double32_t GetT0TOF(Int_t icase) const {return 0.0*icase;}
181  virtual const Double32_t * GetT0TOF() const {return NULL;}
182  virtual Float_t GetT0spread(Int_t /*i*/) const {return 0.;}
183 
184  // Calorimeter Clusters/Cells
185  virtual AliVCluster *GetCaloCluster(Int_t) const {return 0;}
186  virtual Int_t GetNumberOfCaloClusters() const {return 0;}
187  virtual Int_t GetEMCALClusters(TRefArray *) const {return 0;}
188  virtual Int_t GetPHOSClusters (TRefArray *) const {return 0;}
189  virtual AliVCaloCells *GetEMCALCells() const {return 0;}
190  virtual AliVCaloCells *GetPHOSCells() const {return 0;}
191  const TGeoHMatrix* GetPHOSMatrix(Int_t /*i*/) const {return NULL;}
192  const TGeoHMatrix* GetEMCALMatrix(Int_t /*i*/) const {return NULL;}
193  virtual AliVCaloTrigger *GetCaloTrigger(TString /*calo*/) const {return NULL;}
194 
195 
196  // Primary vertex
197  virtual Bool_t IsPileupFromSPD(Int_t /*minContributors*/,
198  Double_t /*minZdist*/,
199  Double_t /*nSigmaZdist*/,
200  Double_t /*nSigmaDiamXY*/,
201  Double_t /*nSigmaDiamZ*/)
202  const{
203  return kFALSE;
204  }
205 
206  // Tracklets
207  virtual AliVMultiplicity* GetMultiplicity() const {return 0;}
208  virtual Int_t GetNumberOfITSClusters(Int_t) const {return 0;}
209 
210  virtual Bool_t IsPileupFromSPDInMultBins() const {
211  return kFALSE;
212  }
213  virtual AliCentrality* GetCentrality() = 0;
214  virtual AliEventplane* GetEventplane() = 0;
215  virtual Int_t EventIndex(Int_t itrack) const = 0;
216  virtual Int_t EventIndexForCaloCluster(Int_t iclu) const = 0;
217  virtual Int_t EventIndexForPHOSCell(Int_t icell) const = 0;
218  virtual Int_t EventIndexForEMCALCell(Int_t icell) const = 0;
219 
220  virtual AliVVZERO *GetVZEROData() const = 0;
221  virtual const Float_t* GetVZEROEqFactors() const {return NULL;}
222  virtual Float_t GetVZEROEqMultiplicity(Int_t /* i */) const {return -1;}
223  virtual void SetVZEROEqFactors(Float_t /* factors */[64]) const {return;}
224  virtual AliVZDC *GetZDCData() const = 0;
225 
226  virtual AliVAD *GetADData() const { return NULL;}
227 
228  virtual Int_t GetNumberOfTrdTracks() const { return 0; }
229  virtual AliVTrdTrack* GetTrdTrack(Int_t /* iTrack */) const { return 0x0; }
230 
231  virtual Int_t GetNumberOfESDTracks() const { return 0; }
232  virtual Int_t GetEventNumberInFile() const {return 0;}
233 
234  //used in calibration:
235  virtual Int_t GetV0(AliESDv0&, Int_t /*iv0*/) const {return 0;}
236  virtual UInt_t GetTimeStamp() const { return 0; }
237  virtual AliVfriendEvent* FindFriend() const { return 0; }
238  virtual void SetFriendEvent( AliVfriendEvent* ) {}
239  virtual UInt_t GetEventSpecie() const { return 0; }
240  virtual AliESDkink* GetKink(Int_t /*i*/) const { return NULL; }
241  virtual Int_t GetNumberOfKinks() const { return 0; }
242 
243  virtual Int_t GetVZEROData( AliESDVZERO & ) const {return -1;}
244  virtual Int_t GetMultiplicity( AliMultiplicity & ) const {return -1;}
245 
246  // Primary vertex
247  virtual const AliVVertex *GetPrimaryVertex() const {return 0x0;}
248  virtual const AliVVertex *GetPrimaryVertexSPD() const {return 0x0;}
249  virtual const AliVVertex *GetPrimaryVertexTPC() const {return 0x0;}
250  virtual const AliVVertex *GetPrimaryVertexTracks() const {return 0x0;}
251 
252  virtual Int_t GetPrimaryVertex( AliESDVertex & ) const {return 0;}
253  virtual Int_t GetPrimaryVertexTPC( AliESDVertex & ) const {return 0;}
254  virtual Int_t GetPrimaryVertexSPD( AliESDVertex & ) const {return 0;}
255  virtual Int_t GetPrimaryVertexTracks( AliESDVertex & ) const {return 0;}
256 
257  // event status
258  virtual Bool_t IsIncompleteDAQ() {return kFALSE;}
259 
260  virtual Bool_t IsDetectorOn(ULong_t /*detMask*/) const { return kTRUE; }
261 
262  virtual void ConnectTracks() {}
263  virtual EDataLayoutType GetDataLayoutType() const = 0;
264  const char* Whoami();
265  virtual ULong64_t GetSize() const {return 0;}
266 
267  virtual void AdjustMCLabels(const AliVEvent */*mctruth*/) {return;}
268 
269  ClassDef(AliVEvent, 3) // base class for AliEvent data
270 };
271 #endif
272 
virtual Int_t GetV0(AliESDv0 &, Int_t) const
Definition: AliVEvent.h:235
virtual Int_t GetEventNumberInFile() const
Definition: AliVEvent.h:232
virtual void Reset()=0
virtual UInt_t GetEventSpecie() const
Definition: AliVEvent.h:239
virtual Int_t GetNumberOfCascades() const =0
virtual Int_t GetNumberOfTracks() const =0
virtual const AliVVertex * GetPrimaryVertex() const
Definition: AliVEvent.h:247
virtual const AliTOFHeader * GetTOFHeader() const
Definition: AliVEvent.h:177
virtual const AliVVertex * GetPrimaryVertexTPC() const
Definition: AliVEvent.h:249
virtual void CreateStdContent()=0
virtual ULong64_t GetTriggerMaskNext50() const
Definition: AliVEvent.h:157
virtual const Double32_t * GetT0TOF() const
Definition: AliVEvent.h:181
virtual AliVCaloCells * GetPHOSCells() const
Definition: AliVEvent.h:190
virtual Double_t GetZDCP2Energy() const =0
virtual Double_t GetDiamondX() const
Definition: AliVEvent.h:141
virtual void SetVZEROEqFactors(Float_t[64]) const
Definition: AliVEvent.h:223
virtual void GetDiamondCovXY(Float_t cov[3]) const
Definition: AliVEvent.h:143
virtual Double_t GetZDCN2Energy() const =0
virtual Double_t GetMagneticField() const =0
virtual UInt_t GetOrbitNumber() const =0
virtual UShort_t GetBunchCrossNumber() const =0
virtual const AliVVertex * GetPrimaryVertexTracks() const
Definition: AliVEvent.h:250
virtual ~AliVEvent()
Definition: AliVEvent.h:104
virtual AliVfriendEvent * FindFriend() const
Definition: AliVEvent.h:237
Virtual class for calorimeter cell data handling.
Definition: AliVCaloCells.h:19
virtual Int_t GetEMCALClusters(TRefArray *) const
Definition: AliVEvent.h:187
virtual Float_t GetVZEROEqMultiplicity(Int_t) const
Definition: AliVEvent.h:222
virtual Int_t GetPrimaryVertexSPD(AliESDVertex &) const
Definition: AliVEvent.h:254
virtual TList * GetList() const =0
const char * Whoami()
Definition: AliVEvent.cxx:37
const TGeoHMatrix * GetPHOSMatrix(Int_t) const
Definition: AliVEvent.h:191
virtual AliVTrack * GetVTrack(Int_t) const
Definition: AliVEvent.h:169
virtual void ReadFromTree(TTree *tree, Option_t *opt)=0
virtual void SetTriggerMask(ULong64_t n)=0
virtual Bool_t IsPileupFromSPD(Int_t, Double_t, Double_t, Double_t, Double_t) const
Definition: AliVEvent.h:197
virtual const Float_t * GetVZEROEqFactors() const
Definition: AliVEvent.h:221
virtual void ConnectTracks()
Definition: AliVEvent.h:262
virtual void SetEventType(UInt_t eventType)=0
virtual Int_t GetMultiplicity(AliMultiplicity &) const
Definition: AliVEvent.h:244
Virtual class for calorimeter cluster data handling.
Definition: AliVCluster.h:20
virtual AliVHeader * GetHeader() const =0
virtual void WriteToTree(TTree *tree) const =0
virtual Int_t GetPHOSClusters(TRefArray *) const
Definition: AliVEvent.h:188
virtual Int_t GetPrimaryVertex(AliESDVertex &) const
Definition: AliVEvent.h:252
virtual AliVCluster * GetCaloCluster(Int_t) const
Definition: AliVEvent.h:185
virtual Int_t GetNumberOfKinks() const
Definition: AliVEvent.h:241
virtual Double_t GetZDCN1Energy() const =0
Virtual class to access calorimeter (EMCAL, PHOS, PMD, FMD) trigger data.
virtual void GetStdContent()=0
virtual void SetOrbitNumber(UInt_t n)=0
virtual Int_t EventIndexForEMCALCell(Int_t icell) const =0
virtual void SetFriendEvent(AliVfriendEvent *)
Definition: AliVEvent.h:238
virtual UInt_t GetTimeStamp() const
Definition: AliVEvent.h:236
virtual Int_t GetPrimaryVertexTPC(AliESDVertex &) const
Definition: AliVEvent.h:253
virtual Int_t GetNumberOfESDTracks() const
Definition: AliVEvent.h:231
TTree * tree
EOfflineTriggerTypes
Definition: AliVEvent.h:47
virtual AliVParticle * GetTrack(Int_t i) const =0
virtual Double_t GetZDCEMEnergy(Int_t i) const =0
virtual TObject * FindListObject(const char *name) const =0
virtual void SetPeriodNumber(UInt_t n)=0
virtual Int_t EventIndexForCaloCluster(Int_t iclu) const =0
virtual UInt_t GetEventType() const =0
virtual AliEventplane * GetEventplane()=0
virtual EDataLayoutType GetDataLayoutType() const =0
virtual AliVAD * GetADData() const
Definition: AliVEvent.h:226
virtual Int_t EventIndex(Int_t itrack) const =0
const TGeoHMatrix * GetEMCALMatrix(Int_t) const
Definition: AliVEvent.h:192
virtual void SetStdNames()=0
virtual Bool_t IsPileupFromSPDInMultBins() const
Definition: AliVEvent.h:210
virtual AliVZDC * GetZDCData() const =0
virtual Float_t GetT0spread(Int_t) const
Definition: AliVEvent.h:182
virtual UChar_t GetTriggerCluster() const =0
virtual void SetTriggerCluster(UChar_t n)=0
virtual Bool_t InitMagneticField() const
Definition: AliVEvent.h:129
virtual AliCentrality * GetCentrality()=0
AliVEvent & operator=(const AliVEvent &vEvnt)
Definition: AliVEvent.cxx:29
virtual Float_t GetTOFTimeResolution() const
Definition: AliVEvent.h:179
virtual Bool_t IsIncompleteDAQ()
Definition: AliVEvent.h:258
virtual ULong64_t GetSize() const
Definition: AliVEvent.h:265
virtual Float_t GetEventTimeSpread() const
Definition: AliVEvent.h:178
virtual Int_t GetNumberOfCaloClusters() const
Definition: AliVEvent.h:186
virtual Double_t GetZDCP1Energy() const =0
virtual Double_t GetDiamondY() const
Definition: AliVEvent.h:142
virtual Int_t EventIndexForPHOSCell(Int_t icell) const =0
virtual Int_t GetRunNumber() const =0
EDataLayoutType
Definition: AliVEvent.h:46
Definition: AliVAD.h:13
virtual TString GetFiredTriggerClasses() const =0
virtual void AddObject(TObject *obj)=0
virtual Int_t GetNumberOfTrdTracks() const
Definition: AliVEvent.h:228
virtual AliVVZERO * GetVZEROData() const =0
virtual AliVTrdTrack * GetTrdTrack(Int_t) const
Definition: AliVEvent.h:229
virtual void SetRunNumber(Int_t n)=0
virtual Double32_t GetT0TOF(Int_t icase) const
Definition: AliVEvent.h:180
virtual Bool_t IsTriggerClassFired(const char *) const
Definition: AliVEvent.h:160
virtual Bool_t IsDetectorOn(ULong_t) const
Definition: AliVEvent.h:260
virtual ULong64_t GetTriggerMask() const =0
virtual AliESDkink * GetKink(Int_t) const
Definition: AliVEvent.h:240
virtual AliVMultiplicity * GetMultiplicity() const
Definition: AliVEvent.h:207
virtual void SetBunchCrossNumber(UShort_t n)=0
virtual void AdjustMCLabels(const AliVEvent *)
Definition: AliVEvent.h:267
virtual Int_t GetPrimaryVertexTracks(AliESDVertex &) const
Definition: AliVEvent.h:255
virtual Int_t GetNumberOfV0s() const =0
virtual UInt_t GetPeriodNumber() const =0
virtual Int_t GetNumberOfITSClusters(Int_t) const
Definition: AliVEvent.h:208
virtual Int_t GetVZEROData(AliESDVZERO &) const
Definition: AliVEvent.h:243
virtual const AliVVertex * GetPrimaryVertexSPD() const
Definition: AliVEvent.h:248
virtual AliVCaloTrigger * GetCaloTrigger(TString) const
Definition: AliVEvent.h:193
virtual AliVCaloCells * GetEMCALCells() const
Definition: AliVEvent.h:189
virtual void Print(Option_t *option="") const =0
virtual void SetMagneticField(Double_t mf)=0