1 /**************************************************************************
2 * Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
16 /////////////////////////////////////////////////////////////
18 // Class to analyze centrality measurements //
20 /////////////////////////////////////////////////////////////
31 #include "AliAnalysisManager.h"
32 #include "AliVEvent.h"
34 #include "AliESDEvent.h"
35 #include "AliESDHeader.h"
36 #include "AliESDInputHandler.h"
37 #include "AliESDZDC.h"
38 #include "AliESDFMD.h"
39 #include "AliESDVZERO.h"
40 #include "AliMultiplicity.h"
41 #include "AliAODHandler.h"
42 #include "AliAODEvent.h"
43 #include "AliAODVertex.h"
44 #include "AliAODMCHeader.h"
45 #include "AliMCEvent.h"
46 #include "AliMCEventHandler.h"
47 #include "AliMCParticle.h"
49 #include "AliHeader.h"
50 #include "AliAODMCParticle.h"
51 #include "AliAnalysisTaskSE.h"
52 #include "AliGenEventHeader.h"
53 #include "AliGenHijingEventHeader.h"
54 #include "AliPhysicsSelectionTask.h"
55 #include "AliPhysicsSelection.h"
56 #include "AliBackgroundSelection.h"
57 #include "AliAnalysisTaskCentrality.h"
59 ClassImp(AliAnalysisTaskCentrality)
62 //________________________________________________________________________
63 AliAnalysisTaskCentrality::AliAnalysisTaskCentrality():
66 fAnalysisInput("ESD"),
78 fhNtrackletsvsEzdc(0x0),
79 fhNclusters0vsEzdc(0x0),
83 fhNtrackletsvsEzem(0x0),
84 fhNclusters0vsEzem(0x0),
87 fhNtracksvsmultV0(0x0),
88 fhNtrackletsvsmultV0(0x0),
89 fhNclusters0vsmultV0(0x0),
90 fhNtracksvsmultFMD(0x0),
91 fhNtrackletsvsmultFMD(0x0),
92 fhNclusters0vsmultFMD(0x0),
93 fhmultV0vsmultFMD(0x0),
130 // Default constructor
133 //________________________________________________________________________
134 AliAnalysisTaskCentrality::AliAnalysisTaskCentrality(const char *name):
135 AliAnalysisTaskSE(name),
137 fAnalysisInput("ESD"),
148 fhNtracksvsEzdc(0x0),
149 fhNtrackletsvsEzdc(0x0),
150 fhNclusters0vsEzdc(0x0),
152 fhmultFMDvsEzdc(0x0),
153 fhNtracksvsEzem(0x0),
154 fhNtrackletsvsEzem(0x0),
155 fhNclusters0vsEzem(0x0),
157 fhmultFMDvsEzem(0x0),
158 fhNtracksvsmultV0(0x0),
159 fhNtrackletsvsmultV0(0x0),
160 fhNclusters0vsmultV0(0x0),
161 fhNtracksvsmultFMD(0x0),
162 fhNtrackletsvsmultFMD(0x0),
163 fhNclusters0vsmultFMD(0x0),
164 fhmultV0vsmultFMD(0x0),
201 // Default constructor
203 // Output slot #1 writes into a TList container
204 DefineOutput(1, TList::Class());
208 //________________________________________________________________________
209 AliAnalysisTaskCentrality& AliAnalysisTaskCentrality::operator=(const AliAnalysisTaskCentrality& c)
212 // Assignment operator
215 AliAnalysisTaskSE::operator=(c);
220 //________________________________________________________________________
221 AliAnalysisTaskCentrality::AliAnalysisTaskCentrality(const AliAnalysisTaskCentrality& ana):
222 AliAnalysisTaskSE(ana),
224 fAnalysisInput(ana.fDebug),
225 fIsMCInput(ana.fIsMCInput),
226 fOutput(ana.fOutput),
229 fhNtracks(ana.fhNtracks),
230 fhNtracklets(ana.fhNtracklets),
231 fhNclusters0(ana.fhNclusters0),
232 fhmultV0(ana.fhmultV0),
233 fhmultFMD(ana.fhmultFMD),
234 fhEzemvsEzdc(ana.fhEzemvsEzdc),
235 fhNtracksvsEzdc(ana.fhNtracksvsEzdc),
236 fhNtrackletsvsEzdc(ana.fhNtrackletsvsEzdc),
237 fhNclusters0vsEzdc(ana.fhNclusters0vsEzdc),
238 fhmultV0vsEzdc(ana.fhmultV0vsEzdc),
239 fhmultFMDvsEzdc(ana.fhmultFMDvsEzdc),
240 fhNtracksvsEzem(ana.fhNtracksvsEzem),
241 fhNtrackletsvsEzem(ana.fhNtrackletsvsEzem),
242 fhNclusters0vsEzem(ana.fhNclusters0vsEzem),
243 fhmultV0vsEzem(ana.fhmultV0vsEzem),
244 fhmultFMDvsEzem(ana.fhmultFMDvsEzem),
245 fhNtracksvsmultV0(ana.fhNtracksvsmultV0),
246 fhNtrackletsvsmultV0(ana.fhNtrackletsvsmultV0),
247 fhNclusters0vsmultV0(ana.fhNclusters0vsmultV0),
248 fhNtracksvsmultFMD(ana.fhNtracksvsmultFMD),
249 fhNtrackletsvsmultFMD(ana.fhNtrackletsvsmultFMD),
250 fhNclusters0vsmultFMD(ana.fhNclusters0vsmultFMD),
251 fhmultV0vsmultFMD(ana.fhmultV0vsmultFMD),
253 fBeamEnergy(ana.fBeamEnergy),
254 fNmyTracksgen(ana.fNmyTracksgen),
255 fxVertex(ana.fxVertex),
256 fyVertex(ana.fyVertex),
257 fzVertex(ana.fzVertex),
258 fVertexer3d(ana.fVertexer3d),
260 fNpartTargMC(ana.fNpartTargMC),
261 fNpartProjMC(ana.fNpartProjMC),
262 fNNColl(ana.fNNColl),
263 fNNwColl(ana.fNNwColl),
264 fNwNColl(ana.fNwNColl),
265 fNwNwColl(ana.fNwNwColl),
266 fNTracklets(ana.fNTracklets),
267 fNSingleClusters(ana.fNSingleClusters),
269 fNpartZDC(ana.fNpartZDC),
271 fNpartZDCA(ana.fNpartZDCA),
273 fNpartZDCC(ana.fNpartZDCC),
274 fESDFlag(ana.fESDFlag),
275 fZNCEnergy(ana.fZNCEnergy),
276 fZPCEnergy(ana.fZPCEnergy),
277 fZNAEnergy(ana.fZNAEnergy),
278 fZPAEnergy(ana.fZPAEnergy),
279 fZEM1Energy(ana.fZEM1Energy),
280 fZEM2Energy(ana.fZEM2Energy),
281 fNTracks(ana.fNTracks),
282 fNPmdTracks(ana.fNPmdTracks),
283 fMultV0A(ana.fMultV0A),
284 fMultV0C(ana.fMultV0C),
285 fMultFMDA(ana.fMultFMDA),
286 fMultFMDC(ana.fMultFMDC)
293 //________________________________________________________________________
294 AliAnalysisTaskCentrality::~AliAnalysisTaskCentrality()
298 delete fOutput; fOutput=0;
302 //________________________________________________________________________
303 void AliAnalysisTaskCentrality::UserCreateOutputObjects()
306 // Create the output containers
307 if(fDebug>1) printf("AnalysisTaskZDCpp::UserCreateOutputObjects() \n");
309 // Several histograms are more conveniently managed in a TList
310 fOutput = new TList();
312 fOutput->SetName("OutputHistos");
314 fhEzdc = new TH1F("hEzdc","hEzdc",500,0,150);
315 fhEzem = new TH1F("hEzem","hEzem",500,0,5);
316 fhNtracks = new TH1F("hNtracks","hNtracks",500,0,17000);
317 fhNtracklets = new TH1F("hNtracklets","hNtracklets",500,0,10000);
318 fhNclusters0 = new TH1F("hNclusters0","hNclusters0",500,0,15000);
319 fhmultV0 = new TH1F("hmultV0","hmultV0",500,0,30000);
320 fhmultFMD = new TH1F("hmultFMD","hmultFMD",500,0,24000);
322 fhEzemvsEzdc = new TProfile("hEzemvsEzdc","hEzemvsEzdc",500,0,5,"");
323 fhNtracksvsEzdc = new TProfile("hNtracksvsEzdc","hNtracksvsEzdc",500,0,17000,"");
324 fhNtrackletsvsEzdc = new TProfile("hNtrackletsvsEzdc","hNtrackletsvsEzdc",500,0,10000,"");
325 fhNclusters0vsEzdc = new TProfile("hNclusters0vsEzdc","hNclusters0vsEzdc",500,0,15000,"");
326 fhmultV0vsEzdc = new TProfile("hmultV0vsEzdc","hmultV0vsEzdc",500,0,30000,"");
327 fhmultFMDvsEzdc = new TProfile("hmultFMDvsEzdc","hmultFMDvsEzdc",500,0,24000,"");
328 fhNtracksvsEzem = new TProfile("hNtracksvsEzem","hNtracksvsEzem",500,0,17000,"");
329 fhNtrackletsvsEzem = new TProfile("hNtrackletsvsEzem","hNtrackletsvsEzem",500,0,10000,"");
330 fhNclusters0vsEzem = new TProfile("hNclusters0vsEzem","hNclusters0vsEzem",500,0,15000,"");
331 fhmultV0vsEzem = new TProfile("hmultV0vsEzem","hmultV0vsEzem",500,0,30000,"");
332 fhmultFMDvsEzem = new TProfile("hmultFMDvsEzem","hmultFMDvsEzem",500,0,24000,"");
333 fhNtracksvsmultV0 = new TProfile("hNtracksvsmultV0","hNtracksvsmultV0",500,0,17000,"");
334 fhNtrackletsvsmultV0 = new TProfile("hNtrackletsvsmultV0","hNtrackletsvsmultV0",500,0,10000,"");
335 fhNclusters0vsmultV0 = new TProfile("hNclusters0vsmultV0","hNclusters0vsmultV0",500,0,15000,"");
336 fhNtracksvsmultFMD = new TProfile("hNtracksvsmultFMD","hNtracksvsmultFMD",500,0,17000,"");
337 fhNtrackletsvsmultFMD= new TProfile("hNtrackletsvsmultFMD","hNtrackletsvsmultFMD",500,0,10000,"");
338 fhNclusters0vsmultFMD= new TProfile("hNclusters0vsmultFMD","hNclusters0vsmultFMD",500,0,15000,"");
339 fhmultV0vsmultFMD = new TProfile("hmultV0vsmultFMD","hmultV0vsmultFMD",500,0,30000,"");
341 fhEzdc ->GetXaxis()->SetTitle("E_{ZDC}[TeV]");
342 fhEzem ->GetXaxis()->SetTitle("E_{ZEM}[TeV]");
343 fhNtracks ->GetXaxis()->SetTitle("N_{tracks}");
344 fhNtracklets ->GetXaxis()->SetTitle("N_{tracklets}");
345 fhNclusters0 ->GetXaxis()->SetTitle("N_{clusters0}");
346 fhmultV0 ->GetXaxis()->SetTitle("V0 mult");
347 fhmultFMD ->GetXaxis()->SetTitle("FMD mult");
349 fhEzemvsEzdc ->GetYaxis()->SetTitle("E_{ZDC}[TeV]");
350 fhNtracksvsEzdc ->GetYaxis()->SetTitle("E_{ZDC}[TeV]");
351 fhNtrackletsvsEzdc ->GetYaxis()->SetTitle("E_{ZDC}[TeV]");
352 fhNclusters0vsEzdc ->GetYaxis()->SetTitle("E_{ZDC}[TeV]");
353 fhmultV0vsEzdc ->GetYaxis()->SetTitle("E_{ZDC}[TeV]");
354 fhmultFMDvsEzdc ->GetYaxis()->SetTitle("E_{ZDC}[TeV]");
355 fhNtracksvsEzem ->GetYaxis()->SetTitle("E_{ZEM}[TeV]");
356 fhNtrackletsvsEzem ->GetYaxis()->SetTitle("E_{ZEM}[TeV]");
357 fhNclusters0vsEzem ->GetYaxis()->SetTitle("E_{ZEM}[TeV]");
358 fhmultV0vsEzem ->GetYaxis()->SetTitle("E_{ZEM}[TeV]");
359 fhmultFMDvsEzem ->GetYaxis()->SetTitle("E_{ZEM}[TeV]");
360 fhNtracksvsmultV0 ->GetYaxis()->SetTitle("V0 mult");
361 fhNtrackletsvsmultV0 ->GetYaxis()->SetTitle("V0 mult");
362 fhNclusters0vsmultV0 ->GetYaxis()->SetTitle("V0 mult");
363 fhNtracksvsmultFMD ->GetYaxis()->SetTitle("FMD mult");
364 fhNtrackletsvsmultFMD->GetYaxis()->SetTitle("FMD mult");
365 fhNclusters0vsmultFMD->GetYaxis()->SetTitle("FMD mult");
366 fhmultV0vsmultFMD ->GetYaxis()->SetTitle("FMD mult");
368 fhEzemvsEzdc ->GetXaxis()->SetTitle("E_{ZEM}[TeV]");
369 fhNtracksvsEzdc ->GetXaxis()->SetTitle("N_{tracks}");
370 fhNtrackletsvsEzdc ->GetXaxis()->SetTitle("N_{tracklets}");
371 fhNclusters0vsEzdc ->GetXaxis()->SetTitle("N_{clusters0}");
372 fhmultV0vsEzdc ->GetXaxis()->SetTitle("V0 mult");
373 fhmultFMDvsEzdc ->GetXaxis()->SetTitle("FMD mult");
374 fhNtracksvsEzem ->GetXaxis()->SetTitle("N_{tracks}");
375 fhNtrackletsvsEzem ->GetXaxis()->SetTitle("N_{tracklets}");
376 fhNclusters0vsEzem ->GetXaxis()->SetTitle("N_{clusters0}");
377 fhmultV0vsEzem ->GetXaxis()->SetTitle("V0 mult");
378 fhmultFMDvsEzem ->GetXaxis()->SetTitle("FMD mult");
379 fhNtracksvsmultV0 ->GetXaxis()->SetTitle("N_{tracks}");
380 fhNtrackletsvsmultV0 ->GetXaxis()->SetTitle("N_{tracklets}");
381 fhNclusters0vsmultV0 ->GetXaxis()->SetTitle("N_{clusters0}");
382 fhNtracksvsmultFMD ->GetXaxis()->SetTitle("N_{tracks}");
383 fhNtrackletsvsmultFMD->GetXaxis()->SetTitle("N_{tracklets}");
384 fhNclusters0vsmultFMD->GetXaxis()->SetTitle("N_{clusters}");
385 fhmultV0vsmultFMD ->GetXaxis()->SetTitle("V0 mult");
387 fOutput->Add(fhEzdc);
388 fOutput->Add(fhEzem);
389 fOutput->Add(fhNtracks);
390 fOutput->Add(fhNtracklets);
391 fOutput->Add(fhNclusters0);
392 fOutput->Add(fhmultV0);
393 fOutput->Add(fhmultFMD);
395 fOutput->Add(fhEzemvsEzdc);
396 fOutput->Add(fhNtracksvsEzdc);
397 fOutput->Add(fhNtrackletsvsEzdc);
398 fOutput->Add(fhNclusters0vsEzdc);
399 fOutput->Add(fhmultV0vsEzdc);
400 fOutput->Add(fhmultFMDvsEzdc);
401 fOutput->Add(fhNtracksvsEzem);
402 fOutput->Add(fhNtrackletsvsEzem);
403 fOutput->Add(fhNclusters0vsEzem);
404 fOutput->Add(fhmultV0vsEzem);
405 fOutput->Add(fhmultFMDvsEzem);
406 fOutput->Add(fhNtracksvsmultV0);
407 fOutput->Add(fhNtrackletsvsmultV0);
408 fOutput->Add(fhNclusters0vsmultV0);
409 fOutput->Add(fhNtracksvsmultFMD);
410 fOutput->Add(fhNtrackletsvsmultFMD);
411 fOutput->Add(fhNclusters0vsmultFMD);
412 fOutput->Add(fhmultV0vsmultFMD);
414 PostData(1, fOutput);
417 //________________________________________________________________________
418 void AliAnalysisTaskCentrality::UserExec(Option_t */*option*/)
420 // Execute analysis for current event:
421 if(fDebug>1) printf(" **** AliAnalysisTaskCentrality::UserExec() \n");
423 if(fAnalysisInput.CompareTo("ESD")==0){
425 AliVEvent* event = InputEvent();
426 AliESDEvent* esd = dynamic_cast<AliESDEvent*>(event);
430 fNTracks = event->GetNumberOfTracks();
431 fNPmdTracks = esd->GetNumberOfPmdTracks();
433 AliESDVZERO* esdV0 = esd->GetVZEROData();
434 fMultV0A=esdV0->GetMTotV0A();
435 fMultV0C=esdV0->GetMTotV0C();
439 AliMCEvent* mcEvent = MCEvent();
441 printf(" Could not retrieve MC event!!!\n");
446 AliStack *stack = 0x0; // needed for MC studies
447 stack = MCEvent()->Stack();
448 for (Int_t iTrack = 0; iTrack < MCEvent()->GetNumberOfTracks(); iTrack++) {
449 //get properties of mc particle
450 AliMCParticle* mcP = (AliMCParticle*) MCEvent()->GetTrack(iTrack);
452 if (!(stack->IsPhysicalPrimary(mcP->Label()))) continue;
453 //charged tracks only
454 if (mcP->Particle()->GetPDG()->Charge() == 0) continue;
455 //same cuts as on ESDtracks
456 // if(TMath::Abs(mcP->Eta())>0.9)continue;
457 // if(mcP->Pt()<0.2)continue;
458 // if(mcP->Pt()>200)continue;
463 AliGenEventHeader* genHeader = mcEvent->GenEventHeader();
465 printf(" Event generator header not available!!!\n");
469 if(genHeader->InheritsFrom(AliGenHijingEventHeader::Class())){
470 fbMC = ((AliGenHijingEventHeader*) genHeader)->ImpactParameter();
471 Int_t specNeutronProj = ((AliGenHijingEventHeader*) genHeader)->ProjSpectatorsn();
472 Int_t specProtonProj = ((AliGenHijingEventHeader*) genHeader)->ProjSpectatorsp();
473 Int_t specNeutronTarg = ((AliGenHijingEventHeader*) genHeader)->TargSpectatorsn();
474 Int_t specProtonTarg = ((AliGenHijingEventHeader*) genHeader)->TargSpectatorsp();
475 fNpartTargMC = (Int_t)(208.-(specNeutronTarg+specProtonTarg));
476 fNpartProjMC = (Int_t)(208.-(specNeutronProj+specProtonProj));
477 fNNColl = ((AliGenHijingEventHeader*) genHeader)->NN();
478 fNNwColl = ((AliGenHijingEventHeader*) genHeader)->NNw();
479 fNwNColl = ((AliGenHijingEventHeader*) genHeader)->NwN();
480 fNwNwColl = ((AliGenHijingEventHeader*) genHeader)->NwNw();
485 fBeamEnergy = esd->GetBeamEnergy();
487 // ***** Trigger selection
488 TString triggerClass = esd->GetFiredTriggerClasses();
489 sprintf(fTrigClass,"%s",triggerClass.Data());
491 const AliESDVertex *vertex = esd->GetPrimaryVertexSPD();
492 fxVertex = vertex->GetX();
493 fyVertex = vertex->GetY();
494 fzVertex = vertex->GetZ();
495 if(vertex->IsFromVertexer3D()) fVertexer3d = kTRUE;
496 else fVertexer3d = kFALSE;
498 vertex->GetXYZ(vertex3);
500 const AliMultiplicity *mult = esd->GetMultiplicity();
501 fNTracklets = mult->GetNumberOfTracklets();
503 for(Int_t ilay=0; ilay<6; ilay++){
504 fNClusters[ilay] = mult->GetNumberOfITSClusters(ilay);
506 fNSingleClusters = mult->GetNumberOfSingleClusters();
508 for(Int_t ilay=0; ilay<2; ilay++){
509 fNChips[ilay] = mult->GetNumberOfFiredChips(ilay);
513 AliESDFMD *fmd = esd->GetFMDData();
514 Float_t totalMultA = 0;
515 Float_t totalMultC = 0;
516 const Float_t fFMDLowCut = 0.4;
518 for(UShort_t det=1;det<=3;det++) {
519 Int_t nRings = (det==1 ? 1 : 2);
520 for (UShort_t ir = 0; ir < nRings; ir++) {
521 Char_t ring = (ir == 0 ? 'I' : 'O');
522 UShort_t nsec = (ir == 0 ? 20 : 40);
523 UShort_t nstr = (ir == 0 ? 512 : 256);
524 for(UShort_t sec =0; sec < nsec; sec++) {
525 for(UShort_t strip = 0; strip < nstr; strip++) {
527 Float_t fmdmult = fmd->Multiplicity(det,ring,sec,strip);
528 if(fmdmult == 0 || fmdmult == AliESDFMD::kInvalidMult) continue;
530 Float_t nParticles=0;
532 if(fmdmult > fFMDLowCut) {
536 if (det<3) totalMultA = totalMultA + nParticles;
537 else totalMultC = totalMultC + nParticles;
543 fMultFMDA = totalMultA;
544 fMultFMDC = totalMultC;
546 AliESDZDC *esdZDC = esd->GetESDZDC();
547 fESDFlag = esdZDC->GetESDQuality();
548 fZNCEnergy = (Float_t) (esdZDC->GetZDCN1Energy());
549 fZPCEnergy = (Float_t) (esdZDC->GetZDCP1Energy());
550 fZNAEnergy = (Float_t) (esdZDC->GetZDCN2Energy());
551 fZPAEnergy = (Float_t) (esdZDC->GetZDCP2Energy());
552 fZEM1Energy = (Float_t) (esdZDC->GetZDCEMEnergy(0));
553 fZEM2Energy = (Float_t) (esdZDC->GetZDCEMEnergy(1));
555 fbZDC = esdZDC->GetImpactParameter();
556 fNpartZDC = esdZDC->GetZDCParticipants();
557 fbZDCA = esdZDC->GetImpactParamSideA();
558 fNpartZDCA = esdZDC->GetZDCPartSideA();
559 fbZDCC = esdZDC->GetImpactParamSideC();
560 fNpartZDCC = esdZDC->GetZDCPartSideC();
562 const Double_t * towZNC = esdZDC->GetZN1TowerEnergy();
563 const Double_t * towZPC = esdZDC->GetZP1TowerEnergy();
564 const Double_t * towZNA = esdZDC->GetZN2TowerEnergy();
565 const Double_t * towZPA = esdZDC->GetZP2TowerEnergy();
567 for(Int_t it=0; it<5; it++){
568 fZNCtower[it] = (Float_t) (towZNC[it]);
569 fZPCtower[it] = (Float_t) (towZPC[it]);
570 fZNAtower[it] = (Float_t) (towZNA[it]);
571 fZPAtower[it] = (Float_t) (towZPA[it]);
574 Double_t xyZNC[2]={-99.,-99.}, xyZNA[2]={-99.,-99.};
575 esdZDC->GetZNCentroidInPbPb(fBeamEnergy, xyZNC, xyZNA);
576 for(Int_t it=0; it<2; it++){
577 fCentrZNC[it] = xyZNC[it];
578 fCentrZNA[it] = xyZNA[it];
582 fhEzdc ->Fill((fZNCEnergy+fZPCEnergy+fZNAEnergy+fZPAEnergy)/1000.);
583 fhEzem ->Fill(fZEM1Energy+fZEM2Energy);
584 fhNtracks ->Fill(fNTracks);
585 fhNtracklets ->Fill(fNTracklets);
586 fhNclusters0 ->Fill(fNClusters[0]);
587 fhmultV0 ->Fill(fMultV0A+fMultV0C);
588 fhmultFMD ->Fill(fMultFMDA+fMultFMDC);
589 fhEzemvsEzdc ->Fill(fZEM1Energy+fZEM2Energy, (fZNCEnergy+fZPCEnergy+fZNAEnergy+fZPAEnergy)/1000.);
590 fhNtracksvsEzdc ->Fill(fNTracks, (fZNCEnergy+fZPCEnergy+fZNAEnergy+fZPAEnergy)/1000.);
591 fhNtrackletsvsEzdc ->Fill(fNTracklets, (fZNCEnergy+fZPCEnergy+fZNAEnergy+fZPAEnergy)/1000.);
592 fhNclusters0vsEzdc ->Fill(fNClusters[0], (fZNCEnergy+fZPCEnergy+fZNAEnergy+fZPAEnergy)/1000.);
593 fhmultV0vsEzdc ->Fill(fMultV0A+fMultV0C, (fZNCEnergy+fZPCEnergy+fZNAEnergy+fZPAEnergy)/1000.);
594 fhmultFMDvsEzdc ->Fill(fMultFMDA+fMultFMDC, (fZNCEnergy+fZPCEnergy+fZNAEnergy+fZPAEnergy)/1000.);
595 fhNtracksvsEzem ->Fill(fNTracks, fZEM1Energy+fZEM2Energy);
596 fhNtrackletsvsEzem ->Fill(fNTracklets, fZEM1Energy+fZEM2Energy);
597 fhNclusters0vsEzem ->Fill(fNClusters[0], fZEM1Energy+fZEM2Energy);
598 fhmultV0vsEzem ->Fill(fMultV0A+fMultV0C, fZEM1Energy+fZEM2Energy);
599 fhmultFMDvsEzem ->Fill(fMultFMDA+fMultFMDC, fZEM1Energy+fZEM2Energy);
600 fhNtracksvsmultV0 ->Fill(fNTracks,fMultV0A+fMultV0C);
601 fhNtrackletsvsmultV0 ->Fill(fNTracklets,fMultV0A+fMultV0C);
602 fhNclusters0vsmultV0 ->Fill(fNClusters[0],fMultV0A+fMultV0C);
603 fhNtracksvsmultFMD ->Fill(fNTracks,fMultFMDA+fMultFMDC);
604 fhNtrackletsvsmultFMD->Fill(fNTracklets,fMultFMDA+fMultFMDC);
605 fhNclusters0vsmultFMD->Fill(fNClusters[0],fMultFMDA+fMultFMDC);
606 fhmultV0vsmultFMD ->Fill(fMultV0A+fMultV0C,fMultFMDA+fMultFMDC);
608 else if(fAnalysisInput.CompareTo("AOD")==0){
609 //AliAODEvent *aod = dynamic_cast<AliAODEvent*> (InputEvent());
611 printf(" AOD analysis not yet implemented!!!\n\n");
614 PostData(1, fOutput);
617 //________________________________________________________________________
618 void AliAnalysisTaskCentrality::Terminate(Option_t */*option*/)
620 // Terminate analysis