LCOV - code coverage report
Current view: top level - STEER/ESD - AliESDHeader.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 29 42 69.0 %
Date: 2016-06-14 17:26:59 Functions: 30 46 65.2 %

          Line data    Source code
       1             : // -*- mode: C++ -*- 
       2             : #ifndef ALIESDHEADER_H
       3             : #define ALIESDHEADER_H
       4             : 
       5             : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       6             :  * See cxx source for full Copyright notice                               */
       7             : 
       8             : //-------------------------------------------------------------------------
       9             : //                      Class AliESDHeader
      10             : //   Header data
      11             : //   for the ESD   
      12             : //   Origin: Christian Klein-Boesing, CERN, Christian.Klein-Boesing@cern.ch 
      13             : //-------------------------------------------------------------------------
      14             : 
      15             : #include <TObjArray.h>
      16             : #include <TClonesArray.h>
      17             : #include <TBits.h>
      18             : #include "AliVHeader.h"
      19             : #include "AliTriggerScalersESD.h"
      20             : #include "AliTriggerScalersRecordESD.h"
      21             : 
      22             : class AliTriggerScalersESD;
      23             : class AliTriggerScalersRecordESD;
      24             : class AliTriggerIR;
      25             : class AliTriggerConfiguration;
      26             : 
      27             : class AliESDHeader: public AliVHeader {
      28             : public:
      29             :   AliESDHeader();
      30             :   virtual ~AliESDHeader();
      31             :   AliESDHeader(const AliESDHeader& header);
      32             :   AliESDHeader& operator=(const AliESDHeader& header);
      33             :   virtual void Copy(TObject &obj) const;
      34             : 
      35          16 :   void      SetTriggerMask(ULong64_t n) {fTriggerMask=n;}
      36          16 :   void      SetTriggerMaskNext50(ULong64_t n) {fTriggerMaskNext50=n;}
      37          16 :   void      SetOrbitNumber(UInt_t n) {fOrbitNumber=n;}
      38          32 :   void      SetTimeStamp(UInt_t timeStamp){fTimeStamp = timeStamp;}
      39          16 :   void      SetEventType(UInt_t eventType){fEventType = eventType;}
      40          32 :   void      SetEventSpecie(UInt_t eventSpecie){fEventSpecie = eventSpecie;}
      41          32 :   void      SetEventNumberInFile(Int_t n) {fEventNumberInFile=n;}
      42          16 :   void      SetBunchCrossNumber(UShort_t n) {fBunchCrossNumber=n;}
      43          16 :   void      SetPeriodNumber(UInt_t n) {fPeriodNumber=n;}
      44          16 :   void      SetTriggerCluster(UChar_t n) {fTriggerCluster = n;}
      45             :   Bool_t    AddTriggerIR(const AliTriggerIR* ir);
      46           0 :   void      SetCTPConfig(AliTriggerConfiguration* ctpConfig) {fCTPConfig=ctpConfig;};
      47             : //************Setters/Getters for Trigger Inputs and TriggerScalersRecordESD
      48          16 :   void SetL0TriggerInputs(UInt_t n) {fL0TriggerInputs=n;}
      49          16 :   void SetL1TriggerInputs(UInt_t n) {fL1TriggerInputs=n;}
      50          16 :   void SetL2TriggerInputs(UShort_t n) {fL2TriggerInputs=n;}
      51          16 :   UInt_t      GetL0TriggerInputs() const {return fL0TriggerInputs;}  
      52          16 :   UInt_t      GetL1TriggerInputs() const {return fL1TriggerInputs;} 
      53          16 :   UShort_t    GetL2TriggerInputs() const {return fL2TriggerInputs;} 
      54           0 :   void SetTriggerScalersRecord(AliTriggerScalersESD *scalerRun) {fTriggerScalers.AddTriggerScalers(scalerRun); }
      55           0 :   void SetTriggerScalersDeltaEvent(const AliTriggerScalersRecordESD *scalerRun) {fTriggerScalersDeltaEvent = *scalerRun; }
      56           0 :   void SetTriggerScalersDeltaRun(const AliTriggerScalersRecordESD *scalerRun) {fTriggerScalersDeltaRun = *scalerRun; }
      57           0 :   const AliTriggerScalersRecordESD* GetTriggerScalersRecord() const {return &fTriggerScalers; }
      58           0 :   const AliTriggerScalersRecordESD* GetTriggerScalersDeltaEvent() const {return &fTriggerScalersDeltaEvent; }
      59           0 :   const AliTriggerScalersRecordESD* GetTriggerScalersDeltaRun() const {return &fTriggerScalersDeltaRun; }
      60         160 :   const AliTriggerIR* GetTriggerIR(Int_t i) const { return (const AliTriggerIR*)fIRBufferArray[i]; }
      61             :   void SetActiveTriggerInputs(const char*name, Int_t index);
      62             :   const char* GetTriggerInputName(Int_t index, Int_t trglevel) const;
      63             :   TString     GetActiveTriggerInputs() const;
      64             :   TString     GetFiredTriggerInputs() const;
      65             :   Bool_t      IsTriggerInputFired(const char *name) const;
      66           0 :   const AliTriggerConfiguration*  GetCTPConfig() const { return fCTPConfig;}
      67             :   Int_t  FindIRIntInteractionsBXMap(Int_t difference) const;
      68          16 :   TBits  GetIRInt2InteractionMap() const { SetIRInteractionMap(); return fIRInt2InteractionsMap; }
      69          16 :   TBits  GetIRInt1InteractionMap() const { SetIRInteractionMap(); return fIRInt1InteractionsMap; }
      70             :   Int_t  GetIRInt2ClosestInteractionMap() const;
      71             :   Int_t  GetIRInt1ClosestInteractionMap(Int_t gap = 3) const;
      72             :   Int_t  GetIRInt2LastInteractionMap() const;
      73             : //**************************************************************************
      74             : 
      75         872 :   ULong64_t GetTriggerMask() const {return fTriggerMask;}
      76         856 :   ULong64_t GetTriggerMaskNext50() const {return fTriggerMaskNext50;}
      77           0 :   void      GetTriggerMaskAll(ULong64_t& low,ULong64_t& high) const {low=fTriggerMask;high=fTriggerMaskNext50;}
      78          88 :   UInt_t    GetOrbitNumber() const {return fOrbitNumber;}
      79         144 :   UInt_t    GetTimeStamp()  const { return fTimeStamp;}
      80          56 :   UInt_t    GetEventType()  const { return fEventType;}
      81          16 :   UInt_t    GetEventSpecie()  const { return fEventSpecie;}
      82         316 :   Int_t     GetEventNumberInFile() const {return fEventNumberInFile;}
      83          94 :   UShort_t  GetBunchCrossNumber() const {return fBunchCrossNumber;}
      84           0 :   UInt_t    GetPeriodNumber() const {return fPeriodNumber;}
      85          32 :   UChar_t   GetTriggerCluster() const {return fTriggerCluster;}
      86           0 :   Int_t     GetTriggerIREntries() const { return fIRBufferArray.GetEntriesFast();};
      87             :   Int_t     GetTriggerIREntries(Int_t int1, Int_t int2, Float_t deltaTime = 180.) const;
      88             :   TObjArray GetIRArray(Int_t int1, Int_t int2, Float_t deltaTime = 180.) const;
      89             :   void      Reset();
      90             :   void      Print(const Option_t *opt=0) const;
      91             : 
      92             :   enum {kNTriggerInputs = 60};   //24 L0, 24 L1 and 12 L2 inputs
      93           0 :   Char_t GetTPCNoiseFilterCounter(UInt_t index) {return fTPCNoiseFilterCounter[index%3];};
      94           0 :   void SetTPCNoiseFilterCounter(UInt_t index,UChar_t value) {fTPCNoiseFilterCounter[index%3]=value;};
      95             : 
      96             : private:
      97             :   void   SetIRInteractionMap() const;
      98             : 
      99             : private:
     100             : 
     101             :   // Event Identification
     102             :   ULong64_t    fTriggerMask;       // Trigger Type (mask) 1-50 bits
     103             :   ULong64_t    fTriggerMaskNext50; // Trigger Type (mask) 51-100 bits
     104             :   UInt_t       fOrbitNumber;       // Orbit Number
     105             :   UInt_t       fTimeStamp;         // Time stamp
     106             :   UInt_t       fEventType;         // Type of Event
     107             :   UInt_t       fEventSpecie;       // Reconstruction event specie (1-default,2-lowM,4-highM,8-cosmic,16-cal)
     108             :   UInt_t       fPeriodNumber;      // Period Number
     109             :   Int_t        fEventNumberInFile; // Running Event count in the file
     110             :   UShort_t     fBunchCrossNumber;  // Bunch Crossing Number
     111             :   UChar_t      fTriggerCluster;    // Trigger cluster (mask)
     112             :   UInt_t       fL0TriggerInputs;   // L0 Trigger Inputs (mask)
     113             :   UInt_t       fL1TriggerInputs;   // L1 Trigger Inputs (mask)
     114             :   UShort_t     fL2TriggerInputs;   // L2 Trigger Inputs (mask)
     115             :   AliTriggerScalersRecordESD fTriggerScalers;  //Trigger counters of triggered classes in event, interpolated to the event time
     116             :   AliTriggerScalersRecordESD fTriggerScalersDeltaEvent;  // Change in the trigger scalers between the two counter readings closest to the event time 
     117             :   AliTriggerScalersRecordESD fTriggerScalersDeltaRun;  // Total number of counts in the trigger scalers for the duration of the run
     118             :   enum {kNMaxIR = 3};              // Max number of interaction records (IR)
     119             :   AliTriggerIR*  fIRArray[kNMaxIR];// Array with trigger IRs 
     120             :   TObjArray    fTriggerInputsNames;// Array of TNamed of the active trigger inputs (L0,L1 and L2)
     121             :   AliTriggerConfiguration*  fCTPConfig; // Trigger configuration for the run
     122             :   TObjArray    fIRBufferArray;// Array with interaction records before and after triggered event
     123             :   mutable TBits   fIRInt2InteractionsMap;  // map of the Int2 events (normally 0TVX) near the event, that's Int2Id-EventId within -90 +90 BXs
     124             :   mutable TBits   fIRInt1InteractionsMap;  // map of the Int1 events (normally V0A&V0C) near the event, that's Int1Id-EventId within -90 +90 BXs
     125             :   UChar_t fTPCNoiseFilterCounter[3];  // filter counter [0]=sector, [1]-timebin/sector, [2]-padrowsector 
     126             : 
     127             : 
     128         424 :   ClassDef(AliESDHeader,14)
     129             : };
     130             : 
     131             : #endif

Generated by: LCOV version 1.11