]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/macros/AddTaskRhoAverage.C
fix const subtr tracks. Note: array has no gaps
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskRhoAverage.C
CommitLineData
3e9c29c7 1// $Id$
2
3AliAnalysisTaskRhoAverage* AddTaskRhoAverage(
a487deae 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,
7cd832c7 9 const char *cutType = "TPC",
a487deae 10 Double_t jetareacut = 0.01,
11 Double_t emcareacut = 0,
624bef5b 12 Double_t trackptcut = 0.15,
13 Double_t clusptcut = 0.30,
a487deae 14 TF1 *sfunc = 0,
15 const UInt_t exclPart = 2,
16 const UInt_t rhotype = 1,
17 const Bool_t histo = kFALSE,
18 const char *taskname = "RhoAverage"
3e9c29c7 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("AddTaskRhoAverage", "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("AddTaskRhoAverage", "This task requires an input event handler");
35 return NULL;
36 }
37
38 //-------------------------------------------------------
39 // Init the task and do settings
40 //-------------------------------------------------------
41
7cd832c7 42 TString name(Form("%s_%s_%s_%s", taskname, nTracks, nClusters, cutType));
43
a487deae 44 AliAnalysisTaskRhoAverage *rhotask = new AliAnalysisTaskRhoAverage(name, histo);
a487deae 45 rhotask->SetExcludeLeadPart(exclPart);
7cd832c7 46 rhotask->SetScaleFunction(sfunc);
47 rhotask->SetOutRhoName(nRho);
a487deae 48 rhotask->SetRhoType(rhotype);
3e9c29c7 49
7cd832c7 50 AliParticleContainer *trackCont = rhotask->AddParticleContainer(nTracks);
51 if (trackCont) trackCont->SetTrackPtCut(trackptcut);
52
53 AliClusterContainer *clusterCont = rhotask->AddClusterContainer(nClusters);
54 if (clusterCont) clusterCont->SetClusPtCut(clusptcut);
55
56 AliJetContainer *jetCont = rhotask->AddJetContainer(nJets,cutType,jetradius);
57 if (jetCont) {
58 jetCont->SetJetAreaCut(jetareacut);
59 jetCont->SetAreaEmcCut(emcareacut);
60 jetCont->SetJetPtCut(0);
61 jetCont->ConnectParticleContainer(trackCont);
62 jetCont->ConnectClusterContainer(clusterCont);
63 }
64
3e9c29c7 65 //-------------------------------------------------------
66 // Final settings, pass to manager and set the containers
67 //-------------------------------------------------------
68
69 mgr->AddTask(rhotask);
70
71 // Create containers for input/output
a487deae 72 mgr->ConnectInput(rhotask, 0, mgr->GetCommonInputContainer());
73
74 if (histo) {
75 TString contname(name);
76 contname += "_histos";
77 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contname.Data(),
78 TList::Class(),AliAnalysisManager::kOutputContainer,
79 Form("%s", AliAnalysisManager::GetCommonFileName()));
80 mgr->ConnectOutput(rhotask, 1, coutput1);
81 }
3e9c29c7 82
83 return rhotask;
84}