]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/EMCALJetTasks/AliAnalysisTaskRhoBase.cxx
get beam type
[u/mrichter/AliRoot.git] / PWGGA / EMCALJetTasks / AliAnalysisTaskRhoBase.cxx
CommitLineData
3074a323 1// $Id$
2//
3// Base class for rho calculation
4//
5// Author: A.Saiola
6
7#include <TF1.h>
8
9#include "AliLog.h"
10#include "AliAnalysisManager.h"
11#include "AliVEventHandler.h"
12#include "AliCentrality.h"
13#include "AliEmcalJet.h"
14#include "AliVCluster.h"
15
16#include "AliAnalysisTaskRhoBase.h"
17
18ClassImp(AliAnalysisTaskRhoBase)
19
20//________________________________________________________________________
21AliAnalysisTaskRhoBase::AliAnalysisTaskRhoBase() :
22 AliAnalysisTaskSE(),
23 fRhoName("Rho"),
24 fRhoFunction(0x0),
25 fCent(-1),
26 fRho(0)
27{
28 // Constructor.
29}
30
31//________________________________________________________________________
32AliAnalysisTaskRhoBase::AliAnalysisTaskRhoBase(const char *name) :
33 AliAnalysisTaskSE(name),
34 fRhoName("Rho"),
35 fRhoFunction(0x0),
36 fCent(-1),
37 fRho(0)
38{
39 // Constructor.
40}
41
42//________________________________________________________________________
43void AliAnalysisTaskRhoBase::UserCreateOutputObjects()
44{
45 // Run at beginning of task.
46
47 AliVEventHandler* handler = AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler();
48 if (!handler) {
49 AliError("Input handler not available!");
50 return;
51 }
52
53 fRho = new TParameter<Double_t>(fRhoName, 0);
54}
55
56//________________________________________________________________________
57Double_t AliAnalysisTaskRhoBase::GetRhoFactor(Double_t cent)
58{
59 // Return rho per centrality.
60
61 Double_t rho = -1;
62 if (fRhoFunction)
63 rho = fRhoFunction->Eval(cent);
64 return rho;
65}
66
67//________________________________________________________________________
68void AliAnalysisTaskRhoBase::UserExec(Option_t *)
69{
70 // Main loop, called for each event.
71
72 // add rho to event if not yet there
73 if (!(InputEvent()->FindListObject(fRhoName))) {
74 new(fRho) TParameter<Double_t>(fRhoName, 0);
75 InputEvent()->AddObject(fRho);
76 }
77
78 // get centrality
79 AliCentrality *centrality = InputEvent()->GetCentrality() ;
80 if (centrality)
81 fCent = centrality->GetCentralityPercentile("V0M");
82 else
83 fCent = 99; // probably pp data
84 if (fCent < 0) {
85 AliError(Form("Centrality negative: %f", fCent));
86 return;
87 }
88
89 Double_t rhochem = GetRhoFactor(fCent);
90 fRho->SetVal(rhochem);
91}
92
93//________________________________________________________________________
94void AliAnalysisTaskRhoBase::Terminate(Option_t *)
95{
96 // Run at the end of the task.
97}