8 #include <TClonesArray.h> 10 #include <TLorentzVector.h> 11 #include <TParticle.h> 12 #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" 24 #include "AliRunLoader.h" 26 #include "AliVCluster.h" 27 #include "AliVEvent.h" 28 #include "AliGenPythiaEventHeader.h" 29 #include "AliGenHerwigEventHeader.h" 31 #include "AliPythiaRndm.h" 32 #include "AliHerwigRndm.h" 41 fToyModelFragmentation(kFALSE),
42 fToyModelFraction(0.9),
50 SetSuffix(
"EmbeddedFromGen");
59 fToyModelFragmentation(kFALSE),
60 fToyModelFraction(0.9),
87 fHistPt =
new TH1F(
"fHistpt",
"fHistPt;#it{p}_{T};N",100,0.,100.);
90 fHistEtaPhi =
new TH2F(
"fHistEtapHI",
"fHistEtaPhi;#eta;#varphi",100,-3.,3.,100.,0.,TMath::TwoPi());
93 fHistTrials =
new TH1F(
"fHistTrials",
"fHistTrials", 1, 0, 1);
97 fHistXsection =
new TProfile(
"fHistXsection",
"fHistXsection", 1, 0, 1);
101 fHistPtHard =
new TH1F(
"fHistPtHard",
"fHistPtHard", 500, 0., 500.);
102 fHistPtHard->GetXaxis()->SetTitle(
"p_{T,hard} (GeV/c)");
115 new AliRun(
"gAlice",
"The ALICE Off-line Simulation Framework");
120 TFolder *folder =
new TFolder(GetName(),GetName());
121 AliRunLoader *
rl =
new AliRunLoader(folder);
122 gAlice->SetRunLoader(rl);
125 AliStack *
stack = rl->Stack();
126 fGen->SetStack(stack);
129 if (!(InputEvent()->FindListObject(
fTracksName))) {
130 fOutTracks =
new TClonesArray(
"AliPicoTrack", 1000);
154 AliPythiaRndm::SetPythiaRandom(
new TRandom3());
155 AliPythiaRndm::GetPythiaRandom()->SetSeed(clock()+
gSystem->GetPid());}
157 AliHerwigRndm::SetHerwigRandom(
new TRandom3());
158 AliHerwigRndm::GetHerwigRandom()->SetSeed(clock()+
gSystem->GetPid());}
163 const Int_t nprim = stack->GetNprimary();
165 if(nprim < 8)
return;
167 TParticle *part6 = stack->Particle(6);
168 TParticle *part7 = stack->Particle(7);
177 for (
Int_t i=0;i<nprim;++i) {
178 if (!stack->IsPhysicalPrimary(i))
180 TParticle *part = stack->Particle(i);
181 TParticlePDG *
pdg = part->GetPDG(1);
206 AddTrack(pt, eta, phi,0,0,0,0,0,0,c,mass);
219 AliRunLoader *
rl = AliRunLoader::Instance();
220 AliGenPythiaEventHeader *genPP=0x0;
221 AliGenHerwigEventHeader *genPH=0x0;
222 if(
fGenType<3) genPP =
dynamic_cast<AliGenPythiaEventHeader*
>(rl->GetHeader()->GenEventHeader());
223 if(
fGenType==3) genPH =
dynamic_cast<AliGenHerwigEventHeader*
>(rl->GetHeader()->GenEventHeader());
225 Float_t xsec = genPP->GetXsection();
226 Int_t trials = genPP->Trials();
227 Float_t pthard = genPP->GetPtHard();
237 Float_t xsec = genPH->Weight();
238 Int_t trials = genPH->Trials();
Int_t fGenType
generator type. 0=pythia, 1=qpythia,2=pyquen, 3=herwig6.5
void SetParton7(Float_t pt, Float_t eta, Float_t phi, Float_t mass=0)
Float_t fPtMin
pt minimum value
Bool_t ExecOnce()
generate a particle with random eta,phi, and correlated pt,mass values
void SetPartonFlag7(Int_t flag7)
void UserCreateOutputObjects()
TList * fOutput
! output list for QA histograms
Base class for embedding into an event.
Bool_t fToyModelFragmentation
void UserCreateOutputObjects()
TH2F * fHistEtaPhi
pT spectrum of generated particles
Float_t fEtaMax
eta maximum value
void SetParton6(Float_t pt, Float_t eta, Float_t phi, Float_t mass=0)
Class for embedding a generated monte carlo event into a data event.
TClonesArray * fOutTracks
! output track collection
TProfile * fHistXsection
trials from generator
Int_t fNTracks
how many tracks are being processed
Float_t fPhiMin
phi minimum value
TString fTracksName
name of track collection
void FillPythiaHistograms()
virtual ~AliJetEmbeddingFromGenTask()
Bool_t fQAhistos
draw QA histograms
Bool_t fCopyArray
whether or not the array will be copied to a new one before modelling
void SetPartonFlag6(Int_t flag6)
TH1F * fHistTrials
eta-phi of generated particles
AliEmcalPythiaInfo * fPythiaInfo
! Info on original partons:PDG,pt, eta, phi and pythia event weight
TH1 * fHistPtHard
x-section from generator
AliJetEmbeddingFromGenTask()
Float_t fEtaMin
eta minimum value
Store some informaion about a Pythia eventThis class is used to store some information about a Pythia...
Double_t fToyModelFraction
TString fPythiaInfoName
name of pythia info
Declaration of class AliEmcalPythiaInfo.
void SetSuffix(const char *s)
void SetPythiaEventWeight(Float_t ptWeight)
AliPicoTrack * AddTrack(Double_t pt=-999, Double_t eta=-999, Double_t phi=-999, Byte_t type=0, Double_t etaemc=0, Double_t phiemc=0, Double_t ptemc=0, Bool_t ise=kFALSE, Int_t label=0, Short_t charge=1, Double_t mass=0.1396)
add a cluster (copy)
Float_t fPhiMax
phi maximum value
Float_t fPtMax
pt maximum value