]>
Commit | Line | Data |
---|---|---|
8628b70c | 1 | // $Id$ |
aa26ece2 | 2 | |
5dc5d4a3 | 3 | AliJetEmbeddingFromGenTask* 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, |
18 | const char *partonInfoName = "PartonInfo" | |
5dc5d4a3 | 19 | ) |
20 | { | |
21 | AliGenerator *genGen = NULL; | |
22 | if(genType==0) { //PYTHIA Perugia 2011 | |
23 | gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/train/AddMCGenPythia.C"); | |
56d5faa8 | 24 | genGen = AddMCGenPythia(ecms, ptHardMin, ptHardMax, 2); |
5dc5d4a3 | 25 | } |
26 | else if(genType==1 || genType==2) { //QPYTHIA and PYQUEN | |
27 | gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/train/AddMCGenQuench.C"); | |
28 | genGen = AddMCGenQuench(ecms, ptHardMin, ptHardMax, genType); | |
29 | } | |
30 | if(!genGen) { | |
31 | ::Error("AddTaskJetEmbeddingFromGenTask", "Generator does not exist"); | |
32 | return NULL; | |
33 | } | |
34 | ||
35 | AliJetEmbeddingFromGenTask *task = AddTaskJetEmbeddingFromGen(genGen,tracksName,taskName,minPt,maxPt,minEta,maxEta,minPhi,maxPhi,copyArray,drawQA,partonInfoName); | |
36 | ||
37 | return task; | |
38 | ||
39 | } | |
40 | ||
aa26ece2 | 41 | AliJetEmbeddingFromGenTask* AddTaskJetEmbeddingFromGen( |
42 | AliGenerator *genGen, | |
cd6703c5 | 43 | const char *tracksName = "GenParticles", |
44 | const char *taskName = "JetEmbeddingFromGenTask", | |
45 | const Double_t minPt = 10, | |
46 | const Double_t maxPt = 10, | |
47 | const Double_t minEta = -0.9, | |
48 | const Double_t maxEta = 0.9, | |
49 | const Double_t minPhi = 0, | |
50 | const Double_t maxPhi = TMath::Pi() * 2, | |
51 | const Bool_t copyArray = kTRUE, | |
56d5faa8 | 52 | const Bool_t drawQA = kTRUE, |
cd6703c5 | 53 | const char *partonInfoName = "" |
aa26ece2 | 54 | ) |
55 | { | |
56 | // Get the pointer to the existing analysis manager via the static access method. | |
57 | //============================================================================== | |
58 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
59 | if (!mgr) | |
60 | { | |
61 | ::Error("AddTaskJetEmbedding", "No analysis manager to connect to."); | |
62 | return NULL; | |
63 | } | |
64 | ||
65 | // Check the analysis type using the event handlers connected to the analysis manager. | |
66 | //============================================================================== | |
67 | if (!mgr->GetInputEventHandler()) | |
68 | { | |
69 | ::Error("AddTaskJetEmbedding", "This task requires an input event handler"); | |
70 | return NULL; | |
71 | } | |
72 | ||
73 | //------------------------------------------------------- | |
74 | // Init the task and do settings | |
75 | //------------------------------------------------------- | |
76 | ||
e6f3b167 | 77 | AliJetEmbeddingFromGenTask *jetEmb = new AliJetEmbeddingFromGenTask(taskName,drawQA); |
388201f0 | 78 | // if pythia is used as a generator, tell it not to print the event history to the screen |
5dc5d4a3 | 79 | if(genGen) { |
80 | if(TString(genGen->IsA()->GetName()).EqualTo("AliGenPythia")) genGen->AliGenPythia::SetEventListRange(0, 0); | |
81 | jetEmb->SetGen(genGen); | |
82 | } | |
aa26ece2 | 83 | jetEmb->SetTracksName(tracksName); |
cfa7b4df | 84 | jetEmb->SetPartonInfoName(partonInfoName); |
aa26ece2 | 85 | jetEmb->SetEtaRange(minEta, maxEta); |
86 | jetEmb->SetPhiRange(minPhi, maxPhi); | |
87 | jetEmb->SetPtRange(minPt, maxPt); | |
88 | jetEmb->SetCopyArray(copyArray); | |
89 | ||
90 | //------------------------------------------------------- | |
91 | // Final settings, pass to manager and set the containers | |
92 | //------------------------------------------------------- | |
93 | ||
94 | mgr->AddTask(jetEmb); | |
95 | ||
96 | // Create containers for input/output | |
97 | mgr->ConnectInput (jetEmb, 0, mgr->GetCommonInputContainer() ); | |
98 | ||
e6f3b167 | 99 | if (drawQA) { |
100 | TString contName = taskName; | |
101 | contName += "_histos"; | |
102 | AliAnalysisDataContainer *outc = mgr->CreateContainer(contName, | |
103 | TList::Class(), | |
104 | AliAnalysisManager::kOutputContainer, | |
105 | "AnalysisResults.root"); | |
106 | mgr->ConnectOutput(jetEmb, 1, outc); | |
107 | } | |
108 | ||
109 | ||
aa26ece2 | 110 | return jetEmb; |
111 | } |