1 //------------------------------------------------------------------------------
2 // Impementation of AliMCInfoCuts class. It keeps selection cuts for MC tracks.
5 // Author: J.Otwinowski 04/02/2008
6 //------------------------------------------------------------------------------
13 #include "AliMCInfoCuts.h"
17 ClassImp(AliMCInfoCuts)
19 //_____________________________________________________________________________
20 AliMCInfoCuts::AliMCInfoCuts(const Char_t* name,const Char_t *title) :
21 AliAnalysisCuts(name, title)
22 , fMinRowsWithDigits(0)
29 // default constructor
31 // init data members with defaults
35 //_____________________________________________________________________________
36 AliMCInfoCuts::~AliMCInfoCuts()
39 if(aTrackParticles != 0)
41 delete aTrackParticles;
46 //_____________________________________________________________________________
47 void AliMCInfoCuts::Init()
50 SetMinRowsWithDigits();
55 // create aTrackParticles array
56 aTrackParticles = new TArrayI(kNParticles); // max nb. of particles
57 aTrackParticles->Reset(0);
59 // create an array of track particles: e, muons, pions, kaons, protons
60 if(aTrackParticles != 0)
62 // keep order adding a new particles
63 AddPdgParticle(0,ep); // e+
64 AddPdgParticle(1,em); // e-
65 AddPdgParticle(2,mup); // mu+
66 AddPdgParticle(3,mum); // mu-
67 AddPdgParticle(4,pip); // pi+
68 AddPdgParticle(5,pim); // pi-
69 AddPdgParticle(6,kp); // K+
70 AddPdgParticle(7,km); // K-
71 AddPdgParticle(8,prot); // p
72 AddPdgParticle(9,protbar); // p_bar
76 //_____________________________________________________________________________
77 void AliMCInfoCuts::AddPdgParticle(Int_t idx, Int_t pdgcode) const
79 // add particle to the array
80 if(aTrackParticles != 0) aTrackParticles->AddAt(pdgcode,idx);
81 else AliDebug(AliLog::kError, "ERROR: Cannot add particle to the array");
84 //_____________________________________________________________________________
85 Bool_t AliMCInfoCuts::IsPdgParticle(Int_t pdgcode) const
88 if(aTrackParticles == 0) {
89 AliDebug(AliLog::kError, "ERROR: Cannot get particle array");
93 Int_t size = aTrackParticles->GetSize();
94 for(int i=0; i<size; ++i) {
95 if(pdgcode == aTrackParticles->At(i)) return kTRUE;
100 //_____________________________________________________________________________
101 Long64_t AliMCInfoCuts::Merge(TCollection* list)
103 // Merge list of objects (needed by PROOF)
110 TIterator* iter = list->MakeIterator();
114 while((obj = iter->Next()) != 0)
116 AliMCInfoCuts* entry = dynamic_cast<AliMCInfoCuts*>(obj);