26 #include "AliAODMCParticle.h"
27 #include "AliMCEvent.h"
28 #include "AliVParticle.h"
29 #include "AliVEvent.h"
30 #include "AliVVertex.h"
42 namespace EMCalTriggerPtAnalysis {
45 AliEMCalTriggerMCParticleAnalysisComponent::AliEMCalTriggerMCParticleAnalysisComponent() :
46 AliEMCalTriggerTracksAnalysisComponent()
54 AliEMCalTriggerMCParticleAnalysisComponent::AliEMCalTriggerMCParticleAnalysisComponent(
const char* name) :
55 AliEMCalTriggerTracksAnalysisComponent(name)
63 void AliEMCalTriggerMCParticleAnalysisComponent::CreateHistos() {
68 const TBinning *ptbinning = fBinning->GetBinning(
"pt"),
69 *etabinning = fBinning->GetBinning(
"eta"),
70 *phibinning = fBinning->GetBinning(
"phi"),
71 *vertexbinning = fBinning->GetBinning(
"zvertex");
72 AliEMCalTriggerTracksAnalysisComponent::CreateHistos();
73 const TAxis *trackaxes[4] = {
74 DefineAxis(
"pt", *ptbinning),
75 DefineAxis(
"eta", *etabinning),
76 DefineAxis(
"phi", *phibinning),
77 DefineAxis(
"zvertex", *vertexbinning)
79 fHistos->CreateTHnSparse(
"hMCtrueParticles",
"Particle-based histogram for MC-true particles", 4, trackaxes,
"s");
87 AliMCEvent *mc = data->GetMCEvent();
89 AliVEvent *rec = data->GetRecEvent();
92 if(fWeightHandler && data->GetMCEvent()){
93 weight = fWeightHandler->GetEventWeight(data->GetMCEvent());
95 for(
int itrk = 0; itrk < mc->GetNumberOfTracks(); itrk++){
96 AliVParticle *track = mc->GetTrack(itrk);
97 if(!track->Charge())
continue;
98 if(!IsPhysicalPrimary(track, mc))
continue;
99 if(!fKineCuts->IsSelected(track))
continue;
101 values[0] = TMath::Abs(track->Pt());
102 values[1] = track->Eta();
103 values[2] = track->Phi();
104 values[3] = rec->GetPrimaryVertex()->GetZ();
105 fHistos->FillTHnSparse(
"hMCtrueParticles", values, weight);
110 bool AliEMCalTriggerMCParticleAnalysisComponent::IsPhysicalPrimary(
const AliVParticle*
const part,
const AliMCEvent*
const mcev)
const {
114 const AliAODMCParticle *aodpart =
dynamic_cast<const AliAODMCParticle *
>(part);
116 return aodpart->IsPhysicalPrimary();
118 return mcev->IsPhysicalPrimary(part->GetLabel());
Interface for binnings used by the histogram handler.
ClassImp(EMCalTriggerPtAnalysis::AliEMCalTriggerMCParticleAnalysisComponent) namespace EMCalTriggerPtAnalysis
void Process(Int_t *pflag[23040][7], TH1 *inhisto, Double_t Nsigma=4., Int_t dnbins=200, Double_t dmaxval=-1., Int_t compteur=1)
Event Data used in exchange to the different analysis components.