]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/macros/AddTaskJetEmbeddingFromGen.C
Pythia Event Weight modifications
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskJetEmbeddingFromGen.C
CommitLineData
8628b70c 1// $Id$
aa26ece2 2
5dc5d4a3 3AliJetEmbeddingFromGenTask* AddTaskJetEmbeddingFromGen(
4 Int_t genType = 0, //use Pythia as default
5 Double_t ptHardMin = 50.,
6 Double_t ptHardMax = 1000.,
7 Double_t ecms = 2760.,
8 const char *tracksName = "GenParticles",
9 const char *taskName = "JetEmbeddingFromGenTask",
10 const Double_t minPt = 10,
11 const Double_t maxPt = 10,
12 const Double_t minEta = -0.9,
13 const Double_t maxEta = 0.9,
14 const Double_t minPhi = 0,
15 const Double_t maxPhi = TMath::Pi() * 2,
16 const Bool_t copyArray = kTRUE,
56d5faa8 17 const Bool_t drawQA = kTRUE,
b929303d 18 const char *pythiaInfoName = "PythiaInfo",
19 Float_t ptWeight =0,
20 Int_t kTune =2,
21 Int_t kColorReco =1,
22 Float_t kQuench =4.4e6,
23 Int_t kAnglePyquen = 2
5dc5d4a3 24)
25{
26 AliGenerator *genGen = NULL;
27 if(genType==0) { //PYTHIA Perugia 2011
28 gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/train/AddMCGenPythia.C");
b929303d 29 genGen = AddMCGenPythia(ecms, ptHardMin, ptHardMax, kTune,kColorReco,ptWeight);
5dc5d4a3 30 }
31 else if(genType==1 || genType==2) { //QPYTHIA and PYQUEN
32 gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/train/AddMCGenQuench.C");
b929303d 33 genGen = AddMCGenQuench(ecms, ptHardMin, ptHardMax, genType,kQuench,kAnglePyquen,ptWeight);
5dc5d4a3 34 }
35 if(!genGen) {
36 ::Error("AddTaskJetEmbeddingFromGenTask", "Generator does not exist");
37 return NULL;
38 }
39
b929303d 40 AliJetEmbeddingFromGenTask *task = AddTaskJetEmbeddingFromGen(genGen,tracksName,taskName,minPt,maxPt,minEta,maxEta,minPhi,maxPhi,copyArray,drawQA,pythiaInfoName);
5dc5d4a3 41
42 return task;
43
44}
45
aa26ece2 46AliJetEmbeddingFromGenTask* AddTaskJetEmbeddingFromGen(
47 AliGenerator *genGen,
cd6703c5 48 const char *tracksName = "GenParticles",
49 const char *taskName = "JetEmbeddingFromGenTask",
50 const Double_t minPt = 10,
51 const Double_t maxPt = 10,
52 const Double_t minEta = -0.9,
53 const Double_t maxEta = 0.9,
54 const Double_t minPhi = 0,
55 const Double_t maxPhi = TMath::Pi() * 2,
56 const Bool_t copyArray = kTRUE,
56d5faa8 57 const Bool_t drawQA = kTRUE,
b929303d 58 const char *pythiaInfoName = ""
aa26ece2 59)
60{
61 // Get the pointer to the existing analysis manager via the static access method.
62 //==============================================================================
63 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
64 if (!mgr)
65 {
66 ::Error("AddTaskJetEmbedding", "No analysis manager to connect to.");
67 return NULL;
68 }
69
70 // Check the analysis type using the event handlers connected to the analysis manager.
71 //==============================================================================
72 if (!mgr->GetInputEventHandler())
73 {
74 ::Error("AddTaskJetEmbedding", "This task requires an input event handler");
75 return NULL;
76 }
77
78 //-------------------------------------------------------
79 // Init the task and do settings
80 //-------------------------------------------------------
81
e6f3b167 82 AliJetEmbeddingFromGenTask *jetEmb = new AliJetEmbeddingFromGenTask(taskName,drawQA);
388201f0 83 // if pythia is used as a generator, tell it not to print the event history to the screen
5dc5d4a3 84 if(genGen) {
5bd647fe 85 if(TString(genGen->IsA()->GetName()).EqualTo("AliGenPythia")) genGen->AliGenPythia::SetEventListRange(-10, -10);
5dc5d4a3 86 jetEmb->SetGen(genGen);
87 }
aa26ece2 88 jetEmb->SetTracksName(tracksName);
b929303d 89 jetEmb->SetPythiaInfoName(pythiaInfoName);
aa26ece2 90 jetEmb->SetEtaRange(minEta, maxEta);
91 jetEmb->SetPhiRange(minPhi, maxPhi);
92 jetEmb->SetPtRange(minPt, maxPt);
93 jetEmb->SetCopyArray(copyArray);
94
95 //-------------------------------------------------------
96 // Final settings, pass to manager and set the containers
97 //-------------------------------------------------------
98
99 mgr->AddTask(jetEmb);
100
101 // Create containers for input/output
102 mgr->ConnectInput (jetEmb, 0, mgr->GetCommonInputContainer() );
103
e6f3b167 104 if (drawQA) {
105 TString contName = taskName;
106 contName += "_histos";
107 AliAnalysisDataContainer *outc = mgr->CreateContainer(contName,
108 TList::Class(),
109 AliAnalysisManager::kOutputContainer,
291f2e16 110 Form("%s",AliAnalysisManager::GetCommonFileName()));
e6f3b167 111 mgr->ConnectOutput(jetEmb, 1, outc);
112 }
113
114
aa26ece2 115 return jetEmb;
116}