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