6 #include <TClonesArray.h>
11 #include <THnSparse.h>
14 #include <TLorentzVector.h>
21 #include "TMatrixDSym.h"
22 #include "TMatrixDSymEigen.h"
25 #include "AliVCluster.h"
26 #include "AliVTrack.h"
31 #include "AliMCEvent.h"
32 #include "AliGenPythiaEventHeader.h"
33 #include "AliAODMCHeader.h"
34 #include "AliMCEvent.h"
35 #include "AliAnalysisManager.h"
42 #include "AliAODEvent.h"
48 Double_t
XBinsPt[66]={0.15,0.20,0.25,0.30,0.35,0.40,0.45,0.50,0.55,0.60,0.65,0.70,0.75,0.80,0.85,0.9,0.95,1.00,1.10,1.20,1.30,1.40,1.50,1.60,1.70,1.80,1.90,2.00,2.20,2.40,2.60,2.80,3.00,3.20,3.40,3.60,3.80,4.00,4.50,5.00,5.50,6.00,6.50,7.00,8.00,9.00,10.00,11.00,12.00,13.00,14.00,15.00,16.00,18.00,20.00,22.00,24.00,26.00,28.00,30.00,32.00,34.00,36.00,40.00,45.00,50.00};
50 Double_t
XBinsJetPt[35]={0,0.50,1.00,2.00,3.00,4.00,5.00,6.00,7.00,8.00,9.00,10.00,12.00,14.00,16.00,18.00,20.00,25.00,30.00,35.00,40.00,45.00,50.00,60.00,70.00,80.00,90.00,100.00,120.00,140.00,160.00,180.00,200.00,250.00,300.00};
52 Double_t
XBinsJetMass[28]={0,0.50,1.00,2.00,3.00,4.00,5.00,6.00,7.00,8.00,9.00,10.00,12.00,14.00,16.00,18.00,20.00,25.00,30.00,35.00,40.00,45.00,50.00,60.00,70.00,80.00,90.00,100.00};
74 fMinFractionShared(0),
77 fJetSelection(kInclusive),
83 fangWindowRecoil(0.6),
95 fSharedFractionPtMin(0.5),
113 fhJetAngularity(0x0),
114 fhJetAngularityJetPt(0x0),
120 fhNumberOfJetTracks(0x0),
121 fhNumberOfJetTracks_1(0x0),
122 fhNumberOfJetTracks_2(0x0),
130 fhSubJetRadius_1(0x0),
131 fhSubJetRadius_2(0x0),
132 fhSubJetCounter(0x0),
133 fhSubJetCounter_1(0x0),
134 fhSubJetCounter_2(0x0),
135 fhNumberOfSubJetTracks(0x0),
136 fhNumberOfSubJetTracks_1(0x0),
137 fhNumberOfSubJetTracks_2(0x0),
139 fhSubJetPtFrac2(0x0),
141 fhSubJetPtLoss2(0x0),
142 fhSubJetEnergyFrac(0x0),
143 fhSubJetEnergyFrac2(0x0),
144 fhSubJetEnergyLoss(0x0),
145 fhSubJetEnergyLoss2(0x0),
148 fhSubJetiness1JetPt(0x0),
150 fhSubJetiness2JetPt(0x0),
151 fh2to1SubJetinessRatio(0x0),
152 fh2to1SubJetinessRatioJetPt(0x0),
154 fhEventCounter_1(0x0),
155 fhEventCounter_2(0x0),
157 fhSubJetiness2Distance(0x0),
158 fh2JetTracksEtaPhiPt(0x0),
159 fhSubJettiness1CheckRatio_FJ_AKT(0x0),
160 fhSubJettiness1CheckRatio_FJ_KT(0x0),
161 fhSubJettiness1CheckRatio_FJ_CA(0x0),
162 fhSubJettiness1CheckRatio_FJ_WTA_KT(0x0),
163 fhSubJettiness1CheckRatio_FJ_WTA_CA(0x0),
164 fhSubJettiness1CheckRatio_FJ_OP_AKT(0x0),
165 fhSubJettiness1CheckRatio_FJ_OP_KT(0x0),
166 fhSubJettiness1CheckRatio_FJ_OP_CA(0x0),
167 fhSubJettiness1CheckRatio_FJ_OP_WTA_KT(0x0),
168 fhSubJettiness1CheckRatio_FJ_OP_WTA_CA(0x0),
169 fhSubJettiness1CheckRatio_FJ_MIN(0x0),
170 fhSubJettiness2CheckRatio_FJ_AKT(0x0),
171 fhSubJettiness2CheckRatio_FJ_KT(0x0),
172 fhSubJettiness2CheckRatio_FJ_CA(0x0),
173 fhSubJettiness2CheckRatio_FJ_WTA_KT(0x0),
174 fhSubJettiness2CheckRatio_FJ_WTA_CA(0x0),
175 fhSubJettiness2CheckRatio_FJ_OP_AKT(0x0),
176 fhSubJettiness2CheckRatio_FJ_OP_KT(0x0),
177 fhSubJettiness2CheckRatio_FJ_OP_CA(0x0),
178 fhSubJettiness2CheckRatio_FJ_OP_WTA_KT(0x0),
179 fhSubJettiness2CheckRatio_FJ_OP_WTA_CA(0x0),
180 fhSubJettiness2CheckRatio_FJ_MIN(0x0),
181 fhSubJettiness1_FJ_AKT(0x0),
182 fhSubJettiness1_FJ_KT(0x0),
183 fhSubJettiness1_FJ_CA(0x0),
184 fhSubJettiness1_FJ_WTA_KT(0x0),
185 fhSubJettiness1_FJ_WTA_CA(0x0),
186 fhSubJettiness1_FJ_OP_AKT(0x0),
187 fhSubJettiness1_FJ_OP_KT(0x0),
188 fhSubJettiness1_FJ_OP_CA(0x0),
189 fhSubJettiness1_FJ_OP_WTA_KT(0x0),
190 fhSubJettiness1_FJ_OP_WTA_CA(0x0),
191 fhSubJettiness1_FJ_MIN(0x0),
192 fhSubJettiness2_FJ_AKT(0x0),
193 fhSubJettiness2_FJ_KT(0x0),
194 fhSubJettiness2_FJ_CA(0x0),
195 fhSubJettiness2_FJ_WTA_KT(0x0),
196 fhSubJettiness2_FJ_WTA_CA(0x0),
197 fhSubJettiness2_FJ_OP_AKT(0x0),
198 fhSubJettiness2_FJ_OP_KT(0x0),
199 fhSubJettiness2_FJ_OP_CA(0x0),
200 fhSubJettiness2_FJ_OP_WTA_KT(0x0),
201 fhSubJettiness2_FJ_OP_WTA_CA(0x0),
202 fhSubJettiness2_FJ_MIN(0x0),
203 fTreeResponseMatrixAxis(0)
206 SetMakeGeneralHistograms(kTRUE);
213 fMinFractionShared(0),
214 fJetShapeType(
kData),
215 fJetShapeSub(kNoSub),
216 fJetSelection(kInclusive),
218 fPtThreshold(-9999.),
222 fangWindowRecoil(0.6),
226 fCentSelectOn(kTRUE),
234 fSharedFractionPtMin(0.5),
252 fhJetAngularity(0x0),
253 fhJetAngularityJetPt(0x0),
259 fhNumberOfJetTracks(0x0),
260 fhNumberOfJetTracks_1(0x0),
261 fhNumberOfJetTracks_2(0x0),
269 fhSubJetRadius_1(0x0),
270 fhSubJetRadius_2(0x0),
271 fhSubJetCounter(0x0),
272 fhSubJetCounter_1(0x0),
273 fhSubJetCounter_2(0x0),
274 fhNumberOfSubJetTracks(0x0),
275 fhNumberOfSubJetTracks_1(0x0),
276 fhNumberOfSubJetTracks_2(0x0),
278 fhSubJetPtFrac2(0x0),
280 fhSubJetPtLoss2(0x0),
281 fhSubJetEnergyFrac(0x0),
282 fhSubJetEnergyFrac2(0x0),
283 fhSubJetEnergyLoss(0x0),
284 fhSubJetEnergyLoss2(0x0),
287 fhSubJetiness1JetPt(0x0),
289 fhSubJetiness2JetPt(0x0),
290 fh2to1SubJetinessRatio(0x0),
291 fh2to1SubJetinessRatioJetPt(0x0),
293 fhEventCounter_1(0x0),
294 fhEventCounter_2(0x0),
296 fhSubJetiness2Distance(0x0),
297 fh2JetTracksEtaPhiPt(0x0),
298 fhSubJettiness1CheckRatio_FJ_AKT(0x0),
299 fhSubJettiness1CheckRatio_FJ_KT(0x0),
300 fhSubJettiness1CheckRatio_FJ_CA(0x0),
301 fhSubJettiness1CheckRatio_FJ_WTA_KT(0x0),
302 fhSubJettiness1CheckRatio_FJ_WTA_CA(0x0),
303 fhSubJettiness1CheckRatio_FJ_OP_AKT(0x0),
304 fhSubJettiness1CheckRatio_FJ_OP_KT(0x0),
305 fhSubJettiness1CheckRatio_FJ_OP_CA(0x0),
306 fhSubJettiness1CheckRatio_FJ_OP_WTA_KT(0x0),
307 fhSubJettiness1CheckRatio_FJ_OP_WTA_CA(0x0),
308 fhSubJettiness1CheckRatio_FJ_MIN(0x0),
309 fhSubJettiness2CheckRatio_FJ_AKT(0x0),
310 fhSubJettiness2CheckRatio_FJ_KT(0x0),
311 fhSubJettiness2CheckRatio_FJ_CA(0x0),
312 fhSubJettiness2CheckRatio_FJ_WTA_KT(0x0),
313 fhSubJettiness2CheckRatio_FJ_WTA_CA(0x0),
314 fhSubJettiness2CheckRatio_FJ_OP_AKT(0x0),
315 fhSubJettiness2CheckRatio_FJ_OP_KT(0x0),
316 fhSubJettiness2CheckRatio_FJ_OP_CA(0x0),
317 fhSubJettiness2CheckRatio_FJ_OP_WTA_KT(0x0),
318 fhSubJettiness2CheckRatio_FJ_OP_WTA_CA(0x0),
319 fhSubJettiness2CheckRatio_FJ_MIN(0x0),
320 fhSubJettiness1_FJ_AKT(0x0),
321 fhSubJettiness1_FJ_KT(0x0),
322 fhSubJettiness1_FJ_CA(0x0),
323 fhSubJettiness1_FJ_WTA_KT(0x0),
324 fhSubJettiness1_FJ_WTA_CA(0x0),
325 fhSubJettiness1_FJ_OP_AKT(0x0),
326 fhSubJettiness1_FJ_OP_KT(0x0),
327 fhSubJettiness1_FJ_OP_CA(0x0),
328 fhSubJettiness1_FJ_OP_WTA_KT(0x0),
329 fhSubJettiness1_FJ_OP_WTA_CA(0x0),
330 fhSubJettiness1_FJ_MIN(0x0),
331 fhSubJettiness2_FJ_AKT(0x0),
332 fhSubJettiness2_FJ_KT(0x0),
333 fhSubJettiness2_FJ_CA(0x0),
334 fhSubJettiness2_FJ_WTA_KT(0x0),
335 fhSubJettiness2_FJ_WTA_CA(0x0),
336 fhSubJettiness2_FJ_OP_AKT(0x0),
337 fhSubJettiness2_FJ_OP_KT(0x0),
338 fhSubJettiness2_FJ_OP_CA(0x0),
339 fhSubJettiness2_FJ_OP_WTA_KT(0x0),
340 fhSubJettiness2_FJ_OP_WTA_CA(0x0),
341 fhSubJettiness2_FJ_MIN(0x0),
342 fTreeResponseMatrixAxis(0)
349 DefineOutput(1, TTree::Class());
366 Bool_t oldStatus = TH1::AddDirectoryStatus();
367 TH1::AddDirectory(kFALSE);
372 const Int_t nVar = 18;
374 TString *fShapesVarNames =
new TString [nVar];
376 fShapesVarNames[0] =
"Pt";
377 fShapesVarNames[1] =
"Pt_Truth";
378 fShapesVarNames[2] =
"Tau1";
379 fShapesVarNames[3] =
"Tau1_Truth";
380 fShapesVarNames[4] =
"Tau2";
381 fShapesVarNames[5] =
"Tau2_Truth";
382 fShapesVarNames[6] =
"Tau3";
383 fShapesVarNames[7] =
"Tau3_Truth";
384 fShapesVarNames[8] =
"OpeningAngle";
385 fShapesVarNames[9] =
"OpeningAngle_Truth";
386 fShapesVarNames[10] =
"JetMultiplicity";
387 fShapesVarNames[11] =
"JetMultiplicity_Truth";
388 fShapesVarNames[12] =
"DeltaR";
389 fShapesVarNames[13] =
"DeltaR_Truth";
390 fShapesVarNames[14] =
"Frac1";
391 fShapesVarNames[15] =
"Frac1_Truth";
392 fShapesVarNames[16] =
"Frac2";
393 fShapesVarNames[17] =
"Frac2_Truth";
394 for(Int_t ivar=0; ivar < nVar; ivar++){
395 cout<<
"looping over variables"<<endl;
401 const Int_t nVar = 12;
403 TString *fShapesVarNames =
new TString [nVar];
405 fShapesVarNames[0] =
"Pt";
406 fShapesVarNames[1] =
"Pt_Truth";
407 fShapesVarNames[2] =
"Tau1";
408 fShapesVarNames[3] =
"Tau1_Truth";
409 fShapesVarNames[4] =
"Tau2";
410 fShapesVarNames[5] =
"Tau2_Truth";
411 fShapesVarNames[6] =
"Tau3";
412 fShapesVarNames[7] =
"Tau3_Truth";
413 fShapesVarNames[8] =
"OpeningAngle";
414 fShapesVarNames[9] =
"OpeningAngle_Truth";
415 fShapesVarNames[10] =
"JetMultiplicity";
416 fShapesVarNames[11] =
"JetMultiplicity_Truth";
417 for(Int_t ivar=0; ivar < nVar; ivar++){
418 cout<<
"looping over variables"<<endl;
427 fhJetPt=
new TH1F(
"fhJetPt",
"Jet Pt",1500,-0.5,149.5 );
430 fhJetPhi=
new TH1F(
"fhJetPhi",
"Jet Phi",360 , -1.5*(TMath::Pi()), 1.5*(TMath::Pi()));
434 fhJetMass=
new TH1F(
"fhJetMass",
"Jet Mass", 4000,-0.5, 39.5);
436 fhJetRadius=
new TH1F(
"fhJetRadius",
"Jet Radius", 100, -0.05,0.995);
438 fhNumberOfJetTracks=
new TH1F(
"fhNumberOfJetTracks",
"Number of Tracks within a Jet", 300, -0.5,299.5);
440 fhSubJetRadius=
new TH1F(
"fhSubJetRadius",
"SubJet Radius", 100, -0.05,0.995);
442 fhSubJetPt=
new TH1F(
"fhSubJetPt",
"SubJet Pt", 1500, -0.5,149.5);
444 fhSubJetMass=
new TH1F(
"fhSubJetMass",
"Sub Jet Mass", 4000,-0.5, 39.5);
446 fhNumberOfSubJetTracks=
new TH1F(
"fhNumberOfSubJetTracks",
"Number of Tracks within a Sub Jet", 300, -0.5,299.5);
448 fhJetCounter=
new TH1F(
"fhJetCounter",
"Jet Counter", 150, -0.5, 149.5);
450 fhSubJetCounter =
new TH1F(
"fhSubJetCounter",
"SubJet Counter",50, -0.5,49.5);
452 fhEventCounter=
new TH1F(
"fhEventCounter",
"Event Counter", 15,0.5,15.5);
456 fhJetAngularity=
new TH1F(
"fhJetAngularity",
"Jet Angularity", 400, -2,2);
458 fhJetAngularityJetPt=
new TH2F(
"fhJetAngularityJetPt",
"Jet Angularity vs Jet Pt", 1500, -0.5, 149.50, 400, -2,2);
460 fhJetPTD=
new TH1F(
"fhJetPTD",
"Jet PTD", 400, -2,2);
462 fhJetPTDJetPt=
new TH2F(
"fhJetPTDJetPt",
"Jet PTD vs Jet Pt", 1500, -0.5, 149.50, 400, -2,2);
464 fhSubJetPtFrac=
new TH1F(
"fhSubJetPtFrac",
"Pt Fraction of Highest Pt Subjet compared to original Jet",101, -0.05,1.05);
466 fhSubJetPtFrac2=
new TH1F(
"fhSubJetPtFrac2",
"Pt Fraction of Two Highest Pt Subjets compared to original Jet",101, -0.05,1.05);
468 fhSubJetPtLoss=
new TH1F(
"fhSubJetPtLoss",
"Pt Difference of Highest Pt Subjet compared to original Jet",101, -0.05,1.05);
470 fhSubJetPtLoss2=
new TH1F(
"fhSubJetPtLoss2",
"Pt Difference of Two Highest Pt Subjets compared to original Jet",101, -0.05,1.05);
472 fhSubJetEnergyFrac=
new TH1F(
"fhSubJetEnergyFrac",
"Energy Fraction of Most Energetic Subjet compared to original Jet",101, -0.05,1.05);
474 fhSubJetEnergyFrac2=
new TH1F(
"fhSubJetEnergyFrac2",
"Energy Fraction of Two Most Energetic Subjets compared to original Jet",101, -0.05,1.05);
476 fhSubJetEnergyLoss=
new TH1F(
"fhSubJetEnergyLoss",
"Energy Difference of Most Energetic Subjet compared to original Jet",101, -0.05,1.05);
478 fhSubJetEnergyLoss2=
new TH1F(
"fhSubJetEnergyLoss2",
"Pt Difference of Two Most Energetic Subjets compared to original Jet",101, -0.05,1.05);
480 fhSubJetiness1=
new TH1F(
"fhSubjetiness1",
"Tau 1 value",101, -0.05,1.05);
482 fhSubJetiness1JetPt=
new TH2F(
"fhSubjetiness1JetPt",
"Tau 1 value vs Jet Pt",1500, -0.5, 149.5, 101, -0.05,1.05);
484 fhSubJetiness2=
new TH1F(
"fhSubjetiness2",
"Tau 2 value",101, -0.05,1.05);
486 fhSubJetiness2JetPt=
new TH2F(
"fhSubjetiness2JetPt",
"Tau 2 value vs Jet Pt",1500, -0.5, 149.5, 101, -0.05,1.05);
490 fh2to1SubJetinessRatioJetPt=
new TH2F(
"fh2to1SubJetinessRatioJetPt",
"Ratio of #tau 1 to #tau 2 vs Jet Pt", 1500, -0.5, 149.5, 200, -0.5,1.5);
494 fhSubJetiness2Distance =
new TH2F(
"fhSubJetiness2Distance",
"#tau 2 as a function of distance between subject axis",100,0,10,101,-0.05,1.05);
588 fhJetPt_1=
new TH1F(
"fhJetPt_1",
"Jet Pt Detector Level",1500,-0.5,149.5 );
590 fhJetPt_2=
new TH1F(
"fhJetPt_2",
"Jet Pt Particle Level",1500,-0.5,149.5 );
592 fhJetPhi_1=
new TH1F(
"fhJetPhi_1",
"Jet Phi Detector Level",360 , -1.5*(TMath::Pi()), 1.5*(TMath::Pi()));
594 fhJetPhi_2=
new TH1F(
"fhJetPhi_2",
"Jet Phi Particle Level",360 , -1.5*(TMath::Pi()), 1.5*(TMath::Pi()));
600 fhJetMass_1=
new TH1F(
"fhJetMass_1",
"Jet Mass Detector Level", 4000,-0.5, 39.5);
602 fhJetMass_2=
new TH1F(
"fhJetMass_2",
"Jet Mass Particle Level", 4000,-0.5, 39.5);
604 fhJetRadius_1=
new TH1F(
"fhJetRadius_1",
"Jet Radius Detector Level", 100, -0.05,0.995);
606 fhJetRadius_2=
new TH1F(
"fhJetRadius_2",
"Jet Radius Particle Level", 100, -0.05,0.995);
608 fhNumberOfJetTracks_1=
new TH1F(
"fhNumberOfJetTracks_1",
"Number of Tracks within a Jet Detector Level", 300, -0.5,299.5);
610 fhNumberOfJetTracks_2=
new TH1F(
"fhNumberOfJetTracks_2",
"Number of Tracks within a Jet Particle Level", 300, -0.5,299.5);
612 fhSubJetRadius_1=
new TH1F(
"fhSubJetRadius_1",
"SubJet Radius Detector Level", 100, -0.05,0.995);
614 fhSubJetRadius_2=
new TH1F(
"fhSubJetRadius_2",
"SubJet Radius Particle Level", 100, -0.05,0.995);
616 fhSubJetPt_1=
new TH1F(
"fhSubJetPt_1",
"SubJet Pt Detector Level", 1500, -0.5,149.5);
618 fhSubJetPt_2=
new TH1F(
"fhSubJetPt_2",
"SubJet Pt Particle Level", 1500, -0.5,149.5);
620 fhSubJetMass_1=
new TH1F(
"fhSubJetMass_1",
"Sub Jet Mass Detector Level", 4000,-0.5, 39.5);
622 fhSubJetMass_2=
new TH1F(
"fhSubJetMass_2",
"Sub Jet Mass Particle Level", 4000,-0.5, 39.5);
624 fhNumberOfSubJetTracks_1=
new TH1F(
"fhNumberOfSubJetTracks_1",
"Number of Tracks within a Sub Jet Detector Level", 300, -0.5,299.5);
626 fhNumberOfSubJetTracks_2=
new TH1F(
"fhNumberOfSubJetTracks_2",
"Number of Tracks within a Sub Jet Particle Level", 300, -0.5,299.5);
628 fhJetCounter_1=
new TH1F(
"fhJetCounter_1",
"Jet Counter Detector Level", 150, -0.5, 149.5);
630 fhJetCounter_2=
new TH1F(
"fhJetCounter_2",
"Jet Counter Particle Level", 150, -0.5, 149.5);
632 fhSubJetCounter_1 =
new TH1F(
"fhSubJetCounter_1",
"SubJet Counter Detector Level",50, -0.5,49.5);
634 fhSubJetCounter_2 =
new TH1F(
"fhSubJetCounter_2",
"SubJet Counter Particle Level",50, -0.5,49.5);
636 fh2PtRatio=
new TH2F(
"fhPtRatio",
"MC pt for detector level vs particle level jets",1500,-0.5,149.5,1500,-0.5,149.5);
638 fhEventCounter_1=
new TH1F(
"fhEventCounter_1",
"Event Counter Detector Level", 15,0.5,15.5);
640 fhEventCounter_2=
new TH1F(
"fhEventCounter_2",
"Event Counter Particle Level", 15,0.5,15.5);
644 fhEventCounter=
new TH1F(
"fhEventCounter",
"Event Counter", 15,0.5,15.5);
648 TH1::AddDirectory(oldStatus);
697 Bool_t JetsMatched=kFALSE;
698 Bool_t EventCounter=kFALSE;
700 Double_t JetPtThreshold=-2;
708 if ( (!Jet1) || (JetPtThreshold<
fPtThreshold))
continue;
721 for(Int_t i = 0; i<JetCont2->
GetNJets(); i++) {
722 Jet2 = JetCont2->
GetJet(i);
727 if(JetNumber==-1)
continue;
728 Jet2=JetCont2->
GetJet(JetNumber);
800 Bool_t JetsMatched=kFALSE;
801 Double_t Pythia_Event_Weight=1;
802 Bool_t EventCounter=kFALSE;
832 if(JetPhi1 < -1*TMath::Pi()) JetPhi1 += (2*TMath::Pi());
833 else if (JetPhi1 > TMath::Pi()) JetPhi1 -= (2*TMath::Pi());
851 if(JetPhi2 < -1*TMath::Pi()) JetPhi2 += (2*TMath::Pi());
852 else if (JetPhi2 > TMath::Pi()) JetPhi2 -= (2*TMath::Pi());
942 Bool_t EventCounter=kFALSE;
943 Double_t JetPt_ForThreshold=0;
951 else JetPt_ForThreshold = Jet1->
Pt();
976 if(JetPhi < -1*TMath::Pi()) JetPhi += (2*TMath::Pi());
977 else if (JetPhi > TMath::Pi()) JetPhi -= (2*TMath::Pi());
1030 Bool_t EventCounter=kFALSE;
1031 Double_t JetPt_ForThreshold=0;
1040 else JetPt_ForThreshold = Jet1->
Pt();
1065 if(JetPhi < -1*TMath::Pi()) JetPhi += (2*TMath::Pi());
1066 else if (JetPhi > TMath::Pi()) JetPhi -= (2*TMath::Pi());
1073 Int_t FJ_Algorithm=9;
1074 Double_t FJ_Beta=1.0;
1075 fhSubJettiness1CheckRatio_FJ_KT->Fill(
fjNSubJettiness(Jet1,0,1,0,FJ_Beta,0)-
fjNSubJettiness(Jet1,0,1,0,FJ_Beta,0),
fjNSubJettiness(Jet1,0,1,0,FJ_Beta,0));
1076 fhSubJettiness1CheckRatio_FJ_CA->Fill(
fjNSubJettiness(Jet1,0,1,0,FJ_Beta,0)-
fjNSubJettiness(Jet1,0,1,1,FJ_Beta,0),
fjNSubJettiness(Jet1,0,1,0,FJ_Beta,0));
1077 fhSubJettiness1CheckRatio_FJ_AKT->Fill(
fjNSubJettiness(Jet1,0,1,0,FJ_Beta,0)-
fjNSubJettiness(Jet1,0,1,2,FJ_Beta,0),
fjNSubJettiness(Jet1,0,1,0,FJ_Beta,0));
1078 fhSubJettiness1CheckRatio_FJ_WTA_KT->Fill(
fjNSubJettiness(Jet1,0,1,0,FJ_Beta,0)-
fjNSubJettiness(Jet1,0,1,3,FJ_Beta,0),
fjNSubJettiness(Jet1,0,1,0,FJ_Beta,0));
1079 fhSubJettiness1CheckRatio_FJ_WTA_CA->Fill(
fjNSubJettiness(Jet1,0,1,0,FJ_Beta,0)-
fjNSubJettiness(Jet1,0,1,4,FJ_Beta,0),
fjNSubJettiness(Jet1,0,1,0,FJ_Beta,0));
1080 fhSubJettiness1CheckRatio_FJ_OP_KT->Fill(
fjNSubJettiness(Jet1,0,1,0,FJ_Beta,0)-
fjNSubJettiness(Jet1,0,1,5,FJ_Beta,0),
fjNSubJettiness(Jet1,0,1,0,FJ_Beta,0));
1081 fhSubJettiness1CheckRatio_FJ_OP_CA->Fill(
fjNSubJettiness(Jet1,0,1,0,FJ_Beta,0)-
fjNSubJettiness(Jet1,0,1,6,FJ_Beta,0),
fjNSubJettiness(Jet1,0,1,0,FJ_Beta,0));
1082 fhSubJettiness1CheckRatio_FJ_OP_AKT->Fill(
fjNSubJettiness(Jet1,0,1,0,FJ_Beta,0)-
fjNSubJettiness(Jet1,0,1,7,FJ_Beta,0),
fjNSubJettiness(Jet1,0,1,0,FJ_Beta,0));
1083 fhSubJettiness1CheckRatio_FJ_OP_WTA_KT->Fill(
fjNSubJettiness(Jet1,0,1,0,FJ_Beta,0)-
fjNSubJettiness(Jet1,0,1,8,FJ_Beta,0),
fjNSubJettiness(Jet1,0,1,0,FJ_Beta,0));
1084 fhSubJettiness1CheckRatio_FJ_OP_WTA_CA->Fill(
fjNSubJettiness(Jet1,0,1,0,FJ_Beta,0)-
fjNSubJettiness(Jet1,0,1,9,FJ_Beta,0),
fjNSubJettiness(Jet1,0,1,0,FJ_Beta,0));
1085 fhSubJettiness1CheckRatio_FJ_MIN->Fill(
fjNSubJettiness(Jet1,0,1,0,FJ_Beta,0)-
fjNSubJettiness(Jet1,0,1,10,FJ_Beta,0),
fjNSubJettiness(Jet1,0,1,0,FJ_Beta,0));
1086 fhSubJettiness2CheckRatio_FJ_KT->Fill(
fjNSubJettiness(Jet1,0,2,0,FJ_Beta,0)-
fjNSubJettiness(Jet1,0,2,0,FJ_Beta,0),
fjNSubJettiness(Jet1,0,2,0,FJ_Beta,0));
1087 fhSubJettiness2CheckRatio_FJ_CA->Fill(
fjNSubJettiness(Jet1,0,2,0,FJ_Beta,0)-
fjNSubJettiness(Jet1,0,2,1,FJ_Beta,0),
fjNSubJettiness(Jet1,0,2,0,FJ_Beta,0));
1088 fhSubJettiness2CheckRatio_FJ_AKT->Fill(
fjNSubJettiness(Jet1,0,2,0,FJ_Beta,0)-
fjNSubJettiness(Jet1,0,2,2,FJ_Beta,0),
fjNSubJettiness(Jet1,0,2,0,FJ_Beta,0));
1089 fhSubJettiness2CheckRatio_FJ_WTA_KT->Fill(
fjNSubJettiness(Jet1,0,2,0,FJ_Beta,0)-
fjNSubJettiness(Jet1,0,2,3,FJ_Beta,0),
fjNSubJettiness(Jet1,0,2,0,FJ_Beta,0));
1090 fhSubJettiness2CheckRatio_FJ_WTA_CA->Fill(
fjNSubJettiness(Jet1,0,2,0,FJ_Beta,0)-
fjNSubJettiness(Jet1,0,2,4,FJ_Beta,0),
fjNSubJettiness(Jet1,0,2,0,FJ_Beta,0));
1091 fhSubJettiness2CheckRatio_FJ_OP_KT->Fill(
fjNSubJettiness(Jet1,0,2,0,FJ_Beta,0)-
fjNSubJettiness(Jet1,0,2,5,FJ_Beta,0),
fjNSubJettiness(Jet1,0,2,0,FJ_Beta,0));
1092 fhSubJettiness2CheckRatio_FJ_OP_CA->Fill(
fjNSubJettiness(Jet1,0,2,0,FJ_Beta,0)-
fjNSubJettiness(Jet1,0,2,6,FJ_Beta,0),
fjNSubJettiness(Jet1,0,2,0,FJ_Beta,0));
1093 fhSubJettiness2CheckRatio_FJ_OP_AKT->Fill(
fjNSubJettiness(Jet1,0,2,0,FJ_Beta,0)-
fjNSubJettiness(Jet1,0,2,7,FJ_Beta,0),
fjNSubJettiness(Jet1,0,2,0,FJ_Beta,0));
1094 fhSubJettiness2CheckRatio_FJ_OP_WTA_KT->Fill(
fjNSubJettiness(Jet1,0,2,0,FJ_Beta,0)-
fjNSubJettiness(Jet1,0,2,8,FJ_Beta,0),
fjNSubJettiness(Jet1,0,2,0,FJ_Beta,0));
1095 fhSubJettiness2CheckRatio_FJ_OP_WTA_CA->Fill(
fjNSubJettiness(Jet1,0,2,0,FJ_Beta,0)-
fjNSubJettiness(Jet1,0,2,9,FJ_Beta,0),
fjNSubJettiness(Jet1,0,2,0,FJ_Beta,0));
1096 fhSubJettiness2CheckRatio_FJ_MIN->Fill(
fjNSubJettiness(Jet1,0,2,0,FJ_Beta,0)-
fjNSubJettiness(Jet1,0,2,10,FJ_Beta,0),
fjNSubJettiness(Jet1,0,2,0,FJ_Beta,0));
1167 if(Phi1 < -1*TMath::Pi()) Phi1 += (2*TMath::Pi());
1168 else if (Phi1 > TMath::Pi()) Phi1 -= (2*TMath::Pi());
1169 if(Phi2 < -1*TMath::Pi()) Phi2 += (2*TMath::Pi());
1170 else if (Phi2 > TMath::Pi()) Phi2 -= (2*TMath::Pi());
1172 if(DeltaPhi < -1*TMath::Pi()) DeltaPhi += (2*TMath::Pi());
1173 else if (DeltaPhi > TMath::Pi()) DeltaPhi -= (2*TMath::Pi());
1183 Double_t Angularity_Numerator=0;
1184 Double_t Angularity_Denominator=0;
1185 AliVParticle *Particle=0x0;
1191 if(!Particle)
continue;
1193 Angularity_Numerator=Angularity_Numerator+(Particle->Pt()*TMath::Sqrt(((Particle->Eta()-Jet->
Eta())*(Particle->Eta()-Jet->
Eta()))+(DeltaPhi*
DeltaPhi)));
1194 Angularity_Denominator= Angularity_Denominator+Particle->Pt();
1196 if(Angularity_Denominator!=0)
return Angularity_Numerator/Angularity_Denominator;
1207 Double_t PTD_Numerator=0;
1208 Double_t PTD_Denominator=0;
1209 AliVParticle *Particle=0x0;
1213 if(!Particle)
continue;
1214 PTD_Numerator=PTD_Numerator+(Particle->Pt()*Particle->Pt());
1215 PTD_Denominator=PTD_Denominator+Particle->Pt();
1217 if(PTD_Denominator!=0)
return TMath::Sqrt(PTD_Numerator)/PTD_Denominator;
1234 const AliVVertex *vert = InputEvent()->GetPrimaryVertex();
1235 Double_t dVtx[3]={vert->GetX(),vert->GetY(),vert->GetZ()};
1236 if(Reclusterer->AliEmcalJetFinder::Filter(Jet, JetCont, dVtx)){;}
1251 Double_t SortingVariable;
1252 Int_t ArraySize =N+1;
1253 TArrayD *JetSorter =
new TArrayD(ArraySize);
1254 TArrayD *JetIndexSorter =
new TArrayD(ArraySize);
1255 for (Int_t i=0; i<ArraySize; i++){
1256 JetSorter->SetAt(0,i);
1258 for (Int_t i=0; i<ArraySize; i++){
1259 JetIndexSorter->SetAt(0,i);
1263 SubJet=Reclusterer->
GetJet(i);
1264 if (Type==0) SortingVariable=SubJet->
Pt();
1265 else if (Type==1) SortingVariable=SubJet->
E();
1266 else if (Type==2) SortingVariable=SubJet->
M();
1267 for (Int_t j=0; j<N; j++){
1268 if (SortingVariable>JetSorter->GetAt(j)){
1269 for (Int_t k=N-1; k>=j; k--){
1270 JetSorter->SetAt(JetSorter->GetAt(k),k+1);
1271 JetIndexSorter->SetAt(JetIndexSorter->GetAt(k),k+1);
1273 JetSorter->SetAt(SortingVariable,j);
1274 JetIndexSorter->SetAt(i,j);
1279 if (!Index)
return JetSorter->GetAt(N-1);
1280 else return JetIndexSorter->GetAt(N-1);
1298 Double_t Observable=0;
1299 Double_t Fraction_Numerator=0;
1300 Bool_t Error=kFALSE;
1303 for (Int_t i=1; i<=N; i++){
1305 if(Observable==-999){
1309 Fraction_Numerator=Fraction_Numerator+Observable;
1313 Fraction_Numerator=
SubJetOrdering(Jet,Reclusterer,N,Type,kFALSE);
1314 if (Fraction_Numerator==-999)
return -2;
1317 if(Loss)
return (Jet->
Pt()-Fraction_Numerator)/Jet->
Pt();
1318 else return Fraction_Numerator/Jet->
Pt();
1321 if(Loss)
return (Jet->
E()-Fraction_Numerator)/Jet->
E();
1322 else return Fraction_Numerator/Jet->
E();
1325 if(Loss)
return (Jet->
M()-Fraction_Numerator)/Jet->
M();
1326 else return Fraction_Numerator/Jet->
M();
1341 AliVParticle *JetParticle=0x0;
1342 Double_t SubJetiness_Numerator = 0;
1343 Double_t SubJetiness_Denominator = 0;
1345 Bool_t Error=kFALSE;
1351 for (Int_t j=1; j<=N; j++){
1359 DeltaR1=TMath::Power((Reclusterer->
GetJet(Index)->
Pt()),A)*TMath::Power((TMath::Sqrt((((JetParticle->Eta())-(Reclusterer->
GetJet(Index)->
Eta()))*((JetParticle->Eta())- (Reclusterer->
GetJet(Index)->
Eta())))+((
RelativePhi((Reclusterer->
GetJet(Index)->
Phi()),JetParticle->Phi()))*(
RelativePhi((Reclusterer->
GetJet(Index)->
Phi()),JetParticle->Phi()))))),B);
1362 DeltaR2=TMath::Power((Reclusterer->
GetJet(Index)->
Pt()),A)*TMath::Power((TMath::Sqrt((((JetParticle->Eta())-(Reclusterer->
GetJet(Index)->
Eta()))*((JetParticle->Eta())- (Reclusterer->
GetJet(Index)->
Eta())))+((
RelativePhi((Reclusterer->
GetJet(Index)->
Phi()),JetParticle->Phi()))*(
RelativePhi((Reclusterer->
GetJet(Index)->
Phi()),JetParticle->Phi()))))),B);
1363 if (DeltaR2<DeltaR1) DeltaR1=DeltaR2;
1366 SubJetiness_Numerator=SubJetiness_Numerator+(JetParticle->Pt()*DeltaR1);
1367 if (A>=0) SubJetiness_Denominator=SubJetiness_Denominator+(TMath::Power((Reclusterer->
GetJet(
SubJetOrdering(Jet,Reclusterer,1,0,kTRUE))->
Pt()),A)*JetParticle->Pt()*TMath::Power(JetRadius,B));
1368 else SubJetiness_Denominator=SubJetiness_Denominator+(TMath::Power((Reclusterer->
GetJet(
SubJetOrdering(Jet,Reclusterer,N,0,kTRUE))->
Pt()),A)*JetParticle->Pt()*TMath::Power(JetRadius,B));
1370 if (SubJetiness_Denominator!=0 && !Error){
1372 return SubJetiness_Numerator/SubJetiness_Denominator; }
1401 if((
fJetShapeSub==
kDerivSub) && (JetContNb==0) && (N==1) && (Algorithm==0) && (Beta==1.0) && (Option==0)){
1405 else if((
fJetShapeSub==
kDerivSub) && (JetContNb==0) && (N==2) && (Algorithm==0) && (Beta==1.0) && (Option==0)){
1409 else if((
fJetShapeSub==
kDerivSub) && (JetContNb==0) && (N==3) && (Algorithm==0) && (Beta==1.0) && (Option==0)){
1413 else if((
fJetShapeSub==
kDerivSub) && (JetContNb==0) && (N==2) && (Algorithm==0) && (Beta==1.0) && (Option==1)){
1423 const AliVVertex *vert = InputEvent()->GetPrimaryVertex();
1424 Double_t dVtx[3]={vert->GetX(),vert->GetY(),vert->GetZ()};
TH1D * fhSubJettiness1_FJ_OP_CA
TH1D * fhSubJettiness1_FJ_WTA_CA
void SetRadius(Double_t val)
TH2D * fhSubJettiness1CheckRatio_FJ_OP_CA
Double_t fjNSubJettiness(AliEmcalJet *Jet, Int_t JetContNb, Int_t N, Int_t Algorithm, Double_t Beta, Int_t Option=0)
TH2D * fhSubJettiness2CheckRatio_FJ_WTA_CA
TH1F * fhNumberOfJetTracks
TH2D * fhSubJettiness2CheckRatio_FJ_OP_WTA_CA
TH2D * fhSubJettiness1CheckRatio_FJ_OP_KT
void SetJetMinPt(Double_t val)
TH2D * fhSubJettiness1CheckRatio_FJ_KT
static Double_t DeltaPhi(Double_t phia, Double_t phib, Double_t rMin=-TMath::Pi()/2, Double_t rMax=3 *TMath::Pi()/2)
AliEmcalJet * ClosestJet() const
AliJetContainer * GetJetContainer(Int_t i=0) const
TH1D * fhSubJettiness2_FJ_CA
TH2D * fhSubJettiness1CheckRatio_FJ_AKT
TH1F * fhSubJetEnergyFrac2
Double_t PTD(AliEmcalJet *Jet, Int_t JetContNb)
Double_t fSharedFractionPtMin
Bool_t RetrieveEventObjects()
TH1D * fhSubJettiness1_FJ_OP_WTA_CA
TH2D * fhSubJettiness2CheckRatio_FJ_MIN
TH2D * fh2JetTracksEtaPhiPt
void Terminate(Option_t *option)
Double_t GetSecondOrderSubtracted3subjettiness_kt() const
Double_t NSubJettiness(AliEmcalJet *Jet, Int_t JetContNb, Double_t JetRadius, AliEmcalJetFinder *Reclusterer, Int_t N, Int_t A, Int_t B)
Bool_t RetrieveEventObjects()
Double_t GetFirstOrderSubtractedOpeningAngle_kt() const
Double_t RelativePhi(Double_t Phi1, Double_t Phi2)
TH1D * fhSubJettiness1_FJ_MIN
TList * fOutput
!output list
TH2D * fhSubJettiness1CheckRatio_FJ_OP_AKT
TH2D * fhSubJettiness2CheckRatio_FJ_OP_CA
TH1F * fhNumberOfJetTracks_2
TH1F * fhNumberOfSubJetTracks_1
TH1D * fhSubJettiness1_FJ_OP_AKT
Double_t XBinsJetMass[28]
Double_t GetFirstOrderSubtracted2subjettiness_kt() const
UShort_t GetNumberOfTracks() const
TString kData
Declare data MC or deltaAOD.
TH2F * fh2to1SubJetinessRatioJetPt
TH2F * fhSubJetiness1JetPt
AliParticleContainer * GetParticleContainer() const
void SetRecombSheme(Int_t val)
void SetJetAlgorithm(Int_t val)
TH1F * fhSubJetEnergyLoss2
TH1F * fhNumberOfSubJetTracks
ClassImp(AliAnalysisTaskSubJetFraction) AliAnalysisTaskSubJetFraction
Double_t Nsubjettiness(AliEmcalJet *pJet, AliJetContainer *pContJets, Double_t dVtx[3], Int_t N, Int_t Algorithm, Double_t Radius, Double_t Beta, Int_t Option=0)
virtual ~AliAnalysisTaskSubJetFraction()
TH1D * fhSubJettiness2_FJ_WTA_KT
TH2F * fhJetAngularityJetPt
Double_t GetFirstOrderSubtracted3subjettiness_kt() const
TH1D * fhSubJettiness2_FJ_OP_WTA_KT
TH2D * fhSubJettiness2CheckRatio_FJ_KT
TH1D * fhSubJettiness2_FJ_KT
TH1D * fhSubJettiness1_FJ_KT
Double_t fCent
!event centrality
Double_t GetSecondOrderSubtracted2subjettiness_kt() const
TH2D * fhSubJettiness1CheckRatio_FJ_OP_WTA_CA
TClonesArray * GetArray() const
TH2D * fhSubJettiness2CheckRatio_FJ_OP_WTA_KT
Double_t SubJetFraction(AliEmcalJet *Jet, AliEmcalJetFinder *Reclusterer, Int_t N, Int_t Type, Bool_t Add, Bool_t Loss)
TH2F * fhSubJetiness2JetPt
TH1D * fhSubJettiness2_FJ_OP_WTA_CA
void SetJetMaxEta(Double_t val)
TH1D * fhSubJettiness1_FJ_OP_WTA_KT
TH1D * fhSubJettiness2_FJ_OP_CA
AliAnalysisTaskSubJetFraction()
AliEmcalJet * GetNextAcceptJet()
Bool_t Data(TH1F *h, Double_t *rangefit, Bool_t writefit, Double_t &sgn, Double_t &errsgn, Double_t &bkg, Double_t &errbkg, Double_t &sgnf, Double_t &errsgnf, Double_t &sigmafit, Int_t &status)
AliEmcalJetFinder * Recluster(AliEmcalJet *Jet, Int_t JetContNb, Double_t SubJetRadius, Double_t SubJetMinPt, Int_t Algorithm, const char *Name)
TH2D * fhSubJettiness1CheckRatio_FJ_WTA_KT
Double_t GetFirstOrderSubtracted1subjettiness_kt() const
AliEmcalJet * GetJet(Int_t index)
TTree * fTreeResponseMatrixAxis
TH2D * fhSubJettiness1CheckRatio_FJ_MIN
TH1F * fhNumberOfSubJetTracks_2
TH1D * fhSubJettiness1_FJ_AKT
Double_t GetRhoVal(Int_t i=0) const
TH2D * fhSubJettiness1CheckRatio_FJ_CA
TH1D * fhSubJettiness2_FJ_MIN
TH1D * fhSubJettiness1_FJ_WTA_KT
JetShapeType fJetShapeType
Short_t TrackAt(Int_t idx) const
TH1F * fhSubJetEnergyFrac
TH1F * fhNumberOfJetTracks_1
TH1D * fhSubJettiness2_FJ_WTA_CA
TH1D * fhSubJettiness2_FJ_OP_AKT
TH2D * fhSubJettiness1CheckRatio_FJ_OP_WTA_KT
void SetMakeGeneralHistograms(Bool_t g)
TH2D * fhSubJettiness2CheckRatio_FJ_OP_AKT
Double_t GetSecondOrderSubtracted1subjettiness_kt() const
Double_t Angularity(AliEmcalJet *Jet, Int_t JetContNb)
TH1F * fhSubJetEnergyLoss
void UserCreateOutputObjects()
void UserCreateOutputObjects()
TH1D * fhSubJettiness2_FJ_AKT
TH1D * fhSubJettiness1_FJ_CA
Double_t SubJetOrdering(AliEmcalJet *Jet, AliEmcalJetFinder *Reclusterer, Int_t N, Int_t Type, Bool_t Index)
TH2F * fhSubJetiness2Distance
TH1D * fhSubJettiness1_FJ_OP_KT
Double_t GetSecondOrderSubtractedOpeningAngle_kt() const
TH2D * fhSubJettiness2CheckRatio_FJ_AKT
TH2D * fhSubJettiness2CheckRatio_FJ_CA
TH2D * fhSubJettiness2CheckRatio_FJ_WTA_KT
TH1F * fh2to1SubJetinessRatio
TH1D * fhSubJettiness2_FJ_OP_KT
void ResetCurrentID(Int_t i=-1)
TH2D * fhSubJettiness1CheckRatio_FJ_WTA_CA
AliEmcalJet * GetJet(Int_t i) const
TH2D * fhSubJettiness2CheckRatio_FJ_OP_KT