]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/UserTasks/AliEmcalPicoTrackFromJetMaker.cxx
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / UserTasks / AliEmcalPicoTrackFromJetMaker.cxx
CommitLineData
4d3b366f 1// $Id$
2//
3// Class to make PicoTracks from jet 4-vectors
4//
5// Author: M. Verweij
6
7#include <TClonesArray.h>
8#include <TRandom3.h>
9#include "AliAODEvent.h"
10#include "AliAODTrack.h"
11#include "AliAnalysisManager.h"
12#include "AliESDtrack.h"
13#include "AliESDtrackCuts.h"
14#include "AliLog.h"
15#include "AliPicoTrack.h"
16#include "AliVTrack.h"
17#include "AliEmcalJet.h"
18#include "AliEmcalPicoTrackFromJetMaker.h"
19
20ClassImp(AliEmcalPicoTrackFromJetMaker)
21
22//________________________________________________________________________
23AliEmcalPicoTrackFromJetMaker::AliEmcalPicoTrackFromJetMaker() :
24 AliAnalysisTaskSE("AliEmcalPicoTrackFromJetMaker"),
25 fTracksOutName("PicoTracksFromJets"),
26 fJetsInName("tracks"),
27 fJetsIn(0),
28 fTracksOut(0)
29{
30 // Constructor.
31}
32
33//________________________________________________________________________
34AliEmcalPicoTrackFromJetMaker::AliEmcalPicoTrackFromJetMaker(const char *name) :
35 AliAnalysisTaskSE(name),
36 fTracksOutName("PicoTracksFromJets"),
37 fJetsInName("tracks"),
38 fJetsIn(0),
39 fTracksOut(0)
40{
41 // Constructor.
42}
43
44//________________________________________________________________________
45AliEmcalPicoTrackFromJetMaker::~AliEmcalPicoTrackFromJetMaker()
46{
47 // Destructor.
48}
49
50//________________________________________________________________________
51void AliEmcalPicoTrackFromJetMaker::UserCreateOutputObjects()
52{
53 // Create my user objects.
54
55 fTracksOut = new TClonesArray("AliPicoTrack");
56 fTracksOut->SetName(fTracksOutName);
57}
58
59//________________________________________________________________________
60void AliEmcalPicoTrackFromJetMaker::UserExec(Option_t *)
61{
62 // Main loop, called for each event.
63
64 AliAnalysisManager *am = AliAnalysisManager::GetAnalysisManager();
65 if (!am) {
66 AliError("Manager zero, returning");
67 return;
68 }
69
70 // retrieve tracks from input.
71 if (!fJetsIn) {
72 fJetsIn = dynamic_cast<TClonesArray*>(InputEvent()->FindListObject(fJetsInName));
73 if (!fJetsIn) {
74 AliError(Form("Could not retrieve jets %s!", fJetsInName.Data()));
75 return;
76 }
77 if (!fJetsIn->GetClass()->GetBaseClass("AliVParticle")) {
78 AliError(Form("%s: Collection %s does not contain AliVParticle objects!", GetName(), fJetsInName.Data()));
79 return;
80 }
81 }
82
83 // add tracks to event if not yet there
84 fTracksOut->Delete();
85 if (!(InputEvent()->FindListObject(fTracksOutName))) {
86 InputEvent()->AddObject(fTracksOut);
87 }
88
89 // loop over tracks
90 const Int_t Njets = fJetsIn->GetEntriesFast();
91 for (Int_t iJets = 0, nacc = 0; iJets < Njets; ++iJets) {
92
93 AliEmcalJet *jet = static_cast<AliEmcalJet*>(fJetsIn->At(iJets));
94 if (!jet)
95 continue;
96
97 Bool_t isEmc = kFALSE;
98 if (TMath::Abs(jet->Eta()) < 0.75 &&
99 jet->Phi() > 70 * TMath::DegToRad() &&jet->Phi() < 190 * TMath::DegToRad())
100 isEmc = kTRUE;
101
102 AliPicoTrack *picotrack = new ((*fTracksOut)[nacc]) AliPicoTrack(jet->Pt(),
103 jet->Eta(),
104 jet->Phi(),
105 1,
106 1,
107 0,
108 jet->Eta(),
109 jet->Phi(),
110 jet->Pt(),
111 isEmc,
112 jet->M());
113 picotrack->SetTrackType(0);
114 ++nacc;
115 }
116}