]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/macros/AddTaskRhoAverage.C
Changes from Salvatore:
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskRhoAverage.C
1 // $Id$
2
3 AliAnalysisTaskRhoAverage* AddTaskRhoAverage(
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    UInt_t         type        = AliAnalysisTaskEmcal::kTPC,
10    Double_t       jetareacut  = 0.01,
11    Double_t       emcareacut  = 0,
12    Double_t       ptcut       = 0.15,
13    TF1           *sfunc       = 0,
14    const UInt_t   exclPart    = 2,
15    const UInt_t   rhotype     = 1,
16    const Bool_t   histo       = kFALSE,
17    const char    *taskname    = "RhoAverage"
18 )
19 {  
20   // Get the pointer to the existing analysis manager via the static access method.
21   //==============================================================================
22   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
23   if (!mgr)
24   {
25     ::Error("AddTaskRhoAverage", "No analysis manager to connect to.");
26     return NULL;
27   }  
28   
29   // Check the analysis type using the event handlers connected to the analysis manager.
30   //==============================================================================
31   if (!mgr->GetInputEventHandler())
32   {
33     ::Error("AddTaskRhoAverage", "This task requires an input event handler");
34     return NULL;
35   }
36   
37   //-------------------------------------------------------
38   // Init the task and do settings
39   //-------------------------------------------------------
40
41   TString name(Form("%s_%s_%s_", taskname, nTracks, nClusters));
42   if (type == AliAnalysisTaskEmcal::kTPC) 
43     name += "TPC";
44   else if (type == AliAnalysisTaskEmcal::kEMCAL) 
45     name += "EMCAL";
46   else if (type == AliAnalysisTaskEmcal::kUser) 
47     name += "USER";
48   AliAnalysisTaskRhoAverage *rhotask = new AliAnalysisTaskRhoAverage(name, histo);
49   rhotask->SetAnaType(type);
50   rhotask->SetScaleFunction(sfunc);
51   rhotask->SetJetsName(nJets);
52   rhotask->SetTracksName(nTracks);
53   rhotask->SetClusName(nClusters);
54   rhotask->SetRhoName(nRho);
55   rhotask->SetJetAreaCut(jetareacut);
56   rhotask->SetAreaEmcCut(emcareacut);
57   rhotask->SetPtCut(ptcut);
58   rhotask->SetJetPtCut(0);
59   rhotask->SetJetRadius(jetradius);
60   rhotask->SetExcludeLeadPart(exclPart);
61   rhotask->SetRhoType(rhotype);
62
63   //-------------------------------------------------------
64   // Final settings, pass to manager and set the containers
65   //-------------------------------------------------------
66
67   mgr->AddTask(rhotask);
68
69   // Create containers for input/output
70   mgr->ConnectInput(rhotask, 0, mgr->GetCommonInputContainer());
71
72   if (histo) {
73     TString contname(name);
74     contname += "_histos";
75     AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contname.Data(), 
76                                                               TList::Class(),AliAnalysisManager::kOutputContainer,
77                                                               Form("%s", AliAnalysisManager::GetCommonFileName()));
78     mgr->ConnectOutput(rhotask, 1, coutput1);
79   }
80
81   return rhotask;
82 }