#include "AliJetEmbeddingFromGenTask.h"
#include <TClonesArray.h>
#include <TFolder.h>
#include <TLorentzVector.h>
#include <TParticle.h>
#include <TParticlePDG.h>
#include <TRandom3.h>
#include <TProfile.h>
#include "AliAnalysisManager.h"
#include "AliEMCALDigit.h"
#include "AliEMCALGeometry.h"
#include "AliEMCALRecPoint.h"
#include "AliGenerator.h"
#include "AliHeader.h"
#include "AliLog.h"
#include "AliPicoTrack.h"
#include "AliRun.h"
#include "AliRunLoader.h"
#include "AliStack.h"
#include "AliVCluster.h"
#include "AliVEvent.h"
#include "AliGenPythiaEventHeader.h"
#include "AliPythiaInfo.h"
#include "AliPythiaRndm.h"
ClassImp(AliJetEmbeddingFromGenTask)
AliJetEmbeddingFromGenTask::AliJetEmbeddingFromGenTask() :
AliJetModelBaseTask("AliJetEmbeddingFromGenTask"),
fGen(0),
fMassless(kFALSE),
fChargedOnly(kFALSE),
fHistPt(0),
fHistEtaPhi(0),
fHistTrials(0),
fHistXsection(0),
fHistPtHard(0)
{
SetSuffix("EmbeddedFromGen");
}
AliJetEmbeddingFromGenTask::AliJetEmbeddingFromGenTask(const char *name, Bool_t drawqa) :
AliJetModelBaseTask(name,drawqa),
fGen(0),
fMassless(kFALSE),
fChargedOnly(kFALSE),
fHistPt(0),
fHistEtaPhi(0),
fHistTrials(0),
fHistXsection(0),
fHistPtHard(0)
{
SetSuffix("EmbeddedFromGen");
}
AliJetEmbeddingFromGenTask::~AliJetEmbeddingFromGenTask()
{
}
void AliJetEmbeddingFromGenTask::UserCreateOutputObjects()
{
if (!fQAhistos)
return;
AliJetModelBaseTask::UserCreateOutputObjects();
fHistPt = new TH1F("fHistpt","fHistPt;#it{p}_{T};N",100,0.,100.);
fOutput->Add(fHistPt);
fHistEtaPhi = new TH2F("fHistEtapHI","fHistEtaPhi;#eta;#varphi",100,-3.,3.,100.,0.,TMath::TwoPi());
fOutput->Add(fHistEtaPhi);
fHistTrials = new TH1F("fHistTrials", "fHistTrials", 1, 0, 1);
fHistTrials->GetYaxis()->SetTitle("trials");
fOutput->Add(fHistTrials);
fHistXsection = new TProfile("fHistXsection", "fHistXsection", 1, 0, 1);
fHistXsection->GetYaxis()->SetTitle("xsection");
fOutput->Add(fHistXsection);
fHistPtHard = new TH1F("fHistPtHard", "fHistPtHard", 500, 0., 500.);
fHistPtHard->GetXaxis()->SetTitle("p_{T,hard} (GeV/c)");
fHistPtHard->GetYaxis()->SetTitle("counts");
fOutput->Add(fHistPtHard);
PostData(1, fOutput);
}
Bool_t AliJetEmbeddingFromGenTask::ExecOnce()
{
if (!gAlice) {
new AliRun("gAlice","The ALICE Off-line Simulation Framework");
delete gRandom;
gRandom = new TRandom3(0);
}
TFolder *folder = new TFolder(GetName(),GetName());
AliRunLoader *rl = new AliRunLoader(folder);
gAlice->SetRunLoader(rl);
rl->MakeHeader();
rl->MakeStack();
AliStack *stack = rl->Stack();
fGen->SetStack(stack);
fGen->Init();
if (!(InputEvent()->FindListObject(fTracksName))) {
fOutTracks = new TClonesArray("AliPicoTrack", 1000);
fOutTracks->SetName(fTracksName);
InputEvent()->AddObject(fOutTracks);
fNTracks = 0;
}
if(!fPythiaInfoName.IsNull()) {
if (!(InputEvent()->FindListObject(fPythiaInfoName))) {
fPythiaInfo = new AliPythiaInfo("PythiaInfo");
fPythiaInfo->SetName(fPythiaInfoName);
InputEvent()->AddObject(fPythiaInfo);
}
}
return kTRUE;
}
void AliJetEmbeddingFromGenTask::Run()
{
if (fCopyArray)
CopyTracks();
AliPythiaRndm::SetPythiaRandom(new TRandom3());
AliPythiaRndm::GetPythiaRandom()->SetSeed(clock()+gSystem->GetPid());
AliStack *stack = fGen->GetStack();
stack->Reset();
fGen->Generate();
const Int_t nprim = stack->GetNprimary();
if(nprim < 8) return;
if(fPythiaInfo) {
TParticle *part6 = stack->Particle(6);
TParticle *part7 = stack->Particle(7);
fPythiaInfo->SetPartonFlag6(TMath::Abs(part6->GetPdgCode()));
fPythiaInfo->SetPartonPt6(part6->Pt());
fPythiaInfo->SetPartonEta6(part6->Eta());
fPythiaInfo->SetPartonPhi6(part6->Phi());
fPythiaInfo->SetPartonFlag7(TMath::Abs(part7->GetPdgCode()));
fPythiaInfo->SetPartonPt7(part7->Pt());
fPythiaInfo->SetPartonEta7(part7->Eta());
fPythiaInfo->SetPartonPhi7(part7->Phi());
}
for (Int_t i=0;i<nprim;++i) {
if (!stack->IsPhysicalPrimary(i))
continue;
TParticle *part = stack->Particle(i);
TParticlePDG *pdg = part->GetPDG(1);
if (!pdg)
continue;
Int_t c = (Int_t)(TMath::Abs(pdg->Charge()));
if (fChargedOnly && c==0) continue;
Double_t pt = part->Pt();
Double_t eta = part->Eta();
Double_t phi = part->Phi();
if (eta<fEtaMin)
continue;
if (eta>fEtaMax)
continue;
if (phi<fPhiMin)
continue;
if (phi>fPhiMax)
continue;
if (pt<fPtMin)
continue;
if (pt>fPtMax)
continue;
Double_t mass = part->GetMass();
if(fMassless) mass = 0.;
fHistPt->Fill(pt);
fHistEtaPhi->Fill(eta,phi);
AddTrack(pt, eta, phi,0,0,0,0,0,0,c,mass);
}
FillPythiaHistograms();
}
void AliJetEmbeddingFromGenTask::FillPythiaHistograms() {
if (!fQAhistos)
return;
AliRunLoader *rl = AliRunLoader::Instance();
AliGenPythiaEventHeader *genPH = dynamic_cast<AliGenPythiaEventHeader*>(rl->GetHeader()->GenEventHeader());
if(genPH) {
Float_t xsec = genPH->GetXsection();
Int_t trials = genPH->Trials();
Float_t pthard = genPH->GetPtHard();
Float_t ptWeight=genPH->EventWeight();
if(fPythiaInfo) fPythiaInfo->SetPythiaEventWeight(ptWeight);
fHistXsection->Fill(0.5,xsec);
fHistTrials->Fill(0.5,trials);
fHistPtHard->Fill(pthard);
}
}
AliJetEmbeddingFromGenTask.cxx:1 AliJetEmbeddingFromGenTask.cxx:2 AliJetEmbeddingFromGenTask.cxx:3 AliJetEmbeddingFromGenTask.cxx:4 AliJetEmbeddingFromGenTask.cxx:5 AliJetEmbeddingFromGenTask.cxx:6 AliJetEmbeddingFromGenTask.cxx:7 AliJetEmbeddingFromGenTask.cxx:8 AliJetEmbeddingFromGenTask.cxx:9 AliJetEmbeddingFromGenTask.cxx:10 AliJetEmbeddingFromGenTask.cxx:11 AliJetEmbeddingFromGenTask.cxx:12 AliJetEmbeddingFromGenTask.cxx:13 AliJetEmbeddingFromGenTask.cxx:14 AliJetEmbeddingFromGenTask.cxx:15 AliJetEmbeddingFromGenTask.cxx:16 AliJetEmbeddingFromGenTask.cxx:17 AliJetEmbeddingFromGenTask.cxx:18 AliJetEmbeddingFromGenTask.cxx:19 AliJetEmbeddingFromGenTask.cxx:20 AliJetEmbeddingFromGenTask.cxx:21 AliJetEmbeddingFromGenTask.cxx:22 AliJetEmbeddingFromGenTask.cxx:23 AliJetEmbeddingFromGenTask.cxx:24 AliJetEmbeddingFromGenTask.cxx:25 AliJetEmbeddingFromGenTask.cxx:26 AliJetEmbeddingFromGenTask.cxx:27 AliJetEmbeddingFromGenTask.cxx:28 AliJetEmbeddingFromGenTask.cxx:29 AliJetEmbeddingFromGenTask.cxx:30 AliJetEmbeddingFromGenTask.cxx:31 AliJetEmbeddingFromGenTask.cxx:32 AliJetEmbeddingFromGenTask.cxx:33 AliJetEmbeddingFromGenTask.cxx:34 AliJetEmbeddingFromGenTask.cxx:35 AliJetEmbeddingFromGenTask.cxx:36 AliJetEmbeddingFromGenTask.cxx:37 AliJetEmbeddingFromGenTask.cxx:38 AliJetEmbeddingFromGenTask.cxx:39 AliJetEmbeddingFromGenTask.cxx:40 AliJetEmbeddingFromGenTask.cxx:41 AliJetEmbeddingFromGenTask.cxx:42 AliJetEmbeddingFromGenTask.cxx:43 AliJetEmbeddingFromGenTask.cxx:44 AliJetEmbeddingFromGenTask.cxx:45 AliJetEmbeddingFromGenTask.cxx:46 AliJetEmbeddingFromGenTask.cxx:47 AliJetEmbeddingFromGenTask.cxx:48 AliJetEmbeddingFromGenTask.cxx:49 AliJetEmbeddingFromGenTask.cxx:50 AliJetEmbeddingFromGenTask.cxx:51 AliJetEmbeddingFromGenTask.cxx:52 AliJetEmbeddingFromGenTask.cxx:53 AliJetEmbeddingFromGenTask.cxx:54 AliJetEmbeddingFromGenTask.cxx:55 AliJetEmbeddingFromGenTask.cxx:56 AliJetEmbeddingFromGenTask.cxx:57 AliJetEmbeddingFromGenTask.cxx:58 AliJetEmbeddingFromGenTask.cxx:59 AliJetEmbeddingFromGenTask.cxx:60 AliJetEmbeddingFromGenTask.cxx:61 AliJetEmbeddingFromGenTask.cxx:62 AliJetEmbeddingFromGenTask.cxx:63 AliJetEmbeddingFromGenTask.cxx:64 AliJetEmbeddingFromGenTask.cxx:65 AliJetEmbeddingFromGenTask.cxx:66 AliJetEmbeddingFromGenTask.cxx:67 AliJetEmbeddingFromGenTask.cxx:68 AliJetEmbeddingFromGenTask.cxx:69 AliJetEmbeddingFromGenTask.cxx:70 AliJetEmbeddingFromGenTask.cxx:71 AliJetEmbeddingFromGenTask.cxx:72 AliJetEmbeddingFromGenTask.cxx:73 AliJetEmbeddingFromGenTask.cxx:74 AliJetEmbeddingFromGenTask.cxx:75 AliJetEmbeddingFromGenTask.cxx:76 AliJetEmbeddingFromGenTask.cxx:77 AliJetEmbeddingFromGenTask.cxx:78 AliJetEmbeddingFromGenTask.cxx:79 AliJetEmbeddingFromGenTask.cxx:80 AliJetEmbeddingFromGenTask.cxx:81 AliJetEmbeddingFromGenTask.cxx:82 AliJetEmbeddingFromGenTask.cxx:83 AliJetEmbeddingFromGenTask.cxx:84 AliJetEmbeddingFromGenTask.cxx:85 AliJetEmbeddingFromGenTask.cxx:86 AliJetEmbeddingFromGenTask.cxx:87 AliJetEmbeddingFromGenTask.cxx:88 AliJetEmbeddingFromGenTask.cxx:89 AliJetEmbeddingFromGenTask.cxx:90 AliJetEmbeddingFromGenTask.cxx:91 AliJetEmbeddingFromGenTask.cxx:92 AliJetEmbeddingFromGenTask.cxx:93 AliJetEmbeddingFromGenTask.cxx:94 AliJetEmbeddingFromGenTask.cxx:95 AliJetEmbeddingFromGenTask.cxx:96 AliJetEmbeddingFromGenTask.cxx:97 AliJetEmbeddingFromGenTask.cxx:98 AliJetEmbeddingFromGenTask.cxx:99 AliJetEmbeddingFromGenTask.cxx:100 AliJetEmbeddingFromGenTask.cxx:101 AliJetEmbeddingFromGenTask.cxx:102 AliJetEmbeddingFromGenTask.cxx:103 AliJetEmbeddingFromGenTask.cxx:104 AliJetEmbeddingFromGenTask.cxx:105 AliJetEmbeddingFromGenTask.cxx:106 AliJetEmbeddingFromGenTask.cxx:107 AliJetEmbeddingFromGenTask.cxx:108 AliJetEmbeddingFromGenTask.cxx:109 AliJetEmbeddingFromGenTask.cxx:110 AliJetEmbeddingFromGenTask.cxx:111 AliJetEmbeddingFromGenTask.cxx:112 AliJetEmbeddingFromGenTask.cxx:113 AliJetEmbeddingFromGenTask.cxx:114 AliJetEmbeddingFromGenTask.cxx:115 AliJetEmbeddingFromGenTask.cxx:116 AliJetEmbeddingFromGenTask.cxx:117 AliJetEmbeddingFromGenTask.cxx:118 AliJetEmbeddingFromGenTask.cxx:119 AliJetEmbeddingFromGenTask.cxx:120 AliJetEmbeddingFromGenTask.cxx:121 AliJetEmbeddingFromGenTask.cxx:122 AliJetEmbeddingFromGenTask.cxx:123 AliJetEmbeddingFromGenTask.cxx:124 AliJetEmbeddingFromGenTask.cxx:125 AliJetEmbeddingFromGenTask.cxx:126 AliJetEmbeddingFromGenTask.cxx:127 AliJetEmbeddingFromGenTask.cxx:128 AliJetEmbeddingFromGenTask.cxx:129 AliJetEmbeddingFromGenTask.cxx:130 AliJetEmbeddingFromGenTask.cxx:131 AliJetEmbeddingFromGenTask.cxx:132 AliJetEmbeddingFromGenTask.cxx:133 AliJetEmbeddingFromGenTask.cxx:134 AliJetEmbeddingFromGenTask.cxx:135 AliJetEmbeddingFromGenTask.cxx:136 AliJetEmbeddingFromGenTask.cxx:137 AliJetEmbeddingFromGenTask.cxx:138 AliJetEmbeddingFromGenTask.cxx:139 AliJetEmbeddingFromGenTask.cxx:140 AliJetEmbeddingFromGenTask.cxx:141 AliJetEmbeddingFromGenTask.cxx:142 AliJetEmbeddingFromGenTask.cxx:143 AliJetEmbeddingFromGenTask.cxx:144 AliJetEmbeddingFromGenTask.cxx:145 AliJetEmbeddingFromGenTask.cxx:146 AliJetEmbeddingFromGenTask.cxx:147 AliJetEmbeddingFromGenTask.cxx:148 AliJetEmbeddingFromGenTask.cxx:149 AliJetEmbeddingFromGenTask.cxx:150 AliJetEmbeddingFromGenTask.cxx:151 AliJetEmbeddingFromGenTask.cxx:152 AliJetEmbeddingFromGenTask.cxx:153 AliJetEmbeddingFromGenTask.cxx:154 AliJetEmbeddingFromGenTask.cxx:155 AliJetEmbeddingFromGenTask.cxx:156 AliJetEmbeddingFromGenTask.cxx:157 AliJetEmbeddingFromGenTask.cxx:158 AliJetEmbeddingFromGenTask.cxx:159 AliJetEmbeddingFromGenTask.cxx:160 AliJetEmbeddingFromGenTask.cxx:161 AliJetEmbeddingFromGenTask.cxx:162 AliJetEmbeddingFromGenTask.cxx:163 AliJetEmbeddingFromGenTask.cxx:164 AliJetEmbeddingFromGenTask.cxx:165 AliJetEmbeddingFromGenTask.cxx:166 AliJetEmbeddingFromGenTask.cxx:167 AliJetEmbeddingFromGenTask.cxx:168 AliJetEmbeddingFromGenTask.cxx:169 AliJetEmbeddingFromGenTask.cxx:170 AliJetEmbeddingFromGenTask.cxx:171 AliJetEmbeddingFromGenTask.cxx:172 AliJetEmbeddingFromGenTask.cxx:173 AliJetEmbeddingFromGenTask.cxx:174 AliJetEmbeddingFromGenTask.cxx:175 AliJetEmbeddingFromGenTask.cxx:176 AliJetEmbeddingFromGenTask.cxx:177 AliJetEmbeddingFromGenTask.cxx:178 AliJetEmbeddingFromGenTask.cxx:179 AliJetEmbeddingFromGenTask.cxx:180 AliJetEmbeddingFromGenTask.cxx:181 AliJetEmbeddingFromGenTask.cxx:182 AliJetEmbeddingFromGenTask.cxx:183 AliJetEmbeddingFromGenTask.cxx:184 AliJetEmbeddingFromGenTask.cxx:185 AliJetEmbeddingFromGenTask.cxx:186 AliJetEmbeddingFromGenTask.cxx:187 AliJetEmbeddingFromGenTask.cxx:188 AliJetEmbeddingFromGenTask.cxx:189 AliJetEmbeddingFromGenTask.cxx:190 AliJetEmbeddingFromGenTask.cxx:191 AliJetEmbeddingFromGenTask.cxx:192 AliJetEmbeddingFromGenTask.cxx:193 AliJetEmbeddingFromGenTask.cxx:194 AliJetEmbeddingFromGenTask.cxx:195 AliJetEmbeddingFromGenTask.cxx:196 AliJetEmbeddingFromGenTask.cxx:197 AliJetEmbeddingFromGenTask.cxx:198 AliJetEmbeddingFromGenTask.cxx:199 AliJetEmbeddingFromGenTask.cxx:200 AliJetEmbeddingFromGenTask.cxx:201 AliJetEmbeddingFromGenTask.cxx:202 AliJetEmbeddingFromGenTask.cxx:203 AliJetEmbeddingFromGenTask.cxx:204 AliJetEmbeddingFromGenTask.cxx:205 AliJetEmbeddingFromGenTask.cxx:206 AliJetEmbeddingFromGenTask.cxx:207 AliJetEmbeddingFromGenTask.cxx:208 AliJetEmbeddingFromGenTask.cxx:209 AliJetEmbeddingFromGenTask.cxx:210 AliJetEmbeddingFromGenTask.cxx:211 AliJetEmbeddingFromGenTask.cxx:212 AliJetEmbeddingFromGenTask.cxx:213 AliJetEmbeddingFromGenTask.cxx:214 AliJetEmbeddingFromGenTask.cxx:215 AliJetEmbeddingFromGenTask.cxx:216 AliJetEmbeddingFromGenTask.cxx:217 AliJetEmbeddingFromGenTask.cxx:218 AliJetEmbeddingFromGenTask.cxx:219 AliJetEmbeddingFromGenTask.cxx:220 AliJetEmbeddingFromGenTask.cxx:221 AliJetEmbeddingFromGenTask.cxx:222 AliJetEmbeddingFromGenTask.cxx:223 AliJetEmbeddingFromGenTask.cxx:224