]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AliTriggerRunScalers.h
Update (Chiara Z)
[u/mrichter/AliRoot.git] / STEER / AliTriggerRunScalers.h
CommitLineData
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//////////////////////////////////////////////////////////////////////////////
16class TObject;
7f66b913 17class TGraphErrors;
d7dd8a54 18class AliTimeStamp;
6441c2a8 19class AliTriggerScalersESD;
d7dd8a54 20class AliTriggerScalersRecord;
6441c2a8 21class AliTriggerScalersRecordESD;
7f66b913 22class AliTriggerConfiguration;
d7dd8a54 23
24#include "TArrayC.h"
25
26class AliTriggerRunScalers : public TObject {
27
28public:
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 58static 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 79private:
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