]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/CaloTrackCorrBase/AliAnalysisTaskCounter.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWG / CaloTrackCorrBase / AliAnalysisTaskCounter.h
1 #ifndef ALIANALYSISTASKCOUNTER_H
2 #define ALIANALYSISTASKCOUNTER_H
3
4 //_________________________________________________________________________
5 //
6 // Count events with different selections
7 //
8 // Author: Gustavo Conesa Balbastre (LPSC)
9 //
10 //_________________________________________________________________________
11
12 class TH1F;
13 class TList;
14 class AliESDtrackCuts;
15 //class AliTriggerAnalysis;
16
17 #include "AliAnalysisTaskSE.h"
18
19 class AliAnalysisTaskCounter : public AliAnalysisTaskSE { 
20   
21  public:  
22   AliAnalysisTaskCounter();  
23   AliAnalysisTaskCounter(const char *name);  
24   virtual ~AliAnalysisTaskCounter() ;
25   
26   virtual void   UserCreateOutputObjects();
27   
28   virtual void   UserExec(Option_t *option);
29   
30   virtual void   FinishTaskOutput();
31   
32   virtual Bool_t Notify();
33   
34   static  Bool_t PythiaInfoFromFile(TString currFile, Float_t & xsec, Float_t & trials) ;
35
36   void           SetTrackMultiplicityEtaCut(Float_t eta) { fTrackMultEtaCut   = eta    ; }
37   void           SetZVertexCut(Float_t vcut)             { fZVertexCut        = vcut   ; }
38   
39   void           AcceptFastCluster()                     { fAcceptFastCluster = kTRUE  ; }
40   void           RejectFastCluster()                     { fAcceptFastCluster = kFALSE ; }
41   Bool_t         IsFastClusterAccepted()       const     { return fAcceptFastCluster   ; }
42   
43   Bool_t         CheckForPrimaryVertex() ;
44
45   void           SwitchOnMCCrossSectionCalculation()     { fCheckMCCrossSection = kTRUE  ; }
46   void           SwitchOffMCCrossSectionCalculation()    { fCheckMCCrossSection = kFALSE ; }
47   
48  private:
49   
50   Bool_t               fAcceptFastCluster; // Accept events from fast cluster, exclude thiese events for LHC11a
51   Float_t              fZVertexCut;        // Z vertex cut  
52   Float_t              fTrackMultEtaCut;   // Track multiplicity eta cut  
53   Float_t              fAvgTrials;         // avg trials
54   TList*               fOutputContainer;   //! Histogram container  
55   AliESDtrackCuts    * fESDtrackCuts;      // Track cut    
56   //AliTriggerAnalysis * fTriggerAnalysis;   // Trigger algorithm
57   TString              fCurrFileName;      // current file path name
58   Bool_t               fCheckMCCrossSection; // retrieve from the pyxsec.root file only if requested
59   
60   //Histograms
61   TH1I *  fhNEvents;      //! Events that delivers the analysis frame after different assumptions  
62   TH1F *  fhXVertex;      //! X Vertex distribution
63   TH1F *  fhYVertex;      //! Y Vertex distribution
64   TH1F *  fhZVertex;      //! Z Vertex distribution
65   TH1F *  fhXGoodVertex;  //! X Vertex good distribution
66   TH1F *  fhYGoodVertex;  //! Y Vertex good distribution
67   TH1F *  fhZGoodVertex;  //! Z Vertex good distribution  
68   TH1F *  fhCentrality;   //! centrality
69   TH1F *  fhEventPlaneAngle; //! Histogram with Event plane angle
70
71   TH1F *  fh1Xsec ;                       //! Xsec pythia
72   TH1F *  fh1Trials ;                     //! trials pythia
73   
74   AliAnalysisTaskCounter(           const AliAnalysisTaskCounter&); // not implemented  
75   AliAnalysisTaskCounter& operator=(const AliAnalysisTaskCounter&); // not implemented
76   
77   ClassDef(AliAnalysisTaskCounter, 6);
78
79 };
80
81 #endif //ALIANALYSISTASKCOUNTER_H