]>
Commit | Line | Data |
---|---|---|
d7dd8a54 | 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; | |
7f66b913 | 17 | class TGraphErrors; |
d7dd8a54 | 18 | class AliTimeStamp; |
6441c2a8 | 19 | class AliTriggerScalersESD; |
d7dd8a54 | 20 | class AliTriggerScalersRecord; |
6441c2a8 | 21 | class AliTriggerScalersRecordESD; |
7f66b913 | 22 | class AliTriggerConfiguration; |
d7dd8a54 | 23 | |
24 | #include "TArrayC.h" | |
25 | ||
26 | class AliTriggerRunScalers : public TObject { | |
27 | ||
28 | public: | |
29 | AliTriggerRunScalers(); | |
7eaf72df | 30 | virtual ~AliTriggerRunScalers(); |
d7dd8a54 | 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]; } | |
033d0f8e | 36 | const TObjArray* GetScalersRecords() const { return &fScalersRecord; } |
6441c2a8 | 37 | const TObjArray* GetScalersRecordsESD() const { return &fScalersRecordESD; } |
033d0f8e | 38 | AliTriggerScalersRecord* GetScalersRecord( Int_t index ) const { return (AliTriggerScalersRecord*)fScalersRecord.At(index); } |
39 | Int_t FindNearestScalersRecord( const AliTimeStamp *stamp ) const; | |
6441c2a8 | 40 | AliTriggerScalersESD* GetScalersForEventClass(const AliTimeStamp* stamp,const Int_t classIndex) const; |
7f66b913 | 41 | const AliTriggerScalersRecordESD* GetScalersDeltaForEvent(const AliTimeStamp* stamp) const; |
42 | const AliTriggerScalersRecordESD* GetScalersDeltaForRun() const; | |
43 | ||
6441c2a8 | 44 | // Analysis |
74135182 | 45 | Int_t ConsistencyCheck(Int_t position,Bool_t correctOverflow, UInt_t** overflow); |
6441c2a8 | 46 | Int_t CorrectScalersOverflow(); |
a93ccff3 | 47 | Int_t CheckRunScalers(){return (fScalersRecord.GetEntriesFast()==fScalersRecordESD.GetEntriesFast());} |
d7dd8a54 | 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; | |
bf7443cc | 55 | AliTriggerRunScalers( const AliTriggerRunScalers &run ); |
56 | AliTriggerRunScalers& operator=(const AliTriggerRunScalers& run); | |
d7dd8a54 | 57 | |
7f66b913 | 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.); | |
2696a238 | 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.);*/ | |
7f66b913 | 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); | |
2696a238 | 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.*/); |
7f66b913 | 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); | |
2696a238 | 76 | TGraphErrors* GetGraphMu(AliTriggerConfiguration* cfg, Bool_t colBCsFromFillScheme=kTRUE, Bool_t bkgCorr=kTRUE, Double_t triggerEff=1./*, Double_t errorEff=0.*/); |
7f66b913 | 77 | |
78 | ||
d7dd8a54 | 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) | |
bf7443cc | 85 | TObjArray fScalersRecordESD; // Array of records with 64bit scalers (AliTriggerScalersRecordESD) |
86 | ||
d7dd8a54 | 87 | |
d7dd8a54 | 88 | |
7f66b913 | 89 | ClassDef( AliTriggerRunScalers, 4 ) // Define a Run Trigger Scalers (Scalers) |
d7dd8a54 | 90 | }; |
91 | ||
92 | #endif |