2 * AddTask macro for class
3 * Redmer Alexander Bertens, rbertens@cern.ch
4 * Utrecht University, Utrecht, Netherlands
6 * Note: this macro is pretty much a copy of AddTaskEmcalJetSample.C
10 AliAnalysisTaskRhoVnModulation* AddTaskRhoVnModulation(
11 const char *ntracks = "Tracks",
12 const char *nclusters = "",
13 const char *njets = "Jets",
14 const char *nrho = "Rho",
15 Double_t jetradius = 0.2,
16 Double_t jetptcut = 1,
17 Double_t jetareacut = 0.557,
18 UInt_t type = AliAnalysisTaskEmcal::kTPC,
19 Int_t leadhadtype = 0,
20 const char *taskname = "AliAnalysisTaskRhoVnModulation",
21 UInt_t runMode = AliAnalysisTaskRhoVnModulation::kGrid,
22 Bool_t fillQA = kTRUE,
23 TString fitOpts = "LWQIM",
24 UInt_t fitType = AliAnalysisTaskRhoVnModulation::kFourierSeries
27 // Get the pointer to the existing analysis manager via the static access method.
28 //==============================================================================
29 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
32 ::Error("AddTaskEmcalJetSample", "No analysis manager to connect to.");
36 // Check the analysis type using the event handlers connected to the analysis manager.
37 //==============================================================================
38 if (!mgr->GetInputEventHandler())
40 ::Error("AddTaskEmcalJetSample", "This task requires an input event handler");
44 //-------------------------------------------------------
45 // Init the task and do settings
46 //-------------------------------------------------------
48 TString name(taskname);
49 if (strcmp(njets,"")) {
53 if (strcmp(nrho,"")) {
57 if (type == AliAnalysisTaskEmcal::kTPC)
59 else if (type == AliAnalysisTaskEmcal::kEMCAL)
61 else if (type == AliAnalysisTaskEmcal::kUser)
64 AliAnalysisTaskRhoVnModulation* jetTask = new AliAnalysisTaskRhoVnModulation(name, runMode);
66 jetTask->SetAnaType(type);
67 jetTask->SetTracksName(ntracks);
68 jetTask->SetClusName(nclusters);
69 jetTask->SetJetsName(njets);
70 jetTask->SetRhoName(nrho);
71 jetTask->SetJetRadius(jetradius);
72 jetTask->SetJetPtCut(jetptcut);
73 jetTask->SetPercAreaCut(jetareacut);
74 jetTask->SetLeadingHadronType(leadhadtype);
75 // task specific setters
76 jetTask->SetFillQAHistograms(fillQA);
77 jetTask->SetDebugMode(-1);
78 jetTask->SetModulationFitType(fitType);
79 jetTask->SetModulationFitOptions(fitOpts);
81 //-------------------------------------------------------
82 // Final settings, pass to manager and set the containers
83 //-------------------------------------------------------
85 mgr->AddTask(jetTask);
87 // Create containers for input/output
88 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer() ;
89 TString contname(name);
90 contname += "_histos";
91 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contname.Data(),
92 TList::Class(),AliAnalysisManager::kOutputContainer,
93 Form("%s", AliAnalysisManager::GetCommonFileName()));
94 mgr->ConnectInput (jetTask, 0, cinput1 );
95 mgr->ConnectOutput (jetTask, 1, coutput1 );
98 case AliAnalysisTaskRhoVnModulation::kLocal : {
100 AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("good_fits",
101 TList::Class(),AliAnalysisManager::kOutputContainer,
102 Form("%s", AliAnalysisManager::GetCommonFileName()));
103 AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("bad_fits",
104 TList::Class(),AliAnalysisManager::kOutputContainer,
105 Form("%s", AliAnalysisManager::GetCommonFileName()));
106 mgr->ConnectOutput (jetTask, 2, coutput2);
107 mgr->ConnectOutput (jetTask, 3, coutput3);