]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/Correlations/DPhi/DiHadronPID/AliAnalysisTaskDiHadronPID.h
minor changes for DiHadronPID code (Misha Veldhoen <Misha.Veldhoen@cern.ch>)
[u/mrichter/AliRoot.git] / PWGCF / Correlations / DPhi / DiHadronPID / AliAnalysisTaskDiHadronPID.h
1 #ifndef ALIANALYSYSTASKDIHADRONPID_H
2 #define ALIANALYSYSTASKDIHADRONPID_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * 
4 * See cxx source for full Copyright notice */ 
5 /* $Id$ */
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
22 private:
23         AliAnalysisTaskDiHadronPID(const AliAnalysisTaskDiHadronPID&);
24         AliAnalysisTaskDiHadronPID& operator=(const AliAnalysisTaskDiHadronPID&);
25
26 public:
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.
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;}
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;}
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;}
56         Bool_t GetMixEvents() const {return fMixEvents;}
57         Bool_t GetMixTriggers() const {return fMixTriggers;}
58         Int_t GetDebugLevel() const {return fDebug;}    
59
60 private:
61         //void FillGlobalTracksArray();
62         Bool_t LoadExtMismatchHistos();
63         Double_t GenerateRandomHit(Double_t eta);
64         void PrintPoolManagerContents();
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;                                      // 
107         Bool_t                                                  fMixEvents;                                     // NOT YET IMPLEMENTED.
108         Bool_t                                                  fMixTriggers;                           // If true, triggers are mixed, if not true, associateds are mixed.
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