]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/macros/AddTaskJetEmbeddingFromGen.C
fix const subtr tracks. Note: array has no gaps
[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",
59a3310e 10 const Double_t minPt = 0.15,
11 const Double_t maxPt = 1000,
5dc5d4a3 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",
59a3310e 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;
5dc5d4a3 43}
44
aa26ece2 45AliJetEmbeddingFromGenTask* AddTaskJetEmbeddingFromGen(
46 AliGenerator *genGen,
cd6703c5 47 const char *tracksName = "GenParticles",
48 const char *taskName = "JetEmbeddingFromGenTask",
59a3310e 49 const Double_t minPt = 0.15,
50 const Double_t maxPt = 1000,
cd6703c5 51 const Double_t minEta = -0.9,
52 const Double_t maxEta = 0.9,
53 const Double_t minPhi = 0,
54 const Double_t maxPhi = TMath::Pi() * 2,
55 const Bool_t copyArray = kTRUE,
56d5faa8 56 const Bool_t drawQA = kTRUE,
b929303d 57 const char *pythiaInfoName = ""
aa26ece2 58)
59{
60 // Get the pointer to the existing analysis manager via the static access method.
61 //==============================================================================
62 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
63 if (!mgr)
64 {
65 ::Error("AddTaskJetEmbedding", "No analysis manager to connect to.");
66 return NULL;
67 }
68
69 // Check the analysis type using the event handlers connected to the analysis manager.
70 //==============================================================================
71 if (!mgr->GetInputEventHandler())
72 {
73 ::Error("AddTaskJetEmbedding", "This task requires an input event handler");
74 return NULL;
75 }
76
77 //-------------------------------------------------------
78 // Init the task and do settings
79 //-------------------------------------------------------
80
e6f3b167 81 AliJetEmbeddingFromGenTask *jetEmb = new AliJetEmbeddingFromGenTask(taskName,drawQA);
388201f0 82 // if pythia is used as a generator, tell it not to print the event history to the screen
5dc5d4a3 83 if(genGen) {
5bd647fe 84 if(TString(genGen->IsA()->GetName()).EqualTo("AliGenPythia")) genGen->AliGenPythia::SetEventListRange(-10, -10);
5dc5d4a3 85 jetEmb->SetGen(genGen);
86 }
aa26ece2 87 jetEmb->SetTracksName(tracksName);
b929303d 88 jetEmb->SetPythiaInfoName(pythiaInfoName);
aa26ece2 89 jetEmb->SetEtaRange(minEta, maxEta);
90 jetEmb->SetPhiRange(minPhi, maxPhi);
91 jetEmb->SetPtRange(minPt, maxPt);
92 jetEmb->SetCopyArray(copyArray);
93
94 //-------------------------------------------------------
95 // Final settings, pass to manager and set the containers
96 //-------------------------------------------------------
97
98 mgr->AddTask(jetEmb);
99
100 // Create containers for input/output
101 mgr->ConnectInput (jetEmb, 0, mgr->GetCommonInputContainer() );
102
e6f3b167 103 if (drawQA) {
104 TString contName = taskName;
105 contName += "_histos";
106 AliAnalysisDataContainer *outc = mgr->CreateContainer(contName,
107 TList::Class(),
108 AliAnalysisManager::kOutputContainer,
291f2e16 109 Form("%s",AliAnalysisManager::GetCommonFileName()));
e6f3b167 110 mgr->ConnectOutput(jetEmb, 1, outc);
111 }
112
113
aa26ece2 114 return jetEmb;
115}