15 #include <TClonesArray.h> 21 #include "AliAnalysisUtils.h" 22 #include "AliAODMCParticle.h" 24 #include "AliGenPythiaEventHeader.h" 26 #include "AliMCEvent.h" 27 #include "AliMCParticle.h" 29 #include "AliVEvent.h" 30 #include "AliVParticle.h" 31 #include "AliVTrack.h" 32 #include "AliVVertex.h" 41 AliAnalysisTaskPtEfficiencyJets::AliAnalysisTaskPtEfficiencyJets() :
70 fTrackNtuple =
new TNtuple(
"tracktuple",
"track tuple",
"partpt:trackpt:jetpt:pthard:parteta:partphi:tracketa:trackphi:vertexz");
77 if(!
fAnalysisUtils->IsVertexSelected2013pA(fInputEvent))
return kFALSE;
78 const AliVVertex *primvertex = fInputEvent->GetPrimaryVertex();
81 AliGenPythiaEventHeader *evheader =
dynamic_cast<AliGenPythiaEventHeader *
>(fMCEvent->GenEventHeader());
82 if(evheader) pthard = evheader->GetPtHard();
85 if(!jcmc)
return kFALSE;
88 for(TIter partIter = TIter(particleArray).Begin(); partIter != TIter::End(); ++partIter){
89 AliVParticle *part =
static_cast<AliVParticle *
>(*partIter);
103 Float_t data[] = {(
Float_t)TMath::Abs(part->Pt()), reconstructed ? static_cast<Float_t>(TMath::Abs(reconstructed->Pt())) : 0,
104 jet ?
static_cast<Float_t>(TMath::Abs(jet->
Pt())) : 0, pthard, (
Float_t)part->Eta(), (
Float_t)part->Phi(),
static_cast<Float_t>(reconstructed ? reconstructed->Eta() : -1000.),
105 static_cast<Float_t>(reconstructed ? reconstructed->Phi() : -1000.),
static_cast<Float_t>(primvertex ? primvertex->GetZ() : -1000.)
114 AliVTrack *result = NULL, *tmp = NULL;
115 for(
int itrk = 0; itrk < fInputEvent->GetNumberOfTracks(); itrk++){
116 AliVTrack *trk =
static_cast<AliVTrack *
>(fInputEvent->GetTrack(itrk));
117 if(TMath::Abs(trk->GetLabel()) != TMath::Abs(trueParticle->GetLabel()))
continue;
127 for(
int ijet = 0; ijet < jets->
GetNJets(); ijet++){
138 if(part->IsA() == AliAODMCParticle::Class()){
139 AliAODMCParticle *aodpart =
static_cast<AliAODMCParticle *
>(part);
140 if(!aodpart->IsPhysicalPrimary())
return kFALSE;
141 if(!aodpart->Charge())
return kFALSE;
142 if(TMath::Abs(aodpart->Eta()) > 0.8)
return kFALSE;
143 if(TMath::Abs(aodpart->Pt()) < 5.)
return kFALSE;
146 AliMCParticle *esdpart =
static_cast<AliMCParticle *
>(part);
147 if(!fMCEvent->IsPhysicalPrimary(esdpart->GetLabel()))
return kFALSE;
148 if(!esdpart->Charge())
return kFALSE;
149 if(TMath::Abs(esdpart->Eta()) > 0.8)
return kFALSE;
150 if(TMath::Abs(esdpart->Pt()) < 5.)
return kFALSE;
bool SelectTrueParticle(AliVParticle *part)
AliEmcalTrackSelection * fTrackCuts
virtual void UserCreateOutputObjects()
AliAnalysisTaskPtEfficiencyJets()
virtual ~AliAnalysisTaskPtEfficiencyJets()
AliParticleContainer * GetParticleContainer() const
AliAnalysisUtils * fAnalysisUtils
AliVTrack * FindAssociatedTrack(AliVParticle *trueParticle)
Int_t ContainsTrack(AliVParticle *track, TClonesArray *tracks) const
virtual Bool_t Run()
Run function. This is the core function of the analysis and contains the user code. Therefore users have to implement this function.
TObjArray fJetCollArray
jet collection array
virtual PWG::EMCAL::AliEmcalTrackSelResultPtr IsTrackAccepted(AliVTrack *const trk)=0
Interface for track selection code.
AliEmcalList * fOutput
!output list
Analysis of high- tracks in triggered events.
void SetMakeGeneralHistograms(Bool_t g)
Base task in the EMCAL jet framework.
Represent a jet reconstructed using the EMCal jet framework.
void UserCreateOutputObjects()
Main initialization function on the worker.
AliEmcalJet * FindAssociatedJet(AliVParticle *trueParticle, AliJetContainer *jets)
Container for jet within the EMCAL jet framework.
TList * OpenFile(const char *fname)
AliEmcalJet * GetJet(Int_t i) const