]>
Commit | Line | Data |
---|---|---|
4d3b366f | 1 | // $Id$ |
2 | ||
3 | AliAnalysisTaskRhoMass* 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 | } |