3 // Class to make PicoTracks from jet 4-vectors
7 #include <TClonesArray.h>
9 #include "AliAODEvent.h"
10 #include "AliAODTrack.h"
11 #include "AliAnalysisManager.h"
12 #include "AliESDtrack.h"
13 #include "AliESDtrackCuts.h"
15 #include "AliPicoTrack.h"
16 #include "AliVTrack.h"
17 #include "AliEmcalJet.h"
18 #include "AliEmcalPicoTrackFromJetMaker.h"
20 ClassImp(AliEmcalPicoTrackFromJetMaker)
22 //________________________________________________________________________
23 AliEmcalPicoTrackFromJetMaker::AliEmcalPicoTrackFromJetMaker() :
24 AliAnalysisTaskSE("AliEmcalPicoTrackFromJetMaker"),
25 fTracksOutName("PicoTracksFromJets"),
26 fJetsInName("tracks"),
33 //________________________________________________________________________
34 AliEmcalPicoTrackFromJetMaker::AliEmcalPicoTrackFromJetMaker(const char *name) :
35 AliAnalysisTaskSE(name),
36 fTracksOutName("PicoTracksFromJets"),
37 fJetsInName("tracks"),
44 //________________________________________________________________________
45 AliEmcalPicoTrackFromJetMaker::~AliEmcalPicoTrackFromJetMaker()
50 //________________________________________________________________________
51 void AliEmcalPicoTrackFromJetMaker::UserCreateOutputObjects()
53 // Create my user objects.
55 fTracksOut = new TClonesArray("AliPicoTrack");
56 fTracksOut->SetName(fTracksOutName);
59 //________________________________________________________________________
60 void AliEmcalPicoTrackFromJetMaker::UserExec(Option_t *)
62 // Main loop, called for each event.
64 AliAnalysisManager *am = AliAnalysisManager::GetAnalysisManager();
66 AliError("Manager zero, returning");
70 // retrieve tracks from input.
72 fJetsIn = dynamic_cast<TClonesArray*>(InputEvent()->FindListObject(fJetsInName));
74 AliError(Form("Could not retrieve jets %s!", fJetsInName.Data()));
77 if (!fJetsIn->GetClass()->GetBaseClass("AliVParticle")) {
78 AliError(Form("%s: Collection %s does not contain AliVParticle objects!", GetName(), fJetsInName.Data()));
83 // add tracks to event if not yet there
85 if (!(InputEvent()->FindListObject(fTracksOutName))) {
86 InputEvent()->AddObject(fTracksOut);
90 const Int_t Njets = fJetsIn->GetEntriesFast();
91 for (Int_t iJets = 0, nacc = 0; iJets < Njets; ++iJets) {
93 AliEmcalJet *jet = static_cast<AliEmcalJet*>(fJetsIn->At(iJets));
97 Bool_t isEmc = kFALSE;
98 if (TMath::Abs(jet->Eta()) < 0.75 &&
99 jet->Phi() > 70 * TMath::DegToRad() &&jet->Phi() < 190 * TMath::DegToRad())
102 AliPicoTrack *picotrack = new ((*fTracksOut)[nacc]) AliPicoTrack(jet->Pt(),
113 picotrack->SetTrackType(0);