]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG1/AliMCInfoCuts.cxx
Removed hidden symbols (Marian)
[u/mrichter/AliRoot.git] / PWG1 / AliMCInfoCuts.cxx
CommitLineData
e178f9f2 1//------------------------------------------------------------------------------
2// Impementation of AliMCInfoCuts class. It keeps selection cuts for MC tracks.
3//
4//
5// Author: J.Otwinowski 04/02/2008
6//------------------------------------------------------------------------------
7
8#include <iostream>
9#include <TArrayI.h>
10#include <TList.h>
11
12#include "AliLog.h"
13#include "AliMCInfoCuts.h"
14
15using namespace std;
16
17ClassImp(AliMCInfoCuts)
18
19//_____________________________________________________________________________
20AliMCInfoCuts::AliMCInfoCuts(const Char_t* name,const Char_t *title) :
21AliAnalysisCuts(name, title)
22, fMinRowsWithDigits(0)
23, fMaxR(0)
24, fMaxVz(0)
25, fMinTPCSignal(0)
26, fMaxTPCSignal(0)
27, aTrackParticles(0)
28{
29 // default constructor
30
31 // init data members with defaults
32 Init();
33}
34
35//_____________________________________________________________________________
36AliMCInfoCuts::~AliMCInfoCuts()
37{
38 // destructor
39 if(aTrackParticles != 0)
40 {
41 delete aTrackParticles;
42 aTrackParticles = 0;
43 }
44}
45
46//_____________________________________________________________________________
47void AliMCInfoCuts::Init()
48{
49 // set default values
50 SetMinRowsWithDigits();
51 SetMaxR();
52 SetMaxVz();
53 SetRangeTPCSignal();
54
55 // create aTrackParticles array
56 aTrackParticles = new TArrayI(kNParticles); // max nb. of particles
57 aTrackParticles->Reset(0);
58
59 // create an array of track particles: e, muons, pions, kaons, protons
60 if(aTrackParticles != 0)
61 {
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
73 }
74}
75
76//_____________________________________________________________________________
77void AliMCInfoCuts::AddPdgParticle(Int_t idx, Int_t pdgcode) const
78{
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");
82}
83
84//_____________________________________________________________________________
85Bool_t AliMCInfoCuts::IsPdgParticle(Int_t pdgcode) const
86{
87 // check PDG particle
88 if(aTrackParticles == 0) {
89 AliDebug(AliLog::kError, "ERROR: Cannot get particle array");
90 return kFALSE;
91 }
92
93 Int_t size = aTrackParticles->GetSize();
94 for(int i=0; i<size; ++i) {
95 if(pdgcode == aTrackParticles->At(i)) return kTRUE;
96 }
97 return kFALSE;
98}
99
100//_____________________________________________________________________________
101Long64_t AliMCInfoCuts::Merge(TCollection* list)
102{
103 // Merge list of objects (needed by PROOF)
104 if (!list)
105 return 0;
106
107 if (list->IsEmpty())
108 return 1;
109
110 TIterator* iter = list->MakeIterator();
111 TObject* obj = 0;
112
113 Int_t count=0;
114 while((obj = iter->Next()) != 0)
115 {
116 AliMCInfoCuts* entry = dynamic_cast<AliMCInfoCuts*>(obj);
117 if (entry == 0)
118 continue;
119
120 count++;
121 }
122
123return count;
124}