24 #include "AliAODMCParticle.h"
25 #include "AliMCEvent.h"
26 #include "AliVParticle.h"
27 #include "AliVEvent.h"
28 #include "AliVVertex.h"
40 namespace EMCalTriggerPtAnalysis {
43 AliEMCalTriggerMCParticleAnalysisComponent::AliEMCalTriggerMCParticleAnalysisComponent() :
44 AliEMCalTriggerTracksAnalysisComponent()
52 AliEMCalTriggerMCParticleAnalysisComponent::AliEMCalTriggerMCParticleAnalysisComponent(
const char* name) :
53 AliEMCalTriggerTracksAnalysisComponent(name)
61 void AliEMCalTriggerMCParticleAnalysisComponent::CreateHistos() {
66 const AliEMCalTriggerBinningDimension *ptbinning = fBinning->GetBinning(
"pt"),
67 *etabinning = fBinning->GetBinning(
"eta"),
68 *phibinning = fBinning->GetBinning(
"phi"),
69 *vertexbinning = fBinning->GetBinning(
"zvertex");
70 AliEMCalTriggerTracksAnalysisComponent::CreateHistos();
71 const TAxis *trackaxes[4] = {
72 DefineAxis(
"pt", ptbinning),
73 DefineAxis(
"eta", etabinning),
74 DefineAxis(
"phi", phibinning),
75 DefineAxis(
"zvertex", vertexbinning)
77 fHistos->CreateTHnSparse(
"hMCtrueParticles",
"Particle-based histogram for MC-true particles", 4, trackaxes,
"s");
81 void AliEMCalTriggerMCParticleAnalysisComponent::Process(
const AliEMCalTriggerEventData*
const data) {
85 AliMCEvent *mc = data->GetMCEvent();
87 AliVEvent *rec = data->GetRecEvent();
90 if(fWeightHandler && data->GetMCEvent()){
91 weight = fWeightHandler->GetEventWeight(data->GetMCEvent());
93 for(
int itrk = 0; itrk < mc->GetNumberOfTracks(); itrk++){
94 AliVParticle *track = mc->GetTrack(itrk);
95 if(!track->Charge())
continue;
96 if(!IsPhysicalPrimary(track, mc))
continue;
97 if(!fKineCuts->IsSelected(track))
continue;
99 values[0] = TMath::Abs(track->Pt());
100 values[1] = track->Eta();
101 values[2] = track->Phi();
102 values[3] = rec->GetPrimaryVertex()->GetZ();
103 fHistos->FillTHnSparse(
"hMCtrueParticles", values, weight);
108 bool AliEMCalTriggerMCParticleAnalysisComponent::IsPhysicalPrimary(
const AliVParticle*
const part,
const AliMCEvent*
const mcev)
const {
112 const AliAODMCParticle *aodpart =
dynamic_cast<const AliAODMCParticle *
>(part);
114 return aodpart->IsPhysicalPrimary();
116 return mcev->IsPhysicalPrimary(TMath::Abs(part->GetLabel()));
Weight handler for the analysis of high- tracks in EMCAL-triggered events.
ClassImp(EMCalTriggerPtAnalysis::AliEMCalTriggerMCParticleAnalysisComponent) namespace EMCalTriggerPtAnalysis