]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/Correlations/DPhi/DiHadronPID/AliAnalysisTaskCompareAODTrackCuts.h
1) Fixed typo. 2) Added DCA histograms. (Misha Veldhoen <Misha.Veldhoen@cern.ch>)
[u/mrichter/AliRoot.git] / PWGCF / Correlations / DPhi / DiHadronPID / AliAnalysisTaskCompareAODTrackCuts.h
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.
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.
28
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.
35         }
36
37 // Managing Event Cuts.
38     void SetEventCuts(AliAODEventCutsDiHadronPID* eventcuts) {
39         if (!eventcuts) {
40                         cout<<"ERROR: No Event Cuts Object"<<endl;
41                 return;
42         }
43         fEventCuts = eventcuts;
44     }
45
46 // Managing Track Cuts.
47     void AddTrackCuts(AliAODTrackCutsDiHadronPID* trackcuts) {
48
49         if (!trackcuts) return;
50         if (!fTrackCuts) {
51                 cout<<"ERROR: No Track Cuts array available! Check your constructor."<<endl;
52                 return;
53         }
54
55         fTrackCuts->AddLast(trackcuts);
56     }
57
58 private:
59         void FillGlobalTracksArray();
60         AliAODTrack* GetGlobalTrack(AliAODTrack* track);
61
62 private:
63
64         // PID Response Object.
65         AliPIDResponse*                                 fPIDResponse;                           //! PID Response.
66
67         // Output List.
68         TList*                                                  fOutputList;                            //! Output List.
69
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.
75
76         // Event Cut Object (streamed!).
77         AliAODEventCutsDiHadronPID*             fEventCuts;                                     // Event Cuts.
78         
79         // Array of Track Cut Objects (streamed!).
80         TObjArray*                                              fTrackCuts;                                     // TObjArray with all Track Cut Objects.
81
82         // Inclusive track times.
83         TH2F*                                                   fInclusiveTimes;                        //!
84
85         // Histograms and files to be loaded for the mismatch calculation.                      
86         TFile*                                                  fExternalTOFfile;                       //!
87         TH2F*                                                   fInclusiveTimesIn;                      //!
88         TH1F*                                                   fInclusiveTimesInProj[100];     //!
89         TH1F*                                                   fT0Fill;                                        //!
90         TH2F*                                                   fLvsEta;                                        //!
91         TH1F*                                                   fLvsEtaProj[200];                       //!
92
93
94         // Event and Track related objects.
95         AliAODEvent*                                    fCurrentAODEvent;                       //!
96         AliAODTrack*                                    fCurrentAODTrack;                       //!
97         AliTrackDiHadronPID*                    fCurrentDiHadronPIDTrack;       //!
98         TObjArray*                                              fGlobalTracksArray;                     //! Array of Global Tracks.
99
100         ClassDef(AliAnalysisTaskCompareAODTrackCuts,1);
101
102 };
103
104 #endif