ROOT logo
#ifndef ALIANALYSISTASKCOUNTER_H
#define ALIANALYSISTASKCOUNTER_H

//_________________________________________________________________________
//
// Count events with different selections
//
// Author: Gustavo Conesa Balbastre (LPSC)
//
//_________________________________________________________________________

class TH1F;
class TList;
class AliESDtrackCuts;
//class AliTriggerAnalysis;

#include "AliAnalysisTaskSE.h"

class AliAnalysisTaskCounter : public AliAnalysisTaskSE { 
  
 public:  
  AliAnalysisTaskCounter();  
  AliAnalysisTaskCounter(const char *name);  
  virtual ~AliAnalysisTaskCounter() ;
  
  virtual void   UserCreateOutputObjects();
  
  virtual void   UserExec(Option_t *option);
  
  virtual void   FinishTaskOutput();
  
  virtual Bool_t Notify();
  
  static  Bool_t PythiaInfoFromFile(TString currFile, Float_t & xsec, Float_t & trials) ;

  void           SetTrackMultiplicityEtaCut(Float_t eta) { fTrackMultEtaCut   = eta    ; }
  void           SetZVertexCut(Float_t vcut)             { fZVertexCut        = vcut   ; }
  
  void           AcceptFastCluster()                     { fAcceptFastCluster = kTRUE  ; }
  void           RejectFastCluster()                     { fAcceptFastCluster = kFALSE ; }
  Bool_t         IsFastClusterAccepted()       const     { return fAcceptFastCluster   ; }
  
  Bool_t         CheckForPrimaryVertex() ;

  void           SwitchOnMCCrossSectionCalculation()     { fCheckMCCrossSection = kTRUE  ; }
  void           SwitchOffMCCrossSectionCalculation()    { fCheckMCCrossSection = kFALSE ; }
  
 private:
  
  Bool_t               fAcceptFastCluster; // Accept events from fast cluster, exclude thiese events for LHC11a
  Float_t              fZVertexCut;        // Z vertex cut  
  Float_t              fTrackMultEtaCut;   // Track multiplicity eta cut  
  Float_t              fAvgTrials;         // avg trials
  TList*               fOutputContainer;   //! Histogram container  
  AliESDtrackCuts    * fESDtrackCuts;      // Track cut    
  //AliTriggerAnalysis * fTriggerAnalysis;   // Trigger algorithm
  TString              fCurrFileName;      // current file path name
  Bool_t               fCheckMCCrossSection; // retrieve from the pyxsec.root file only if requested
  
  //Histograms
  TH1I *  fhNEvents;      //! Events that delivers the analysis frame after different assumptions  
  TH1F *  fhXVertex;      //! X Vertex distribution
  TH1F *  fhYVertex;      //! Y Vertex distribution
  TH1F *  fhZVertex;      //! Z Vertex distribution
  TH1F *  fhXGoodVertex;  //! X Vertex good distribution
  TH1F *  fhYGoodVertex;  //! Y Vertex good distribution
  TH1F *  fhZGoodVertex;  //! Z Vertex good distribution  
  TH1F *  fhCentrality;   //! centrality
  TH1F *  fhEventPlaneAngle; //! Histogram with Event plane angle

  TH1F *  fh1Xsec ;                       //! Xsec pythia
  TH1F *  fh1Trials ;                     //! trials pythia
  
  AliAnalysisTaskCounter(           const AliAnalysisTaskCounter&); // not implemented  
  AliAnalysisTaskCounter& operator=(const AliAnalysisTaskCounter&); // not implemented
  
  ClassDef(AliAnalysisTaskCounter, 6);

};

#endif //ALIANALYSISTASKCOUNTER_H
 AliAnalysisTaskCounter.h:1
 AliAnalysisTaskCounter.h:2
 AliAnalysisTaskCounter.h:3
 AliAnalysisTaskCounter.h:4
 AliAnalysisTaskCounter.h:5
 AliAnalysisTaskCounter.h:6
 AliAnalysisTaskCounter.h:7
 AliAnalysisTaskCounter.h:8
 AliAnalysisTaskCounter.h:9
 AliAnalysisTaskCounter.h:10
 AliAnalysisTaskCounter.h:11
 AliAnalysisTaskCounter.h:12
 AliAnalysisTaskCounter.h:13
 AliAnalysisTaskCounter.h:14
 AliAnalysisTaskCounter.h:15
 AliAnalysisTaskCounter.h:16
 AliAnalysisTaskCounter.h:17
 AliAnalysisTaskCounter.h:18
 AliAnalysisTaskCounter.h:19
 AliAnalysisTaskCounter.h:20
 AliAnalysisTaskCounter.h:21
 AliAnalysisTaskCounter.h:22
 AliAnalysisTaskCounter.h:23
 AliAnalysisTaskCounter.h:24
 AliAnalysisTaskCounter.h:25
 AliAnalysisTaskCounter.h:26
 AliAnalysisTaskCounter.h:27
 AliAnalysisTaskCounter.h:28
 AliAnalysisTaskCounter.h:29
 AliAnalysisTaskCounter.h:30
 AliAnalysisTaskCounter.h:31
 AliAnalysisTaskCounter.h:32
 AliAnalysisTaskCounter.h:33
 AliAnalysisTaskCounter.h:34
 AliAnalysisTaskCounter.h:35
 AliAnalysisTaskCounter.h:36
 AliAnalysisTaskCounter.h:37
 AliAnalysisTaskCounter.h:38
 AliAnalysisTaskCounter.h:39
 AliAnalysisTaskCounter.h:40
 AliAnalysisTaskCounter.h:41
 AliAnalysisTaskCounter.h:42
 AliAnalysisTaskCounter.h:43
 AliAnalysisTaskCounter.h:44
 AliAnalysisTaskCounter.h:45
 AliAnalysisTaskCounter.h:46
 AliAnalysisTaskCounter.h:47
 AliAnalysisTaskCounter.h:48
 AliAnalysisTaskCounter.h:49
 AliAnalysisTaskCounter.h:50
 AliAnalysisTaskCounter.h:51
 AliAnalysisTaskCounter.h:52
 AliAnalysisTaskCounter.h:53
 AliAnalysisTaskCounter.h:54
 AliAnalysisTaskCounter.h:55
 AliAnalysisTaskCounter.h:56
 AliAnalysisTaskCounter.h:57
 AliAnalysisTaskCounter.h:58
 AliAnalysisTaskCounter.h:59
 AliAnalysisTaskCounter.h:60
 AliAnalysisTaskCounter.h:61
 AliAnalysisTaskCounter.h:62
 AliAnalysisTaskCounter.h:63
 AliAnalysisTaskCounter.h:64
 AliAnalysisTaskCounter.h:65
 AliAnalysisTaskCounter.h:66
 AliAnalysisTaskCounter.h:67
 AliAnalysisTaskCounter.h:68
 AliAnalysisTaskCounter.h:69
 AliAnalysisTaskCounter.h:70
 AliAnalysisTaskCounter.h:71
 AliAnalysisTaskCounter.h:72
 AliAnalysisTaskCounter.h:73
 AliAnalysisTaskCounter.h:74
 AliAnalysisTaskCounter.h:75
 AliAnalysisTaskCounter.h:76
 AliAnalysisTaskCounter.h:77
 AliAnalysisTaskCounter.h:78
 AliAnalysisTaskCounter.h:79
 AliAnalysisTaskCounter.h:80
 AliAnalysisTaskCounter.h:81