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 = 0.15,
11 const Double_t maxPt = 1000,
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);
45 AliJetEmbeddingFromGenTask* AddTaskJetEmbeddingFromGen(
47 const char *tracksName = "GenParticles",
48 const char *taskName = "JetEmbeddingFromGenTask",
49 const Double_t minPt = 0.15,
50 const Double_t maxPt = 1000,
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,
56 const Bool_t drawQA = kTRUE,
57 const char *pythiaInfoName = ""
60 // Get the pointer to the existing analysis manager via the static access method.
61 //==============================================================================
62 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
65 ::Error("AddTaskJetEmbedding", "No analysis manager to connect to.");
69 // Check the analysis type using the event handlers connected to the analysis manager.
70 //==============================================================================
71 if (!mgr->GetInputEventHandler())
73 ::Error("AddTaskJetEmbedding", "This task requires an input event handler");
77 //-------------------------------------------------------
78 // Init the task and do settings
79 //-------------------------------------------------------
81 AliJetEmbeddingFromGenTask *jetEmb = new AliJetEmbeddingFromGenTask(taskName,drawQA);
82 // if pythia is used as a generator, tell it not to print the event history to the screen
84 if(TString(genGen->IsA()->GetName()).EqualTo("AliGenPythia")) genGen->AliGenPythia::SetEventListRange(-10, -10);
85 jetEmb->SetGen(genGen);
87 jetEmb->SetTracksName(tracksName);
88 jetEmb->SetPythiaInfoName(pythiaInfoName);
89 jetEmb->SetEtaRange(minEta, maxEta);
90 jetEmb->SetPhiRange(minPhi, maxPhi);
91 jetEmb->SetPtRange(minPt, maxPt);
92 jetEmb->SetCopyArray(copyArray);
94 //-------------------------------------------------------
95 // Final settings, pass to manager and set the containers
96 //-------------------------------------------------------
100 // Create containers for input/output
101 mgr->ConnectInput (jetEmb, 0, mgr->GetCommonInputContainer() );
104 TString contName = taskName;
105 contName += "_histos";
106 AliAnalysisDataContainer *outc = mgr->CreateContainer(contName,
108 AliAnalysisManager::kOutputContainer,
109 Form("%s",AliAnalysisManager::GetCommonFileName()));
110 mgr->ConnectOutput(jetEmb, 1, outc);