8bee89e743c06a0ebb1c2435cf056d5333c6f67e
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskJetEmbeddingFromGen.C
1 // $Id$
2
3 AliJetEmbeddingFromGenTask* AddTaskJetEmbeddingFromGen(
4   AliGenerator   *genGen,
5   const char     *tracksName   = "GenParticles",
6   const char     *taskName     = "JetEmbeddingFromGenTask",
7   const Double_t  minPt        = 10,
8   const Double_t  maxPt        = 10,
9   const Double_t  minEta       = -0.9,
10   const Double_t  maxEta       = 0.9,
11   const Double_t  minPhi       = 0,
12   const Double_t  maxPhi       = TMath::Pi() * 2,
13   const Bool_t    copyArray    = kTRUE,
14   const Bool_t    drawQA       = kFALSE
15 )
16 {  
17   // Get the pointer to the existing analysis manager via the static access method.
18   //==============================================================================
19   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
20   if (!mgr)
21   {
22     ::Error("AddTaskJetEmbedding", "No analysis manager to connect to.");
23     return NULL;
24   }  
25   
26   // Check the analysis type using the event handlers connected to the analysis manager.
27   //==============================================================================
28   if (!mgr->GetInputEventHandler())
29   {
30     ::Error("AddTaskJetEmbedding", "This task requires an input event handler");
31     return NULL;
32   }
33   
34   //-------------------------------------------------------
35   // Init the task and do settings
36   //-------------------------------------------------------
37
38   AliJetEmbeddingFromGenTask *jetEmb = new AliJetEmbeddingFromGenTask(taskName,drawQA);
39   jetEmb->SetGen(genGen);
40   jetEmb->SetTracksName(tracksName);
41   jetEmb->SetEtaRange(minEta, maxEta);
42   jetEmb->SetPhiRange(minPhi, maxPhi);
43   jetEmb->SetPtRange(minPt, maxPt);
44   jetEmb->SetCopyArray(copyArray);
45
46   //-------------------------------------------------------
47   // Final settings, pass to manager and set the containers
48   //-------------------------------------------------------
49
50   mgr->AddTask(jetEmb);
51     
52   // Create containers for input/output
53   mgr->ConnectInput (jetEmb, 0, mgr->GetCommonInputContainer() );
54
55   if (drawQA) {
56     TString contName = taskName;
57     contName += "_histos";
58     AliAnalysisDataContainer *outc = mgr->CreateContainer(contName,
59                                                           TList::Class(),
60                                                           AliAnalysisManager::kOutputContainer,
61                                                           "AnalysisResults.root");
62     mgr->ConnectOutput(jetEmb, 1, outc);
63   }
64
65
66   return jetEmb;
67 }