6 #include <TClonesArray.h>
10 #include <THnSparse.h>
13 #include <TLorentzVector.h>
21 #include "AliVCluster.h"
22 #include "AliVTrack.h"
27 #include "AliMCEvent.h"
28 #include "AliAODEvent.h"
29 #include "AliGenPythiaEventHeader.h"
30 #include "AliAODMCHeader.h"
31 #include "AliAnalysisManager.h"
45 fMinFractionShared(0),
46 fSingleTrackEmb(kFALSE),
49 fJet1Vec(new TLorentzVector()),
50 fJet2Vec(new TLorentzVector()),
51 fJetSubVec(new TLorentzVector()),
61 fh2PtTrueDeltaGR(0x0),
62 fh2PtTrueDeltaGRRel(0x0),
65 fh3DeltaGRNumRPtTrue(0x0),
66 fh3DeltaGRDenRPtTrue(0x0),
67 fh2DeltaGRNumRPtTrue(0x0),
68 fh2DeltaGRDenRPtTrue(0x0),
70 fh3DeltaGRNumRPtRaw(0x0),
71 fh3DeltaGRDenRPtRaw(0x0),
72 fh2DeltaGRNumRPtRaw(0x0),
73 fh2DeltaGRDenRPtRaw(0x0),
75 fh3DeltaGRNumRPtRawMatch(0x0),
76 fh3DeltaGRDenRPtRawMatch(0x0),
77 fh2DeltaGRNumRPtRawMatch(0x0),
78 fh2DeltaGRDenRPtRawMatch(0x0),
80 fh3DeltaGRNumRPtMatch(0x0),
81 fh3DeltaGRDenRPtMatch(0x0),
82 fh2DeltaGRNumRPtMatch(0x0),
83 fh2DeltaGRDenRPtMatch(0x0),
84 fh2DeltaGRNumRPtTrueMatch(0x0),
85 fh2DeltaGRDenRPtTrueMatch(0x0)
89 fh2PtTrueDeltaGR =
new TH2F*[fNcentBins];
90 fh2PtTrueDeltaGRRel =
new TH2F*[fNcentBins];
91 fhnGRResponse =
new THnSparse*[fNcentBins];
92 fh1PtTrue =
new TH1F*[fNcentBins];
93 fh3DeltaGRNumRPtTrue =
new TH3F*[fNcentBins];
94 fh3DeltaGRDenRPtTrue =
new TH3F*[fNcentBins];
95 fh2DeltaGRNumRPtTrue =
new TH2F*[fNcentBins];
96 fh2DeltaGRDenRPtTrue =
new TH2F*[fNcentBins];
97 fh1PtRaw =
new TH1F*[fNcentBins];
98 fh3DeltaGRNumRPtRaw =
new TH3F*[fNcentBins];
99 fh3DeltaGRDenRPtRaw =
new TH3F*[fNcentBins];
100 fh2DeltaGRNumRPtRaw =
new TH2F*[fNcentBins];
101 fh2DeltaGRDenRPtRaw =
new TH2F*[fNcentBins];
102 fh1PtRawMatch =
new TH1F*[fNcentBins];
103 fh3DeltaGRNumRPtRawMatch =
new TH3F*[fNcentBins];
104 fh3DeltaGRDenRPtRawMatch =
new TH3F*[fNcentBins];
105 fh2DeltaGRNumRPtRawMatch =
new TH2F*[fNcentBins];
106 fh2DeltaGRDenRPtRawMatch =
new TH2F*[fNcentBins];
107 fh1PtMatch =
new TH1F*[fNcentBins];
108 fh3DeltaGRNumRPtMatch =
new TH3F*[fNcentBins];
109 fh3DeltaGRDenRPtMatch =
new TH3F*[fNcentBins];
110 fh2DeltaGRNumRPtMatch =
new TH2F*[fNcentBins];
111 fh2DeltaGRDenRPtMatch =
new TH2F*[fNcentBins];
112 fh2DeltaGRNumRPtTrueMatch =
new TH2F*[fNcentBins];
113 fh2DeltaGRDenRPtTrueMatch =
new TH2F*[fNcentBins];
115 for (
Int_t i = 0; i < fNcentBins; i++) {
116 fh2PtTrueDeltaGR[i] = 0;
117 fh2PtTrueDeltaGRRel[i] = 0;
118 fhnGRResponse[i] = 0;
120 fh3DeltaGRNumRPtTrue[i] = 0;
121 fh3DeltaGRDenRPtTrue[i] = 0;
122 fh2DeltaGRNumRPtTrue[i] = 0;
123 fh2DeltaGRDenRPtTrue[i] = 0;
125 fh3DeltaGRNumRPtRaw[i] = 0;
126 fh3DeltaGRDenRPtRaw[i] = 0;
127 fh2DeltaGRNumRPtRaw[i] = 0;
128 fh2DeltaGRDenRPtRaw[i] = 0;
129 fh1PtRawMatch[i] = 0;
130 fh3DeltaGRNumRPtRawMatch[i] = 0;
131 fh3DeltaGRDenRPtRawMatch[i] = 0;
132 fh2DeltaGRNumRPtRawMatch[i] = 0;
133 fh2DeltaGRDenRPtRawMatch[i] = 0;
135 fh3DeltaGRNumRPtMatch[i] = 0;
136 fh3DeltaGRDenRPtMatch[i] = 0;
137 fh2DeltaGRNumRPtMatch[i] = 0;
138 fh2DeltaGRDenRPtMatch[i] = 0;
139 fh2DeltaGRNumRPtTrueMatch[i] = 0;
140 fh2DeltaGRDenRPtTrueMatch[i] = 0;
143 SetMakeGeneralHistograms(kTRUE);
144 DefineOutput(2, TTree::Class());
153 fMinFractionShared(0),
154 fSingleTrackEmb(kFALSE),
157 fJet1Vec(new TLorentzVector()),
158 fJet2Vec(new TLorentzVector()),
159 fJetSubVec(new TLorentzVector()),
169 fh2PtTrueDeltaGR(0x0),
170 fh2PtTrueDeltaGRRel(0x0),
173 fh3DeltaGRNumRPtTrue(0x0),
174 fh3DeltaGRDenRPtTrue(0x0),
175 fh2DeltaGRNumRPtTrue(0x0),
176 fh2DeltaGRDenRPtTrue(0x0),
178 fh3DeltaGRNumRPtRaw(0x0),
179 fh3DeltaGRDenRPtRaw(0x0),
180 fh2DeltaGRNumRPtRaw(0x0),
181 fh2DeltaGRDenRPtRaw(0x0),
183 fh3DeltaGRNumRPtRawMatch(0x0),
184 fh3DeltaGRDenRPtRawMatch(0x0),
185 fh2DeltaGRNumRPtRawMatch(0x0),
186 fh2DeltaGRDenRPtRawMatch(0x0),
188 fh3DeltaGRNumRPtMatch(0x0),
189 fh3DeltaGRDenRPtMatch(0x0),
190 fh2DeltaGRNumRPtMatch(0x0),
191 fh2DeltaGRDenRPtMatch(0x0),
192 fh2DeltaGRNumRPtTrueMatch(0x0),
193 fh2DeltaGRDenRPtTrueMatch(0x0)
252 DefineOutput(2, TTree::Class());
268 Bool_t oldStatus = TH1::AddDirectoryStatus();
269 TH1::AddDirectory(kFALSE);
271 const Int_t nBinsPt = 200;
275 const Int_t nBinsM = 150;
279 const Int_t nBinsR = 50;
283 const Int_t nBinsDGR = 100;
288 const Int_t nBinsSparse0 = 4;
289 const Int_t nBins0[nBinsSparse0] = {nBinsM,nBinsM,nBinsPt,nBinsPt};
290 const Double_t xmin0[nBinsSparse0] = { minM, minM, minPt, minPt};
291 const Double_t xmax0[nBinsSparse0] = { maxM, maxM, maxPt, maxPt};
296 histName = Form(
"fh2PtTrueDeltaGR_%d",i);
297 histTitle = Form(
"fh2PtTrueDeltaGR_%d;#it{p}_{T,true};#it{G(R)}_{sub}-#it{G(R)}_{true}",i);
298 fh2PtTrueDeltaGR[i] =
new TH2F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,100,-50.,50.);
301 histName = Form(
"fh2PtTrueDeltaGRRel_%d",i);
302 histTitle = Form(
"fh2PtTrueDeltaGRRel_%d;#it{p}_{T,true};(#it{G(R)}_{sub}-#it{G(R)}_{true})/#it{G(R)}_{true}",i);
306 histName = Form(
"fhnGRResponse_%d",i);
307 histTitle = Form(
"fhnGRResponse_%d;#it{G(R)}_{sub};#it{G(R)}_{true};#it{p}_{T,sub};#it{p}_{T,true}",i);
308 fhnGRResponse[i] =
new THnSparseF(histName.Data(),histTitle.Data(),nBinsSparse0,nBins0,xmin0,xmax0);
312 histName = Form(
"fh1PtTrue_%d",i);
313 histTitle = Form(
"%s;#it{p}_{T};#it{N}",histName.Data());
314 fh1PtTrue[i] =
new TH1F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt);
317 histName = Form(
"fh3DeltaGRNumRPtTrue_%d",i);
318 histTitle = Form(
"%s;#Sigma#it{p}_{Tk,i}#it{p}_{Tk,j}#Delta#it{R}_{ij}^{2}#delta_{dR}(#it{r}-#it{R}_{ij});#it{r};#it{p}_{T,true}",histName.Data());
319 fh3DeltaGRNumRPtTrue[i] =
new TH3F(histName.Data(),histTitle.Data(),nBinsDGR,minDGR,maxDGR,nBinsR,minR,maxR,nBinsPt,minPt,maxPt);
320 fOutput->Add(fh3DeltaGRNumRPtTrue[i]);
322 histName = Form(
"fh3DeltaGRDenRPtTrue_%d",i);
323 histTitle = Form(
"%s;#Sigma#it{p}_{Tk,i}#it{p}_{Tk,j}#Delta#it{R}_{ij}^{2}#Theta_{dR}(#it{r}-#it{R}_{ij});#it{r};#it{p}_{T,true}",histName.Data());
324 fh3DeltaGRDenRPtTrue[i] =
new TH3F(histName.Data(),histTitle.Data(),nBinsDGR,minDGR,maxDGR,nBinsR,minR,maxR,nBinsPt,minPt,maxPt);
325 fOutput->Add(fh3DeltaGRDenRPtTrue[i]);
327 histName = Form(
"fh2DeltaGRNumRPtTrue_%d",i);
328 histTitle = Form(
"%s;#it{r};#it{p}_{T,true}",histName.Data());
330 fOutput->Add(fh2DeltaGRNumRPtTrue[i]);
332 histName = Form(
"fh2DeltaGRDenRPtTrue_%d",i);
333 histTitle = Form(
"%s;#it{r};#it{p}_{T,true}",histName.Data());
335 fOutput->Add(fh2DeltaGRDenRPtTrue[i]);
338 histName = Form(
"fh1PtRaw_%d",i);
339 histTitle = Form(
"%s;#it{p}_{T};#it{N}",histName.Data());
340 fh1PtRaw[i] =
new TH1F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt);
343 histName = Form(
"fh3DeltaGRNumRPtRaw_%d",i);
344 histTitle = Form(
"%s;#Sigma#it{p}_{Tk,i}#it{p}_{Tk,j}#Delta#it{R}_{ij}^{2}#delta_{dR}(#it{r}-#it{R}_{ij});#it{r};#it{p}_{T,true}",histName.Data());
345 fh3DeltaGRNumRPtRaw[i] =
new TH3F(histName.Data(),histTitle.Data(),nBinsDGR,minDGR,maxDGR,nBinsR,minR,maxR,nBinsPt,minPt,maxPt);
346 fOutput->Add(fh3DeltaGRNumRPtRaw[i]);
348 histName = Form(
"fh3DeltaGRDenRPtRaw_%d",i);
349 histTitle = Form(
"%s;#Sigma#it{p}_{Tk,i}#it{p}_{Tk,j}#Delta#it{R}_{ij}^{2}#Theta_{dR}(#it{r}-#it{R}_{ij});#it{r};#it{p}_{T,true}",histName.Data());
350 fh3DeltaGRDenRPtRaw[i] =
new TH3F(histName.Data(),histTitle.Data(),nBinsDGR,minDGR,maxDGR,nBinsR,minR,maxR,nBinsPt,minPt,maxPt);
351 fOutput->Add(fh3DeltaGRDenRPtRaw[i]);
353 histName = Form(
"fh2DeltaGRNumRPtRaw_%d",i);
354 histTitle = Form(
"%s;#it{r};#it{p}_{T,true}",histName.Data());
356 fOutput->Add(fh2DeltaGRNumRPtRaw[i]);
358 histName = Form(
"fh2DeltaGRDenRPtRaw_%d",i);
359 histTitle = Form(
"%s;#it{r};#it{p}_{T,true}",histName.Data());
361 fOutput->Add(fh2DeltaGRDenRPtRaw[i]);
364 histName = Form(
"fh1PtRawMatch_%d",i);
365 histTitle = Form(
"%s;#it{p}_{T};#it{N}",histName.Data());
366 fh1PtRawMatch[i] =
new TH1F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt);
367 fOutput->Add(fh1PtRawMatch[i]);
369 histName = Form(
"fh3DeltaGRNumRPtRawMatch_%d",i);
370 histTitle = Form(
"%s;#Sigma#it{p}_{Tk,i}#it{p}_{Tk,j}#Delta#it{R}_{ij}^{2}#delta_{dR}(#it{r}-#it{R}_{ij});#it{r};#it{p}_{T,true}",histName.Data());
371 fh3DeltaGRNumRPtRawMatch[i] =
new TH3F(histName.Data(),histTitle.Data(),nBinsDGR,minDGR,maxDGR,nBinsR,minR,maxR,nBinsPt,minPt,maxPt);
372 fOutput->Add(fh3DeltaGRNumRPtRawMatch[i]);
374 histName = Form(
"fh3DeltaGRDenRPtRawMatch_%d",i);
375 histTitle = Form(
"%s;#Sigma#it{p}_{Tk,i}#it{p}_{Tk,j}#Delta#it{R}_{ij}^{2}#Theta_{dR}(#it{r}-#it{R}_{ij});#it{r};#it{p}_{T,true}",histName.Data());
376 fh3DeltaGRDenRPtRawMatch[i] =
new TH3F(histName.Data(),histTitle.Data(),nBinsDGR,minDGR,maxDGR,nBinsR,minR,maxR,nBinsPt,minPt,maxPt);
377 fOutput->Add(fh3DeltaGRDenRPtRawMatch[i]);
379 histName = Form(
"fh2DeltaGRNumRPtRawMatch_%d",i);
380 histTitle = Form(
"%s;#it{r};#it{p}_{T,true}",histName.Data());
382 fOutput->Add(fh2DeltaGRNumRPtRawMatch[i]);
384 histName = Form(
"fh2DeltaGRDenRPtRawMatch_%d",i);
385 histTitle = Form(
"%s;#it{r};#it{p}_{T,true}",histName.Data());
387 fOutput->Add(fh2DeltaGRDenRPtRawMatch[i]);
390 histName = Form(
"fh1PtMatch_%d",i);
391 histTitle = Form(
"%s;#it{p}_{T};#it{N}",histName.Data());
392 fh1PtMatch[i] =
new TH1F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt);
395 histName = Form(
"fh3DeltaGRNumRPtMatch_%d",i);
396 histTitle = Form(
"%s;#Sigma#it{p}_{Tk,i}#it{p}_{Tk,j}#Delta#it{R}_{ij}^{2}#delta_{dR}(#it{r}-#it{R}_{ij});#it{r};#it{p}_{T,true}",histName.Data());
397 fh3DeltaGRNumRPtMatch[i] =
new TH3F(histName.Data(),histTitle.Data(),nBinsDGR,minDGR,maxDGR,nBinsR,minR,maxR,nBinsPt,minPt,maxPt);
398 fOutput->Add(fh3DeltaGRNumRPtMatch[i]);
400 histName = Form(
"fh3DeltaGRDenRPtMatch_%d",i);
401 histTitle = Form(
"%s;#Sigma#it{p}_{Tk,i}#it{p}_{Tk,j}#Delta#it{R}_{ij}^{2}#Theta_{dR}(#it{r}-#it{R}_{ij});#it{r};#it{p}_{T,true}",histName.Data());
402 fh3DeltaGRDenRPtMatch[i] =
new TH3F(histName.Data(),histTitle.Data(),nBinsDGR,minDGR,maxDGR,nBinsR,minR,maxR,nBinsPt,minPt,maxPt);
403 fOutput->Add(fh3DeltaGRDenRPtMatch[i]);
405 histName = Form(
"fh2DeltaGRNumRPtMatch_%d",i);
406 histTitle = Form(
"%s;#it{r};#it{p}_{T,true}",histName.Data());
408 fOutput->Add(fh2DeltaGRNumRPtMatch[i]);
410 histName = Form(
"fh2DeltaGRDenRPtMatch_%d",i);
411 histTitle = Form(
"%s;#it{r};#it{p}_{T,true}",histName.Data());
413 fOutput->Add(fh2DeltaGRDenRPtMatch[i]);
415 histName = Form(
"fh2DeltaGRNumRPtTrueMatch_%d",i);
416 histTitle = Form(
"%s;#it{r};#it{p}_{T,true}",histName.Data());
418 fOutput->Add(fh2DeltaGRNumRPtTrueMatch[i]);
420 histName = Form(
"fh2DeltaGRDenRPtTrueMatch_%d",i);
421 histTitle = Form(
"%s;#it{r};#it{p}_{T,true}",histName.Data());
423 fOutput->Add(fh2DeltaGRDenRPtTrueMatch[i]);
434 THnSparse *hn =
dynamic_cast<THnSparse*
>(
fOutput->At(i));
438 TH1::AddDirectory(oldStatus);
477 AliDebug(11,Form(
"NJets Incl: %d Csub: %d",jetCont->
GetNJets(),jetContS->
GetNJets()));
478 if(jetCont && jetContS) {
479 jetCont->ResetCurrentID();
482 Int_t nr = TMath::CeilNint(rmax/wr);
486 fJet2Vec->SetPtEtaPhiM(0.,0.,0.,0.);
490 fJet2Vec->SetPxPyPzE(vp->Px(),vp->Py(),vp->Pz(),vp->E());
515 if(numRaw.GetSize()>0) {
516 for(
Int_t i = 0; i<nr; i++) {
538 if(num.GetSize()>0) {
539 for(
Int_t i = 0; i<nr; i++) {
581 AliDebug(11,Form(
"NJets True: %d",jetCont->
GetNJets()));
585 TArrayF *fNum =
new TArrayF(nr);
586 TArrayF *fDen =
new TArrayF(nr);
589 jetCont->ResetCurrentID();
594 for(
Int_t i = 0; i<nr; i++) {
603 if(fNum)
delete fNum;
604 if(fDen)
delete fDen;
614 for(
Int_t i = 0; i<nr; i++) {
620 AliVParticle *vp1 = 0x0;
621 AliVParticle *vp2 = 0x0;
631 Double_t dr2 = (vp1->Eta()-vp2->Eta())*(vp1->Eta()-vp2->Eta()) + dphi*dphi;
633 for(
Int_t k = 0; k<nr; k++) {
641 Double_t erf = 0.5*(1.+TMath::Erf(x/(TMath::Sqrt(2.)*fDRStep)));
643 A = vp1->Pt()*vp2->Pt()*dr2*noise;
644 B = vp1->Pt()*vp2->Pt()*dr2*erf;
645 fNum->AddAt(fNum->At(k)+A,k);
646 fDen->AddAt(fDen->At(k)+B,k);
653 if(B>0.) deltaGR = A/B;
661 AliVParticle *vp1 = 0x0;
662 AliVParticle *vp2 = 0x0;
673 Double_t dr2 = (vp1->Eta()-vp2->Eta())*(vp1->Eta()-vp2->Eta()) + dphi*dphi;
674 Int_t bin = TMath::FloorNint(TMath::Sqrt(dr2)/wr);
675 Double_t gr = vp1->Pt()*vp2->Pt()*dr2;
676 if(bin<nr) grArr[bin]+=gr;
689 AliVParticle *vp = 0x0;
690 AliVParticle *vpe = 0x0;
694 if (vp->TestBits(TObject::kBitMask) != (
Int_t)(TObject::kBitMask) )
continue;
696 else if(vp->Pt()>vpe->Pt()) vpe = vp;
699 AliDebug(11,Form(
"Found %d embedded particles",nc));
711 if(dPhi <-1.*TMath::Pi()) dPhi += TMath::TwoPi();
712 if(dPhi > 1.*TMath::Pi()) dPhi -= TMath::TwoPi();
Double_t GetRhoVal() const
TH2F ** fh2DeltaGRDenRPtRaw
Numerator of DeltaGR vs R vs Pt : filled with weights of sum.
TH2F ** fh2DeltaGRDenRPtMatch
Numerator of DeltaGR vs R vs Pt : filled with weights of sum.
TH3F ** fh3DeltaGRNumRPtRaw
bookkeep number of jets vs Pt
TH3F ** fh3DeltaGRDenRPtTrue
Numerator of DeltaGR vs R vs Pt.
AliEmcalJet * ClosestJet() const
AliJetContainer * GetJetContainer(Int_t i=0) const
TH2F ** fh2DeltaGRNumRPtTrueMatch
Denomerator of DeltaGR vs R vs Pt : filled with weights of sum.
Double_t GetDeltaPhi(Double_t phi1, Double_t phi2)
void Terminate(Option_t *option)
TArrayF GetGRNumeratorSub() const
TH2F ** fh2DeltaGRNumRPtRawMatch
Denomerator of DeltaGR vs R vs Pt.
Int_t fCentBin
!event centrality bin
TH3F ** fh3DeltaGRNumRPtTrue
bookkeep number of jets vs Pt
void UserCreateOutputObjects()
Bool_t RetrieveEventObjects()
TArrayF GetGRDenominator() const
void LoadRhoMass(const AliVEvent *event)
TLorentzVector * fJet2Vec
THnSparse ** fhnGRResponse
true jet pT vs (Msub - Mtrue)/Mtrue
AliVParticle * GetEmbeddedConstituent(AliEmcalJet *jet)
UShort_t GetNumberOfTracks() const
Bool_t RetrieveEventObjects()
TH2F ** fh2DeltaGRNumRPtMatch
Denomerator of DeltaGR vs R vs Pt.
AliParticleContainer * GetParticleContainer() const
Double_t CalcDeltaGR(AliEmcalJet *jet, Int_t ic, TArrayF *fNum, TArrayF *fDen)
TH2F ** fh2DeltaGRNumRPtRaw
Denomerator of DeltaGR vs R vs Pt.
TArrayF GetGRNumerator() const
TH2F ** fh2PtTrueDeltaGRRel
true jet pT vs (Msub - Mtrue)
ClassImp(AliAnalysisTaskJetShapeGR) AliAnalysisTaskJetShapeGR
TH3F ** fh3DeltaGRDenRPtRaw
Numerator of DeltaGR vs R vs Pt.
TH2F ** fh2DeltaGRDenRPtTrueMatch
Numerator of DeltaGR vs R vs Pt : filled with weights of sum.
TH3F ** fh3DeltaGRDenRPtMatch
Numerator of DeltaGR vs R vs Pt.
TH3F ** fh3DeltaGRNumRPtMatch
bookkeep number of jets vs Pt
TLorentzVector * fJetSubVec
TH1F ** fh1PtMatch
Denomerator of DeltaGR vs R vs Pt : filled with weights of sum.
Int_t fNcentBins
how many centrality bins
TLorentzVector * fJet1Vec
tree with jet and bkg variables
Double_t GetRhoMassVal() const
TH1F ** fh1PtRawMatch
Denomerator of DeltaGR vs R vs Pt : filled with weights of sum.
TH2F ** fh2DeltaGRDenRPtRawMatch
Numerator of DeltaGR vs R vs Pt : filled with weights of sum.
TH1F ** fh1PtTrue
Msub vs Mtrue vs PtCorr vs PtTrue.
AliEmcalJet * GetNextAcceptJet()
TH2F ** fh2DeltaGRNumRPtTrue
Denomerator of DeltaGR vs R vs Pt.
AliAnalysisTaskJetShapeGR()
Float_t GetJetRadius() const
AliEmcalList * fOutput
!output list
Short_t TrackAt(Int_t idx) const
TArrayF GetGRDenominatorSub() const
void SetMakeGeneralHistograms(Bool_t g)
Base task in the EMCAL jet framework.
Represent a jet reconstructed using the EMCal jet framework.
Double_t GetFractionSharedPt(const AliEmcalJet *jet, AliParticleContainer *cont2=0x0) const
void UserCreateOutputObjects()
TH1F ** fh1PtRaw
Denomerator of DeltaGR vs R vs Pt : filled with weights of sum.
TH3F ** fh3DeltaGRDenRPtRawMatch
Numerator of DeltaGR vs R vs Pt.
Double_t fMinFractionShared
AliEmcalJetShapeProperties * GetShapeProperties() const
TH3F ** fh3DeltaGRNumRPtRawMatch
bookkeep number of jets vs Pt
Double_t CalcGR(AliEmcalJet *jet, Int_t ic)
TH2F ** fh2DeltaGRDenRPtTrue
Numerator of DeltaGR vs R vs Pt : filled with weights of sum.
Container for jet within the EMCAL jet framework.
virtual ~AliAnalysisTaskJetShapeGR()