3 // Jet model task to merge to existing branches
4 // only implemented for track branches
8 #include "AliJetModelMergeBranches.h"
10 #include <TClonesArray.h>
12 #include <TLorentzVector.h>
13 #include <TParticle.h>
14 #include <TParticlePDG.h>
17 #include "AliAnalysisManager.h"
18 #include "AliEMCALDigit.h"
19 #include "AliEMCALGeometry.h"
20 #include "AliEMCALRecPoint.h"
21 #include "AliGenerator.h"
22 #include "AliHeader.h"
24 #include "AliPicoTrack.h"
26 #include "AliRunLoader.h"
29 #include "AliVCluster.h"
30 #include "AliVEvent.h"
32 ClassImp(AliJetModelMergeBranches)
34 //________________________________________________________________________
35 AliJetModelMergeBranches::AliJetModelMergeBranches() :
36 AliJetModelBaseTask("AliJetModelMergeBranches"),
40 // Default constructor.
45 //________________________________________________________________________
46 AliJetModelMergeBranches::AliJetModelMergeBranches(const char *name) :
47 AliJetModelBaseTask(name),
51 // Standard constructor.
56 //________________________________________________________________________
57 AliJetModelMergeBranches::~AliJetModelMergeBranches()
62 //________________________________________________________________________
63 Bool_t AliJetModelMergeBranches::ExecOnce()
67 AliJetModelBaseTask::ExecOnce();
69 if (!fTracksMergeName.IsNull()) {
70 fTracksMerge = dynamic_cast<TClonesArray*>(InputEvent()->FindListObject(fTracksMergeName));
72 AliWarning(Form("%s: Couldn't retrieve tracks with name %s!", GetName(), fTracksMergeName.Data()));
74 else if (!fTracksMerge->GetClass()->GetBaseClass("AliPicoTrack")) {
75 AliError(Form("%s: Collection %s does not contain AliPicoTrack objects!", GetName(), fTracksMergeName.Data()));
84 //________________________________________________________________________
85 void AliJetModelMergeBranches::Run()
87 // Merge two branches into a new one
93 //________________________________________________________________________
94 void AliJetModelMergeBranches::MergeTracks()
96 // Copy all the tracks in the new collection
101 const Int_t nTracks = fTracksMerge->GetEntriesFast();
102 Int_t nCopiedTracks = fOutTracks->GetEntriesFast();
103 for (Int_t i = 0; i < nTracks; ++i) {
104 AliPicoTrack *picotrack = static_cast<AliPicoTrack*>(fTracksMerge->At(i));
107 AliPicoTrack *track = new ((*fOutTracks)[nCopiedTracks]) AliPicoTrack(*picotrack);
108 track->SetBit(TObject::kBitMask,1);