5 // Author: S.Aiola, C.Loizides
7 #include "AliJetEmbeddingFromGenTask.h"
9 #include <TClonesArray.h>
11 #include <TLorentzVector.h>
12 #include <TParticle.h>
13 #include <TParticlePDG.h>
15 #include "AliAnalysisManager.h"
16 #include "AliEMCALDigit.h"
17 #include "AliEMCALGeometry.h"
18 #include "AliEMCALRecPoint.h"
19 #include "AliGenerator.h"
20 #include "AliHeader.h"
22 #include "AliPicoTrack.h"
24 #include "AliRunLoader.h"
27 #include "AliVCluster.h"
28 #include "AliVEvent.h"
30 ClassImp(AliJetEmbeddingFromGenTask)
32 //________________________________________________________________________
33 AliJetEmbeddingFromGenTask::AliJetEmbeddingFromGenTask() :
34 AliJetModelBaseTask("AliJetEmbeddingFromGenTask"),
37 // Default constructor.
38 SetSuffix("EmbeddedFromGen");
41 //________________________________________________________________________
42 AliJetEmbeddingFromGenTask::AliJetEmbeddingFromGenTask(const char *name) :
43 AliJetModelBaseTask(name),
46 // Standard constructor.
47 SetSuffix("EmbeddedFromGen");
50 //________________________________________________________________________
51 AliJetEmbeddingFromGenTask::~AliJetEmbeddingFromGenTask()
56 //________________________________________________________________________
57 Bool_t AliJetEmbeddingFromGenTask::ExecOnce()
62 new AliRun("gAlice","The ALICE Off-line Simulation Framework");
64 gRandom = new TRandom3(0);
67 TFolder *folder = new TFolder(GetName(),GetName());
68 AliRunLoader *rl = new AliRunLoader(folder);
71 AliStack *stack = rl->Stack();
72 fGen->SetStack(stack);
75 if (InputEvent()->FindListObject(fTracksName) == 0) {
76 fOutTracks = new TClonesArray("AliPicoTrack", 1000);
77 fOutTracks->SetName(fTracksName);
78 InputEvent()->AddObject(fOutTracks);
85 //________________________________________________________________________
86 void AliJetEmbeddingFromGenTask::Run()
93 AliStack *stack = fGen->GetStack();
96 const Int_t nprim = stack->GetNprimary();
97 for (Int_t i=0;i<nprim;++i) {
98 if (!stack->IsPhysicalPrimary(i))
100 TParticle *part = stack->Particle(i);
101 TParticlePDG *pdg = part->GetPDG(1);
104 Int_t c = (Int_t)(TMath::Abs(pdg->Charge()));
107 Double_t pt = part->Pt();
108 Double_t eta = part->Eta();
109 Double_t phi = part->Phi();
122 AddTrack(pt, eta, phi);