]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliTriggerRunScalers.h
turned off HLTError into Debug
[u/mrichter/AliRoot.git] / STEER / AliTriggerRunScalers.h
index 32f95eaddc94e91ced2c6a08a30ce1fb967b44a4..a3bd45dd106bb8dbcf5eb74337a3f0796729aebd 100644 (file)
 //
 //////////////////////////////////////////////////////////////////////////////
 class TObject;
-
+class TGraphErrors;
 class AliTimeStamp;
+class AliTriggerScalersESD;
 class AliTriggerScalersRecord;
+class AliTriggerScalersRecordESD;
+class AliTriggerConfiguration;
 
 #include "TArrayC.h"
 
@@ -24,18 +27,24 @@ class AliTriggerRunScalers : public TObject {
 
 public:
                          AliTriggerRunScalers();
-              virtual   ~AliTriggerRunScalers() { fScalersRecord.SetOwner(); fScalersRecord.Delete(); }
-
+              virtual   ~AliTriggerRunScalers();
   //  Getters
                   Short_t    GetVersion()          const { return fVersion;       }            
                   ULong_t    GetRunNumber()        const { return fRunNumber;     }
                   UChar_t    GetNumClasses()       const { return fnClasses;      }
                    Char_t    GetClass( Int_t i )   const { return fClassIndex[i]; }
-                TObjArray*   GetScalersRecords()   { return &fScalersRecord; } 
-  AliTriggerScalersRecord*   GetScalersRecord( Int_t index )         
-                                                { return (AliTriggerScalersRecord*)fScalersRecord.At(index); }
-                    Int_t    FindNearestScalersRecord( AliTimeStamp * stamp );
-        
+          const TObjArray*   GetScalersRecords()   const { return &fScalersRecord; } 
+          const TObjArray*   GetScalersRecordsESD()   const { return &fScalersRecordESD; } 
+  AliTriggerScalersRecord*   GetScalersRecord( Int_t index ) const { return (AliTriggerScalersRecord*)fScalersRecord.At(index); }
+                    Int_t    FindNearestScalersRecord( const AliTimeStamp *stamp ) const;
+     AliTriggerScalersESD*   GetScalersForEventClass(const AliTimeStamp* stamp,const Int_t classIndex) const;
+     const AliTriggerScalersRecordESD*   GetScalersDeltaForEvent(const AliTimeStamp* stamp) const;
+     const AliTriggerScalersRecordESD*   GetScalersDeltaForRun() const;
+
+ // Analysis               
+                    Int_t    ConsistencyCheck(Int_t position,Bool_t correctOverflow, UInt_t** overflow);
+                   Int_t    CorrectScalersOverflow();
+                   Int_t    CheckRunScalers(){return (fScalersRecord.GetEntriesFast()==fScalersRecordESD.GetEntriesFast());}
   //  Setters
                      void    SetVersion( Short_t ver )       { fVersion = ver;   }            
                      void    SetRunNumber( ULong_t run )     { fRunNumber = run; }
@@ -43,10 +52,29 @@ public:
                      void    SetClass( UChar_t i, UChar_t index ) { fClassIndex[i]=index; }
                      void    AddTriggerScalers( AliTriggerScalersRecord* scal );
              virtual void    Print( const Option_t* opt ="" ) const;
-
+     AliTriggerRunScalers( const AliTriggerRunScalers &run );
+     AliTriggerRunScalers&    operator=(const AliTriggerRunScalers& run);
                                         
- static AliTriggerRunScalers*  ReadScalers( TString & filename );
-                                      
+static AliTriggerRunScalers* ReadScalers( TString & filename );
+         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.);
+         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.);
+          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.*/);
+         /*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.);*/
+         static ULong64_t    GetDeltaScaler(const AliTriggerScalersRecordESD* scalRec1, const AliTriggerScalersRecordESD* scalRec2, Int_t classIndex, Int_t level);
+         static Double_t    GetDeltaTime(const AliTriggerScalersRecordESD* scalRec1, const AliTriggerScalersRecordESD* scalRec2);
+         static UInt_t    GetDeltaOrbits(const AliTriggerScalersRecordESD* scalRec1, const AliTriggerScalersRecordESD* scalRec2);
+         static Double_t    GetScalerRate(const AliTriggerScalersRecordESD* scalRec1, const AliTriggerScalersRecordESD* scalRec2, Int_t classIndex, Int_t level);
+         static Double_t    GetScalerRateError(const AliTriggerScalersRecordESD* scalRec1, const AliTriggerScalersRecordESD* scalRec2, Int_t classIndex, Int_t level);
+         static Double_t    GetClassL2L0(const AliTriggerScalersRecordESD* scalRec1, const AliTriggerScalersRecordESD* scalRec2, Int_t classIndex);
+         static Double_t    GetClassL2L0Error(const AliTriggerScalersRecordESD* scalRec1, const AliTriggerScalersRecordESD* scalRec2, Int_t classIndex);
+          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.*/);
+               ULong64_t    GetDeltaScalerForRun(Int_t classIndex, Int_t level);
+                Double_t    GetScalerRateForRun(Int_t classIndex, Int_t level);
+                Double_t    GetClassL2L0ForRun(Int_t classIndex);
+             TGraphErrors*   GetGraphScalerRate(const char* className, Int_t level, AliTriggerConfiguration* cfg);
+             TGraphErrors*   GetGraphScalerL2L0Ratio(const char* className, AliTriggerConfiguration* cfg);
+             TGraphErrors*   GetGraphMu(AliTriggerConfiguration* cfg, Bool_t colBCsFromFillScheme=kTRUE, Bool_t bkgCorr=kTRUE, Double_t triggerEff=1./*, Double_t errorEff=0.*/);
+
 
 private:
                   Short_t    fVersion;            // Version
@@ -54,11 +82,11 @@ private:
                   UChar_t    fnClasses;           // Number of trigger classes
                   TArrayC    fClassIndex;         // list of classes used in this partition
                 TObjArray    fScalersRecord;      // Array of records (AliTriggerScalersRecord)
+                TObjArray    fScalersRecordESD;   // Array of records with 64bit scalers (AliTriggerScalersRecordESD)
+
     
-                        //     AliTriggerRunScalers( const AliTriggerRunScalers &run );
-    AliTriggerRunScalers&    operator=(const AliTriggerRunScalers& run);
 
-   ClassDef( AliTriggerRunScalers, 1 )  // Define a Run Trigger Scalers (Scalers)
+   ClassDef( AliTriggerRunScalers, 4 )  // Define a Run Trigger Scalers (Scalers)
 };
 
 #endif