3 AliJetEmbeddingFromGenTask* AddTaskJetEmbeddingFromGen(
4 Int_t genType = 0, //use Pythia as default
5 Double_t ptHardMin = 50.,
6 Double_t ptHardMax = 1000.,
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,
17 const Bool_t drawQA = kTRUE,
18 const char *pythiaInfoName = "PythiaInfo",
22 Float_t kQuench =4.4e6,
23 Int_t kAnglePyquen = 2
26 AliGenerator *genGen = NULL;
27 if(genType==0) { //PYTHIA Perugia 2011
28 gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/train/AddMCGenPythia.C");
29 genGen = AddMCGenPythia(ecms, ptHardMin, ptHardMax, kTune,kColorReco,ptWeight);
31 else if(genType==1 || genType==2) { //QPYTHIA and PYQUEN
32 gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/train/AddMCGenQuench.C");
33 genGen = AddMCGenQuench(ecms, ptHardMin, ptHardMax, genType,kQuench,kAnglePyquen,ptWeight);
36 ::Error("AddTaskJetEmbeddingFromGenTask", "Generator does not exist");
40 AliJetEmbeddingFromGenTask *task = AddTaskJetEmbeddingFromGen(genGen,tracksName,taskName,minPt,maxPt,minEta,maxEta,minPhi,maxPhi,copyArray,drawQA,pythiaInfoName);
46 AliJetEmbeddingFromGenTask* AddTaskJetEmbeddingFromGen(
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,
57 const Bool_t drawQA = kTRUE,
58 const char *pythiaInfoName = ""
61 // Get the pointer to the existing analysis manager via the static access method.
62 //==============================================================================
63 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
66 ::Error("AddTaskJetEmbedding", "No analysis manager to connect to.");
70 // Check the analysis type using the event handlers connected to the analysis manager.
71 //==============================================================================
72 if (!mgr->GetInputEventHandler())
74 ::Error("AddTaskJetEmbedding", "This task requires an input event handler");
78 //-------------------------------------------------------
79 // Init the task and do settings
80 //-------------------------------------------------------
82 AliJetEmbeddingFromGenTask *jetEmb = new AliJetEmbeddingFromGenTask(taskName,drawQA);
83 // if pythia is used as a generator, tell it not to print the event history to the screen
85 if(TString(genGen->IsA()->GetName()).EqualTo("AliGenPythia")) genGen->AliGenPythia::SetEventListRange(-10, -10);
86 jetEmb->SetGen(genGen);
88 jetEmb->SetTracksName(tracksName);
89 jetEmb->SetPythiaInfoName(pythiaInfoName);
90 jetEmb->SetEtaRange(minEta, maxEta);
91 jetEmb->SetPhiRange(minPhi, maxPhi);
92 jetEmb->SetPtRange(minPt, maxPt);
93 jetEmb->SetCopyArray(copyArray);
95 //-------------------------------------------------------
96 // Final settings, pass to manager and set the containers
97 //-------------------------------------------------------
101 // Create containers for input/output
102 mgr->ConnectInput (jetEmb, 0, mgr->GetCommonInputContainer() );
105 TString contName = taskName;
106 contName += "_histos";
107 AliAnalysisDataContainer *outc = mgr->CreateContainer(contName,
109 AliAnalysisManager::kOutputContainer,
110 Form("%s",AliAnalysisManager::GetCommonFileName()));
111 mgr->ConnectOutput(jetEmb, 1, outc);