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 */
7 class AliAnalysisTaskCompareAODTrackCuts : public AliAnalysisTaskSE {
9 // Basic AnalysisTask Functions.
11 AliAnalysisTaskCompareAODTrackCuts();
12 AliAnalysisTaskCompareAODTrackCuts(const char* name);
13 virtual ~AliAnalysisTaskCompareAODTrackCuts();
16 AliAnalysisTaskCompareAODTrackCuts(const AliAnalysisTaskCompareAODTrackCuts&);
17 AliAnalysisTaskCompareAODTrackCuts& operator=(const AliAnalysisTaskCompareAODTrackCuts&);
20 virtual void UserCreateOutputObjects();
21 virtual void UserExec(Option_t*);
22 virtual void Terminate(Option_t*);
24 // Mismatch related functions.
25 Bool_t LoadExternalMismatchHistos(Int_t mismatchmethod); // For each mismatch method, external histo's are needed.
26 Bool_t UnLoadExternalMismatchHistos();
27 Double_t GenerateRandomHit(Int_t mismatchmethod, Double_t eta); // Generates a random time for a certain eta.
29 // Run over MC or not.
30 void SetMC(Bool_t isMC = kTRUE) {fIsMC = isMC;}
31 void SetVerbose(Bool_t verbose = kTRUE) {fVerbose = verbose;}
32 void SetCalculateTOFMismatch(Bool_t calculatetofmismatch = kTRUE, Int_t method = 0) {
33 fCalculateTOFMismatch = calculatetofmismatch;
34 fMismatchMethod = method; // 0 = Roberto's method, 1 - From the inclusive times.
37 // Managing Event Cuts.
38 void SetEventCuts(AliAODEventCutsDiHadronPID* eventcuts) {
40 cout<<"ERROR: No Event Cuts Object"<<endl;
43 fEventCuts = eventcuts;
46 // Managing Track Cuts.
47 void AddTrackCuts(AliAODTrackCutsDiHadronPID* trackcuts) {
49 if (!trackcuts) return;
51 cout<<"ERROR: No Track Cuts array available! Check your constructor."<<endl;
55 fTrackCuts->AddLast(trackcuts);
59 void FillGlobalTracksArray();
60 AliAODTrack* GetGlobalTrack(AliAODTrack* track);
64 // PID Response Object.
65 AliPIDResponse* fPIDResponse; //! PID Response.
68 TList* fOutputList; //! Output List.
70 // Settings (streamed!).
71 Bool_t fIsMC; // ran over MC or not.
72 Bool_t fVerbose; // Verbose mode.
73 Bool_t fCalculateTOFMismatch; // Compute mismatch or not. (Needs input histograms!)
74 Int_t fMismatchMethod; // 0 - Roberto's method, 1 - From inclusive times.
76 // Event Cut Object (streamed!).
77 AliAODEventCutsDiHadronPID* fEventCuts; // Event Cuts.
79 // Array of Track Cut Objects (streamed!).
80 TObjArray* fTrackCuts; // TObjArray with all Track Cut Objects.
82 // Inclusive track times.
83 TH2F* fInclusiveTimes; //!
85 // Histograms and files to be loaded for the mismatch calculation.
86 TFile* fExternalTOFfile; //!
87 TH2F* fInclusiveTimesIn; //!
88 TH1F* fInclusiveTimesInProj[100]; //!
91 TH1F* fLvsEtaProj[200]; //!
94 // Event and Track related objects.
95 AliAODEvent* fCurrentAODEvent; //!
96 AliAODTrack* fCurrentAODTrack; //!
97 AliTrackDiHadronPID* fCurrentDiHadronPIDTrack; //!
98 TObjArray* fGlobalTracksArray; //! Array of Global Tracks.
100 ClassDef(AliAnalysisTaskCompareAODTrackCuts,1);