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 */
7 #include "AliAnalysisTaskSE.h"
8 #include "AliEventPoolManager.h"
9 #include "AliAODTrackCutsDiHadronPID.h"
10 #include "AliAODEventCutsDiHadronPID.h"
11 #include "TObjArray.h"
14 class AliAnalysisTaskDiHadronPID : public AliAnalysisTaskSE {
17 // Constructors/Destructors.
18 AliAnalysisTaskDiHadronPID();
19 AliAnalysisTaskDiHadronPID(const char* name);
20 virtual ~AliAnalysisTaskDiHadronPID();
23 AliAnalysisTaskDiHadronPID(const AliAnalysisTaskDiHadronPID&);
24 AliAnalysisTaskDiHadronPID& operator=(const AliAnalysisTaskDiHadronPID&);
27 // Methods from AliAnalysisTaskSE.
28 void UserCreateOutputObjects();
30 void UserExec(Option_t*);
31 void Terminate(Option_t*);
33 // Are all cut objects provided to the task?
34 Bool_t ReadyToStart() const {return (fEventCuts && fTrackCutsTrigger && fTrackCutsAssociated);}
37 void SetEventCuts(AliAODEventCutsDiHadronPID* eventcuts) {fEventCuts = eventcuts;}
38 void SetTrackCutsTrigger(AliAODTrackCutsDiHadronPID* trackcuts) {fTrackCutsTrigger = trackcuts;}
39 void SetTrackCutsAssociated(AliAODTrackCutsDiHadronPID* trackcuts) {fTrackCutsAssociated = trackcuts;}
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;}
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;}
61 //void FillGlobalTracksArray();
62 Bool_t LoadExtMismatchHistos();
63 Double_t GenerateRandomHit(Double_t eta);
64 void PrintPoolManagerContents();
68 // PID Response Object.
69 AliPIDResponse* fPIDResponse; //! PID Response.
72 AliAODEventCutsDiHadronPID* fEventCuts; //
75 AliAODTrackCutsDiHadronPID* fTrackCutsTrigger; //
76 AliAODTrackCutsDiHadronPID* fTrackCutsAssociated; //
78 // Event Pool Manager.
79 AliEventPoolManager* fPoolMgr; //! Event pool manager.
82 TObjArray* fTriggerTracks; //!
83 TObjArray* fAssociatedTracks; //!
84 // TObjArray* fGlobalTracksArray;
87 AliAODEvent* fCurrentAODEvent; //! Current AOD Event.
90 TList* fOutputList; //! Output List.
93 TH1F* fPtSpectrum; //! Pt Spectrum.
94 TH3F* fCorrelations; //! Correlations Histogram.
95 TH3F* fMixedEvents; //! Mixed Events Histogram.
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.
104 Int_t fMinNEventsForMixing; // Pool needs at least this many events for mixing.
105 Int_t fPoolTrackDepth; // For the pool.
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; //
111 // TOF mismatch stuff.
114 TObjArray* fLvsEtaProjections; //
117 Int_t fDebug; // Debug flag.
119 ClassDef(AliAnalysisTaskDiHadronPID,2);