LCOV - code coverage report
Current view: top level - STEER/STEERBase - AliVEvent.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 3 57 5.3 %
Date: 2016-06-14 17:26:59 Functions: 4 63 6.3 %

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

Generated by: LCOV version 1.11