]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliTriggerRunScalers.h
Removing useless include
[u/mrichter/AliRoot.git] / STEER / AliTriggerRunScalers.h
1 #ifndef ALITRIGGERRUNSCALERS_H
2 #define ALITRIGGERRUNSCALERS_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id: AliTriggerRunScalers.h 22322 2007-11-22 11:43:14Z cvetan $ */
8
9 ///////////////////////////////////////////////////////////////////////////////
10 //
11 //  Class to define a collection scalers per Run  
12 //
13 // 
14 //
15 //////////////////////////////////////////////////////////////////////////////
16 class TObject;
17 class TGraphErrors;
18 class AliTimeStamp;
19 class AliTriggerScalersESD;
20 class AliTriggerScalersRecord;
21 class AliTriggerScalersRecordESD;
22 class AliTriggerConfiguration;
23
24 #include "TArrayC.h"
25
26 class AliTriggerRunScalers : public TObject {
27
28 public:
29                          AliTriggerRunScalers();
30               virtual   ~AliTriggerRunScalers();
31   //  Getters
32                   Short_t    GetVersion()          const { return fVersion;       }            
33                   ULong_t    GetRunNumber()        const { return fRunNumber;     }
34                   UChar_t    GetNumClasses()       const { return fnClasses;      }
35                    Char_t    GetClass( Int_t i )   const { return fClassIndex[i]; }
36           const TObjArray*   GetScalersRecords()   const { return &fScalersRecord; } 
37           const TObjArray*   GetScalersRecordsESD()   const { return &fScalersRecordESD; } 
38   AliTriggerScalersRecord*   GetScalersRecord( Int_t index ) const { return (AliTriggerScalersRecord*)fScalersRecord.At(index); }
39                     Int_t    FindNearestScalersRecord( const AliTimeStamp *stamp ) const;
40      AliTriggerScalersESD*   GetScalersForEventClass(const AliTimeStamp* stamp,const Int_t classIndex) const;
41      const AliTriggerScalersRecordESD*   GetScalersDeltaForEvent(const AliTimeStamp* stamp) const;
42      const AliTriggerScalersRecordESD*   GetScalersDeltaForRun() const;
43
44  // Analysis                
45                     Int_t    ConsistencyCheck(Int_t position,Bool_t correctOverflow, UInt_t** overflow);
46                     Int_t    CorrectScalersOverflow();
47                     Int_t    CheckRunScalers(){return (fScalersRecord.GetEntriesFast()==fScalersRecordESD.GetEntriesFast());}
48   //  Setters
49                      void    SetVersion( Short_t ver )       { fVersion = ver;   }            
50                      void    SetRunNumber( ULong_t run )     { fRunNumber = run; }
51                      void    SetNumClasses( UChar_t nclass ) { fnClasses = nclass; fClassIndex.Set(nclass); }
52                      void    SetClass( UChar_t i, UChar_t index ) { fClassIndex[i]=index; }
53                      void    AddTriggerScalers( AliTriggerScalersRecord* scal );
54              virtual void    Print( const Option_t* opt ="" ) const;
55      AliTriggerRunScalers( const AliTriggerRunScalers &run );
56      AliTriggerRunScalers&    operator=(const AliTriggerRunScalers& run);
57                                         
58 static AliTriggerRunScalers* ReadScalers( TString & filename );
59           static Double_t    CalculateMu(ULong64_t countsB, ULong64_t countsAC, ULong64_t countsE, UShort_t nB, UShort_t nAC, UShort_t nE, UInt_t orbits, Bool_t bkgCorr=kTRUE, Double_t triggerEff=1.);
60           static Double_t    CalculateMu(ULong64_t countsB, ULong64_t countsAC, ULong64_t countsE, ULong64_t beamB, UShort_t nB, UShort_t nAC, UShort_t nE, Bool_t bkgCorr=kTRUE, Double_t triggerEff=1.);
61           static Double_t    CalculateMuError(/*ULong64_t countsB, ULong64_t countsAC, ULong64_t countsE, UShort_t nB, UShort_t nAC, UShort_t nE, UInt_t orbits, Bool_t bkgCorr=kTRUE, Double_t triggerEff=1., Double_t errorEff=0.*/);
62           /*static Double_t    CalculateMuError(ULong64_t countsB, ULong64_t countsAC, ULong64_t countsE, ULong64_t beamB, UShort_t nB, UShort_t nAC, UShort_t nE, Bool_t bkgCorr=kTRUE, Double_t triggerEff=1., Double_t errorEff=0.);*/
63           static ULong64_t    GetDeltaScaler(const AliTriggerScalersRecordESD* scalRec1, const AliTriggerScalersRecordESD* scalRec2, Int_t classIndex, Int_t level);
64           static Double_t    GetDeltaTime(const AliTriggerScalersRecordESD* scalRec1, const AliTriggerScalersRecordESD* scalRec2);
65           static UInt_t    GetDeltaOrbits(const AliTriggerScalersRecordESD* scalRec1, const AliTriggerScalersRecordESD* scalRec2);
66           static Double_t    GetScalerRate(const AliTriggerScalersRecordESD* scalRec1, const AliTriggerScalersRecordESD* scalRec2, Int_t classIndex, Int_t level);
67           static Double_t    GetScalerRateError(const AliTriggerScalersRecordESD* scalRec1, const AliTriggerScalersRecordESD* scalRec2, Int_t classIndex, Int_t level);
68           static Double_t    GetClassL2L0(const AliTriggerScalersRecordESD* scalRec1, const AliTriggerScalersRecordESD* scalRec2, Int_t classIndex);
69           static Double_t    GetClassL2L0Error(const AliTriggerScalersRecordESD* scalRec1, const AliTriggerScalersRecordESD* scalRec2, Int_t classIndex);
70           static Bool_t    GetMuFromMinBiasTrg(Double_t &mu, Double_t &muerr, const AliTriggerScalersRecordESD* scalRec1, const AliTriggerScalersRecordESD* scalRec2, AliTriggerConfiguration* cfg, Bool_t colBCsFromFillScheme=kTRUE, Bool_t bkgCorr=kTRUE, Double_t triggerEff=1./*, Double_t errorEff=0.*/);
71                 ULong64_t    GetDeltaScalerForRun(Int_t classIndex, Int_t level);
72                  Double_t    GetScalerRateForRun(Int_t classIndex, Int_t level);
73                  Double_t    GetClassL2L0ForRun(Int_t classIndex);
74              TGraphErrors*   GetGraphScalerRate(const char* className, Int_t level, AliTriggerConfiguration* cfg);
75              TGraphErrors*   GetGraphScalerL2L0Ratio(const char* className, AliTriggerConfiguration* cfg);
76              TGraphErrors*   GetGraphMu(AliTriggerConfiguration* cfg, Bool_t colBCsFromFillScheme=kTRUE, Bool_t bkgCorr=kTRUE, Double_t triggerEff=1./*, Double_t errorEff=0.*/);
77
78
79 private:
80                   Short_t    fVersion;            // Version
81                   ULong_t    fRunNumber;          // Run number
82                   UChar_t    fnClasses;           // Number of trigger classes
83                   TArrayC    fClassIndex;         // list of classes used in this partition
84                 TObjArray    fScalersRecord;      // Array of records (AliTriggerScalersRecord)
85                 TObjArray    fScalersRecordESD;   // Array of records with 64bit scalers (AliTriggerScalersRecordESD)
86
87     
88
89    ClassDef( AliTriggerRunScalers, 4 )  // Define a Run Trigger Scalers (Scalers)
90 };
91
92 #endif