]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/macros/AddTaskRhoVnModulation.C
Up from Redmer
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskRhoVnModulation.C
1 /*
2  * AddTask macro for class 
3  * Redmer Alexander Bertens, rbertens@cern.ch
4  * Utrecht University, Utrecht, Netherlands
5  *
6  * Note: this macro is pretty much a copy of AddTaskEmcalJetSample.C
7  *
8  */
9
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
25   )
26 {  
27   // Get the pointer to the existing analysis manager via the static access method.
28   //==============================================================================
29   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
30   if (!mgr)
31   {
32     ::Error("AddTaskEmcalJetSample", "No analysis manager to connect to.");
33     return NULL;
34   }  
35   
36   // Check the analysis type using the event handlers connected to the analysis manager.
37   //==============================================================================
38   if (!mgr->GetInputEventHandler())
39   {
40     ::Error("AddTaskEmcalJetSample", "This task requires an input event handler");
41     return NULL;
42   }
43   
44   //-------------------------------------------------------
45   // Init the task and do settings
46   //-------------------------------------------------------
47
48   TString name(taskname);
49   if (strcmp(njets,"")) {
50     name += "_";
51     name += njets;
52   }
53   if (strcmp(nrho,"")) {
54     name += "_";
55     name += nrho;
56   }
57   if (type == AliAnalysisTaskEmcal::kTPC) 
58     name += "_TPC";
59   else if (type == AliAnalysisTaskEmcal::kEMCAL) 
60     name += "_EMCAL";
61   else if (type == AliAnalysisTaskEmcal::kUser) 
62     name += "_USER";
63
64   AliAnalysisTaskRhoVnModulation* jetTask = new AliAnalysisTaskRhoVnModulation(name, runMode);
65   // inherited setters
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);
80
81   //-------------------------------------------------------
82   // Final settings, pass to manager and set the containers
83   //-------------------------------------------------------
84   
85   mgr->AddTask(jetTask);
86   
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 );
96
97   switch (runMode) {
98       case AliAnalysisTaskRhoVnModulation::kLocal : {
99           gStyle->SetOptFit(1);
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);
108       } break;
109       default: break;
110   }
111   return jetTask;
112 }