13 #include <TClonesArray.h> 21 #include "AliVVZERO.h" 33 fCompareRhoScaledName(),
36 fInEventSigmaRho(35.83),
37 fAttachToEvent(kTRUE),
44 fHistJetAreavsCent(0),
47 fHistJetPtvsNtrack(0),
48 fHistJetAreavsNtrack(0),
51 fHistRhoScaledvsCent(0),
52 fHistDeltaRhovsCent(0),
53 fHistDeltaRhoScalevsCent(0),
54 fHistRhovsNtrackvsV0Mult(0),
55 fHistRhoScaledvsNtrackvsV0Mult(0),
56 fHistDeltaRhovsNtrack(0),
57 fHistDeltaRhoScalevsNtrack(0),
58 fHistRhovsNcluster(0),
59 fHistRhoScaledvsNcluster(0)
63 for (
Int_t i = 0; i < 4; i++) {
64 fHistJetNconstVsPt[i] = 0;
65 fHistJetRhovsEta[i] = 0;
67 for (
Int_t i = 0; i < 12; i++) {
68 fHistNjUEoverNjVsNj[i] = 0;
78 fCompareRhoScaledName(),
81 fInEventSigmaRho(35.83),
82 fAttachToEvent(kTRUE),
89 fHistJetAreavsCent(0),
92 fHistJetPtvsNtrack(0),
93 fHistJetAreavsNtrack(0),
96 fHistRhoScaledvsCent(0),
97 fHistDeltaRhovsCent(0),
98 fHistDeltaRhoScalevsCent(0),
99 fHistRhovsNtrackvsV0Mult(0),
100 fHistRhoScaledvsNtrackvsV0Mult(0),
101 fHistDeltaRhovsNtrack(0),
102 fHistDeltaRhoScalevsNtrack(0),
103 fHistRhovsNcluster(0),
104 fHistRhoScaledvsNcluster(0)
108 for (
Int_t i = 0; i < 4; i++) {
112 for (
Int_t i = 0; i < 12; i++) {
128 Float_t Ntrackrange[2] = {0, 6000};
129 Float_t V0Mult[2] = {0.,25000.};
132 Ntrackrange[1] = 200.;
142 fHistRhovsNtrackvsV0Mult =
new TH3F(
"fHistRhovsNtrackvsV0Mult",
"fHistRhovsNtrackvsV0Mult", 150, Ntrackrange[0], Ntrackrange[1],
fNbins,
fMinBinPt,
fMaxBinPt*2,100, V0Mult[0], V0Mult[1]);
172 fHistNjetvsCent =
new TH2F(
"fHistNjetvsCent",
"fHistNjetvsCent", 101, -1, 100, 150, -0.5, 149.5);
184 fHistJetAreavsNtrack =
new TH2F(
"fHistJetAreavsNtrack",
"fHistJetAreavsNtrack", 150, Ntrackrange[0], Ntrackrange[1], 100, 0, 1);
189 fHistNjetvsNtrack =
new TH2F(
"fHistNjetvsNtrack",
"fHistNjetvsNtrack", 150, Ntrackrange[0], Ntrackrange[1], 150, -0.5, 149.5);
197 for (
Int_t i = 0; i < 4; i++) {
198 name = Form(
"fHistJetNconstVsPt_%d",i);
204 name = Form(
"fHistJetRhovsEta_%d",i);
210 for (
Int_t j = 0; j < 3; j++) {
211 name = Form(
"NjUEoverNjVsNj_%d_%d",i,j+1);
241 fHistRhoScaledvsNtrackvsV0Mult =
new TH3F(
"fHistRhoScaledvsNtrackvsV0Mult",
"fHistRhoScaledvsNtrackvsV0Mult", 150, Ntrackrange[0], Ntrackrange[1],
fNbins,
fMinBinPt,
fMaxBinPt*2,100, V0Mult[0], V0Mult[1]);
295 AliVVZERO* vV0 = InputEvent()->GetVZEROData();
299 multV0A = vV0->GetMTotV0A();
300 multV0C = vV0->GetMTotV0C();
306 while ((partCont = static_cast<AliParticleContainer*>(nextPartCont()))) {
311 while ((clusCont = static_cast<AliClusterContainer*>(nextClusCont()))) {
318 Int_t NjetUE1Sigma = 0;
319 Int_t NjetUE2Sigma = 0;
320 Int_t NjetUE3Sigma = 0;
325 for (
Int_t i = 0; i < Njets; ++i) {
329 AliError(Form(
"%s: Could not receive jet %d", GetName(), i));
348 if (jet->
Pt() < rhoPlus1Sigma * jet->
Area())
351 if (jet->
Pt() < rhoPlus2Sigma * jet->
Area())
354 if (jet->
Pt() < rhoPlus3Sigma * jet->
Area())
409 if (!(InputEvent()->FindListObject(
fOutRhoName))) {
410 InputEvent()->AddObject(
fOutRho);
412 AliFatal(Form(
"%s: Container with same name %s already present. Aborting", GetName(),
fOutRhoName.Data()));
425 AliFatal(Form(
"%s: Container with same name %s already present. Aborting", GetName(),
fOutRhoScaledName.Data()));
434 AliWarning(Form(
"%s: Could not retrieve rho %s!", GetName(),
fCompareRhoName.Data()));
476 if (fname.BeginsWith(
"alien://")) {
477 TGrid::Connect(
"alien://");
480 TFile*
file = TFile::Open(path);
482 if (!file || file->IsZombie()) {
483 ::Error(
"AddTaskRho",
"Could not open scale function file");
487 TF1* sfunc =
dynamic_cast<TF1*
>(file->Get(name));
490 ::Info(
"AliAnalysisTaskRhoBase::LoadRhoFunction",
"Scale function %s loaded from file %s.", name, path);
493 ::Error(
"AliAnalysisTaskRhoBase::LoadRhoFunction",
"Scale function %s not found in file %s.", name, path);
AliRhoParameter * fCompareRho
output scaled rho object
TObjArray fClusterCollArray
cluster collection array
TH2F * fHistDeltaRhovsNtrack
rhoscaled vs. no. of tracks vs V0mult
TH2F * fHistDeltaRhoScalevsNtrack
delta rho vs. no. of tracks
TH2F * fHistNjetvsNtrack
jet area vs. no. of tracks
Double_t fInEventSigmaRho
TString fCompareRhoScaledName
TH2F * fHistNjetvsCent
jet pt/area vs. centrality
Double_t fMinBinPt
min pt in histograms
Int_t fCentBin
!event centrality bin
TF1 * LoadRhoFunction(const char *path, const char *name)
void UserCreateOutputObjects()
TH2F * fHistJetRhovsCent
jet area vs. centrality
TH2F * fHistJetPtvsNtrack
no. of jets vs. centrality
UShort_t GetNumberOfConstituents() const
Container for particles within the EMCAL framework.
virtual Double_t GetRhoFactor(Double_t cent)
TObjArray fParticleCollArray
particle/track collection array
AliRhoParameter * fOutRhoScaled
output rho object
TClonesArray * fCaloClusters
!clusters
AliRhoParameter * fCompareRhoScaled
rho object to compare
TString fOutRhoScaledName
TH2F * fHistJetRhovsEta[4]
jet no. of constituents vs. pt
Int_t GetNAcceptedClusters() const
Double_t fCent
!event centrality
TH2F * fHistJetAreavsNtrack
jet pt vs. no. of tracks
TObjArray fJetCollArray
jet collection array
TClonesArray * fJets
! jets
TH3F * fHistRhovsNtrackvsV0Mult
delta rhoscaled vs. centrality
TH2F * fHistRhoScaledvsCent
rho vs. centrality
TH2F * fHistRhovsNcluster
delta rho scaled vs. no. of tracks
virtual Double_t GetScaleFactor(Double_t cent)
AliEmcalList * fOutput
!output list
Double_t fMaxBinPt
max pt in histograms
TH2F * fHistNjUEoverNjVsNj[12]
no. of jets vs. no. of tracks
TH2F * fHistJetAreavsCent
jet pt vs. centrality
TClonesArray * fTracks
!tracks
TH2F * fHistJetNconstVsPt[4]
ratio no. of jets below rho*A+sigma_rho over. no. of jets vs. no. of jets
Bool_t Run()
Run function. This is the core function of the analysis and contains the user code. Therefore users have to implement this function.
TH2F * fHistRhoScaledvsNcluster
rho vs. no. of clusters
TH2F * fHistRhovsCent
rho vs. eta
TH2F * fHistJetPtvsCent
scaled rho object to compare
Bool_t fCreateHisto
whether or not create histograms
TFile * file
TList with histograms for a given trigger.
void SetMakeGeneralHistograms(Bool_t g)
Base task in the EMCAL jet framework.
Represent a jet reconstructed using the EMCal jet framework.
Bool_t FillHistograms()
Function filling histograms.
void UserCreateOutputObjects()
Main initialization function on the worker.
virtual Bool_t AcceptJet(AliEmcalJet *jet, Int_t c=0)
void ExecOnce()
Perform steps needed to initialize the analysis.
Int_t GetNAcceptedParticles() const
AliRhoParameter * fOutRho
TH2F * fHistDeltaRhoScalevsCent
delta rho vs. centrality
Container structure for EMCAL clusters.
Int_t fNbins
no. of pt bins
TH2F * fHistDeltaRhovsCent
rhoscaled vs. centrality
TH3F * fHistRhoScaledvsNtrackvsV0Mult
rho vs. no. of tracks vs V0mult