]>
Commit | Line | Data |
---|---|---|
6788af99 | 1 | #ifndef ALIANALYSYSTASKDIHADRONPID_H |
2 | #define ALIANALYSYSTASKDIHADRONPID_H | |
97724bd1 | 3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
4 | * See cxx source for full Copyright notice */ | |
5 | /* $Id$ */ | |
6788af99 | 6 | |
7 | #include "AliAnalysisTaskSE.h" | |
8 | #include "AliEventPoolManager.h" | |
9 | #include "AliAODTrackCutsDiHadronPID.h" | |
10 | #include "AliAODEventCutsDiHadronPID.h" | |
11 | #include "TObjArray.h" | |
12 | #include "THn.h" | |
13 | ||
14 | class AliAnalysisTaskDiHadronPID : public AliAnalysisTaskSE { | |
15 | ||
16 | public: | |
17 | // Constructors/Destructors. | |
18 | AliAnalysisTaskDiHadronPID(); | |
19 | AliAnalysisTaskDiHadronPID(const char* name); | |
20 | virtual ~AliAnalysisTaskDiHadronPID(); | |
21 | ||
f054df96 | 22 | private: |
23 | AliAnalysisTaskDiHadronPID(const AliAnalysisTaskDiHadronPID&); | |
24 | AliAnalysisTaskDiHadronPID& operator=(const AliAnalysisTaskDiHadronPID&); | |
25 | ||
26 | public: | |
6788af99 | 27 | // Methods from AliAnalysisTaskSE. |
28 | void UserCreateOutputObjects(); | |
29 | void LocalInit(); | |
30 | void UserExec(Option_t*); | |
31 | void Terminate(Option_t*); | |
32 | ||
33 | // Are all cut objects provided to the task? | |
34 | Bool_t ReadyToStart() const {return (fEventCuts && fTrackCutsTrigger && fTrackCutsAssociated);} | |
35 | ||
36 | // Setters. | |
6788af99 | 37 | void SetEventCuts(AliAODEventCutsDiHadronPID* eventcuts) {fEventCuts = eventcuts;} |
38 | void SetTrackCutsTrigger(AliAODTrackCutsDiHadronPID* trackcuts) {fTrackCutsTrigger = trackcuts;} | |
39 | void SetTrackCutsAssociated(AliAODTrackCutsDiHadronPID* trackcuts) {fTrackCutsAssociated = trackcuts;} | |
40 | ||
41 | void SetNDEtaBins(Int_t nbins) {fNDEtaBins = nbins;} | |
42 | void SetNDPhiBins(Int_t nbins) {fNDPhiBins = nbins;} | |
43 | void SetMinEventsForMixing(Int_t nevents) {fMinNEventsForMixing = nevents;} | |
44 | void SetPoolTrackDepth(Int_t trackdepth) {fPoolTrackDepth = trackdepth;} | |
45 | void SetPoolSize(Int_t poolsize) {fPoolSize = poolsize;} | |
50dfda71 | 46 | void SetMixEvents(Bool_t mixevents = kTRUE) {fMixEvents = mixevents;} |
47 | void SetMixTriggers(Bool_t mixtriggers = kTRUE) {fMixTriggers = mixtriggers;} | |
48 | void SetDebugLevel(Int_t debuglevel) {fDebug = debuglevel;} | |
6788af99 | 49 | |
50 | // Getters. | |
51 | Int_t GetNDEtaBins() const {return fNDEtaBins;} | |
52 | Int_t GetNDPhiBins() const {return fNDPhiBins;} | |
53 | Int_t GetMinEventsForMixing() const {return fMinNEventsForMixing;} | |
54 | Int_t GetPoolTrackDepth() const {return fPoolTrackDepth;} | |
55 | Int_t GetPoolSize() const {return fPoolSize;} | |
50dfda71 | 56 | Bool_t GetMixEvents() const {return fMixEvents;} |
57 | Bool_t GetMixTriggers() const {return fMixTriggers;} | |
6788af99 | 58 | Int_t GetDebugLevel() const {return fDebug;} |
59 | ||
60 | private: | |
61 | //void FillGlobalTracksArray(); | |
62 | Bool_t LoadExtMismatchHistos(); | |
63 | Double_t GenerateRandomHit(Double_t eta); | |
50dfda71 | 64 | void PrintPoolManagerContents(); |
6788af99 | 65 | |
66 | private: | |
67 | ||
68 | // PID Response Object. | |
69 | AliPIDResponse* fPIDResponse; //! PID Response. | |
70 | ||
71 | // Event Cuts Object. | |
72 | AliAODEventCutsDiHadronPID* fEventCuts; // | |
73 | ||
74 | // Track Cuts Object. | |
75 | AliAODTrackCutsDiHadronPID* fTrackCutsTrigger; // | |
76 | AliAODTrackCutsDiHadronPID* fTrackCutsAssociated; // | |
77 | ||
78 | // Event Pool Manager. | |
79 | AliEventPoolManager* fPoolMgr; //! Event pool manager. | |
80 | ||
81 | // Track Arrays. | |
82 | TObjArray* fTriggerTracks; //! | |
83 | TObjArray* fAssociatedTracks; //! | |
84 | // TObjArray* fGlobalTracksArray; | |
85 | ||
86 | // Current Event. | |
87 | AliAODEvent* fCurrentAODEvent; //! Current AOD Event. | |
88 | ||
89 | // Output List. | |
90 | TList* fOutputList; //! Output List. | |
91 | ||
92 | // Histograms. | |
93 | TH1F* fPtSpectrum; //! Pt Spectrum. | |
94 | TH3F* fCorrelations; //! Correlations Histogram. | |
95 | TH3F* fMixedEvents; //! Mixed Events Histogram. | |
96 | ||
97 | TObjArray* fTOFhistos; //! Array holding all correlation functions. | |
98 | THnF* fCorrelationsTOF[5][3]; //! Correlations with TOF info. | |
99 | THnF* fCorrelationsTOFTPC[5][3]; //! Correlations with TPC and TOF info. | |
100 | ||
101 | // Settings. | |
102 | Int_t fNDEtaBins; // | |
103 | Int_t fNDPhiBins; // | |
104 | Int_t fMinNEventsForMixing; // Pool needs at least this many events for mixing. | |
105 | Int_t fPoolTrackDepth; // For the pool. | |
106 | Int_t fPoolSize; // | |
50dfda71 | 107 | Bool_t fMixEvents; // NOT YET IMPLEMENTED. |
108 | Bool_t fMixTriggers; // If true, triggers are mixed, if not true, associateds are mixed. | |
6788af99 | 109 | Bool_t fCalculateTOFmismatch; // |
110 | ||
111 | // TOF mismatch stuff. | |
112 | TH1F* fT0Fill; // | |
113 | TH2F* fLvsEta; // | |
114 | TObjArray* fLvsEtaProjections; // | |
115 | ||
116 | // Flags. | |
117 | Int_t fDebug; // Debug flag. | |
118 | ||
119 | ClassDef(AliAnalysisTaskDiHadronPID,2); | |
120 | ||
121 | }; | |
122 | ||
123 | #endif |