]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/totEt/AliAnalysisEmEtReconstructed.cxx
Exploring task to collect some informations on nuclei in pp
[u/mrichter/AliRoot.git] / PWGLF / totEt / AliAnalysisEmEtReconstructed.cxx
CommitLineData
2e12941b 1//_________________________________________________________________________
2// Utility Class for transverse energy studies
3// Base class for MC analysis
4// - MC output
5// implementation file
6//
7//*-- Author: Marcelo G. Munhoz (USP)
f2adae2b 8 //_________________________________________________________________________
2e12941b 9
10#include "AliAnalysisEmEtReconstructed.h"
11#include "AliAnalysisEtCuts.h"
12#include "AliESDtrack.h"
13#include "AliStack.h"
14#include "AliVEvent.h"
15#include "AliMCEvent.h"
16#include "AliESDEvent.h"
17#include "TH2F.h"
18#include "TParticle.h"
19#include "AliGenHijingEventHeader.h"
20#include "AliGenPythiaEventHeader.h"
21#include "TList.h"
22#include "AliESDCaloCluster.h"
23#include "TGeoGlobalMagField.h"
24#include "AliMagF.h"
25#include "AliEMCALTrack.h"
26#include "AliESDtrackCuts.h"
27#include "AliEMCALGeometry.h"
28#include "AliExternalTrackParam.h"
29#include "AliTrackerBase.h"
30#include "TGeoManager.h"
2c70dc4d 31#include "AliCentrality.h"
2e12941b 32
f2adae2b 33 using namespace std;
2e12941b 34
35ClassImp(AliAnalysisEmEtReconstructed);
36
37
38// ctor
39AliAnalysisEmEtReconstructed::AliAnalysisEmEtReconstructed():AliAnalysisEtReconstructed()
0af25ca1 40 ,fResCut(0)
f2adae2b 41 ,fAllRectotETDep(0)
42 ,fElectronMatchtotETDep(0)
43 ,fNeutralRectotET(0)
44 ,fTotEMRectotET(0)
45
46 ,fMuonMatchtotETDep(0), fPionMatchtotETDep(0), fKaonMatchtotETDep(0), fProtonMatchtotETDep(0)
47 ,fTotChargedMatchtotETDep(0)
48
49 ,fTotalRectotETDep(0)
50
51 ,fESD(0)
2ed44673 52// ,fGeoUt(0)
f2adae2b 53
54 ,fHistAllRecETDep(0)
55 ,fHistAllRec(0)
56 ,fHistAllRectotETDep(0)
57
58 ,fHistElectronRecETDep(0)
59 ,fHistElectronRec(0)
60 ,fHistElectronMatchtotETDep(0)
61 ,fHistElectronRecdEdxP(0)
62
63 ,fHistNeutralRectotET(0)
64
65 ,fHistTotEMRectotET(0)
66
67 ,fHistMuonRecETDep(0)
68 ,fHistMuonRec(0)
69 ,fHistMuonMatchtotETDep(0)
70 ,fHistMuonRecdEdxP(0)
71
72 ,fHistPionRecETDep(0)
73 ,fHistPionRec(0)
74 ,fHistPionMatchtotETDep(0)
75 ,fHistPionRecdEdxP(0)
76
77 ,fHistKaonRecETDep(0)
78 ,fHistKaonRec(0)
79 ,fHistKaonMatchtotETDep(0)
80 ,fHistKaonRecdEdxP(0)
81
82 ,fHistProtonRecETDep(0)
83 ,fHistProtonRec(0)
84 ,fHistProtonMatchtotETDep(0)
85 ,fHistProtonRecdEdxP(0)
86
87 ,fHistTotChargedMatchtotETDep(0)
88
89 ,fHistTotalRectotETDep(0)
90
91 ,fHistDeltaRZ(0)
2e12941b 92{//constructor
f2adae2b 93 fHistogramNameSuffix = TString("EmcalRec");
2e12941b 94
f2adae2b 95 fResCut = 0.02;
96 //fResCut = fEmcalTrackDistanceCut;
2e12941b 97
f2adae2b 98 TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", -1., -1., AliMagF::k5kG));
99 //TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 1., 1., AliMagF::k5kG));
100 TGeoManager::Import("geometry.root");
2e12941b 101}
102
103// dtor
104AliAnalysisEmEtReconstructed::~AliAnalysisEmEtReconstructed()
f2adae2b 105{//Destructor
2ed44673 106// delete fGeoUt;
a4d91e7c 107
f2adae2b 108 delete fHistAllRecETDep;
109 delete fHistAllRec;
110 delete fHistAllRectotETDep;
a4d91e7c 111
f2adae2b 112 delete fHistElectronRecETDep;
113 delete fHistElectronRec;
114 delete fHistElectronMatchtotETDep;
a4d91e7c 115
f2adae2b 116 delete fHistElectronRecdEdxP;
a4d91e7c 117
f2adae2b 118 delete fHistNeutralRectotET;
a4d91e7c 119
f2adae2b 120 delete fHistTotEMRectotET;
a4d91e7c 121
f2adae2b 122 delete fHistMuonRecETDep;
123 delete fHistMuonRec;
124 delete fHistMuonMatchtotETDep;
a4d91e7c 125
f2adae2b 126 delete fHistMuonRecdEdxP;
a4d91e7c 127
f2adae2b 128 delete fHistPionRecETDep;
129 delete fHistPionRec;
130 delete fHistPionMatchtotETDep;
a4d91e7c 131
f2adae2b 132 delete fHistPionRecdEdxP;
a4d91e7c 133
f2adae2b 134 delete fHistKaonRecETDep;
135 delete fHistKaonRec;
136 delete fHistKaonMatchtotETDep;
a4d91e7c 137
f2adae2b 138 delete fHistKaonRecdEdxP;
a4d91e7c 139
f2adae2b 140 delete fHistProtonRecETDep;
141 delete fHistProtonRec;
142 delete fHistProtonMatchtotETDep;
a4d91e7c 143
f2adae2b 144 delete fHistProtonRecdEdxP;
a4d91e7c 145
f2adae2b 146 delete fHistTotChargedMatchtotETDep;
a4d91e7c 147
f2adae2b 148 delete fHistTotalRectotETDep;
a4d91e7c 149
f2adae2b 150 //few checks
151 delete fHistDeltaRZ;
a4d91e7c 152
2e12941b 153}
154
155Int_t AliAnalysisEmEtReconstructed::AnalyseEvent(AliVEvent* ev)
156{ // analyse MC and real event info
f2adae2b 157 if(!ev){
158 AliError("ERROR: Event does not exist");
159 return 0;
160 }
161
162 fESD = dynamic_cast<AliESDEvent*>(ev);
6481ee88 163 if (!fESD) {
164 AliError("ERROR: Could not retrieve event");
165 return 0;
166 }
f2adae2b 167
2ed44673 168// if(!fGeoUt){
169// fGeoUt = AliEMCALGeometry::GetInstance("EMCAL_FIRSTYEARV1");//new AliEMCALGeometry("EMCAL_FIRSTYEAR","EMCAL");
170// //fGeoUt = AliEMCALGeometry::GetInstance("EMCAL_COMPLETEV1");
171// AliInfo("Creating new AliEMCALGeometry");
172// }
173// //fGeoUt = new AliEMCALGeometry("EMCAL_COMPLETE1","EMCAL");
174// if(!fGeoUt){
175// AliInfo("No fGeoUt!");
176// }
177// else{
178// if(!fESD->GetEMCALMatrix(0)){
179// AliInfo("No matrix!");
180// }
181// else{
182// fGeoUt->SetMisalMatrix(fESD->GetEMCALMatrix(0),0);
183// }
184// }
2c70dc4d 185
186 fCentBin= -1;
187 if(fDataSet==20100){//If this is Pb+Pb
188 AliCentrality *centrality = ev->GetCentrality();
189 if(fNCentBins<21) fCentBin= centrality->GetCentralityClass10(fCentralityMethod);
190 else{ fCentBin= centrality->GetCentralityClass5(fCentralityMethod);}
191 }
2e12941b 192
f2adae2b 193 ResetEventValues();
2e12941b 194
f2adae2b 195 // get all emcal clusters
196 TRefArray* caloClusters = new TRefArray();
197 fESD->GetEMCALClusters( caloClusters );
2e12941b 198
f2adae2b 199 Int_t nCluster = caloClusters->GetEntries();
2e12941b 200
f2adae2b 201 Float_t pos[3] = {0};
202 TVector3 caloPos(0,0,0);
203 TVector3 trackPos(0,0,0);
f6b36c54 204// Double_t res=0, delta_eta=0, delta_phi=0, maxPid=-99;
205 Double_t res=0, maxPid=-99;
f2adae2b 206 Double_t xCluster[4]={0}, xCharged[7]={0};
7687e5b3 207
208 AliESDtrack *track = 0;
209
f2adae2b 210 // loop the clusters
211 for (int iCluster = 0; iCluster < nCluster; iCluster++ )
212 {
213 // Retrieve calo cluster information
214 AliESDCaloCluster* caloCluster = ( AliESDCaloCluster* )caloClusters->At( iCluster );
215 Float_t caloE = caloCluster->E();
216 caloCluster->GetPosition(pos);
217 caloPos.SetXYZ(pos[0],pos[1],pos[2]);
2e12941b 218
f2adae2b 219 // look for track that matches calo cluster
7687e5b3 220 //track = FindMatch(caloCluster, res); // Marcelo's matching
221
222 // *********************
223 // tender's matching
f6b36c54 224// delta_eta = caloCluster->GetTrackDz();
225// delta_phi = caloCluster->GetTrackDx();
7687e5b3 226
227 if (caloCluster->GetTrackMatchedIndex() > 0) // tender's matching
228 track = fESD->GetTrack(caloCluster->GetTrackMatchedIndex());
229
230 //if (track)
231 // if ( !fEsdtrackCutsITSTPC->IsSelected(track) )
232 // track = 0;
233 // *********************
234
f2adae2b 235 // Retrieve track PID
6481ee88 236 if (track) {
f2adae2b 237 maxPid = GetTrackPID(track);
6481ee88 238 xCharged[0] = track->Eta();
239 xCharged[1] = track->Pt(); }
240 else {
f2adae2b 241 maxPid = -99;
6481ee88 242 xCharged[0] = -99;
243 xCharged[1] = -99;
244 }
245
f2adae2b 246 // calculate ET
cfe23ff0 247 Double_t etDep = CorrectForReconstructionEfficiency(*caloCluster);
2e12941b 248
f2adae2b 249 // All clusters
250 //fHistAllRecEtaEDepETDep->Fill(caloE,caloPos.Eta(),etDep);
251 //fHistAllRecEtaETDep->Fill(etDep,caloPos.Eta());
2e12941b 252
f2adae2b 253 xCluster[0] = caloE;
254 xCluster[1] = caloPos.Eta();
255 xCluster[2] = TMath::RadToDeg()*caloPos.Phi();
256 xCluster[3] = caloCluster->GetNCells();
257 fAllRectotETDep += etDep;
2e12941b 258
f2adae2b 259
260 if(fMakeSparse){
261 fHistAllRecETDep->Fill(xCluster,etDep);
262 fHistAllRec->Fill(xCluster);
263 }
264
f2adae2b 265 xCharged[2] = caloE;
266 xCharged[3] = caloPos.Eta();
267 xCharged[4] = TMath::RadToDeg()*caloPos.Phi();
268 xCharged[5] = caloCluster->GetNCells();
269 xCharged[6] = res;
2e12941b 270
f2adae2b 271 Bool_t isCharged = kFALSE;
2e12941b 272
f2adae2b 273 if (maxPid == AliPID::kProton)
274 {
2e12941b 275
f2adae2b 276 if(fMakeSparse){
277 fHistProtonRecETDep->Fill(xCharged,etDep);
278 fHistProtonRec->Fill(xCharged);
279 }
2e12941b 280
6481ee88 281 if (track) fHistProtonRecdEdxP->Fill(track->P(),track->GetTPCsignal());
2e12941b 282
f2adae2b 283 if ((res>0.) && (res<fResCut))
284 {
285 fProtonMatchtotETDep += etDep;
286
287 isCharged = kTRUE;
288 }
289 }
290 else if (maxPid == AliPID::kPion)
291 {
2e12941b 292
f2adae2b 293 if(fMakeSparse){
294 fHistPionRecETDep->Fill(xCharged,etDep);
295 fHistPionRec->Fill(xCharged);
296 }
2e12941b 297
6481ee88 298 if (track) fHistPionRecdEdxP->Fill(track->P(),track->GetTPCsignal());
2e12941b 299
f2adae2b 300 if ((res>0.) && (res<fResCut))
301 {
302 fPionMatchtotETDep += etDep;
303 isCharged = kTRUE;
304 }
305 }
306 else if (maxPid == AliPID::kKaon)
307 {
2e12941b 308
f2adae2b 309 if(fMakeSparse){
310 fHistKaonRecETDep->Fill(xCharged,etDep);
311 fHistKaonRec->Fill(xCharged);
312 }
2e12941b 313
6481ee88 314 if (track) fHistKaonRecdEdxP->Fill(track->P(),track->GetTPCsignal());
2e12941b 315
f2adae2b 316 if ((res>0.) && (res<fResCut))
317 {
2e12941b 318
f2adae2b 319 fKaonMatchtotETDep += etDep;
320 isCharged = kTRUE;
321 }
322 }
323 else if (maxPid == AliPID::kMuon)
324 {
2e12941b 325
f2adae2b 326 if(fMakeSparse){
327 fHistMuonRecETDep->Fill(xCharged,etDep);
328 fHistMuonRec->Fill(xCharged);
329 }
6481ee88 330 if (track) fHistMuonRecdEdxP->Fill(track->P(),track->GetTPCsignal());
2e12941b 331
f2adae2b 332 if ((res>0.) && (res<fResCut))
333 {
2e12941b 334
f2adae2b 335 fMuonMatchtotETDep += etDep;
336 isCharged = kTRUE;
337 }
338 }
339 else if (maxPid == AliPID::kElectron)
340 {
2e12941b 341
f2adae2b 342 if(fMakeSparse){
343 fHistElectronRecETDep->Fill(xCharged,etDep);
344 fHistElectronRec->Fill(xCharged);
345 }
346
6481ee88 347 if (track) fHistElectronRecdEdxP->Fill(track->P(),track->GetTPCsignal());
f2adae2b 348
349 if ((res>0.) && (res<fResCut))
350 {
351 fElectronMatchtotETDep += etDep;
352 isCharged = kTRUE;
353 }
354 }
2e12941b 355
f2adae2b 356 if (!isCharged)
357 {
358 fNeutralRectotET += etDep;
359 }
2e12941b 360
f2adae2b 361 } // end of loop over clusters
2e12941b 362
f2adae2b 363 fTotEMRectotET = fElectronMatchtotETDep + fNeutralRectotET;
364 fTotChargedMatchtotETDep = fMuonMatchtotETDep + fPionMatchtotETDep + fKaonMatchtotETDep + fProtonMatchtotETDep;
365 fTotalRectotETDep = fTotEMRectotET + fTotChargedMatchtotETDep;
2e12941b 366
f2adae2b 367 fHistAllRectotETDep->Fill(fAllRectotETDep);
2e12941b 368
f2adae2b 369 fHistElectronMatchtotETDep->Fill(fElectronMatchtotETDep);
370 fHistNeutralRectotET->Fill(fNeutralRectotET);
2e12941b 371
f2adae2b 372 fHistTotEMRectotET->Fill(fTotEMRectotET);
2e12941b 373
f2adae2b 374 fHistMuonMatchtotETDep->Fill(fMuonMatchtotETDep);
375 fHistPionMatchtotETDep->Fill(fPionMatchtotETDep);
376 fHistKaonMatchtotETDep->Fill(fKaonMatchtotETDep);
377 fHistProtonMatchtotETDep->Fill(fProtonMatchtotETDep);
378 fHistTotChargedMatchtotETDep->Fill(fTotChargedMatchtotETDep);
2e12941b 379
f2adae2b 380 fHistTotalRectotETDep->Fill(fTotalRectotETDep);
2e12941b 381
f2adae2b 382 delete caloClusters;
2e12941b 383
f2adae2b 384 return 0;
2e12941b 385}
386
387void AliAnalysisEmEtReconstructed::Init()
388{ // init
f2adae2b 389 AliAnalysisEt::Init();
2e12941b 390}
391
392
393void AliAnalysisEmEtReconstructed::ResetEventValues()
394{ // reset event values
f2adae2b 395 AliAnalysisEt::ResetEventValues();
2e12941b 396
f2adae2b 397 // collision geometry defaults for p+p:
398 fAllRectotETDep = 0;
2e12941b 399
f2adae2b 400 fElectronMatchtotETDep = 0;
401 fNeutralRectotET = 0;
2e12941b 402
f2adae2b 403 fTotEMRectotET = 0;
2e12941b 404
f2adae2b 405 fMuonMatchtotETDep = 0; fPionMatchtotETDep = 0; fKaonMatchtotETDep = 0; fProtonMatchtotETDep = 0;
406 fTotChargedMatchtotETDep = 0;
2e12941b 407
f2adae2b 408 fTotalRectotETDep = 0;
2e12941b 409}
410
411
412void AliAnalysisEmEtReconstructed::CreateHistograms()
413{ // histogram related additions
f2adae2b 414 //AliAnalysisEt::CreateHistograms();
415
416 if(fMakeSparse){
417 fHistAllRecETDep = CreateClusterHistoSparse("fHistAllRecETDep_","E_{T}, all particles");
418 fHistAllRec = CreateClusterHistoSparse("fHistAllRec_","counts, all particles");
419 }
420 TString histname = "fHistAllRectotETDep_" + fHistogramNameSuffix;
421 fHistAllRectotETDep = new TH1F(histname.Data(),"total ET, all particles",fgNumOfEBins, fgEAxis);
422
423
424 if(fMakeSparse){
425 fHistElectronRecETDep = CreateChargedPartHistoSparse("fHistElectronRecETDep_","E_{T}, electrons");
426 fHistElectronRec = CreateChargedPartHistoSparse("fHistElectronRec_","counts, electrons");
427 }
428 histname = "fHistElectronMatchtotETDep_" + fHistogramNameSuffix;
429 fHistElectronMatchtotETDep = new TH1F(histname.Data(),"total ET, MC primary Electrons",fgNumOfEBins, fgEAxis);
430
431 histname = "fHistElectronRecdEdxP_" + fHistogramNameSuffix;
432 fHistElectronRecdEdxP = new TH2F(histname,"TPC dEdx vs P",100,0.,10.,100,0.,200.);
433
434 histname = "fHistNeutralRectotET_" + fHistogramNameSuffix;
435 fHistNeutralRectotET = new TH1F(histname.Data(),"total ET, neutral particles",fgNumOfEBins, fgEAxis);
436
437 histname = "fHistTotEMRectotET_" + fHistogramNameSuffix;
438 fHistTotEMRectotET = new TH1F(histname.Data(),"total electromagnetic ET",fgNumOfEBins, fgEAxis);
439
440 if(fMakeSparse){
441 fHistMuonRecETDep = CreateChargedPartHistoSparse("fHistMuonRecETDep_","E_{T}, muons");
442 fHistMuonRec = CreateChargedPartHistoSparse("fHistMuonRec_","counts, muons");
443 }
444 histname = "fHistMuonMatchtotETDep_" + fHistogramNameSuffix;
445 fHistMuonMatchtotETDep = new TH1F(histname.Data(),"total ET, Muons",fgNumOfEBins, fgEAxis);
446
447 histname = "fHistMuonRecdEdxP_" + fHistogramNameSuffix;
448 fHistMuonRecdEdxP = new TH2F(histname,"TPC dEdx vs P",100,0.,10.,100,0.,200.);
449
450 if(fMakeSparse){
451 fHistPionRecETDep = CreateChargedPartHistoSparse("fHistPionRecETDep_","E_{T}, pions");
452 fHistPionRec = CreateChargedPartHistoSparse("fHistPionRec_","counts, pions");
453 }
454 histname = "fHistPionMatchtotETDep_" + fHistogramNameSuffix;
455 fHistPionMatchtotETDep = new TH1F(histname.Data(),"total ET, Pions",fgNumOfEBins, fgEAxis);
456 histname = "fHistPionRecdEdxP_" + fHistogramNameSuffix;
457 fHistPionRecdEdxP = new TH2F(histname,"TPC dEdx vs P",100,0.,10.,100,0.,200.);
458
459 if(fMakeSparse){
460 fHistKaonRecETDep = CreateChargedPartHistoSparse("fHistKaonRecETDep_","E_{T}, kaons");
461 fHistKaonRec = CreateChargedPartHistoSparse("fHistKaonRec_","counts, kaons");
462 }
463 histname = "fHistKaonMatchtotETDep_" + fHistogramNameSuffix;
464 fHistKaonMatchtotETDep = new TH1F(histname.Data(),"total ET, Kaons",fgNumOfEBins, fgEAxis);
465
466 histname = "fHistKaonRecdEdxP_" + fHistogramNameSuffix;
467 fHistKaonRecdEdxP = new TH2F(histname,"TPC dEdx vs P",100,0.,10.,100,0.,200.);
468
469 if(fMakeSparse){
470 fHistProtonRecETDep = CreateChargedPartHistoSparse("fHistProtonRecETDep_","E_{T}, protons");
471 fHistProtonRec = CreateChargedPartHistoSparse("fHistProtonRec_","counts, protons");
472 }
473 histname = "fHistProtonMatchtotETDep_" + fHistogramNameSuffix;
474 fHistProtonMatchtotETDep = new TH1F(histname.Data(),"total ET, Protons",fgNumOfEBins, fgEAxis);
475
476 histname = "fHistProtonRecdEdxP_" + fHistogramNameSuffix;
477 fHistProtonRecdEdxP = new TH2F(histname,"TPC dEdx vs P",100,0.,10.,100,0.,200.);
478
479 histname = "fHistTotChargedMatchtotETDep_" + fHistogramNameSuffix;
480 fHistTotChargedMatchtotETDep = new TH1F(histname.Data(),"total ET, charged particles",fgNumOfEBins, fgEAxis);
481
482 histname = "fHistTotalRectotETDep_" + fHistogramNameSuffix;
483 fHistTotalRectotETDep = new TH1F(histname.Data(),"total ET, all particles",fgNumOfEBins, fgEAxis);
484
485 histname = "fHistDeltaRZ_" + fHistogramNameSuffix;
486 fHistDeltaRZ = new TH2F(histname,"#Delta#phi vs #Delta#eta (track projection - cluster position)",200,-0.1,0.1,200,-0.1,0.1);
2e12941b 487}
488
489void AliAnalysisEmEtReconstructed::FillOutputList(TList *list)
490{//Function for filling the output list
f2adae2b 491 //AliAnalysisEt::FillOutputList(list);
492
493
494 if(fMakeSparse){
495 list->Add(fHistAllRecETDep);
496 list->Add(fHistAllRec);
497 }
498 list->Add(fHistAllRectotETDep);
499
500 if(fMakeSparse){
501 list->Add(fHistElectronRecETDep);
502 list->Add(fHistElectronRec);
503 }
504 list->Add(fHistElectronMatchtotETDep);
505 list->Add(fHistElectronRecdEdxP);
506
507
508 list->Add(fHistTotEMRectotET);
509
510 list->Add(fHistMuonRec);
511 list->Add(fHistMuonRecdEdxP);
512 list->Add(fHistMuonMatchtotETDep);
513
514 if(fMakeSparse){
515 list->Add(fHistPionRecETDep);
516 list->Add(fHistPionRec);
517 }
518 list->Add(fHistPionMatchtotETDep);
519 list->Add(fHistPionRecdEdxP);
520
521 if(fMakeSparse){
522 list->Add(fHistKaonRecETDep);
523 list->Add(fHistKaonRec);
524 }
525 list->Add(fHistKaonMatchtotETDep);
526 list->Add(fHistKaonRecdEdxP);
527
528 if(fMakeSparse){
529 list->Add(fHistProtonRecETDep);
530 list->Add(fHistProtonRec);
531 }
532 list->Add(fHistProtonMatchtotETDep);
533 list->Add(fHistProtonRecdEdxP);
534
535 list->Add(fHistTotChargedMatchtotETDep);
536 list->Add(fHistTotalRectotETDep);
537
538 list->Add(fHistDeltaRZ);
2e12941b 539}
540
2e12941b 541//________________________________________________________________________
542Double_t AliAnalysisEmEtReconstructed::GetTrackPID(const AliESDtrack *track) const
543{//Get the default track ID
f2adae2b 544 const Double_t *pidWeights = track->PID();
545 Int_t maxpid = -1;
546 Double_t maxpidweight = 0;
2e12941b 547
f2adae2b 548 if (pidWeights)
549 {
550 for (Int_t p =0; p < AliPID::kSPECIES; p++)
2e12941b 551 {
f2adae2b 552 if (pidWeights[p] > maxpidweight)
553 {
554 maxpidweight = pidWeights[p];
555 maxpid = p;
556 }
2e12941b 557 }
f2adae2b 558 }
2e12941b 559
f2adae2b 560 return maxpid;
2e12941b 561}