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