]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/macros/AddTaskRhoFlow.C
Merge branch 'master' into TPCdev
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskRhoFlow.C
1 // $Id$
2
3 AliAnalysisTaskRhoFlow* AddTaskRhoFlow(
4    const char    *nJets       = "Jets",
5    const char    *nTracks     = "PicoTracks",
6    const char    *nClusters   = "CaloClusters",  
7    const char    *nRho        = "Rho",
8    Double_t       jetradius   = 0.2,
9    const char    *cutType     = "TPC",
10    Double_t       jetareacut  = 0.01,
11    Double_t       emcareacut  = 0,
12    const UInt_t   exclJets    = 0,
13    const char    *taskname    = "RhoFlow"
14 )
15 {  
16   // Get the pointer to the existing analysis manager via the static access method.
17   //==============================================================================
18   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
19   if (!mgr)
20   {
21     ::Error("AddTaskRho", "No analysis manager to connect to.");
22     return NULL;
23   }  
24   
25   // Check the analysis type using the event handlers connected to the analysis manager.
26   //==============================================================================
27   if (!mgr->GetInputEventHandler())
28   {
29     ::Error("AddTaskRho", "This task requires an input event handler");
30     return NULL;
31   }
32   
33   //-------------------------------------------------------
34   // Init the task and do settings
35   //-------------------------------------------------------
36
37   TString name(Form("%s_%s_%s", taskname, nJets,cutType));
38   AliAnalysisTaskRhoFlow *rhotask = new AliAnalysisTaskRhoFlow(name);
39   rhotask->SetExcludeLeadJets(exclJets);
40   rhotask->SetOutRhoName(nRho);
41
42   AliParticleContainer *trackCont = rhotask->AddParticleContainer(nTracks);
43   AliClusterContainer *clusterCont = rhotask->AddClusterContainer(nClusters);
44
45   AliJetContainer *jetCont = rhotask->AddJetContainer(nJets,cutType,jetradius);
46   if (jetCont) {
47     jetCont->SetJetAreaCut(jetareacut);
48     jetCont->SetAreaEmcCut(emcareacut);
49     jetCont->SetJetPtCut(0);
50     jetCont->ConnectParticleContainer(trackCont);
51     jetCont->ConnectClusterContainer(clusterCont);
52   }
53
54   //-------------------------------------------------------
55   // Final settings, pass to manager and set the containers
56   //-------------------------------------------------------
57
58   mgr->AddTask(rhotask);
59
60   // Create containers for input/output
61   mgr->ConnectInput(rhotask, 0, mgr->GetCommonInputContainer());
62
63   TString contname(name);
64   contname += "_histos";
65   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contname.Data(), 
66                                                             TList::Class(),AliAnalysisManager::kOutputContainer,
67                                                             Form("%s", AliAnalysisManager::GetCommonFileName()));
68   mgr->ConnectOutput(rhotask, 1, coutput1);
69
70   return rhotask;
71 }