]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG0/dNdEta/AlidNdEtaAnalysisMCSelector.cxx
c4cf94fdf85fe91b6072d6b5f80c4281313642f7
[u/mrichter/AliRoot.git] / PWG0 / dNdEta / AlidNdEtaAnalysisMCSelector.cxx
1 #include "AlidNdEtaAnalysisMCSelector.h"
2
3 #include <TStyle.h>
4 #include <TSystem.h>
5 #include <TCanvas.h>
6 #include <TParticle.h>
7 #include <TParticlePDG.h>
8 #include <TVector3.h>
9
10 #include <AliLog.h>
11 #include <AliGenEventHeader.h>
12 #include <AliTracker.h>
13
14 #include "../esdTrackCuts/AliESDtrackCuts.h"
15 #include "dNdEtaCorrection.h"
16 #include "dNdEtaAnalysis.h"
17
18 ClassImp(AlidNdEtaAnalysisMCSelector)
19
20 AlidNdEtaAnalysisMCSelector::AlidNdEtaAnalysisMCSelector(TTree * tree) :
21   AlidNdEtaAnalysisSelector(tree)
22 {
23   //
24   // Constructor. Initialization of pointers
25   //
26 }
27
28 AlidNdEtaAnalysisMCSelector::~AlidNdEtaAnalysisMCSelector()
29 {
30   //
31   // Destructor
32   //
33 }
34
35 Bool_t AlidNdEtaAnalysisMCSelector::Process(Long64_t entry)
36 {
37   //
38
39   if (AliSelector::Process(entry) == kFALSE)
40     return kFALSE;
41
42   TTree* particleTree = GetKinematics();
43   if (!fHeader || !particleTree)
44     return kFALSE;
45
46   // get the MC vertex
47   AliGenEventHeader* genHeader = fHeader->GenEventHeader();
48
49   TArrayF vtxMC(3);
50   genHeader->PrimaryVertex(vtxMC);
51
52   TParticle* particle = 0;
53   particleTree->SetBranchAddress("Particles", &particle);
54
55   Int_t nPrim  = fHeader->GetNprimary();
56   Int_t nTotal = fHeader->GetNtrack();
57
58   for (Int_t i_mc = nTotal - nPrim; i_mc < nTotal; ++i_mc)
59   {
60     particleTree->GetEntry(i_mc);
61
62     if (!particle)
63       continue;
64
65     if (IsPrimaryCharged(particle, nPrim) == kFALSE)
66       continue;
67
68     fdNdEtaAnalysis->FillTrack(vtxMC[2], particle->Eta(), 1);
69   }
70   fdNdEtaAnalysis->FillEvent(vtxMC[2]);
71
72   return kTRUE;
73 }