]>
Commit | Line | Data |
---|---|---|
6214ec0c | 1 | #ifndef ALIANALYSISTASKCOMPAREAODTRACKCUTS_H |
2 | #define ALIANALYSISTASKCOMPAREAODTRACKCUTS_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 | class AliAnalysisTaskCompareAODTrackCuts : public AliAnalysisTaskSE { | |
8 | ||
9 | // Basic AnalysisTask Functions. | |
10 | public: | |
11 | AliAnalysisTaskCompareAODTrackCuts(); | |
12 | AliAnalysisTaskCompareAODTrackCuts(const char* name); | |
13 | virtual ~AliAnalysisTaskCompareAODTrackCuts(); | |
14 | ||
15 | private: | |
16 | AliAnalysisTaskCompareAODTrackCuts(const AliAnalysisTaskCompareAODTrackCuts&); | |
17 | AliAnalysisTaskCompareAODTrackCuts& operator=(const AliAnalysisTaskCompareAODTrackCuts&); | |
18 | ||
19 | public: | |
20 | virtual void UserCreateOutputObjects(); | |
21 | virtual void UserExec(Option_t*); | |
22 | virtual void Terminate(Option_t*); | |
23 | ||
24 | // Mismatch related functions. | |
69868b6b | 25 | Bool_t LoadExternalMismatchHistos(Int_t /*mismatchmethod*/); // For each mismatch method, external histo's are needed. |
26 | Double_t GenerateRandomHit(Int_t /*mismatchmethod*/, Double_t eta); // Generates a random time for a certain eta. | |
6214ec0c | 27 | |
28 | // Run over MC or not. | |
29 | void SetMC(Bool_t isMC = kTRUE) {fIsMC = isMC;} | |
30 | void SetVerbose(Bool_t verbose = kTRUE) {fVerbose = verbose;} | |
31 | void SetCalculateTOFMismatch(Bool_t calculatetofmismatch = kTRUE, Int_t method = 0) { | |
32 | fCalculateTOFMismatch = calculatetofmismatch; | |
33 | fMismatchMethod = method; // 0 = Roberto's method, 1 - From the inclusive times. | |
34 | } | |
35 | ||
36 | // Managing Event Cuts. | |
37 | void SetEventCuts(AliAODEventCutsDiHadronPID* eventcuts) { | |
38 | if (!eventcuts) { | |
39 | cout<<"ERROR: No Event Cuts Object"<<endl; | |
40 | return; | |
41 | } | |
42 | fEventCuts = eventcuts; | |
43 | } | |
44 | ||
45 | // Managing Track Cuts. | |
46 | void AddTrackCuts(AliAODTrackCutsDiHadronPID* trackcuts) { | |
47 | ||
48 | if (!trackcuts) return; | |
49 | if (!fTrackCuts) { | |
50 | cout<<"ERROR: No Track Cuts array available! Check your constructor."<<endl; | |
51 | return; | |
52 | } | |
53 | ||
54 | fTrackCuts->AddLast(trackcuts); | |
55 | } | |
56 | ||
57 | private: | |
58 | void FillGlobalTracksArray(); | |
59 | AliAODTrack* GetGlobalTrack(AliAODTrack* track); | |
60 | ||
61 | private: | |
62 | ||
63 | // PID Response Object. | |
64 | AliPIDResponse* fPIDResponse; //! PID Response. | |
65 | ||
66 | // Output List. | |
67 | TList* fOutputList; //! Output List. | |
68 | ||
69 | // Settings (streamed!). | |
70 | Bool_t fIsMC; // ran over MC or not. | |
71 | Bool_t fVerbose; // Verbose mode. | |
72 | Bool_t fCalculateTOFMismatch; // Compute mismatch or not. (Needs input histograms!) | |
73 | Int_t fMismatchMethod; // 0 - Roberto's method, 1 - From inclusive times. | |
74 | ||
75 | // Event Cut Object (streamed!). | |
76 | AliAODEventCutsDiHadronPID* fEventCuts; // Event Cuts. | |
77 | ||
78 | // Array of Track Cut Objects (streamed!). | |
79 | TObjArray* fTrackCuts; // TObjArray with all Track Cut Objects. | |
80 | ||
81 | // Inclusive track times. | |
82 | TH2F* fInclusiveTimes; //! | |
83 | ||
69868b6b | 84 | // TOF mismatch stuff. |
85 | TH1F* fT0Fill; // | |
86 | TH2F* fLvsEta; // | |
87 | TObjArray* fLvsEtaProjections; // | |
6214ec0c | 88 | |
89 | ||
90 | // Event and Track related objects. | |
91 | AliAODEvent* fCurrentAODEvent; //! | |
92 | AliAODTrack* fCurrentAODTrack; //! | |
93 | AliTrackDiHadronPID* fCurrentDiHadronPIDTrack; //! | |
94 | TObjArray* fGlobalTracksArray; //! Array of Global Tracks. | |
95 | ||
96 | ClassDef(AliAnalysisTaskCompareAODTrackCuts,1); | |
97 | ||
98 | }; | |
99 | ||
a6ddcd76 | 100 | #endif |