]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/macros/AddTaskRhoVnModulation.C
Updates 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            = "WLQI",
24   UInt_t     fitType            = AliAnalysisTaskRhoVnModulation::kFourierSeries,
25   TArrayI    *centralities      = 0x0,
26   TRandom3   *randomizer        = 0x0
27   )
28 {  
29   // Get the pointer to the existing analysis manager via the static access method.
30   //==============================================================================
31   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
32   if (!mgr)
33   {
34     ::Error("AddTaskEmcalJetSample", "No analysis manager to connect to.");
35     return NULL;
36   }  
37   
38   // Check the analysis type using the event handlers connected to the analysis manager.
39   //==============================================================================
40   if (!mgr->GetInputEventHandler())
41   {
42     ::Error("AddTaskEmcalJetSample", "This task requires an input event handler");
43     return NULL;
44   }
45   
46   //-------------------------------------------------------
47   // Init the task and do settings
48   //-------------------------------------------------------
49
50   TString name(taskname);
51   if (strcmp(njets,"")) {
52     name += "_";
53     name += njets;
54   }
55   if (strcmp(nrho,"")) {
56     name += "_";
57     name += nrho;
58   }
59   if (type == AliAnalysisTaskEmcal::kTPC) 
60     name += "_TPC";
61   else if (type == AliAnalysisTaskEmcal::kEMCAL) 
62     name += "_EMCAL";
63   else if (type == AliAnalysisTaskEmcal::kUser) 
64     name += "_USER";
65
66   AliAnalysisTaskRhoVnModulation* jetTask = new AliAnalysisTaskRhoVnModulation(name, runMode);
67   // inherited setters
68   jetTask->SetAnaType(type);
69   jetTask->SetTracksName(ntracks);
70   jetTask->SetClusName(nclusters);
71   jetTask->SetJetsName(njets);
72   jetTask->SetRhoName(nrho);
73   jetTask->SetJetRadius(jetradius);
74   jetTask->SetJetPtCut(jetptcut);
75   jetTask->SetPercAreaCut(jetareacut);
76   jetTask->SetLeadingHadronType(leadhadtype);
77   // task specific setters
78   jetTask->SetFillQAHistograms(fillQA);
79   jetTask->SetDebugMode(-1);
80   jetTask->SetModulationFitType(fitType);
81   jetTask->SetModulationFitOptions(fitOpts);
82   jetTask->SetModulationFitMinMaxP(.05, 1);
83   // if centralities haven't been specified use defaults
84   if(!centralities) {
85      Int_t c[] = {0, 10, 30, 50, 70, 90};
86      jetTask->SetCentralityClasses(new TArrayI(sizeof(c)/sizeof(c[0]), c));
87   }
88   // if a randomized hasn't specified use a safe default 
89   if(!randomizer) jetTask->SetRandomSeed(new TRandom3(0));
90
91
92
93
94   //-------------------------------------------------------
95   // Final settings, pass to manager and set the containers
96   //-------------------------------------------------------
97   
98   mgr->AddTask(jetTask);
99   
100   // Create containers for input/output
101   AliAnalysisDataContainer *cinput1  = mgr->GetCommonInputContainer()  ;
102   TString contname(name);
103   contname+="_PWGJE";
104   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contname.Data(), 
105                                                             TList::Class(),AliAnalysisManager::kOutputContainer,
106                                                             Form("%s", AliAnalysisManager::GetCommonFileName()));
107   mgr->ConnectInput  (jetTask, 0,  cinput1 );
108   mgr->ConnectOutput (jetTask, 1, coutput1 );
109
110   switch (runMode) {
111       case AliAnalysisTaskRhoVnModulation::kLocal : {
112           gStyle->SetOptFit(1);
113           AliAnalysisDataContainer *coutput2 = mgr->CreateContainer(Form("good_fits_%s", name.Data()), 
114                                                             TList::Class(),AliAnalysisManager::kOutputContainer,
115                                                             Form("%s", AliAnalysisManager::GetCommonFileName()));
116           AliAnalysisDataContainer *coutput3 = mgr->CreateContainer(Form("bad_fits_%s", name.Data()),
117                                                             TList::Class(),AliAnalysisManager::kOutputContainer,
118                                                              Form("%s", AliAnalysisManager::GetCommonFileName()));
119           mgr->ConnectOutput (jetTask, 2, coutput2);
120           mgr->ConnectOutput (jetTask, 3, coutput3);
121       } break;
122       default: break;
123   }
124   return jetTask;
125 }