]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/macros/AddTaskRhoAverage.C
added jet trigger patch maker
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskRhoAverage.C
1 // $Id$
2
3 AliAnalysisTaskRhoAverage* AddTaskRhoAverage(
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    UInt_t         type        = AliAnalysisTaskEmcal::kTPC,
10    Double_t       jetareacut  = 0.01,
11    Double_t       emcareacut  = 0,
12    Double_t       trackptcut  = 0.15,
13    Double_t       clusptcut   = 0.30,
14    TF1           *sfunc       = 0,
15    const UInt_t   exclPart    = 2,
16    const UInt_t   rhotype     = 1,
17    const Bool_t   histo       = kFALSE,
18    const char    *taskname    = "RhoAverage"
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("AddTaskRhoAverage", "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("AddTaskRhoAverage", "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_%s_", taskname, nTracks, nClusters));
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   AliAnalysisTaskRhoAverage *rhotask = new AliAnalysisTaskRhoAverage(name, histo);
50   rhotask->SetAnaType(type);
51   rhotask->SetScaleFunction(sfunc);
52   rhotask->SetJetsName(nJets);
53   rhotask->SetTracksName(nTracks);
54   rhotask->SetClusName(nClusters);
55   rhotask->SetRhoName(nRho);
56   rhotask->SetJetAreaCut(jetareacut);
57   rhotask->SetAreaEmcCut(emcareacut);
58   rhotask->SetClusPtCut(clusptcut);
59   rhotask->SetTrackPtCut(trackptcut);
60   rhotask->SetJetPtCut(0);
61   rhotask->SetJetRadius(jetradius);
62   rhotask->SetExcludeLeadPart(exclPart);
63   rhotask->SetRhoType(rhotype);
64
65   //-------------------------------------------------------
66   // Final settings, pass to manager and set the containers
67   //-------------------------------------------------------
68
69   mgr->AddTask(rhotask);
70
71   // Create containers for input/output
72   mgr->ConnectInput(rhotask, 0, mgr->GetCommonInputContainer());
73
74   if (histo) {
75     TString contname(name);
76     contname += "_histos";
77     AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contname.Data(), 
78                                                               TList::Class(),AliAnalysisManager::kOutputContainer,
79                                                               Form("%s", AliAnalysisManager::GetCommonFileName()));
80     mgr->ConnectOutput(rhotask, 1, coutput1);
81   }
82
83   return rhotask;
84 }