1 #ifndef ALIANALYSISTASKTRIGGERSTUDY_H
2 #define ALIANALYSISTASKTRIGGERSTUDY_H
4 #include "AliAnalysisTaskSE.h"
6 //-------------------------------------------------------------------------
7 // AliAnalysisTaskTriggerStudy
12 // Author: Michele Floris, CERN
13 //-------------------------------------------------------------------------
17 class AliESDtrackCuts;
18 class AliHistoListWrapper;
19 class AliTriggerAnalysis;
20 class AliAnalysisTaskTriggerStudy : public AliAnalysisTaskSE {
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
31 enum {kVDV0ANDOnline,kVDV0ANDOffline,kVDPhysSel, kVDRecCandle, kVDGenCandle, kNVDEntries};// Venn diagram for Federico, 7 teV
33 AliAnalysisTaskTriggerStudy();
34 AliAnalysisTaskTriggerStudy(const char * name);
35 AliAnalysisTaskTriggerStudy(const AliAnalysisTaskTriggerStudy& obj) ;
36 ~AliAnalysisTaskTriggerStudy();
38 void SetIsMC(Bool_t flag=kTRUE) { fIsMC = flag;}
39 AliHistoListWrapper * GetHistoList() { return fHistoList;}
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) ;
53 void SetNTrackletsCut(Int_t cut){ fNTrackletsCut = cut;}
54 void SetNTrackletsCutKine(Int_t cut){ fNTrackletsCutKine = cut;}
55 void SetRejectBGWithV0(Bool_t flag) { fRejectBGWithV0 = flag;}
58 virtual void UserCreateOutputObjects();
59 virtual void UserExec(Option_t *option);
60 virtual void Terminate(Option_t *);
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
71 AliTriggerAnalysis * fTriggerAnalysis; // trigger analysis object, to get the offline triggers
72 TString fHistoSuffix; // suffix appended to all histos, set in the user exec.
74 Int_t fNTrackletsCut; // max number of tracklets
75 Int_t fNTrackletsCutKine; // max number of tracklets (only for kinematic distributions)
77 Bool_t fRejectBGWithV0; // Reject the BG with the V0
79 static const char * kVDNames[]; // names of the venn hist
80 AliAnalysisTaskTriggerStudy& operator=(const AliAnalysisTaskTriggerStudy& task);
82 ClassDef(AliAnalysisTaskTriggerStudy, 2)