1 //_________________________________________________________________________
2 // Utility Class for transverse energy studies
3 // Base class for ESD & MC analysis
4 // - reconstruction and MonteCarlo output
7 //*-- Authors: Oystein Djuvsland (Bergen), David Silvermyr (ORNL)
8 //_________________________________________________________________________
10 #include "AliAnalysisEt.h"
18 #include "AliAnalysisEtCuts.h"
19 #include "AliESDtrackCuts.h"
20 #include "AliESDCaloCluster.h"
21 #include "AliVEvent.h"
24 #include "AliCentrality.h"
25 #include "AliAnalysisEtSelector.h"
27 //#include "THnSparse.h"
30 ClassImp(AliAnalysisEt);
32 /* Auxiliary Histogram variables */
33 Int_t AliAnalysisEt::fgnumOfEtaBins = 16;
34 Float_t AliAnalysisEt::fgEtaAxis[17]={-0.78, -0.7, -0.58, -0.46, -0.34, -0.22, -0.12, -0.06, -0.0, 0.06, 0.12, 0.22, 0.34, 0.46, 0.58, 0.7, 0.78};
36 Int_t AliAnalysisEt::fgNumOfPtBins = 111;
37 Float_t AliAnalysisEt::fgPtAxis[117]=
38 {0.0,0.01,0.02,0.03,0.04, 0.05, 0.06,0.07,0.08,0.09, 0.10,0.11, .12,0.13, .14,0.15, .16,0.17, .18,0.19,
39 0.2, .22, .24, .26, .28, 0.30, 0.32, .34, .36, .38, 0.40, .42, .44, .46, .48,
40 0.5, .52, .54, .56, .58, 0.60, 0.62, .64, .66, .68, 0.70, .72, .74, .76, .78,
41 .80, .82, .84, .86, .88, 0.90, 0.92, .94, .96, .98, 1.00,1.05, 1.1,1.15, 1.2,
42 1.25, 1.3,1.35,1.40,1.45, 1.50, 1.55, 1.6,1.65, 1.7, 1.75, 1.8,1.85, 1.9,1.95,
43 2.0, 2.2, 2.4, 2.6, 2.8, 3.00, 3.20, 3.4, 3.6, 3.8, 4.00, 4.2, 4.4, 4.6, 4.8,
44 5.0, 5.5, 6.0, 6.5, 7.0, 7.50, 8.00, 8.5, 9.0, 9.5, 10.0,12.0,14.0,16.0,18.0,
45 20.0,25.0,30.0,35.0,40.0, 45.0, 50.0};
47 Int_t AliAnalysisEt::fgNumOfEBins = 78;
48 Float_t AliAnalysisEt::fgEAxis[79]={0., 0.05, 0.10, 0.15, 0.20, 0.25, 0.30, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95,
49 1.,1.5,2.,2.5,3.,3.5,4.,4.5,5.,5.5,6.,6.5,7.,7.5,8.,8.5,9.,9.5,10.,11.,
50 12.,13.,14.,15.,16.,17.,18.,19.,20.,21.,22.,23.,24.,25.,26.,27.,28.,29.,30.,31.,
51 32.,33.,34.,35.,36.,37.,38.,39.,40.,41.,42.,43.,44.,45.,46.,47.,48.,49.,50.};
53 Int_t AliAnalysisEt::fgNumOfRBins = 47;
54 Float_t AliAnalysisEt::fgRAxis[48]={-2.,-1.,0.,0.0005,0.001,0.0015,0.002,0.0025,0.003,0.0035,0.004,0.0045,0.005,0.0055,0.006,0.0065,0.007,0.0075,0.008,0.0085,0.009,0.0095,0.01,
55 0.011,0.012,0.013,0.014,0.015,0.016,0.017,0.018,0.019,0.020,0.022,0.024,0.026,0.028,0.03,0.032,0.034,0.036,0.038,0.04,0.042,0.044,0.046,0.048,0.05};
58 AliAnalysisEt::AliAnalysisEt() : AliAnalysisEtCommon()
69 ,fChargedMultiplicity(0)
70 ,fNeutralMultiplicity(0)
88 ,fAntiProtonRemovedEt(0)
90 ,fAntiNeutronRemovedEt(0)
119 ,fProtonRemovedMult(0)
120 ,fAntiProtonRemovedMult(0)
121 ,fNeutronRemovedMult(0)
122 ,fAntiNeutronRemovedMult(0)
124 ,fPiPlusRemovedMult(0)
125 ,fPiMinusRemovedMult(0)
126 ,fKPlusRemovedMult(0)
127 ,fKMinusRemovedMult(0)
130 ,fMuMinusRemovedMult(0)
131 ,fMuPlusRemovedMult(0)
132 ,fEMinusRemovedMult(0)
133 ,fEPlusRemovedMult(0)
134 ,fGammaRemovedMult(0)
140 ,fTrackPassedCut(kFALSE)
143 ,fSingleCellEnergyCut(0)
144 ,fChargedEnergyRemoved(0)
145 ,fNeutralEnergyRemoved(0)
146 ,fGammaEnergyAdded(0)
158 AliAnalysisEt::~AliAnalysisEt()
161 fDepositTree->Clear();
162 delete fDepositTree; // optional TTree
164 if(fEventSummaryTree)
166 fEventSummaryTree->Clear();
167 delete fEventSummaryTree;
171 fAcceptedTree->Clear();
172 delete fAcceptedTree;
174 delete fHistEt; //Et spectrum
175 delete fHistNeutralMult; //Neutral multiplicity
176 delete fHistPhivsPtPos; //phi vs pT plot for positive tracks
177 delete fHistPhivsPtNeg; //phi vs pT Moplot for negative tracks
178 //delete fCentrality;//this code does not actually own AliCentrality so we don't have to worry about deleting it... we just borrow it...
183 void AliAnalysisEt::FillOutputList(TList *list)
184 { // histograms to be added to output
186 list->Add(fHistNeutralMult);
188 list->Add(fHistPhivsPtPos);
189 list->Add(fHistPhivsPtNeg);
192 if (fCuts->GetHistMakeTree()) {
194 list->Add(fEventSummaryTree);
196 if (fCuts->GetHistMakeTreeDeposit()) {
197 list->Add(fDepositTree);
205 void AliAnalysisEt::Init()
206 {// clear variables, set up cuts and PDG info
207 AliAnalysisEtCommon::Init();
211 void AliAnalysisEt::CreateHistograms()
212 { // create histograms..
213 // histogram binning for E_T, p_T and Multiplicity: defaults for p+p
214 Int_t nbinsEt = 10000;
215 Double_t minEt = 0.0;
216 Double_t maxEt = 1000;
220 Int_t nbinsMult = 200;
221 Double_t minMult = -0.5; // offset -0.5 to have integer bins centered around 0
222 Double_t maxMult = nbinsMult + minMult; // 1 bin per integer value
224 // see if we should change histogram limits etc, and possibly create a tree
226 if (fCuts->GetHistMakeTree()) {
230 nbinsMult = fCuts->GetHistNbinsMult();
231 minMult = fCuts->GetHistMinMult();
232 maxMult = fCuts->GetHistMaxMult();
234 nbinsEt = fCuts->GetHistNbinsTotEt();
235 minEt = fCuts->GetHistMinTotEt();
236 maxEt = fCuts->GetHistMaxTotEt();
238 nbinsPt = fCuts->GetHistNbinsParticlePt();
239 minPt = fCuts->GetHistMinParticlePt();
240 maxPt = fCuts->GetHistMaxParticlePt();
243 TString histname = "fHistEt" + fHistogramNameSuffix;
244 fHistEt = new TH1F(histname.Data(), "Total E_{T} Distribution", nbinsEt, minEt, maxEt);
245 fHistEt->GetXaxis()->SetTitle("E_{T} (GeV/c^{2})");
246 fHistEt->GetYaxis()->SetTitle("dN/dE_{T} (c^{2}/GeV)");
248 histname = "fHistNeutralMult" + fHistogramNameSuffix;
249 fHistNeutralMult = new TH1F(histname.Data(), "Neutral Multiplicity", nbinsMult, minMult, maxMult);
250 fHistNeutralMult->GetXaxis()->SetTitle("N");
251 fHistNeutralMult->GetYaxis()->SetTitle("Multiplicity");
253 histname = "fHistPhivsPtPos" + fHistogramNameSuffix;
254 fHistPhivsPtPos = new TH2F(histname.Data(), "Phi vs pT of positively charged tracks hitting the calorimeter", 200, 0, 2*TMath::Pi(), nbinsPt, minPt, maxPt);
256 histname = "fHistPhivsPtNeg" + fHistogramNameSuffix;
257 fHistPhivsPtNeg = new TH2F(histname.Data(), "Phi vs pT of negatively charged tracks hitting the calorimeter", 200, 0, 2*TMath::Pi(), nbinsPt, minPt, maxPt);
259 histname = "fCutFlow" + fHistogramNameSuffix;
260 fCutFlow = new TH1I(histname, histname, 20, -0.5, 19.5);
263 TH2F* AliAnalysisEt::CreateEtaEHisto2D(TString name, TString title, TString ztitle)
264 { //creates a 2-d histogram in eta and E and adds it to the list of histograms to be saved
265 TString histoname = name + fHistogramNameSuffix;
267 TH2F *histo = new TH2F(histoname.Data(),title.Data(),fgNumOfEBins, fgEAxis, fgnumOfEtaBins, fgEtaAxis);
268 histo->SetYTitle("#eta");
269 histo->SetXTitle("E (GeV)");
270 histo->SetZTitle(ztitle.Data());
277 TH2F* AliAnalysisEt::CreateEtaPtHisto2D(TString name, TString title, TString ztitle)
278 { //creates a 2-d histogram in eta and phi and adds it to the list of histograms to be saved
279 TString histoname = name + fHistogramNameSuffix;
281 TH2F *histo = new TH2F(histoname.Data(),title.Data(),fgNumOfPtBins, fgPtAxis, fgnumOfEtaBins, fgEtaAxis);
282 histo->SetYTitle("#eta");
283 histo->SetXTitle("p_{T}");
284 histo->SetZTitle(ztitle.Data());
290 TH2F* AliAnalysisEt::CreateEtaEtHisto2D(TString name, TString title, TString ztitle)
291 { //creates a 2-d histogram in eta and phi and adds it to the list of histograms to be saved
292 TString histoname = name + fHistogramNameSuffix;
294 TH2F *histo = new TH2F(histoname.Data(),title.Data(),fgNumOfEBins, fgEAxis, fgnumOfEtaBins, fgEtaAxis);
295 histo->SetYTitle("#eta");
296 histo->SetXTitle("E_{T}");
297 histo->SetZTitle(ztitle.Data());
303 TH2F* AliAnalysisEt::CreateResEHisto2D(TString name, TString title, TString ztitle)
304 { //creates a 2-d histogram in eta and E and adds it to the list of histograms to be saved
305 TString histoname = name + fHistogramNameSuffix;
307 TH2F *histo = new TH2F(histoname.Data(),title.Data(),fgNumOfEBins, fgEAxis, fgNumOfRBins, fgRAxis);
308 histo->SetYTitle("R");
309 histo->SetXTitle("E (GeV)");
310 histo->SetZTitle(ztitle.Data());
317 TH2F* AliAnalysisEt::CreateResPtHisto2D(TString name, TString title, TString ztitle)
318 { //creates a 2-d histogram in eta and phi and adds it to the list of histograms to be saved
319 TString histoname = name + fHistogramNameSuffix;
321 TH2F *histo = new TH2F(histoname.Data(),title.Data(),fgNumOfPtBins, fgPtAxis, fgNumOfRBins, fgRAxis);
322 histo->SetYTitle("R");
323 histo->SetXTitle("p_{T}");
324 histo->SetZTitle(ztitle.Data());
330 THnSparseF* AliAnalysisEt::CreateClusterHistoSparse(TString name, TString title)
331 { //creates a 2D sparse histogram
332 TString histoname = name + fHistogramNameSuffix;
334 Int_t nBins[4] = {200,200,240,20};
335 Double_t min[4] = {0.,-1.,70.,0.5};
336 Double_t max[4] = {50.,1.,190,20.5};
338 THnSparseF *histo = new THnSparseF(histoname.Data(),title.Data(),4,nBins,min, max);
339 histo->GetAxis(0)->SetTitle("E");
340 histo->GetAxis(1)->SetTitle("#eta_{cluster}");
341 histo->GetAxis(2)->SetTitle("#phi_{cluster}");
342 histo->GetAxis(3)->SetTitle("n_{cells}");
348 THnSparseF* AliAnalysisEt::CreateNeutralPartHistoSparse(TString name, TString title)
349 { //creates a sparse neutral particle histogram
350 TString histoname = name + fHistogramNameSuffix;
352 Int_t nBins[6] = {20,200,200,200,240,20};
353 Double_t min[6] = {-1.,0.,0.,-1.,70.,0.5};
354 Double_t max[6] = {1.,50.,50.,1.,190,20.5};
356 THnSparseF *histo = new THnSparseF(histoname.Data(),title.Data(),6,nBins,min, max);
357 histo->GetAxis(0)->SetTitle("#eta");
358 histo->GetAxis(1)->SetTitle("p_{T}");
359 histo->GetAxis(2)->SetTitle("E");
360 histo->GetAxis(3)->SetTitle("#eta_{cluster}");
361 histo->GetAxis(4)->SetTitle("#phi_{cluster}");
362 histo->GetAxis(5)->SetTitle("n_{cells}");
368 THnSparseF* AliAnalysisEt::CreateChargedPartHistoSparse(TString name, TString title)
369 { //creates a sparse charged particle histogram
370 TString histoname = name + fHistogramNameSuffix;
372 Int_t nBins[7] = {20,200,200,200,240,20,100};
373 Double_t min[7] = {-1.,0.,0.,-1.,70.,0.5,0.};
374 Double_t max[7] = {1.,50.,50.,1.,190,20.5,0.1};
376 THnSparseF *histo = new THnSparseF(histoname.Data(),title.Data(),7,nBins,min, max);
377 histo->GetAxis(0)->SetTitle("#eta");
378 histo->GetAxis(1)->SetTitle("p_{T}");
379 histo->GetAxis(2)->SetTitle("E");
380 histo->GetAxis(3)->SetTitle("#eta_{cluster}");
381 histo->GetAxis(4)->SetTitle("#phi_{cluster}");
382 histo->GetAxis(5)->SetTitle("n_{cells}");
383 histo->GetAxis(6)->SetTitle("R_{match}");
390 void AliAnalysisEt::CreateTrees()
392 TString treename = "fEventSummaryTree" + fHistogramNameSuffix;
393 if(fCuts->GetHistMakeTree())
396 fEventSummaryTree = new TTree(treename, treename);
397 fEventSummaryTree->Branch("fTotEt",&fTotEt,"fTotEt/D");
398 fEventSummaryTree->Branch("fTotEtAcc",&fTotEtAcc,"fTotEtAcc/D");
399 fEventSummaryTree->Branch("fTotNeutralEt",&fTotNeutralEt,"fTotNeutralEt/D");
400 fEventSummaryTree->Branch("fTotNeutralEtAcc",&fTotNeutralEtAcc,"fTotNeutralEtAcc/D");
401 fEventSummaryTree->Branch("fTotChargedEt",&fTotChargedEt,"fTotChargedEt/D");
402 fEventSummaryTree->Branch("fTotChargedEtAcc",&fTotChargedEtAcc,"fTotChargedEtAcc/D");
403 fEventSummaryTree->Branch("fMultiplicity",&fMultiplicity,"fMultiplicity/I");
404 fEventSummaryTree->Branch("fChargedMultiplicity",&fChargedMultiplicity,"fChargedMultiplicity/I");
405 fEventSummaryTree->Branch("fNeutralMultiplicity",&fNeutralMultiplicity,"fNeutralMultiplicity/I");
406 fEventSummaryTree->Branch("fCentClass",&fCentClass,"fCentClass/I");
407 fEventSummaryTree->Branch("fChargedEnergyRemoved", &fChargedEnergyRemoved, "fChargedEnergyRemoved/D");
408 fEventSummaryTree->Branch("fNeutralEnergyRemoved", &fNeutralEnergyRemoved, "fNeutralEnergyRemoved/D");
409 fEventSummaryTree->Branch("fGammaEnergyAdded", &fGammaEnergyAdded, "fGammaEnergyAdded/D");
412 fEventSummaryTree->Branch("fProtonEt",&fProtonEt,"fProtonEt/D");
413 fEventSummaryTree->Branch("fAntiProtonEt",&fAntiProtonEt,"fAntiProtonEt/D");
415 fEventSummaryTree->Branch("fNeutronEt",&fNeutronEt,"fNeutronEt/D");
416 fEventSummaryTree->Branch("fAntiNeutronEt",&fAntiNeutronEt,"fAntiNeutronEt/D");
418 fEventSummaryTree->Branch("fPi0Et",&fPi0Et,"fPi0Et/D");
419 fEventSummaryTree->Branch("fPiPlusEt",&fPiPlusEt,"fPiPlusEt/D");
420 fEventSummaryTree->Branch("fPiMinusEt",&fPiMinusEt,"fPiMinusEt/D");
422 fEventSummaryTree->Branch("fKPlusEt",&fKPlusEt,"fKPlusEt/D");
423 fEventSummaryTree->Branch("fKMinusEt",&fKMinusEt,"fKMinusEt/D");
424 fEventSummaryTree->Branch("fK0sEt",&fK0sEt,"fK0sEt/D");
425 fEventSummaryTree->Branch("fK0lEt",&fK0lEt,"fK0lEt/D");
427 fEventSummaryTree->Branch("fMuMinusEt",&fMuMinusEt,"fMuMinusEt/D");
428 fEventSummaryTree->Branch("fMuPlusEt",&fMuPlusEt,"fMuPlusEt/D");
430 fEventSummaryTree->Branch("fEMinusEt",&fEMinusEt,"fEMinusEt/D");
431 fEventSummaryTree->Branch("fEPlusEt",&fEPlusEt,"fEPlusEt/D");
433 fEventSummaryTree->Branch("fGammaEt", &fGammaEt, "fGammaEt/D");
435 fEventSummaryTree->Branch("fProtonRemovedEt",&fProtonRemovedEt,"fProtonRemovedEt/D");
436 fEventSummaryTree->Branch("fAntiProtonRemovedEt",&fAntiProtonRemovedEt,"fAntiProtonRemovedEt/D");
438 fEventSummaryTree->Branch("fNeutronRemovedEt",&fNeutronRemovedEt,"fNeutronRemovedEt/D");
439 fEventSummaryTree->Branch("fAntiNeutronRemovedEt",&fAntiNeutronRemovedEt,"fAntiNeutronRemovedEt/D");
441 fEventSummaryTree->Branch("fPi0RemovedEt",&fPi0RemovedEt,"fPi0RemovedEt/D");
442 fEventSummaryTree->Branch("fPiPlusRemovedEt",&fPiPlusRemovedEt,"fPiPlusRemovedEt/D");
443 fEventSummaryTree->Branch("fPiMinusRemovedEt",&fPiMinusRemovedEt,"fPiMinusRemovedEt/D");
445 fEventSummaryTree->Branch("fKPlusRemovedEt",&fKPlusRemovedEt,"fKPlusRemovedEt/D");
446 fEventSummaryTree->Branch("fKMinusRemovedEt",&fKMinusEt,"fKMinusRemovedEt/D");
447 fEventSummaryTree->Branch("fK0sRemovedEt",&fK0sEt,"fK0sRemovedEt/D");
448 fEventSummaryTree->Branch("fK0lRemovedEt",&fK0lRemovedEt,"fK0lRemovedEt/D");
450 fEventSummaryTree->Branch("fMuMinusRemovedEt",&fMuMinusRemovedEt,"fMuMinusRemovedEt/D");
451 fEventSummaryTree->Branch("fMuPlusRemovedEt",&fMuPlusRemovedEt,"fMuPlusRemovedEt/D");
453 fEventSummaryTree->Branch("fEMinusRemovedEt",&fEMinusRemovedEt,"fEMinusRemovedEt/D");
454 fEventSummaryTree->Branch("fEPlusRemovedEt",&fEPlusRemovedEt,"fEPlusRemovedEt/D");
456 fEventSummaryTree->Branch("fGammaRemovedEt", &fGammaRemovedEt, "fGammaEtRemoved/D");
458 fEventSummaryTree->Branch("fProtonMult",&fProtonMult,"fProtonMult/D");
459 fEventSummaryTree->Branch("fAntiProtonMult",&fAntiProtonMult,"fAntiProtonMult/D");
461 fEventSummaryTree->Branch("fNeutronMult",&fNeutronMult,"fNeutronMult/D");
462 fEventSummaryTree->Branch("fAntiNeutronMult",&fAntiNeutronMult,"fAntiNeutronMult/D");
464 fEventSummaryTree->Branch("fPi0Mult",&fPi0Mult,"fPi0Mult/D");
465 fEventSummaryTree->Branch("fPiPlusMult",&fPiPlusMult,"fPiPlusMult/D");
466 fEventSummaryTree->Branch("fPiMinusMult",&fPiMinusMult,"fPiMinusMult/D");
468 fEventSummaryTree->Branch("fKPlusMult",&fKPlusMult,"fKPlusMult/D");
469 fEventSummaryTree->Branch("fKMinusMult",&fKMinusMult,"fKMinusMult/D");
470 fEventSummaryTree->Branch("fK0sMult",&fK0sMult,"fK0sMult/D");
471 fEventSummaryTree->Branch("fK0lMult",&fK0lMult,"fK0lMult/D");
473 fEventSummaryTree->Branch("fMuMinusMult",&fMuMinusMult,"fMuMinusMult/D");
474 fEventSummaryTree->Branch("fMuPlusMult",&fMuPlusMult,"fMuPlusMult/D");
476 fEventSummaryTree->Branch("fEMinusMult",&fEMinusMult,"fEMinusMult/D");
477 fEventSummaryTree->Branch("fEPlusMult",&fEPlusMult,"fEPlusMult/D");
479 fEventSummaryTree->Branch("fGammaMult", &fGammaMult, "fGammaMult/D");
481 fEventSummaryTree->Branch("fProtonRemovedMult",&fProtonRemovedMult,"fProtonRemovedMult/D");
482 fEventSummaryTree->Branch("fAntiProtonRemovedMult",&fAntiProtonRemovedMult,"fAntiProtonRemovedMult/D");
484 fEventSummaryTree->Branch("fNeutronRemovedMult",&fNeutronRemovedMult,"fNeutronRemovedMult/D");
485 fEventSummaryTree->Branch("fAntiNeutronRemovedMult",&fAntiNeutronRemovedMult,"fAntiNeutronRemovedMult/D");
487 fEventSummaryTree->Branch("fPi0RemovedMult",&fPi0RemovedMult,"fPi0RemovedMult/D");
488 fEventSummaryTree->Branch("fPiPlusRemovedMult",&fPiPlusRemovedMult,"fPiPlusRemovedMult/D");
489 fEventSummaryTree->Branch("fPiMinusRemovedMult",&fPiMinusRemovedMult,"fPiMinusRemovedMult/D");
491 fEventSummaryTree->Branch("fKPlusRemovedMult",&fKPlusRemovedMult,"fKPlusRemovedMult/D");
492 fEventSummaryTree->Branch("fKMinusRemovedMult",&fKMinusMult,"fKMinusRemovedMult/D");
493 fEventSummaryTree->Branch("fK0sRemovedMult",&fK0sMult,"fK0sRemovedMult/D");
494 fEventSummaryTree->Branch("fK0lRemovedMult",&fK0lRemovedMult,"fK0lRemovedMult/D");
496 fEventSummaryTree->Branch("fMuMinusRemovedMult",&fMuMinusRemovedMult,"fMuMinusRemovedMult/D");
497 fEventSummaryTree->Branch("fMuPlusRemovedMult",&fMuPlusRemovedMult,"fMuPlusRemovedMult/D");
499 fEventSummaryTree->Branch("fEMinusRemovedMult",&fEMinusRemovedMult,"fEMinusRemovedMult/D");
500 fEventSummaryTree->Branch("fEPlusRemovedMult",&fEPlusRemovedMult,"fEPlusRemovedMult/D");
502 fEventSummaryTree->Branch("fGammaRemovedMult", &fGammaRemovedMult, "fGammaMultRemoved/D");
508 if(fCuts->GetHistMakeTreeDeposit())
510 treename = "fTreeDeposit" + fHistogramNameSuffix;
511 fDepositTree = new TTree(treename, treename);
513 fDepositTree->Branch("fEnergyDeposited", &fEnergyDeposited, "fEnergyDeposited/F");
514 fDepositTree->Branch("fMomentumTPC", &fMomentumTPC, "fMomentumTPC/F");
515 fDepositTree->Branch("fCharge", &fCharge, "fCharge/S");
516 fDepositTree->Branch("fParticlePid", &fParticlePid, "fParticlePid/S");
517 fDepositTree->Branch("fPidProb", &fPidProb, "fPidProb/F");
518 fDepositTree->Branch("fTrackPassedCut", &fTrackPassedCut, "fTrackPassedCut/B");
523 void AliAnalysisEt::FillHistograms()
524 { // fill histograms..
525 fHistEt->Fill(fTotEt);
527 fHistNeutralMult->Fill(fNeutralMultiplicity);
530 if (fCuts->GetHistMakeTree()) {
531 fEventSummaryTree->Fill();
536 if(fCuts->GetHistMakeTreeDeposit())
538 fDepositTree->Fill();
544 Int_t AliAnalysisEt::AnalyseEvent(AliVEvent *event)
545 { //this line is basically here to eliminate a compiler warning that event is not used. Making it a virtual function did not work with the plugin.
546 AliAnalysisEtCommon::AnalyseEvent(event);
547 //fSelector->SetEvent(event);
552 void AliAnalysisEt::ResetEventValues()
554 AliAnalysisEtCommon::ResetEventValues();
559 fTotNeutralEtAcc = 0;
560 fTotChargedEtAcc = 0;
562 fChargedMultiplicity = 0;
563 fNeutralMultiplicity = 0;
588 fProtonRemovedEt = 0;
589 fAntiProtonRemovedEt = 0;
591 fNeutronRemovedEt = 0;
592 fAntiNeutronRemovedEt = 0;
595 fPiPlusRemovedEt = 0;
596 fPiMinusRemovedEt = 0;
599 fKMinusRemovedEt = 0;
603 fMuMinusRemovedEt = 0;
604 fMuPlusRemovedEt = 0;
606 fEMinusRemovedEt = 0;
616 fAntiNeutronMult = 0;
635 fProtonRemovedMult = 0;
636 fAntiProtonRemovedMult = 0;
638 fNeutronRemovedMult = 0;
639 fAntiNeutronRemovedMult = 0;
642 fPiPlusRemovedMult = 0;
643 fPiMinusRemovedMult = 0;
645 fKPlusRemovedMult = 0;
646 fKMinusRemovedMult = 0;
650 fMuMinusRemovedMult = 0;
651 fMuPlusRemovedMult = 0;
653 fEMinusRemovedMult = 0;
654 fEPlusRemovedMult = 0;
656 fGammaRemovedMult = 0;
661 Double_t AliAnalysisEt::CalculateTransverseEnergy(AliESDCaloCluster* cluster)
662 { // based on cluster energy and cluster pos
665 cluster->GetPosition(pos);
667 Double_t corrEnergy = 0;
669 if(cluster->E() < 1.5)
671 corrEnergy =cluster->E()/(0.51 + 0.02*cluster->E());
675 corrEnergy =cluster->E()/(0.51 + 0.02*1.5);
677 //std::cout << "Original energy: " << cluster->E() << ", corrected energy: " << corrEnergy << std::endl;
679 return corrEnergy * TMath::Sin(cp.Theta());