]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/totEt/AliAnalysisTaskHadEt.cxx
- memory leak fixed, created histograms were not deleted
[u/mrichter/AliRoot.git] / PWG4 / totEt / AliAnalysisTaskHadEt.cxx
1 //_________________________________________________________________________
2 //  Utility Class for transverse energy studies; charged hadrons
3 //  Task for analysis
4 //  - reconstruction and MC output
5 // implementation file
6 //
7 //Created by Christine Nattrass, Rebecca Scott, Irakli Martashvili
8 //University of Tennessee at Knoxville
9 //_________________________________________________________________________
10
11 #include "TChain.h"
12 #include "TList.h"
13 #include "TH2F.h"
14
15 #include "AliESDEvent.h"
16 #include "AliMCEvent.h"
17 #include "AliESDtrackCuts.h"
18
19 #include "AliAnalysisTaskHadEt.h"
20 #include "AliAnalysisHadEtReconstructed.h"
21 #include "AliAnalysisHadEtMonteCarlo.h"
22
23 #include <iostream>
24
25 using namespace std;
26
27 ClassImp(AliAnalysisTaskHadEt)
28
29
30
31 //________________________________________________________________________
32 AliAnalysisTaskHadEt::AliAnalysisTaskHadEt(const char *name) :
33         AliAnalysisTaskSE(name)
34         ,fOutputList(0)
35         ,fRecAnalysis(0)
36         ,fMCAnalysis(0)
37         ,fHistEtRecvsEtMC(0)
38         ,fEsdtrackCutsITSTPC(0)
39         ,fEsdtrackCutsTPC(0)
40         ,fEsdtrackCutsITS(0)
41 {
42     // Constructor
43
44     fMCAnalysis = new AliAnalysisHadEtMonteCarlo();
45     fMCAnalysis->Init();
46
47     fRecAnalysis = new AliAnalysisHadEtReconstructed();
48     fRecAnalysis->Init();
49
50     // Define input and output slots here
51     // Input slot #0 works with a TChain
52     DefineInput(0, TChain::Class());
53     // Output slot #1 writes into a TH1 container
54
55     DefineOutput(1, TList::Class());
56 }
57 AliAnalysisTaskHadEt::~AliAnalysisTaskHadEt(){//Destructor
58   fOutputList->Clear();
59   delete fOutputList;
60   delete fRecAnalysis;
61   delete fMCAnalysis;
62   delete fEsdtrackCutsITSTPC;
63   delete fEsdtrackCutsTPC;
64   delete fEsdtrackCutsITS;
65 }
66
67
68 //________________________________________________________________________
69 void AliAnalysisTaskHadEt::UserCreateOutputObjects()
70 {
71     // Create histograms
72     // Called once
73   fOutputList = new TList;
74   fOutputList->SetOwner();
75   fMCAnalysis->SetHistoList(fOutputList);
76   fRecAnalysis->SetHistoList(fOutputList);
77   fMCAnalysis->CreateHistograms();
78   fRecAnalysis->CreateHistograms();
79   fRecAnalysis->FillOutputList();
80   fMCAnalysis->FillOutputList();
81
82
83     Bool_t selectPrimaries=kTRUE;
84     fEsdtrackCutsITSTPC = AliESDtrackCuts::GetStandardITSTPCTrackCuts2009(selectPrimaries);
85     fEsdtrackCutsITSTPC->SetName("fEsdTrackCuts");
86     fEsdtrackCutsTPC = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
87     fEsdtrackCutsTPC->SetName("fEsdTrackCutsTPCOnly");
88     //ITS stand alone cuts - similar to 2009 cuts but with only ITS hits required
89     fEsdtrackCutsITS =  AliESDtrackCuts::GetStandardITSPureSATrackCuts2009(kTRUE,kFALSE);//we do want primaries but we do not want to require PID info
90     fEsdtrackCutsITS->SetName("fEsdTrackCutsITS");
91
92     fOutputList->Add(fEsdtrackCutsITSTPC);
93     fOutputList->Add(fEsdtrackCutsTPC);
94     fOutputList->Add(fEsdtrackCutsITS);
95     if(fEsdtrackCutsITSTPC && fEsdtrackCutsTPC){
96       fRecAnalysis->SetITSTrackCuts( GetITSTrackCuts());
97       fMCAnalysis->SetITSTrackCuts( GetITSTrackCuts());
98       fRecAnalysis->SetTPCITSTrackCuts( GetTPCITSTrackCuts());
99       fMCAnalysis->SetTPCITSTrackCuts( GetTPCITSTrackCuts());
100       fRecAnalysis->SetTPCOnlyTrackCuts( GetTPCOnlyTrackCuts());
101       fMCAnalysis->SetTPCOnlyTrackCuts( GetTPCOnlyTrackCuts());
102       //add ITS stuff!
103     }
104     else{
105       Printf("Error: no track cuts!");
106     }
107 }
108
109 //________________________________________________________________________
110 void AliAnalysisTaskHadEt::UserExec(Option_t *)
111 { // execute method
112   AliESDEvent *event = dynamic_cast<AliESDEvent*>(InputEvent());
113 if (!event) {
114   Printf("ERROR: Could not retrieve event");
115   return;
116  }
117 fRecAnalysis->AnalyseEvent(event);
118
119 AliMCEvent* mcEvent = MCEvent();
120 if (mcEvent)
121   {
122     ((AliAnalysisHadEtMonteCarlo*)fMCAnalysis)->AnalyseEvent((AliVEvent*)mcEvent,(AliVEvent*)event);
123     //cout<<"Simulated Hadronic Et "<<fMCAnalysis->GetSimulatedHadronicEt()<<" Reconstructed Hadronic Et "<<fRecAnalysis->GetCorrectedHadEtFullAcceptanceITS()<<endl;
124     //cout<<"Simulated Total Et "<<fMCAnalysis->GetSimulatedTotalEt()<<" Reconstructed Total Et "<<fRecAnalysis->GetCorrectedTotEtFullAcceptanceITS()<<endl;
125     fMCAnalysis->FillSimTotEtVsRecoTotEtFullAcceptanceTPC( fRecAnalysis->GetCorrectedTotEtFullAcceptanceTPC() );
126     fMCAnalysis->FillSimTotEtVsRecoTotEtFullAcceptanceITS( fRecAnalysis->GetCorrectedTotEtFullAcceptanceITS() );
127 //     fMCAnalysis->FillSimTotEtVsRecoTotEtEMCALAcceptanceTPC( fRecAnalysis->GetCorrectedTotEtEMCALAcceptanceTPC() );
128 //     fMCAnalysis->FillSimTotEtVsRecoTotEtEMCALAcceptanceITS( fRecAnalysis->GetCorrectedTotEtEMCALAcceptanceITS() );
129 //     fMCAnalysis->FillSimTotEtVsRecoTotEtPHOSAcceptanceTPC( fRecAnalysis->GetCorrectedTotEtPHOSAcceptanceTPC() );
130 //     fMCAnalysis->FillSimTotEtVsRecoTotEtPHOSAcceptanceITS( fRecAnalysis->GetCorrectedTotEtPHOSAcceptanceITS() );
131     fMCAnalysis->FillSimTotEtVsRecoTotEtFullAcceptanceTPCNoPID( fRecAnalysis->GetCorrectedTotEtFullAcceptanceTPCNoPID() );
132     fMCAnalysis->FillSimTotEtVsRecoTotEtFullAcceptanceITSNoPID( fRecAnalysis->GetCorrectedTotEtFullAcceptanceITSNoPID() );
133 //     fMCAnalysis->FillSimTotEtVsRecoTotEtEMCALAcceptanceTPCNoPID( fRecAnalysis->GetCorrectedTotEtEMCALAcceptanceTPCNoPID() );
134 //     fMCAnalysis->FillSimTotEtVsRecoTotEtEMCALAcceptanceITSNoPID( fRecAnalysis->GetCorrectedTotEtEMCALAcceptanceITSNoPID() );
135 //     fMCAnalysis->FillSimTotEtVsRecoTotEtPHOSAcceptanceTPCNoPID( fRecAnalysis->GetCorrectedTotEtPHOSAcceptanceTPCNoPID() );
136 //     fMCAnalysis->FillSimTotEtVsRecoTotEtPHOSAcceptanceITSNoPID( fRecAnalysis->GetCorrectedTotEtPHOSAcceptanceITSNoPID() );
137     fMCAnalysis->FillSimHadEtVsRecoHadEtFullAcceptanceTPC( fRecAnalysis->GetCorrectedHadEtFullAcceptanceTPC() );
138     fMCAnalysis->FillSimHadEtVsRecoHadEtFullAcceptanceITS( fRecAnalysis->GetCorrectedHadEtFullAcceptanceITS() );
139 //     fMCAnalysis->FillSimHadEtVsRecoHadEtEMCALAcceptanceTPC( fRecAnalysis->GetCorrectedHadEtEMCALAcceptanceTPC() );
140 //     fMCAnalysis->FillSimHadEtVsRecoHadEtEMCALAcceptanceITS( fRecAnalysis->GetCorrectedHadEtEMCALAcceptanceITS() );
141 //     fMCAnalysis->FillSimHadEtVsRecoHadEtPHOSAcceptanceTPC( fRecAnalysis->GetCorrectedHadEtPHOSAcceptanceTPC() );
142 //     fMCAnalysis->FillSimHadEtVsRecoHadEtPHOSAcceptanceITS( fRecAnalysis->GetCorrectedHadEtPHOSAcceptanceITS() );
143     fMCAnalysis->FillSimHadEtVsRecoHadEtFullAcceptanceTPCNoPID( fRecAnalysis->GetCorrectedHadEtFullAcceptanceTPCNoPID() );
144     fMCAnalysis->FillSimHadEtVsRecoHadEtFullAcceptanceITSNoPID( fRecAnalysis->GetCorrectedHadEtFullAcceptanceITSNoPID() );
145 //     fMCAnalysis->FillSimHadEtVsRecoHadEtEMCALAcceptanceTPCNoPID( fRecAnalysis->GetCorrectedHadEtEMCALAcceptanceTPCNoPID() );
146 //     fMCAnalysis->FillSimHadEtVsRecoHadEtEMCALAcceptanceITSNoPID( fRecAnalysis->GetCorrectedHadEtEMCALAcceptanceITSNoPID() );
147 //     fMCAnalysis->FillSimHadEtVsRecoHadEtPHOSAcceptanceTPCNoPID( fRecAnalysis->GetCorrectedHadEtPHOSAcceptanceTPCNoPID() );
148 //     fMCAnalysis->FillSimHadEtVsRecoHadEtPHOSAcceptanceITSNoPID( fRecAnalysis->GetCorrectedHadEtPHOSAcceptanceITSNoPID() );
149
150
151     fMCAnalysis->FillSimTotEtMinusRecoTotEtFullAcceptanceTPC( fRecAnalysis->GetCorrectedTotEtFullAcceptanceTPC() );
152     fMCAnalysis->FillSimTotEtMinusRecoTotEtFullAcceptanceITS( fRecAnalysis->GetCorrectedTotEtFullAcceptanceITS() );
153 //     fMCAnalysis->FillSimTotEtMinusRecoTotEtEMCALAcceptanceTPC( fRecAnalysis->GetCorrectedTotEtEMCALAcceptanceTPC() );
154 //     fMCAnalysis->FillSimTotEtMinusRecoTotEtEMCALAcceptanceITS( fRecAnalysis->GetCorrectedTotEtEMCALAcceptanceITS() );
155 //     fMCAnalysis->FillSimTotEtMinusRecoTotEtPHOSAcceptanceTPC( fRecAnalysis->GetCorrectedTotEtPHOSAcceptanceTPC() );
156 //     fMCAnalysis->FillSimTotEtMinusRecoTotEtPHOSAcceptanceITS( fRecAnalysis->GetCorrectedTotEtPHOSAcceptanceITS() );
157     fMCAnalysis->FillSimTotEtMinusRecoTotEtFullAcceptanceTPCNoPID( fRecAnalysis->GetCorrectedTotEtFullAcceptanceTPCNoPID() );
158     fMCAnalysis->FillSimTotEtMinusRecoTotEtFullAcceptanceITSNoPID( fRecAnalysis->GetCorrectedTotEtFullAcceptanceITSNoPID() );
159 //     fMCAnalysis->FillSimTotEtMinusRecoTotEtEMCALAcceptanceTPCNoPID( fRecAnalysis->GetCorrectedTotEtEMCALAcceptanceTPCNoPID() );
160 //     fMCAnalysis->FillSimTotEtMinusRecoTotEtEMCALAcceptanceITSNoPID( fRecAnalysis->GetCorrectedTotEtEMCALAcceptanceITSNoPID() );
161 //     fMCAnalysis->FillSimTotEtMinusRecoTotEtPHOSAcceptanceTPCNoPID( fRecAnalysis->GetCorrectedTotEtPHOSAcceptanceTPCNoPID() );
162 //     fMCAnalysis->FillSimTotEtMinusRecoTotEtPHOSAcceptanceITSNoPID( fRecAnalysis->GetCorrectedTotEtPHOSAcceptanceITSNoPID() );
163     fMCAnalysis->FillSimHadEtMinusRecoHadEtFullAcceptanceTPC( fRecAnalysis->GetCorrectedHadEtFullAcceptanceTPC() );
164     fMCAnalysis->FillSimHadEtMinusRecoHadEtFullAcceptanceITS( fRecAnalysis->GetCorrectedHadEtFullAcceptanceITS() );
165 //     fMCAnalysis->FillSimHadEtMinusRecoHadEtEMCALAcceptanceTPC( fRecAnalysis->GetCorrectedHadEtEMCALAcceptanceTPC() );
166 //     fMCAnalysis->FillSimHadEtMinusRecoHadEtEMCALAcceptanceITS( fRecAnalysis->GetCorrectedHadEtEMCALAcceptanceITS() );
167 //     fMCAnalysis->FillSimHadEtMinusRecoHadEtPHOSAcceptanceTPC( fRecAnalysis->GetCorrectedHadEtPHOSAcceptanceTPC() );
168 //     fMCAnalysis->FillSimHadEtMinusRecoHadEtPHOSAcceptanceITS( fRecAnalysis->GetCorrectedHadEtPHOSAcceptanceITS() );
169     fMCAnalysis->FillSimHadEtMinusRecoHadEtFullAcceptanceTPCNoPID( fRecAnalysis->GetCorrectedHadEtFullAcceptanceTPCNoPID() );
170     fMCAnalysis->FillSimHadEtMinusRecoHadEtFullAcceptanceITSNoPID( fRecAnalysis->GetCorrectedHadEtFullAcceptanceITSNoPID() );
171 //     fMCAnalysis->FillSimHadEtMinusRecoHadEtEMCALAcceptanceTPCNoPID( fRecAnalysis->GetCorrectedHadEtEMCALAcceptanceTPCNoPID() );
172 //     fMCAnalysis->FillSimHadEtMinusRecoHadEtEMCALAcceptanceITSNoPID( fRecAnalysis->GetCorrectedHadEtEMCALAcceptanceITSNoPID() );
173 //     fMCAnalysis->FillSimHadEtMinusRecoHadEtPHOSAcceptanceTPCNoPID( fRecAnalysis->GetCorrectedHadEtPHOSAcceptanceTPCNoPID() );
174 //     fMCAnalysis->FillSimHadEtMinusRecoHadEtPHOSAcceptanceITSNoPID( fRecAnalysis->GetCorrectedHadEtPHOSAcceptanceITSNoPID() );
175
176
177     fMCAnalysis->FillSimTotEtMinusRawEtFullAcceptanceTPC( fRecAnalysis->GetRawEtFullAcceptanceTPC() );
178     fMCAnalysis->FillSimTotEtMinusRawEtFullAcceptanceITS( fRecAnalysis->GetRawEtFullAcceptanceITS() );
179 //     fMCAnalysis->FillSimTotEtMinusRawTotEtEMCALAcceptanceTPC( fRecAnalysis->GetRawEtEMCALAcceptanceTPC() );
180 //     fMCAnalysis->FillSimTotEtMinusRawTotEtEMCALAcceptanceITS( fRecAnalysis->GetRawEtEMCALAcceptanceITS() );
181 //     fMCAnalysis->FillSimTotEtMinusRawTotEtPHOSAcceptanceTPC( fRecAnalysis->GetRawEtPHOSAcceptanceTPC() );
182 //     fMCAnalysis->FillSimTotEtMinusRawTotEtPHOSAcceptanceITS( fRecAnalysis->GetRawEtPHOSAcceptanceITS() );
183
184     fMCAnalysis->FillSimHadEtMinusRawEtFullAcceptanceTPC( fRecAnalysis->GetRawEtFullAcceptanceTPC() );
185     fMCAnalysis->FillSimHadEtMinusRawEtFullAcceptanceITS( fRecAnalysis->GetRawEtFullAcceptanceITS() );
186 //     fMCAnalysis->FillSimHadEtMinusRawHadEtEMCALAcceptanceTPC( fRecAnalysis->GetRawEtEMCALAcceptanceTPC() );
187 //     fMCAnalysis->FillSimHadEtMinusRawHadEtEMCALAcceptanceITS( fRecAnalysis->GetRawEtEMCALAcceptanceITS() );
188 //     fMCAnalysis->FillSimHadEtMinusRawHadEtPHOSAcceptanceTPC( fRecAnalysis->GetRawEtPHOSAcceptanceTPC() );
189 //     fMCAnalysis->FillSimHadEtMinusRawHadEtPHOSAcceptanceITS( fRecAnalysis->GetRawEtPHOSAcceptanceITS() );
190
191     fMCAnalysis->FillSimPiKPMinusRecoPiKPFullAcceptanceTPC(fRecAnalysis->GetCorrectedPiKPEtFullAcceptanceTPC());
192     fMCAnalysis->FillSimPiKPMinusRecoPiKPFullAcceptanceITS(fRecAnalysis->GetCorrectedPiKPEtFullAcceptanceITS());
193     fMCAnalysis->FillSimPiKPMinusRecoPiKPFullAcceptanceTPCNoPID(fRecAnalysis->GetCorrectedPiKPEtFullAcceptanceTPCNoPID());
194     fMCAnalysis->FillSimPiKPMinusRecoPiKPFullAcceptanceITSNoPID(fRecAnalysis->GetCorrectedPiKPEtFullAcceptanceITSNoPID());
195
196   }
197
198 // Post output data.
199 PostData(1, fOutputList);
200 }
201
202 //________________________________________________________________________
203 void AliAnalysisTaskHadEt::Terminate(Option_t *)
204 {
205     // Draw result to the screen
206     // Called once at the end of the query
207
208     fOutputList = dynamic_cast<TList*> (GetOutputData(1));
209     if (!fOutputList) {
210         printf("ERROR: Output list not available\n");
211         return;
212     }
213 }
214
215