3 #include "AlidNdEtaAnalysisMCSelector.h"
9 #include <TParticlePDG.h>
14 #include <AliGenEventHeader.h>
16 #include "dNdEtaAnalysis.h"
19 ClassImp(AlidNdEtaAnalysisMCSelector)
21 AlidNdEtaAnalysisMCSelector::AlidNdEtaAnalysisMCSelector() :
22 AlidNdEtaAnalysisSelector(),
26 // Constructor. Initialization of pointers
30 AlidNdEtaAnalysisMCSelector::~AlidNdEtaAnalysisMCSelector()
37 void AlidNdEtaAnalysisMCSelector::Init(TTree *tree)
39 AlidNdEtaAnalysisSelector::Init(tree);
41 tree->SetBranchStatus("ESD", 0);
43 fVertex = new TH3F("vertex", "vertex", 50, -50, 50, 50, -50, 50, 50, -50, 50);
46 Bool_t AlidNdEtaAnalysisMCSelector::Process(Long64_t entry)
50 if (AliSelector::Process(entry) == kFALSE)
53 TTree* particleTree = GetKinematics();
56 AliDebug(AliLog::kError, "Kinematics not available");
60 AliHeader* header = GetHeader();
63 AliDebug(AliLog::kError, "Header not available");
68 AliGenEventHeader* genHeader = header->GenEventHeader();
71 genHeader->PrimaryVertex(vtxMC);
73 particleTree->SetBranchStatus("*", 0);
74 particleTree->SetBranchStatus("fDaughter[2]", 1);
75 particleTree->SetBranchStatus("fPdgCode", 1);
76 particleTree->SetBranchStatus("fPx", 1);
77 particleTree->SetBranchStatus("fPy", 1);
78 particleTree->SetBranchStatus("fPz", 1);
79 particleTree->SetBranchStatus("fVx", 1);
80 particleTree->SetBranchStatus("fVy", 1);
81 particleTree->SetBranchStatus("fVz", 1);
83 TParticle* particle = 0;
84 particleTree->SetBranchAddress("Particles", &particle);
86 Int_t nPrim = header->GetNprimary();
87 Int_t nTotal = header->GetNtrack();
89 for (Int_t i_mc = nTotal - nPrim; i_mc < nTotal; ++i_mc)
91 particleTree->GetEntry(i_mc);
96 if (IsPrimaryCharged(particle, nPrim) == kFALSE)
99 AliDebug(AliLog::kDebug+1, Form("Accepted primary %d, unique ID: %d", i_mc, particle->GetUniqueID()));
101 fdNdEtaAnalysis->FillTrack(vtxMC[2], particle->Eta(), 1);
102 fVertex->Fill(particle->Vx(), particle->Vy(), particle->Vz());
104 fdNdEtaAnalysis->FillEvent(vtxMC[2]);
109 void AlidNdEtaAnalysisMCSelector::Terminate()
111 AlidNdEtaAnalysisSelector::Terminate();