]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/macros/AddTaskRhoSparse.C
From Marta
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskRhoSparse.C
1 // $Id: AddTaskRho_pA.C 58584 2012-09-13 10:37:42Z loizides $
2
3 AliAnalysisTaskRhoSparse* AddTaskRhoSparse(
4    const char    *nJetsBkg    = "JetsBkg",
5    const char    *nJetsSig    = "JetsSig",
6    const char    *nTracks     = "PicoTracks",
7    const char    *nClusters   = "CaloClusters",  
8    const char    *nRho        = "Rho",
9    Double_t       jetradius   = 0.2,
10    UInt_t         type        = AliAnalysisTaskEmcal::kTPC,
11    Double_t       jetareacut  = 0.01,
12    Double_t       jetptcut    = 0.0,
13    Double_t       emcareacut  = 0,
14    TF1           *sfunc       = 0,
15    const UInt_t   exclJets    = 2,
16    const Bool_t   histo       = kFALSE,
17    const char    *taskname    = "Rho",
18    const Bool_t   fRhoCMS      = kTRUE
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("AddTaskRhoSparse", "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("AddTaskRhoSparse", "This task requires an input event handler");
35     return NULL;
36   }
37   
38   //-------------------------------------------------------
39   // Init the task and do settings
40   //-------------------------------------------------------
41
42   TString name(Form("%s_%s_", taskname, nJetsBkg));
43   if (type == AliAnalysisTaskEmcal::kTPC) 
44     name += "TPC";
45   else if (type == AliAnalysisTaskEmcal::kEMCAL) 
46     name += "EMCAL";
47   else if (type == AliAnalysisTaskEmcal::kUser) 
48     name += "USER";
49
50   AliEmcalJetTask* mgrTask = mgr->GetTask(name.Data());
51   if (mgrTask)
52     return mgrTask;
53
54   AliAnalysisTaskRhoSparse *rhotask = new AliAnalysisTaskRhoSparse(name, histo);
55   rhotask->SetHistoBins(1000,-0.1,9.9);
56   rhotask->SetAnaType(type);
57   rhotask->SetScaleFunction(sfunc);
58   rhotask->SetJetsName(nJetsBkg);
59   rhotask->SetSigJetsName(nJetsSig);
60   rhotask->SetTracksName(nTracks);
61   rhotask->SetClusName(nClusters);
62   rhotask->SetRhoName(nRho);
63   rhotask->SetJetAreaCut(jetareacut);
64   rhotask->SetAreaEmcCut(emcareacut);
65   rhotask->SetJetPtCut(jetptcut);
66   rhotask->SetJetRadius(jetradius);
67   rhotask->SetExcludeLeadJets(exclJets);
68   rhotask->SetRhoCMS(fRhoCMS);
69
70   //-------------------------------------------------------
71   // Final settings, pass to manager and set the containers
72   //-------------------------------------------------------
73
74   mgr->AddTask(rhotask);
75
76   // Create containers for input/output
77   mgr->ConnectInput(rhotask, 0, mgr->GetCommonInputContainer());
78   if (histo) {
79     TString contname(name);
80     contname += "_histos";
81     AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contname.Data(), 
82                                                               TList::Class(),AliAnalysisManager::kOutputContainer,
83                                                               Form("%s", AliAnalysisManager::GetCommonFileName()));
84     mgr->ConnectOutput(rhotask, 1, coutput1);
85   }
86
87   return rhotask;
88 }