Migrating PWG2/SPECTRA/Fit to new PWG structure
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / ChargedHadrons / multPbPb / AliAnalysisTaskTriggerStudy.h
1 #ifndef ALIANALYSISTASKTRIGGERSTUDY_H
2 #define ALIANALYSISTASKTRIGGERSTUDY_H
3
4 #include "AliAnalysisTaskSE.h"
5
6 //-------------------------------------------------------------------------
7 //                      AliAnalysisTaskTriggerStudy
8 // 
9 // 
10 //
11 //
12 // Author: Michele Floris, CERN
13 //-------------------------------------------------------------------------
14
15
16 class AliESDEvent;
17 class AliESDtrackCuts;
18 class AliHistoListWrapper;
19 class AliTriggerAnalysis;
20 class AliAnalysisTaskTriggerStudy : public AliAnalysisTaskSE {
21
22   // offline trigger enum
23   enum {kC0MBS1,kC0MBS2,kC0MBS3,kC0MBS4,kC0MBS5,kC0VBA,kC0VBC,kC0OM2,kCO0M3};
24   // enum for triggers to be included in the venn-like histogram
25   //  enum {kVDC0MBS1,kVDC0MBS2,kVDC0VBA,kVDC0VBC,kVDC0OM2,kNVDEntries};
26   //  enum {kVDC0MBS1,kVDC0MBS2,kVDC0VBA,kVDC0VBC,kNVDEntries};
27   //  enum {kVDV0AND,kVDV0OR,kVDNTRACKS,kNVDEntries};// Venn diagram for Federico, 7 teV
28     
29 public:
30
31   enum {kVDV0ANDOnline,kVDV0ANDOffline,kVDPhysSel, kVDRecCandle, kVDGenCandle, kNVDEntries};// Venn diagram for Federico, 7 teV
32
33   AliAnalysisTaskTriggerStudy();
34   AliAnalysisTaskTriggerStudy(const char * name);
35   AliAnalysisTaskTriggerStudy(const AliAnalysisTaskTriggerStudy& obj) ;
36   ~AliAnalysisTaskTriggerStudy();
37
38   void SetIsMC(Bool_t flag=kTRUE) { fIsMC = flag;}
39   AliHistoListWrapper * GetHistoList() { return fHistoList;}
40
41
42   TH1 * GetHistoTracklets   (const char * name, const char * title);
43   TH1 * GetHistoPt(const char * name, const char * title);
44   TH1 * GetHistoEta(const char * name, const char * title);
45   TH1 * GetHistoV0M(const char * name, const char * title);
46   TH1 * GetHistoSPD1(const char * name, const char * title);
47   TH1 * GetHistoTracks(const char * name, const char * title);
48   TH1 * GetHistoCorrelationSPDTPCVz(const char * name, const char * title);
49   TH1 * GetHistoCorrelationContrTPCSPDCls  (const char * name, const char * title);
50   TH1 * GetHistoCorrelationTrackletsSPDCls (const char * name, const char * title);
51   void  FillTriggerOverlaps (const char * name, const char * title, Bool_t * vdArray) ;
52
53   void SetNTrackletsCut(Int_t cut){ fNTrackletsCut = cut;}
54   void SetNTrackletsCutKine(Int_t cut){ fNTrackletsCutKine = cut;}
55   void SetRejectBGWithV0(Bool_t flag) { fRejectBGWithV0 = flag;}
56
57
58   virtual void   UserCreateOutputObjects();
59   virtual void   UserExec(Option_t *option);
60   virtual void   Terminate(Option_t *);
61   
62   
63
64 private:
65
66   //
67   AliESDEvent *  fESD;    //! ESD object  AliVEvent*     fEvent;
68   AliHistoListWrapper  * fHistoList; // wrapper for the list, takes care of merging + histo booking and getters  
69   Bool_t fIsMC; // true if processing montecarlo
70
71   AliTriggerAnalysis * fTriggerAnalysis; // trigger analysis object, to get the offline triggers
72   TString fHistoSuffix; // suffix appended to all histos, set in the user exec.
73
74   Int_t fNTrackletsCut; // max number of tracklets
75   Int_t fNTrackletsCutKine; // max number of tracklets (only for kinematic distributions)
76
77   Bool_t fRejectBGWithV0; // Reject the BG with the V0
78
79   static const char * kVDNames[];       // names of the venn hist
80   AliAnalysisTaskTriggerStudy& operator=(const AliAnalysisTaskTriggerStudy& task);
81   
82   ClassDef(AliAnalysisTaskTriggerStudy, 2)
83
84
85 };
86
87 #endif