]>
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", | |
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 | 45 | AliJetEmbeddingFromGenTask* 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 | } |