]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/macros/AddTaskRhoMass.C
fix const subtr tracks. Note: array has no gaps
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskRhoMass.C
CommitLineData
4d3b366f 1// $Id$
2
3AliAnalysisTaskRhoMass* AddTaskRhoMass(
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 TF1 *sfunc = 0,
13 const UInt_t exclJets = 2,
14 const Bool_t histo = kFALSE,
15 const char *taskname = "RhoMass"
16)
17{
18 // Get the pointer to the existing analysis manager via the static access method.
19 //==============================================================================
20 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
21 if (!mgr)
22 {
23 ::Error("AddTaskRhoMass", "No analysis manager to connect to.");
24 return NULL;
25 }
26
27 // Check the analysis type using the event handlers connected to the analysis manager.
28 //==============================================================================
29 if (!mgr->GetInputEventHandler())
30 {
31 ::Error("AddTaskRhoMass", "This task requires an input event handler");
32 return NULL;
33 }
34
35
36 //-------------------------------------------------------
37 // Init the task and do settings
38 //-------------------------------------------------------
39
40 TString name(Form("%s_%s_%s", taskname, nJets,cutType));
41 AliAnalysisTaskRhoMass* mgrTask = mgr->GetTask(name.Data());
42 if (mgrTask) return mgrTask;
43
44 AliAnalysisTaskRhoMass *rhomtask = new AliAnalysisTaskRhoMass(name, histo);
45 rhomtask->SetExcludeLeadJets(exclJets);
46 rhomtask->SetScaleFunction(sfunc);
47 rhomtask->SetOutRhoMassName(nRho);
48
49 AliParticleContainer *trackCont = rhomtask->AddParticleContainer(nTracks);
50 AliClusterContainer *clusterCont = rhomtask->AddClusterContainer(nClusters);
51
52 AliJetContainer *jetCont = rhomtask->AddJetContainer(nJets,cutType,jetradius);
53 if (jetCont) {
54 jetCont->SetJetAreaCut(jetareacut);
55 jetCont->SetAreaEmcCut(emcareacut);
56 jetCont->SetJetPtCut(0);
57 jetCont->ConnectParticleContainer(trackCont);
58 jetCont->ConnectClusterContainer(clusterCont);
59 }
60
61 //-------------------------------------------------------
62 // Final settings, pass to manager and set the containers
63 //-------------------------------------------------------
64
65 mgr->AddTask(rhomtask);
66
67 // Create containers for input/output
68 mgr->ConnectInput(rhomtask, 0, mgr->GetCommonInputContainer());
69 if (histo) {
70 TString contname(name);
71 contname += "_histos";
72 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contname.Data(),
73 TList::Class(),AliAnalysisManager::kOutputContainer,
74 Form("%s", AliAnalysisManager::GetCommonFileName()));
75 mgr->ConnectOutput(rhomtask, 1, coutput1);
76 }
77
78 return rhomtask;
79}