]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/muondep/AliAnalysisTaskPileup.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWG / muondep / AliAnalysisTaskPileup.h
1 #ifndef ALIANALYSISTASKPILEUP_H
2 #define ALIANALYSISTASKPILEUP_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */ 
7
8 /// \ingroup muondep
9 /// \class AliAnalysisTaskPileup
10 /// \brief Trigger scaler analysis for pileup corrections
11 /// Based on the work by L. Aphecetche - SUBATECH Nantes
12 //Author: Diego Stocco - SUBATECH Nantes
13
14 //#define READOCDB
15
16 #include "AliAnalysisTaskSE.h"
17
18 class TObjArray;
19 class TString;
20 class TArrayI;
21 class AliCounterCollection;
22 class TAxis;
23
24 #ifdef READOCDB
25 class AliTriggerRunScalers;
26 #endif
27
28 class AliAnalysisTaskPileup : public AliAnalysisTaskSE {
29 public:
30   
31   AliAnalysisTaskPileup();
32   AliAnalysisTaskPileup(const char *name);
33   virtual ~AliAnalysisTaskPileup();
34   
35   virtual void   UserCreateOutputObjects();
36   virtual void   UserExec(Option_t *);
37   virtual void   Terminate(Option_t *);
38   virtual void   NotifyRun();
39
40   void SetDefaultStorage(TString dbString);
41   void SetSpecificStorage(TString calibType, TString dbString);
42   
43 private:
44   
45   /// Not implemented
46   AliAnalysisTaskPileup(const AliAnalysisTaskPileup& rhs);
47   /// Not implemented
48   AliAnalysisTaskPileup& operator = (const AliAnalysisTaskPileup& rhs);
49
50   Double_t GetL0Correction(Double_t nCINT1B, Double_t nCBEAMB);
51
52   enum {
53     kHevents,  /// Number of events histogram
54     kHeventsCorrectL0, /// Number of L0 corrected events histogram
55     kNeventHistos  /// Number of trigger histograms
56   };
57
58   AliCounterCollection* fEventCounters; //!< Event statistics
59   TObjArray* fHistoEventsList;   //!< List of event histograms
60
61   TObjArray* fTriggerClasses; //!< full trigger class name
62   TArrayI* fTriggerClassIndex;  //!< Trigger classes mask
63
64   Bool_t fIsInitCDB; //!< Flag telling if CDB is used
65   TAxis* fCentralityClasses; //!< Centrality classes
66
67   // In principle it is used only when READOCDB is defined
68   // but if it is defined in the #if condition, it is not
69   // correctly streamed to file (not good for plugin)
70   TString fStorageList; /// List of storages
71
72 #if defined(READOCDB)
73   AliTriggerRunScalers* fTriggerRunScalers; //!< Trigger scalers from OCDB
74 #endif
75
76   ClassDef(AliAnalysisTaskPileup, 1);
77 };
78
79 #endif
80