]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/macros/AddTaskRhoSparse.C
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskRhoSparse.C
CommitLineData
40d44b3b 1// $Id$
181a7b93 2
3AliAnalysisTaskRhoSparse* AddTaskRhoSparse(
9e5eee5d 4 const char *nJetsBkg = "JetsBkg",
5 const char *nJetsSig = "JetsSig",
6 const char *nTracks = "PicoTracks",
7 const char *nClusters = "CaloClusters",
8 const char *nRho = "Rho",
9 Double_t jetradius = 0.2,
10 const char *cutType = "TPC",
11 Double_t jetareacut = 0.01,
12 Double_t jetptcut = 0.0,
13 Double_t emcareacut = 0,
14 TF1 *sfunc = 0x0,
15 const UInt_t exclJets = 2,
16 const Bool_t histo = kFALSE,
17 const char *taskname = "Rho",
18 const Bool_t fRhoCMS = kTRUE
19 )
181a7b93 20{
9e5eee5d 21
181a7b93 22 // Get the pointer to the existing analysis manager via the static access method.
23 //==============================================================================
24 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
25 if (!mgr)
26 {
27 ::Error("AddTaskRhoSparse", "No analysis manager to connect to.");
28 return NULL;
29 }
30
31 // Check the analysis type using the event handlers connected to the analysis manager.
32 //==============================================================================
33 if (!mgr->GetInputEventHandler())
34 {
35 ::Error("AddTaskRhoSparse", "This task requires an input event handler");
36 return NULL;
37 }
38
39 //-------------------------------------------------------
40 // Init the task and do settings
41 //-------------------------------------------------------
42
7cd832c7 43 TString name(Form("%s_%s_%s", taskname, nJetsBkg,cutType));
1103d43d 44 AliAnalysisTaskRhoSparse* mgrTask = mgr->GetTask(name.Data());
7cd832c7 45 if (mgrTask) return mgrTask;
609c7a0d 46
181a7b93 47 AliAnalysisTaskRhoSparse *rhotask = new AliAnalysisTaskRhoSparse(name, histo);
48 rhotask->SetHistoBins(1000,-0.1,9.9);
181a7b93 49 rhotask->SetRhoCMS(fRhoCMS);
7cd832c7 50 rhotask->SetExcludeLeadJets(exclJets);
51 rhotask->SetScaleFunction(sfunc);
52 rhotask->SetOutRhoName(nRho);
53
54 AliParticleContainer *trackCont = rhotask->AddParticleContainer(nTracks);
55 AliClusterContainer *clusterCont = rhotask->AddClusterContainer(nClusters);
56
57 AliJetContainer *bkgJetCont = rhotask->AddJetContainer(nJetsBkg,cutType,jetradius);
58 if (bkgJetCont) {
59 bkgJetCont->SetJetAreaCut(jetareacut);
60 bkgJetCont->SetAreaEmcCut(emcareacut);
9e5eee5d 61 bkgJetCont->SetJetPtCut(0.);
7cd832c7 62 bkgJetCont->ConnectParticleContainer(trackCont);
63 bkgJetCont->ConnectClusterContainer(clusterCont);
64 }
65
66 AliJetContainer *sigJetCont = rhotask->AddJetContainer(nJetsSig,cutType,jetradius);
67 if (sigJetCont) {
7cd832c7 68 sigJetCont->SetJetAreaCut(jetareacut);
69 sigJetCont->SetAreaEmcCut(emcareacut);
9e5eee5d 70 sigJetCont->SetJetPtCut(jetptcut);
7cd832c7 71 sigJetCont->ConnectParticleContainer(trackCont);
72 sigJetCont->ConnectClusterContainer(clusterCont);
73 }
181a7b93 74
75 //-------------------------------------------------------
76 // Final settings, pass to manager and set the containers
77 //-------------------------------------------------------
78
79 mgr->AddTask(rhotask);
80
81 // Create containers for input/output
82 mgr->ConnectInput(rhotask, 0, mgr->GetCommonInputContainer());
83 if (histo) {
84 TString contname(name);
85 contname += "_histos";
86 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contname.Data(),
87 TList::Class(),AliAnalysisManager::kOutputContainer,
88 Form("%s", AliAnalysisManager::GetCommonFileName()));
89 mgr->ConnectOutput(rhotask, 1, coutput1);
90 }
91
92 return rhotask;
93}