1 #include "AliAnalysisTaskFullpAJets.h"
13 #include <TLorentzVector.h>
15 #include <TProfile2D.h>
16 #include <TProfile3D.h>
20 #include "AliAnalysisTaskSE.h"
21 #include "AliAnalysisManager.h"
23 #include "AliESDtrackCuts.h"
24 #include "AliESDEvent.h"
25 #include "AliESDInputHandler.h"
26 #include "AliAODEvent.h"
27 #include "AliMCEvent.h"
28 #include "AliEmcalJet.h"
29 #include "AliEMCALGeometry.h"
31 ClassImp(AliAnalysisTaskFullpAJets)
33 //________________________________________________________________________
34 AliAnalysisTaskFullpAJets::AliAnalysisTaskFullpAJets() :
49 fhChargedJetPtAreaCut(0),
51 fhJetPtEMCalAreaCut(0),
52 fhJetPtEMCalAreaCutSignal(0),
56 fhJetTPtRhoTotalSignal(0),
57 fhJetTPtRhoNoLeading(0),
58 fhJetTPtRhoNoLeadingSignal(0),
69 fhDeltaPtNoLeading(0),
79 fh020JetPtEMCalAreaCut(0),
80 fh020JetPtEMCalAreaCutSignal(0),
81 fh020JetTPtRhoTotal(0),
82 fh020JetTPtRhoTotalSignal(0),
83 fh020JetTPtRhoNoLeading(0),
84 fh020JetTPtRhoNoLeadingSignal(0),
86 fh020JetTPt1BSignal(0),
94 fh020EMCalkTClusters(0),
96 fh020DiJetDeltaPhi(0),
97 fhDiJetEMCalLeadingPt(0),
98 fhDiJetEMCalLeadingDeltaPhi(0),
115 fhJetConstituentPt(0),
117 fhJetPtCenEMCalAreaCut(0),
118 fhJetPtCenEMCalAreaCutSignal(0),
119 fhJetTPtCenRhoTotal(0),
120 fhJetTPtCenRhoTotalSignal(0),
121 fhJetTPtCenRhoNoLeading(0),
122 fhJetTPtCenRhoNoLeadingSignal(0),
124 fhJetTPtCen1BSignal(0),
129 fhDiJetCenDeltaPhi(0),
147 fpJetPtRhoNoLeading(0),
157 fpClusterPtProfile(0),
180 fJetAreaThreshold(0),
201 fEDProfileEtaBins(0),
212 fEMCalJetThreshold(0),
218 fnJetsChargedPtCut(0),
219 fnJetskTEMCalFull(0),
233 fChargedBackJetID(0),
237 fmyAKTChargedJets(0),
243 fJetPtChargedCutID(0),
244 fJetkTEMCalFullID(0),
249 fInTPCChargedFull(0),
252 // Dummy constructor ALWAYS needed for I/O.
253 fpJetEtaProfile = new TProfile *[14];
254 fpJetAbsEtaProfile = new TProfile *[14];
255 fpChargedJetRProfile = new TProfile *[8];
256 fpJetRProfile= new TProfile *[4];
257 fpChargedJetEDProfile= new TProfile3D *[10];
258 fpJetEDProfile= new TProfile3D *[10];
259 fvertex[0]=0.0,fvertex[1]=0.0,fvertex[2]=0.0;
262 //________________________________________________________________________
263 AliAnalysisTaskFullpAJets::AliAnalysisTaskFullpAJets(const char *name) :
264 AliAnalysisTaskSE(name),
278 fhChargedJetPtAreaCut(0),
280 fhJetPtEMCalAreaCut(0),
281 fhJetPtEMCalAreaCutSignal(0),
283 fhJetPtTPCAreaCut(0),
285 fhJetTPtRhoTotalSignal(0),
286 fhJetTPtRhoNoLeading(0),
287 fhJetTPtRhoNoLeadingSignal(0),
298 fhDeltaPtNoLeading(0),
301 fhEMCalCellCounts(0),
303 fh020RhoNoLeading(0),
308 fh020JetPtEMCalAreaCut(0),
309 fh020JetPtEMCalAreaCutSignal(0),
310 fh020JetTPtRhoTotal(0),
311 fh020JetTPtRhoTotalSignal(0),
312 fh020JetTPtRhoNoLeading(0),
313 fh020JetTPtRhoNoLeadingSignal(0),
315 fh020JetTPt1BSignal(0),
323 fh020EMCalkTClusters(0),
324 fh020EMCalAkTJets(0),
325 fh020DiJetDeltaPhi(0),
326 fhDiJetEMCalLeadingPt(0),
327 fhDiJetEMCalLeadingDeltaPhi(0),
344 fhJetConstituentPt(0),
346 fhJetPtCenEMCalAreaCut(0),
347 fhJetPtCenEMCalAreaCutSignal(0),
348 fhJetTPtCenRhoTotal(0),
349 fhJetTPtCenRhoTotalSignal(0),
350 fhJetTPtCenRhoNoLeading(0),
351 fhJetTPtCenRhoNoLeadingSignal(0),
353 fhJetTPtCen1BSignal(0),
358 fhDiJetCenDeltaPhi(0),
376 fpJetPtRhoNoLeading(0),
386 fpClusterPtProfile(0),
409 fJetAreaThreshold(0),
430 fEDProfileEtaBins(0),
441 fEMCalJetThreshold(0),
447 fnJetsChargedPtCut(0),
448 fnJetskTEMCalFull(0),
462 fChargedBackJetID(0),
466 fmyAKTChargedJets(0),
472 fJetPtChargedCutID(0),
473 fJetkTEMCalFullID(0),
478 fInTPCChargedFull(0),
482 // Define input and output slots here (never in the dummy constructor)
483 // Input slot #0 works with a TChain - it is connected to the default input container
484 // Output slot #1 writes into a TH1 container
485 fpJetEtaProfile = new TProfile *[14];
486 fpJetAbsEtaProfile = new TProfile *[14];
487 fpChargedJetRProfile = new TProfile *[8];
488 fpJetRProfile = new TProfile *[4];
489 fpChargedJetEDProfile= new TProfile3D *[10];
490 fpJetEDProfile= new TProfile3D *[10];
491 fvertex[0]=0.0,fvertex[1]=0.0,fvertex[2]=0.0;
493 DefineOutput(1,TList::Class()); // for output list
496 //________________________________________________________________________
497 AliAnalysisTaskFullpAJets::~AliAnalysisTaskFullpAJets()
499 // Destructor. Clean-up the output list, but not the histograms that are put inside
500 // (the list is owner and will clean-up these histograms). Protect in PROOF case.
501 if (fOutput && !AliAnalysisManager::GetAnalysisManager()->IsProofMode())
508 //________________________________________________________________________
509 void AliAnalysisTaskFullpAJets::UserCreateOutputObjects()
512 // Called once (on the worker node)
513 fIsInitialized=kFALSE;
514 fOutput = new TList();
515 fOutput->SetOwner(); // IMPORTANT!
517 fTrackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kTRUE);
519 // Initialize Global Variables
524 // fRJET=4 -> fJetR=0.4 && fRJET=25 -> fJetR=0.25, but for writing files, should be 4 and 25 respectively
527 fJetR=(Double_t)fRJET/100.0;
531 fJetR=(Double_t)fRJET/10.0;
534 fEMCalPhiMin=(80/(double)360)*2*TMath::Pi();
535 fEMCalPhiMax=(187/(double)360)*2*TMath::Pi();
536 fEMCalPhiTotal= fEMCalPhiMax-fEMCalPhiMin;
539 fEMCalEtaTotal=fEMCalEtaMax-fEMCalEtaMin;
540 fEMCalArea=fEMCalPhiTotal*fEMCalEtaTotal;
542 fTPCPhiMin=(0/(double)360)*2*TMath::Pi();
543 fTPCPhiMax=(360/(double)360)*2*TMath::Pi();
544 fTPCPhiTotal= fTPCPhiMax-fTPCPhiMin;
547 fTPCEtaTotal=fTPCEtaMax-fTPCEtaMin;
548 fTPCArea=fTPCPhiTotal*fTPCEtaTotal;
553 Int_t CentralityBinMult=10;
555 fJetAreaCutFrac =0.6; // Fudge factor for selecting on jets with threshold Area or higher
556 fJetAreaThreshold=fJetAreaCutFrac*TMath::Pi()*fJetR*fJetR;
557 fTPCJetThreshold=5.0; // Threshold required for an Anti-kt jet to be considered a "true" jet
558 fEMCalJetThreshold=5.0;
562 fnBckgClusters=TMath::FloorNint(fEMCalArea/(TMath::Pi()*fJetR*fJetR)); // Select the number of RC that is as close as possible to the area of the EMCal.
563 fRCBckgFluc = new Double_t[fnBckgClusters];
564 for (Int_t i=0;i<fnBckgClusters;i++)
570 fnEMCalCells=12288; // sMods 1-10 have 24x48 cells, sMods 11&12 have 8x48 cells...
573 Int_t JetPtBins = 200;
574 Double_t JetPtLow = 0.0;
575 Double_t JetPtUp = 200.0;
580 fhTrackPt = new TH1D("fhTrackPt","p_{T} distribution of tracks in event",10*JetPtBins,JetPtLow,JetPtUp);
581 fhTrackPt->GetXaxis()->SetTitle("p_{T} (GeV/c)");
582 fhTrackPt->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
585 fhTrackPhi = new TH1D("fhTrackPhi","#phi distribution of tracks in event",TCBins,fTPCPhiMin,fTPCPhiMax);
586 fhTrackPhi->GetXaxis()->SetTitle("#phi");
587 fhTrackPhi->GetYaxis()->SetTitle("1/N_{Events} dN/d#phi");
590 fhTrackEta = new TH1D("fhTrackEta","#eta distribution of tracks in event",TCBins,fTPCEtaMin,fTPCEtaMax);
591 fhTrackEta->GetXaxis()->SetTitle("#eta");
592 fhTrackEta->GetYaxis()->SetTitle("1/N_{Events} dN/d#eta");
595 fhTrackEtaPhi = new TH2D("fhTrackEtaPhi","#eta-#phi distribution of tracks in event",TCBins,fTPCEtaMin,fTPCEtaMax,TCBins,fTPCPhiMin,fTPCPhiMax);
596 fhTrackEtaPhi->GetXaxis()->SetTitle("#eta");
597 fhTrackEtaPhi->GetYaxis()->SetTitle("#phi");
598 fhTrackEtaPhi->GetZaxis()->SetTitle("1/N_{Events} dN/d#etad#phi");
599 fhTrackEtaPhi->Sumw2();
601 fhClusterPt = new TH1D("fhClusterPt","p_{T} distribution of clusters in event",10*JetPtBins,JetPtLow,JetPtUp);
602 fhClusterPt->GetXaxis()->SetTitle("p_{T} (GeV/c)");
603 fhClusterPt->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
604 fhClusterPt->Sumw2();
606 fhClusterPhi = new TH1D("fhClusterPhi","#phi distribution of clusters in event",TCBins,fTPCPhiMin,fTPCPhiMax);
607 fhClusterPhi->GetXaxis()->SetTitle("#phi");
608 fhClusterPhi->GetYaxis()->SetTitle("1/N_{Events} dN/d#phi");
609 fhClusterPhi->Sumw2();
611 fhClusterEta = new TH1D("fhClusterEta","#eta distribution of clusters in event",TCBins,fTPCEtaMin,fTPCEtaMax);
612 fhClusterEta->GetXaxis()->SetTitle("#eta");
613 fhClusterEta->GetYaxis()->SetTitle("1/N_{Events} dN/d#eta");
614 fhClusterEta->Sumw2();
616 fhClusterEtaPhi = new TH2D("fhClusterEtaPhi","#eta-#phi distribution of clusters in event",TCBins,fEMCalEtaMin,fEMCalEtaMax,TCBins,fEMCalPhiMin,fEMCalPhiMax);
617 fhClusterEtaPhi->GetXaxis()->SetTitle("#eta");
618 fhClusterEtaPhi->GetYaxis()->SetTitle("#phi");
619 fhClusterEtaPhi->GetZaxis()->SetTitle("1/N_{Events} dN/d#etad#phi");
620 fhClusterEtaPhi->Sumw2();
622 fhCentrality = new TH1D("fhCentrality","Event Centrality Distribution",fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp);
623 fhCentrality->GetXaxis()->SetTitle("Centrality (V0M)");
624 fhCentrality->GetYaxis()->SetTitle("1/N_{Events}");
625 fhCentrality->Sumw2();
627 fhBckgFluc = new TH1D("fhBckgFluc",Form("p_{T} distribution of Background Clusters in near central events at center of EMCal with R=%g",fJetR),JetPtBins,JetPtLow,JetPtUp);
628 fhBckgFluc->GetXaxis()->SetTitle("p_{T} (GeV/c)");
629 fhBckgFluc->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
632 fhBckgMult = new TH1D("fhBckgMult",Form("Multiplicity distribution of Background Clusters in near central events at center of EMCal with R=%g",fJetR),JetPtBins,JetPtLow,JetPtUp);
633 fhBckgMult->GetXaxis()->SetTitle("Multiplicity");
634 fhBckgMult->GetYaxis()->SetTitle("1/N_{Events}");
637 fhJetConstituentPt= new TH2D("fhJetConstituentPt","Jet constituents p_{T} distribution",JetPtBins, JetPtLow, JetPtUp,10*JetPtBins, JetPtLow, JetPtUp);
638 fhJetConstituentPt->GetXaxis()->SetTitle("Jet p_{T} (GeV/c)");
639 fhJetConstituentPt->GetYaxis()->SetTitle("Constituent p_{T} (GeV/c)");
640 fhJetConstituentPt->Sumw2();
642 fhEMCalCellCounts = new TH1D("fhEMCalCellCounts","Distribtuion of cluster counts across the EMCal",fnEMCalCells,1,fnEMCalCells);
643 fhEMCalCellCounts->GetXaxis()->SetTitle("Absoulute Cell Id");
644 fhEMCalCellCounts->GetYaxis()->SetTitle("Counts per Event");
645 fhEMCalCellCounts->Sumw2();
648 fhChargedJetPt = new TH1D("fhChargedJetPt","Charged Jet p_{T} distribution for reconstructed Jets",JetPtBins, JetPtLow, JetPtUp);
649 fhChargedJetPt->GetXaxis()->SetTitle("p_{T} (GeV/c)");
650 fhChargedJetPt->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
651 fhChargedJetPt->Sumw2();
653 fhChargedJetPtAreaCut = new TH1D("fhChargedJetPtAreaCut"," Charged Jet p_{T} distribution for reconstructed Jets with Standard Area Cut",JetPtBins, JetPtLow, JetPtUp);
654 fhChargedJetPtAreaCut->GetXaxis()->SetTitle("p_{T} (GeV/c)");
655 fhChargedJetPtAreaCut->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
656 fhChargedJetPtAreaCut->Sumw2();
658 fhJetPtTPC = new TH1D("fhJetPtTPC","Jet p_{T} distribution for reconstructed Jets",JetPtBins, JetPtLow, JetPtUp);
659 fhJetPtTPC->GetXaxis()->SetTitle("p_{T} (GeV/c)");
660 fhJetPtTPC->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
663 fhJetPtTPCAreaCut = new TH1D("fhJetPtTPCAreaCut","Jet p_{T} distribution for reconstructed Jets",JetPtBins, JetPtLow, JetPtUp);
664 fhJetPtTPCAreaCut->GetXaxis()->SetTitle("p_{T} (GeV/c)");
665 fhJetPtTPCAreaCut->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
666 fhJetPtTPCAreaCut->Sumw2();
668 fhJetPtEMCal = new TH1D("fhJetPtEMCal","Jet p_{T} distribution for reconstructed Jets within the EMCal",JetPtBins, JetPtLow, JetPtUp);
669 fhJetPtEMCal->GetXaxis()->SetTitle("p_{T} (GeV/c)");
670 fhJetPtEMCal->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
671 fhJetPtEMCal->Sumw2();
673 fhJetPtEMCalAreaCut = new TH1D("fhJetPtEMCalAreaCut","Jet p_{T} distribution for reconstructed Jets within the EMCal with Standard Area Cut",JetPtBins, JetPtLow, JetPtUp);
674 fhJetPtEMCalAreaCut->GetXaxis()->SetTitle("p_{T} (GeV/c)");
675 fhJetPtEMCalAreaCut->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
676 fhJetPtEMCalAreaCut->Sumw2();
678 fhJetPtEMCalAreaCutSignal = new TH1D("fhJetPtEMCalAreaCutSignal","Jet p_{T} distribution for reconstructed Jets within the EMCal with Standard Area Cut and Signal Cut",JetPtBins, JetPtLow, JetPtUp);
679 fhJetPtEMCalAreaCutSignal->GetXaxis()->SetTitle("p_{T} (GeV/c)");
680 fhJetPtEMCalAreaCutSignal->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
681 fhJetPtEMCalAreaCutSignal->Sumw2();
683 fh020JetPtEMCal = new TH1D("fh020JetPtEMCal","0-20% Jet p_{T} distribution for reconstructed Jets within the EMCal",JetPtBins, JetPtLow, JetPtUp);
684 fh020JetPtEMCal->GetXaxis()->SetTitle("p_{T} (GeV/c)");
685 fh020JetPtEMCal->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
686 fh020JetPtEMCal->Sumw2();
688 fh020JetPtEMCalAreaCut = new TH1D("fh020JetPtEMCalAreaCut","0-20% Jet p_{T} distribution for reconstructed Jets within the EMCal with Standard Area Cut",JetPtBins, JetPtLow, JetPtUp);
689 fh020JetPtEMCalAreaCut->GetXaxis()->SetTitle("p_{T} (GeV/c)");
690 fh020JetPtEMCalAreaCut->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
691 fh020JetPtEMCalAreaCut->Sumw2();
693 fh020JetPtEMCalAreaCutSignal = new TH1D("fh020JetPtEMCalAreaCutSignal","0-20% Jet p_{T} distribution for reconstructed Jets within the EMCal with Standard Area Cut and Signal Cut",JetPtBins, JetPtLow, JetPtUp);
694 fh020JetPtEMCalAreaCutSignal->GetXaxis()->SetTitle("p_{T} (GeV/c)");
695 fh020JetPtEMCalAreaCutSignal->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
696 fh020JetPtEMCalAreaCutSignal->Sumw2();
699 fhJetPtCenEMCal = new TH2D("fhJetPtCenEMCal","Jet p_{T} distribution for reconstructed Jets within the EMCal vs Centrality",JetPtBins, JetPtLow, JetPtUp, fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp);
700 fhJetPtCenEMCal->GetXaxis()->SetTitle("p_{T} (GeV/c)");
701 fhJetPtCenEMCal->GetYaxis()->SetTitle("Centrality (V0M)");
702 fhJetPtCenEMCal->GetZaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
703 fhJetPtCenEMCal->Sumw2();
705 fhJetPtCenEMCalAreaCut = new TH2D("fhJetPtCenEMCalAreaCut","Jet p_{T} distribution for reconstructed Jets within the EMCal with Area Cut vs Centrality",JetPtBins, JetPtLow, JetPtUp, fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp);
706 fhJetPtCenEMCalAreaCut->GetXaxis()->SetTitle("p_{T} (GeV/c)");
707 fhJetPtCenEMCalAreaCut->GetYaxis()->SetTitle("Centrality (V0M)");
708 fhJetPtCenEMCalAreaCut->GetZaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
709 fhJetPtCenEMCalAreaCut->Sumw2();
711 fhJetPtCenEMCalAreaCutSignal = new TH2D("fhJetPtCenEMCalAreaCutSignal","Jet p_{T} distribution for reconstructed Jets within the EMCal with Area and Signal Cut vs Centrality",JetPtBins, JetPtLow, JetPtUp, fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp);
712 fhJetPtCenEMCalAreaCutSignal->GetXaxis()->SetTitle("p_{T} (GeV/c)");
713 fhJetPtCenEMCalAreaCutSignal->GetYaxis()->SetTitle("Centrality (V0M)");
714 fhJetPtCenEMCalAreaCutSignal->GetZaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
715 fhJetPtCenEMCalAreaCutSignal->Sumw2();
717 // Jet Area vs pT Distribution
718 Int_t JetPtAreaBins=200;
719 Double_t JetPtAreaLow=0.0;
720 Double_t JetPtAreaUp=2.0;
722 fhJetPtArea = new TH2D("fhJetPtArea","Jet Area Distribution",JetPtBins, JetPtLow,JetPtUp,JetPtAreaBins,JetPtAreaLow,JetPtAreaUp);
723 fhJetPtArea->GetXaxis()->SetTitle("p_{T} (GeV/c)");
724 fhJetPtArea->GetYaxis()->SetTitle("A_{jet}");
725 fhJetPtArea->GetZaxis()->SetTitle("1/N_{Events} dN/dA_{jet}dp_{T}");
726 fhJetPtArea->Sumw2();
728 Int_t A1_PtBins = 100;
729 Double_t A1_PtLow=0.0;
730 Double_t A1_PtUp=100.0;
731 Int_t A1_TrigBins = 100;
732 Double_t A1_TrigLow=0.0;
733 Double_t A1_TrigUp=100.0;
735 Double_t A1_RLow=0.4;
738 fhJetTrigR1A = new TH3D("fhJetTrigR1A","Jet p_{T} distribution for reconstructed Jets vs Trigger Jet p_{T} vs #DeltaR",A1_PtBins, A1_PtLow, A1_PtUp,A1_TrigBins, A1_TrigLow, A1_TrigUp,A1_RBins, A1_RLow, A1_RUp);
739 fhJetTrigR1A->GetXaxis()->SetTitle("p_{T} (GeV/c)");
740 fhJetTrigR1A->GetYaxis()->SetTitle("Trigger Jet p_{T} (GeV/c)");
741 fhJetTrigR1A->GetZaxis()->SetTitle("R");
742 fhJetTrigR1A->Sumw2();
744 // Corrected Jet Spectra
745 Int_t JetTPtBins = 250;
746 Double_t JetTPtLow=-50.0;
747 Double_t JetTPtUp=200.0;
749 fhJetTPtRhoTotal = new TH1D("fhJetTPtRhoTotal","True Jet p_{T} distribution for reconstructed Jets in the EMCal",JetTPtBins, JetTPtLow, JetTPtUp);
750 fhJetTPtRhoTotal->GetXaxis()->SetTitle("p_{T} (GeV/c)");
751 fhJetTPtRhoTotal->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
752 fhJetTPtRhoTotal->Sumw2();
754 fhJetTPtRhoTotalSignal = new TH1D("fhJetTPtRhoTotalSignal","True Jet p_{T} distribution for reconstructed Jets in the EMCal with Signal cut",JetTPtBins, JetTPtLow, JetTPtUp);
755 fhJetTPtRhoTotalSignal->GetXaxis()->SetTitle("p_{T} (GeV/c)");
756 fhJetTPtRhoTotalSignal->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
757 fhJetTPtRhoTotalSignal->Sumw2();
759 fhJetTPtRhoNoLeading = new TH1D("fhJetTPtRhoNoLeading","True Jet p_{T} distribution for reconstructed Jets in the EMCal",JetTPtBins, JetTPtLow, JetTPtUp);
760 fhJetTPtRhoNoLeading->GetXaxis()->SetTitle("p_{T} (GeV/c)");
761 fhJetTPtRhoNoLeading->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
762 fhJetTPtRhoNoLeading->Sumw2();
764 fhJetTPtRhoNoLeadingSignal = new TH1D("fhJetTPtRhoNoLeadingSignal","True Jet p_{T} distribution for reconstructed Jets in the EMCal with Signal cut",JetTPtBins, JetTPtLow, JetTPtUp);
765 fhJetTPtRhoNoLeadingSignal->GetXaxis()->SetTitle("p_{T} (GeV/c)");
766 fhJetTPtRhoNoLeadingSignal->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
767 fhJetTPtRhoNoLeadingSignal->Sumw2();
769 fhJetTPt1B = new TH1D("fhJetTPt1B","True Jet p_{T} distribution for reconstructed Jets in the EMCal",JetTPtBins, JetTPtLow, JetTPtUp);
770 fhJetTPt1B->GetXaxis()->SetTitle("p_{T} (GeV/c)");
771 fhJetTPt1B->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
774 fhJetTPt1BSignal = new TH1D("fhJetTPt1BSignal","True Jet p_{T} distribution for reconstructed Jets in the EMCal",JetTPtBins, JetTPtLow, JetTPtUp);
775 fhJetTPt1BSignal->GetXaxis()->SetTitle("p_{T} (GeV/c)");
776 fhJetTPt1BSignal->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
777 fhJetTPt1BSignal->Sumw2();
779 fhJetTPt1C = new TH1D("fhJetTPt1C","True Jet p_{T} distribution for reconstructed Jets in the EMCal",JetPtBins,JetPtLow,JetPtUp);
780 fhJetTPt1C->GetXaxis()->SetTitle("p_{T} (GeV/c)");
781 fhJetTPt1C->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
784 fhJetTPt2B = new TH1D("fhJetTPt2B","True Jet p_{T} distribution for reconstructed Jets in the EMCal with dijet Trigger in TPC",JetTPtBins, JetTPtLow, JetTPtUp);
785 fhJetTPt2B->GetXaxis()->SetTitle("p_{T} (GeV/c)");
786 fhJetTPt2B->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
789 fhJetTPt3 = new TH1D("fhJetTPt3","True Charged jet p_{T} distribution for reconstructed Jets in the TPC",JetTPtBins, JetTPtLow, JetTPtUp);
790 fhJetTPt3->GetXaxis()->SetTitle("p_{T} (GeV/c)");
791 fhJetTPt3->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
794 // 0-20% Centrality Corrected Spectra (fh020JetTPt...)
795 fh020JetTPtRhoTotal = new TH1D("fh020JetTPtRhoTotal","0-20% True Jet p_{T} distribution for reconstructed Jets in the EMCal",JetTPtBins, JetTPtLow, JetTPtUp);
796 fh020JetTPtRhoTotal->GetXaxis()->SetTitle("p_{T} (GeV/c)");
797 fh020JetTPtRhoTotal->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
798 fh020JetTPtRhoTotal->Sumw2();
800 fh020JetTPtRhoTotalSignal = new TH1D("fh020JetTPtRhoTotalSignal","0-20% True Jet p_{T} distribution for reconstructed Jets in the EMCal with Signal cut",JetTPtBins, JetTPtLow, JetTPtUp);
801 fh020JetTPtRhoTotalSignal->GetXaxis()->SetTitle("p_{T} (GeV/c)");
802 fh020JetTPtRhoTotalSignal->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
803 fh020JetTPtRhoTotalSignal->Sumw2();
805 fh020JetTPtRhoNoLeading = new TH1D("fh020JetTPtRhoNoLeading","0-20% True Jet p_{T} distribution for reconstructed Jets in the EMCal",JetTPtBins, JetTPtLow, JetTPtUp);
806 fh020JetTPtRhoNoLeading->GetXaxis()->SetTitle("p_{T} (GeV/c)");
807 fh020JetTPtRhoNoLeading->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
808 fh020JetTPtRhoNoLeading->Sumw2();
810 fh020JetTPtRhoNoLeadingSignal = new TH1D("fh020JetTPtRhoNoLeadingSignal","0-20% True Jet p_{T} distribution for reconstructed Jets in the EMCal with Signal cut",JetTPtBins, JetTPtLow, JetTPtUp);
811 fh020JetTPtRhoNoLeadingSignal->GetXaxis()->SetTitle("p_{T} (GeV/c)");
812 fh020JetTPtRhoNoLeadingSignal->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
813 fh020JetTPtRhoNoLeadingSignal->Sumw2();
815 fh020JetTPt1B = new TH1D("fh020JetTPt1B","0-20% True Jet p_{T} distribution for reconstructed Jets in the EMCal",JetTPtBins, JetTPtLow, JetTPtUp);
816 fh020JetTPt1B->GetXaxis()->SetTitle("p_{T} (GeV/c)");
817 fh020JetTPt1B->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
818 fh020JetTPt1B->Sumw2();
820 fh020JetTPt1BSignal = new TH1D("fh020JetTPt1BSignal","0-20% True Jet p_{T} distribution for reconstructed Jets in the EMCal",JetTPtBins, JetTPtLow, JetTPtUp);
821 fh020JetTPt1BSignal->GetXaxis()->SetTitle("p_{T} (GeV/c)");
822 fh020JetTPt1BSignal->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
823 fh020JetTPt1BSignal->Sumw2();
825 fh020JetTPt1C = new TH1D("fh020JetTPt1C","0-20% True Jet p_{T} distribution for reconstructed Jets in the EMCal",JetPtBins,JetPtLow,JetPtUp);
826 fh020JetTPt1C->GetXaxis()->SetTitle("p_{T} (GeV/c)");
827 fh020JetTPt1C->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
828 fh020JetTPt1C->Sumw2();
830 fh020JetTPt2B = new TH1D("fh020JetTPt2B","0-20% True Jet p_{T} distribution for reconstructed Jets in the EMCal with dijet Trigger in TPC",JetTPtBins, JetTPtLow, JetTPtUp);
831 fh020JetTPt2B->GetXaxis()->SetTitle("p_{T} (GeV/c)");
832 fh020JetTPt2B->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
833 fh020JetTPt2B->Sumw2();
835 fh020JetTPt3 = new TH1D("fh020JetTPt3","0-20% True Charged jet p_{T} distribution for reconstructed Jets in the TPC",JetTPtBins, JetTPtLow, JetTPtUp);
836 fh020JetTPt3->GetXaxis()->SetTitle("p_{T} (GeV/c)");
837 fh020JetTPt3->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
838 fh020JetTPt3->Sumw2();
840 // 2D Corrected Spectra (fhJetTPtCen...)
841 fhJetTPtCenRhoTotal = new TH2D("fhJetTPtCenRhoTotal","True Jet p_{T} distribution for reconstructed Jets in the EMCal vs Centrality",JetTPtBins, JetTPtLow, JetTPtUp,fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp);
842 fhJetTPtCenRhoTotal->GetXaxis()->SetTitle("p_{T} (GeV/c)");
843 fhJetTPtCenRhoTotal->GetYaxis()->SetTitle("Centrality (V0M)");
844 fhJetTPtCenRhoTotal->GetZaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
845 fhJetTPtCenRhoTotal->Sumw2();
847 fhJetTPtCenRhoTotalSignal = new TH2D("fhJetTPtCenRhoTotalSignal","True Jet p_{T} distribution for reconstructed Jets in the EMCal with Signal cut vs Centrality",JetTPtBins, JetTPtLow, JetTPtUp,fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp);
848 fhJetTPtCenRhoTotalSignal->GetXaxis()->SetTitle("p_{T} (GeV/c)");
849 fhJetTPtCenRhoTotalSignal->GetYaxis()->SetTitle("Centrality (V0M)");
850 fhJetTPtCenRhoTotalSignal->GetZaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
851 fhJetTPtCenRhoTotalSignal->Sumw2();
853 fhJetTPtCenRhoNoLeading = new TH2D("fhJetTPtCenRhoNoLeading","True Jet p_{T} distribution for reconstructed Jets in the EMCal vs Centrality",JetTPtBins, JetTPtLow, JetTPtUp,fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp);
854 fhJetTPtCenRhoNoLeading->GetXaxis()->SetTitle("p_{T} (GeV/c)");
855 fhJetTPtCenRhoNoLeading->GetYaxis()->SetTitle("Centrality (V0M)");
856 fhJetTPtCenRhoNoLeading->GetZaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
857 fhJetTPtCenRhoNoLeading->Sumw2();
859 fhJetTPtCenRhoNoLeadingSignal = new TH2D("fhJetTPtCenRhoNoLeadingSignal","True Jet p_{T} distribution for reconstructed Jets in the EMCal with Signal cut vs Centrality",JetTPtBins, JetTPtLow, JetTPtUp,fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp);
860 fhJetTPtCenRhoNoLeadingSignal->GetXaxis()->SetTitle("p_{T} (GeV/c)");
861 fhJetTPtCenRhoNoLeadingSignal->GetYaxis()->SetTitle("Centrality (V0M)");
862 fhJetTPtCenRhoNoLeadingSignal->GetZaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
863 fhJetTPtCenRhoNoLeadingSignal->Sumw2();
865 fhJetTPtCen1B = new TH2D("fhJetTPtCen1B","True Jet p_{T} distribution for reconstructed Jets in the EMCal vs Centrality",JetTPtBins, JetTPtLow, JetTPtUp,fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp);
866 fhJetTPtCen1B->GetXaxis()->SetTitle("p_{T} (GeV/c)");
867 fhJetTPtCen1B->GetYaxis()->SetTitle("Centrality (V0M)");
868 fhJetTPtCen1B->GetZaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
869 fhJetTPtCen1B->Sumw2();
871 fhJetTPtCen1BSignal = new TH2D("fhJetTPtCen1BSignal","True Jet p_{T} distribution for reconstructed Jets in the EMCal vs Centrality",JetTPtBins, JetTPtLow, JetTPtUp,fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp);
872 fhJetTPtCen1BSignal->GetXaxis()->SetTitle("p_{T} (GeV/c)");
873 fhJetTPtCen1BSignal->GetYaxis()->SetTitle("Centrality (V0M)");
874 fhJetTPtCen1BSignal->GetZaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
875 fhJetTPtCen1BSignal->Sumw2();
877 fhJetTPtCen1C = new TH2D("fhJetTPtCen1C","True Jet p_{T} distribution for reconstructed Jets in the EMCal vs Centrality",JetPtBins,JetPtLow,JetPtUp,fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp);
878 fhJetTPtCen1C->GetXaxis()->SetTitle("p_{T} (GeV/c)");
879 fhJetTPtCen1C->GetYaxis()->SetTitle("Centrality (V0M)");
880 fhJetTPtCen1C->GetZaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
881 fhJetTPtCen1C->Sumw2();
883 fhJetTPtCen2B = new TH2D("fhJetTPtCen2B","True Jet p_{T} distribution for reconstructed Jets in the EMCal with dijet Trigger in TPC vs Centrality",JetTPtBins, JetTPtLow, JetTPtUp,fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp);
884 fhJetTPtCen2B->GetXaxis()->SetTitle("p_{T} (GeV/c)");
885 fhJetTPtCen2B->GetYaxis()->SetTitle("Centrality (V0M)");
886 fhJetTPtCen2B->GetZaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
887 fhJetTPtCen2B->Sumw2();
889 fhJetTPtCen3 = new TH2D("fhJetTPtCen3","True Charged jet p_{T} distribution for reconstructed Jets in the TPC vs Centrality",JetTPtBins, JetTPtLow, JetTPtUp,fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp);
890 fhJetTPtCen3->GetXaxis()->SetTitle("p_{T} (GeV/c)");
891 fhJetTPtCen3->GetYaxis()->SetTitle("Centrality (V0M)");
892 fhJetTPtCen3->GetZaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
893 fhJetTPtCen3->Sumw2();
896 fhEMCalBckg1B = new TH1D("fhEMCalBckg1B","Cluster p_{T} distribution for reconstructed Tracks and Calocluster at least 0.5 away from all jets in the EMCal",JetPtBins, JetPtLow,JetPtUp);
897 fhEMCalBckg1B->GetXaxis()->SetTitle("p_{T} (GeV/c)");
898 fhEMCalBckg1B->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
899 fhEMCalBckg1B->Sumw2();
901 fhEMCalBckg1C = new TH1D("fhEMCalBckg1C","Cluster p_{T} distribution for reconstructed Tracks and Calocluster in Transverse area with R=0.4",JetPtBins, JetPtLow, JetPtUp);
902 fhEMCalBckg1C->GetXaxis()->SetTitle("p_{T} (GeV/c)");
903 fhEMCalBckg1C->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
904 fhEMCalBckg1C->Sumw2();
906 fhEMCalJet2A = new TH1D("fhEMCalJet2A","Cluster p_{T} distribution for jets within EMCal from di-jets in TPC",A1_PtBins,A1_PtLow,A1_PtUp);
907 fhEMCalJet2A->GetXaxis()->SetTitle("p_{T} (GeV/c)");
908 fhEMCalJet2A->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
909 fhEMCalJet2A->Sumw2();
911 fh020EMCalJet2A = new TH1D("fh020EMCalJet2A","0-20% Centrality, Cluster p_{T} distribution for jets within EMCal from di-jets in TPC",A1_PtBins,A1_PtLow,A1_PtUp);
912 fh020EMCalJet2A->GetXaxis()->SetTitle("p_{T} (GeV/c)");
913 fh020EMCalJet2A->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
914 fh020EMCalJet2A->Sumw2();
916 fhEMCalCenJet2A = new TH2D("fhEMCalCenJet2A","Cluster p_{T} distribution for jets within EMCal from di-jets in TPC",A1_PtBins,A1_PtLow,A1_PtUp,fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp);
917 fhEMCalCenJet2A->GetXaxis()->SetTitle("p_{T} (GeV/c)");
918 fhEMCalCenJet2A->GetYaxis()->SetTitle("Centrality (V0M)");
919 fhEMCalCenJet2A->GetZaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
920 fhEMCalCenJet2A->Sumw2();
922 fhEMCalBckg2B = new TH1D("fhEMCalBckg2B","Cluster p_{T} distribution for reconstructed Tracks and Calocluster with dijet Trigger in TPC with R=0.4",JetPtBins, JetPtLow, JetPtUp);
923 fhEMCalBckg2B->GetXaxis()->SetTitle("p_{T} (GeV/c)");
924 fhEMCalBckg2B->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
925 fhEMCalBckg2B->Sumw2();
928 Int_t EMCalClusterBins=100;
929 Int_t EMCalClusterLow=0;
930 Int_t EMCalClusterUp=100;
932 fh020EMCalkTClusters = new TH1D("fh020EMCalkTClusters","0-20 % Centrality, Number of k_{T} clusters per event",EMCalClusterBins,EMCalClusterLow,EMCalClusterUp);
933 fh020EMCalkTClusters->GetXaxis()->SetTitle("# of Clusters");
934 fh020EMCalkTClusters->GetYaxis()->SetTitle("1/N_{Events}");
935 fh020EMCalkTClusters->Sumw2();
937 fh020EMCalAkTJets = new TH1D("fh020EMCalAkTJets","0-20 % Centrality, Number of anti-k_{T} jets per event",EMCalClusterBins,EMCalClusterLow,EMCalClusterUp);
938 fh020EMCalAkTJets->GetXaxis()->SetTitle("# of jets");
939 fh020EMCalAkTJets->GetYaxis()->SetTitle("1/N_{Events}");
940 fh020EMCalAkTJets->Sumw2();
942 // Background Density Plots
943 // 2D Rho plots (fhRho...)
944 Int_t RhoPtBins = 500;
945 Double_t RhoPtLow=0.0;
946 Double_t RhoPtUp=50.0;
948 Int_t DeltaRhoPtBins=100;
949 Double_t DeltaRhoPtLow=-5.0;
950 Double_t DeltaRhoPtUp=5.0;
952 fhRhoTotal= new TH2D("fhRhoTotal","Background Density #rho_{0}",RhoPtBins,RhoPtLow,RhoPtUp,fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp);
953 fhRhoTotal->GetXaxis()->SetTitle("p_{T}/Area (GeV/c)");
954 fhRhoTotal->GetYaxis()->SetTitle("Centrality (V0M)");
955 fhRhoTotal->GetZaxis()->SetTitle("1/N_{Events} dN/d#rho");
958 fhRhoNoLeading= new TH2D("fhRhoNoLeading","Background Density #rho_{1}",RhoPtBins,RhoPtLow,RhoPtUp,fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp);
959 fhRhoNoLeading->GetXaxis()->SetTitle("p_{T}/Area (GeV/c)");
960 fhRhoNoLeading->GetYaxis()->SetTitle("Centrality (V0M)");
961 fhRhoNoLeading->GetZaxis()->SetTitle("1/N_{Events} dN/d#rho");
962 fhRhoNoLeading->Sumw2();
964 fhRho1B = new TH2D("fhRho1B","Background Density #rho_{n} ",RhoPtBins, RhoPtLow, RhoPtUp,fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp);
965 fhRho1B->GetXaxis()->SetTitle("p_{T}/Area (GeV/c)");
966 fhRho1B->GetYaxis()->SetTitle("Centrality (V0M)");
967 fhRho1B->GetZaxis()->SetTitle("1/N_{Events} dN/d#rho");
970 fhRho1C = new TH2D("fhRho1C","Background Density #rho (Method 1C)",RhoPtBins, RhoPtLow, RhoPtUp,fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp);
971 fhRho1C->GetXaxis()->SetTitle("p_{T}/Area (GeV/c)");
972 fhRho1C->GetYaxis()->SetTitle("Centrality (V0M)");
973 fhRho1C->GetZaxis()->SetTitle("1/N_{Events} dN/d#rho");
976 fhRho2B = new TH2D("fhRho2B","Background Density #rho_{dijet}",RhoPtBins, RhoPtLow, RhoPtUp,fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp);
977 fhRho2B->GetXaxis()->SetTitle("p_{T}/Area (GeV/c)");
978 fhRho2B->GetYaxis()->SetTitle("Centrality (V0M)");
979 fhRho2B->GetZaxis()->SetTitle("1/N_{Events} dN/d#rho");
982 fhRho2BCore = new TH2D("fhRho2BCore","Background Density #rho_{dijet}",RhoPtBins, RhoPtLow, RhoPtUp,fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp);
983 fhRho2BCore->GetXaxis()->SetTitle("p_{T}/Area (GeV/c)");
984 fhRho2BCore->GetYaxis()->SetTitle("Centrality (V0M)");
985 fhRho2BCore->GetZaxis()->SetTitle("1/N_{Events} dN/d#rho");
986 fhRho2BCore->Sumw2();
988 fhRho3 = new TH2D("fhRho3","Charged Background Density #rho_{char}",RhoPtBins, RhoPtLow, RhoPtUp,fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp);
989 fhRho3->GetXaxis()->SetTitle("p_{T}/Area (GeV/c)");
990 fhRho3->GetYaxis()->SetTitle("Centrality (V0M)");
991 fhRho3->GetZaxis()->SetTitle("1/N_{Events} dN/d#rho");
994 fhRho3NoJets = new TH2D("fhRho3NoJets","Charged Background Density #rho_{char} for Events with No Signal Jets",RhoPtBins, RhoPtLow, RhoPtUp,fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp);
995 fhRho3NoJets->GetXaxis()->SetTitle("p_{T}/Area (GeV/c)");
996 fhRho3NoJets->GetYaxis()->SetTitle("Centrality (V0M)");
997 fhRho3NoJets->GetZaxis()->SetTitle("1/N_{Events} dN/d#rho");
998 fhRho3NoJets->Sumw2();
1000 fhRho3DiJets = new TH2D("fhRho3DiJets","Charged Background Density #rho_{char} for Events with a DiJet",RhoPtBins, RhoPtLow, RhoPtUp,fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp);
1001 fhRho3DiJets->GetXaxis()->SetTitle("p_{T}/Area (GeV/c)");
1002 fhRho3DiJets->GetYaxis()->SetTitle("Centrality (V0M)");
1003 fhRho3DiJets->GetZaxis()->SetTitle("1/N_{Events} dN/d#rho");
1004 fhRho3DiJets->Sumw2();
1006 fhRho3Perp = new TH2D("fhRho3Perp","Charged Background Density #rho_{char} for Events with a DiJet at Median Angle Between Dijets",RhoPtBins, RhoPtLow, RhoPtUp,fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp);
1007 fhRho3Perp->GetXaxis()->SetTitle("p_{T}/Area (GeV/c)");
1008 fhRho3Perp->GetYaxis()->SetTitle("Centrality (V0M)");
1009 fhRho3Perp->GetZaxis()->SetTitle("1/N_{Events} dN/d#rho");
1010 fhRho3Perp->Sumw2();
1012 // 0-20% Centrality Plots (rh020Rho...)
1013 fh020RhoTotal = new TH1D("fh020RhoTotal","0-20% Background Density #rho_{0}",RhoPtBins,RhoPtLow,RhoPtUp);
1014 fh020RhoTotal->GetXaxis()->SetTitle("p_{T}/Area (GeV/c)");
1015 fh020RhoTotal->GetYaxis()->SetTitle("1/N_{Events} dN/d#rho");
1016 fh020RhoTotal->Sumw2();
1018 fh020RhoNoLeading = new TH1D("fh020RhoNoLeading","0-20% Background Density #rho_{1}",RhoPtBins,RhoPtLow,RhoPtUp);
1019 fh020RhoNoLeading->GetXaxis()->SetTitle("p_{T}/Area (GeV/c)");
1020 fh020RhoNoLeading->GetYaxis()->SetTitle("1/N_{Events} dN/d#rho");
1021 fh020RhoNoLeading->Sumw2();
1023 fh020Rho1B = new TH1D("fh020Rho1B","0-20% Background Density #rho_{n}",RhoPtBins,RhoPtLow,RhoPtUp);
1024 fh020Rho1B->GetXaxis()->SetTitle("p_{T}/Area (GeV/c)");
1025 fh020Rho1B->GetYaxis()->SetTitle("1/N_{Events} dN/d#rho");
1026 fh020Rho1B->Sumw2();
1028 fh020Rho2B = new TH1D("fh020Rho2B","0-20% Background Density #rho_{dijet}",RhoPtBins,RhoPtLow,RhoPtUp);
1029 fh020Rho2B->GetXaxis()->SetTitle("p_{T}/Area (GeV/c)");
1030 fh020Rho2B->GetYaxis()->SetTitle("1/N_{Events} dN/d#rho");
1031 fh020Rho2B->Sumw2();
1033 fh020Rho2BCore = new TH1D("fh020Rho2BCore","0-20% Background Density #rho_{dijet}",RhoPtBins,RhoPtLow,RhoPtUp);
1034 fh020Rho2BCore->GetXaxis()->SetTitle("p_{T}/Area (GeV/c)");
1035 fh020Rho2BCore->GetYaxis()->SetTitle("1/N_{Events} dN/d#rho");
1036 fh020Rho2BCore->Sumw2();
1038 fh020Rho3 = new TH1D("fh020Rho3","0-20% Charged Background Density #rho_{char}",RhoPtBins,RhoPtLow,RhoPtUp);
1039 fh020Rho3->GetXaxis()->SetTitle("p_{T}/Area (GeV/c)");
1040 fh020Rho3->GetYaxis()->SetTitle("1/N_{Events} dN/d#rho");
1043 fh020Rho3NoJets = new TH1D("fh020Rho3NoJets","0-20% Charged Background Density #rho_{char} for Events with No Signal Jets",RhoPtBins,RhoPtLow,RhoPtUp);
1044 fh020Rho3NoJets->GetXaxis()->SetTitle("p_{T}/Area (GeV/c)");
1045 fh020Rho3NoJets->GetYaxis()->SetTitle("1/N_{Events} dN/d#rho");
1046 fh020Rho3NoJets->Sumw2();
1048 fh020Rho3DiJets = new TH1D("fh020Rho3DiJets","0-20% Charged Background Density #rho_{char} for Events with a DiJet",RhoPtBins,RhoPtLow,RhoPtUp);
1049 fh020Rho3DiJets->GetXaxis()->SetTitle("p_{T}/Area (GeV/c)");
1050 fh020Rho3DiJets->GetYaxis()->SetTitle("1/N_{Events} dN/d#rho");
1051 fh020Rho3DiJets->Sumw2();
1053 fh020Rho3Perp = new TH1D("fh020Rho3Perp","0-20% Charged Background Density #rho_{char} for Events with a DiJet at Median Angle Between Dijets",RhoPtBins,RhoPtLow,RhoPtUp);
1054 fh020Rho3Perp->GetXaxis()->SetTitle("p_{T}/Area (GeV/c)");
1055 fh020Rho3Perp->GetYaxis()->SetTitle("1/N_{Events} dN/d#rho");
1056 fh020Rho3Perp->Sumw2();
1058 fh020RhokT = new TH1D("fh020RhokT","0-20% Background Density #rho_{k_{T}}",RhoPtBins,RhoPtLow,RhoPtUp);
1059 fh020RhokT->GetXaxis()->SetTitle("p_{T}/Area (GeV/c)");
1060 fh020RhokT->GetYaxis()->SetTitle("1/N_{Events} dN/d#rho");
1061 fh020RhokT->Sumw2();
1064 Int_t DeltaPtBins=150;
1065 Double_t DeltaPtLow=-50.0;
1066 Double_t DeltaPtUp=100.0;
1068 fhDeltaPtTotal = new TH1D("fhDeltaPtTotal","#deltap_{T} distribution for Random Cones using total #rho",DeltaPtBins,DeltaPtLow,DeltaPtUp);
1069 fhDeltaPtTotal->GetXaxis()->SetTitle("#deltap_{T} (GeV/c)");
1070 fhDeltaPtTotal->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
1071 fhDeltaPtTotal->Sumw2();
1073 fhDeltaPtNoLeading = new TH1D("fhDeltaPtNoLeading","#deltap_{T} distribution for Random Cones using leading jet #rho",DeltaPtBins,DeltaPtLow,DeltaPtUp);
1074 fhDeltaPtNoLeading->GetXaxis()->SetTitle("#deltap_{T} (GeV/c)");
1075 fhDeltaPtNoLeading->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
1076 fhDeltaPtNoLeading->Sumw2();
1078 fhDeltaPt1B = new TH1D("fhDeltaPt1B","#deltap_{T} distribution for Random Cones using method 1B #rho",DeltaPtBins,DeltaPtLow,DeltaPtUp);
1079 fhDeltaPt1B->GetXaxis()->SetTitle("#deltap_{T} (GeV/c)");
1080 fhDeltaPt1B->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
1081 fhDeltaPt1B->Sumw2();
1083 fhDeltaPt2B = new TH1D("fhDeltaPt2B","#deltap_{T} distribution for Random Cones using method 2B #rho",DeltaPtBins,DeltaPtLow,DeltaPtUp);
1084 fhDeltaPt2B->GetXaxis()->SetTitle("#deltap_{T} (GeV/c)");
1085 fhDeltaPt2B->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
1086 fhDeltaPt2B->Sumw2();
1088 fhDeltaPtkT = new TH1D("fhDeltaPtkT","#deltap_{T} distribution for Random Cones using kT #rho",DeltaPtBins,DeltaPtLow,DeltaPtUp);
1089 fhDeltaPtkT->GetXaxis()->SetTitle("#deltap_{T} (GeV/c)");
1090 fhDeltaPtkT->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
1091 fhDeltaPtkT->Sumw2();
1093 fhDeltaRho01 = new TH1D("fhDeltaRho01","Event by Event Differential between #rho_{0} and #rho_{1}",RhoPtBins,RhoPtLow,RhoPtUp);
1094 fhDeltaRho01->GetXaxis()->SetTitle("p_{T} (GeV/c)");
1095 fhDeltaRho01->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
1096 fhDeltaRho01->Sumw2();
1098 fhDeltaRho0DiJet = new TH1D("fhDeltaRho0DiJet","Event by Event Differential between #rho_{0} and #rho_{dijet}",DeltaRhoPtBins,DeltaRhoPtLow,DeltaRhoPtUp);
1099 fhDeltaRho0DiJet->GetXaxis()->SetTitle("p_{T} (GeV/c)");
1100 fhDeltaRho0DiJet->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
1101 fhDeltaRho0DiJet->Sumw2();
1105 Double_t DiJetLow=0.0;
1106 Double_t DiJetUp=1.0;
1108 fh020DiJetAsy = new TH1D("fh020DiJetAsy","0-20% Centrality, Di-Jet Asymmetry",DiJetBins,DiJetLow,DiJetUp);
1109 fh020DiJetAsy->GetXaxis()->SetTitle("A_{j}");
1110 fh020DiJetAsy->GetYaxis()->SetTitle("1/N_{Events} dN/dA_{j}");
1111 fh020DiJetAsy->Sumw2();
1113 fhDiJetCenAsy = new TH2D("fhDiJetCenAsy","Di-Jet Asymmetry",DiJetBins,DiJetLow,DiJetUp,fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp);
1114 fhDiJetCenAsy->GetXaxis()->SetTitle("A_{j}");
1115 fhDiJetCenAsy->GetYaxis()->SetTitle("Centrality (V0M)");
1116 fhDiJetCenAsy->GetZaxis()->SetTitle("1/N_{Events} dN/dA_{j}");
1117 fhDiJetCenAsy->Sumw2();
1119 fh020DiJetDeltaPhi = new TH1D("fh020DiJetDeltaPhi","0-20% Centrality, Di-Jet #Delta#phi",TCBins,fTPCPhiMin,0.5*fTPCPhiMax);
1120 fh020DiJetDeltaPhi->GetXaxis()->SetTitle("#Delta#phi");
1121 fh020DiJetDeltaPhi->GetYaxis()->SetTitle("1/N_{Events} dN/d#Delta#phi");
1122 fh020DiJetDeltaPhi->Sumw2();
1124 fhDiJetCenDeltaPhi = new TH2D("fhDiJetCenDeltaPhi","Di-Jet #Delta#phi",TCBins,fTPCPhiMin,0.5*fTPCPhiMax,fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp);
1125 fhDiJetCenDeltaPhi->GetXaxis()->SetTitle("#Delta#phi");
1126 fhDiJetCenDeltaPhi->GetYaxis()->SetTitle("Centrality (V0M)");
1127 fhDiJetCenDeltaPhi->GetZaxis()->SetTitle("1/N_{Events} dN/d#Delta#phi");
1128 fhDiJetCenDeltaPhi->Sumw2();
1130 fhDiJetEMCalLeadingPt = new TH1D("fhDiJetEMCalLeadingPt","Leading EMCal anti-k_{T} cluster p_{T} in a dijet event",EMCalClusterBins,EMCalClusterLow,EMCalClusterUp);
1131 fhDiJetEMCalLeadingPt->GetXaxis()->SetTitle("p_{T}");
1132 fhDiJetEMCalLeadingPt->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
1133 fhDiJetEMCalLeadingPt->Sumw2();
1135 fhDiJetEMCalLeadingDeltaPhi = new TH1D("fhDiJetEMCalLeadingDeltaPhi","Leading EMCal anti-k_{T} cluster #Delta#phi in a dijet event",TCBins,fTPCPhiMin,0.5*fTPCPhiMax);
1136 fhDiJetEMCalLeadingDeltaPhi->GetXaxis()->SetTitle("#Delta#phi");
1137 fhDiJetEMCalLeadingDeltaPhi->GetYaxis()->SetTitle("1/N_{Events} dN/d#Delta#phi");
1138 fhDiJetEMCalLeadingDeltaPhi->Sumw2();
1141 // Background Density vs Centrality (fpRho...)
1142 fpRhoTotal = new TProfile("fpRhoTotal","Background Profile vs Centrality",CentralityBinMult*fCentralityBins,fCentralityLow,fCentralityUp);
1143 fpRhoTotal->GetXaxis()->SetTitle("Centrality (V0M)");
1144 fpRhoTotal->GetYaxis()->SetTitle("p_{T}/Area (GeV/c)");
1146 fpRhoNoLeading = new TProfile("fpRhoNoLeading","Background Profile vs Centrality",CentralityBinMult*fCentralityBins,fCentralityLow,fCentralityUp);
1147 fpRhoNoLeading->GetXaxis()->SetTitle("Centrality (V0M)");
1148 fpRhoNoLeading->GetYaxis()->SetTitle("p_{T}/Area (GeV/c)");
1150 fpRho1B = new TProfile("fpRho1B","Background Profile vs Centrality",CentralityBinMult*fCentralityBins,fCentralityLow,fCentralityUp);
1151 fpRho1B->GetXaxis()->SetTitle("Centrality (V0M)");
1152 fpRho1B->GetYaxis()->SetTitle("p_{T}/Area (GeV/c)");
1154 fpRho2B = new TProfile("fpRho2B","Background Profile vs Centrality",CentralityBinMult*fCentralityBins,fCentralityLow,fCentralityUp);
1155 fpRho2B->GetXaxis()->SetTitle("Centrality (V0M)");
1156 fpRho2B->GetYaxis()->SetTitle("p_{T}/Area (GeV/c)");
1158 fpRho2BCore = new TProfile("fpRho2BCore","Background Profile vs Centrality",CentralityBinMult*fCentralityBins,fCentralityLow,fCentralityUp);
1159 fpRho2BCore->GetXaxis()->SetTitle("Centrality (V0M)");
1160 fpRho2BCore->GetYaxis()->SetTitle("p_{T}/Area (GeV/c)");
1162 fpRho3 = new TProfile("fpRho3","Background Profile vs Centrality",CentralityBinMult*fCentralityBins,fCentralityLow,fCentralityUp);
1163 fpRho3->GetXaxis()->SetTitle("Centrality (V0M)");
1164 fpRho3->GetYaxis()->SetTitle("p_{T}/Area (GeV/c)");
1166 fpRho3NoJets = new TProfile("fpRho3NoJets","Background Profile vs Centrality",CentralityBinMult*fCentralityBins,fCentralityLow,fCentralityUp);
1167 fpRho3NoJets->GetXaxis()->SetTitle("Centrality (V0M)");
1168 fpRho3NoJets->GetYaxis()->SetTitle("p_{T}/Area (GeV/c)");
1170 fpRho3DiJets = new TProfile("fpRho3DiJets","Background Profile vs Centrality",CentralityBinMult*fCentralityBins,fCentralityLow,fCentralityUp);
1171 fpRho3DiJets->GetXaxis()->SetTitle("Centrality (V0M)");
1172 fpRho3DiJets->GetYaxis()->SetTitle("p_{T}/Area (GeV/c)");
1174 fpRho3Perp = new TProfile("fpRho3Perp","Background Profile vs Centrality",CentralityBinMult*fCentralityBins,fCentralityLow,fCentralityUp);
1175 fpRho3Perp->GetXaxis()->SetTitle("Centrality (V0M)");
1176 fpRho3Perp->GetYaxis()->SetTitle("p_{T}/Area (GeV/c)");
1178 fpRhoScale = new TProfile("fpRhoScale","Scaling Factor Profile vs Centrality",CentralityBinMult*fCentralityBins,fCentralityLow,fCentralityUp);
1179 fpRhoScale->GetXaxis()->SetTitle("Centrality (V0M)");
1180 fpRhoScale->GetYaxis()->SetTitle("Scale Factor");
1182 fpRhokT = new TProfile("fpRhokT","Background Profile vs Centrality",CentralityBinMult*fCentralityBins,fCentralityLow,fCentralityUp);
1183 fpRhokT->GetXaxis()->SetTitle("Centrality (V0M)");
1184 fpRhokT->GetYaxis()->SetTitle("p_{T}/Area (GeV/c)");
1186 fpRhoChargedkT = new TProfile("fpRhoChargedkT","Background Profile vs Centrality",CentralityBinMult*fCentralityBins,fCentralityLow,fCentralityUp);
1187 fpRhoChargedkT->GetXaxis()->SetTitle("Centrality (V0M)");
1188 fpRhoChargedkT->GetYaxis()->SetTitle("p_{T}/Area (GeV/c)");
1190 fpRhoScalekT = new TProfile("fpRhoScalekT","Scaling Factor Profile vs Centrality",CentralityBinMult*fCentralityBins,fCentralityLow,fCentralityUp);
1191 fpRhoScalekT->GetXaxis()->SetTitle("Centrality (V0M)");
1192 fpRhoScalekT->GetYaxis()->SetTitle("Scale Factor");
1195 fpEventMult = new TProfile("fpEventMult","Event Multiplcity vs Centrality",CentralityBinMult*fCentralityBins,fCentralityLow,fCentralityUp);
1196 fpEventMult->GetXaxis()->SetTitle("Centrality (V0M)");
1197 fpEventMult->GetYaxis()->SetTitle("Multiplicity");
1199 fpJetPtRhoTotal = new TProfile("fpJetPtRhoTotal","#rho_{0} Profile vs Leading jet p_{T}",JetPtBins,JetPtLow,JetPtUp);
1200 fpJetPtRhoTotal->GetXaxis()->SetTitle("Leading jet p_{T} (GeV/c)");
1201 fpJetPtRhoTotal->GetYaxis()->SetTitle("p_{T}/Area (GeV/c)");
1203 fpJetPtRhoNoLeading = new TProfile("fpJetPtRhoNoLeading","#rho_{1} Profile vs Leading jet p_{T}",JetPtBins,JetPtLow,JetPtUp);
1204 fpJetPtRhoNoLeading->GetXaxis()->SetTitle("Leading jet p_{T} (GeV/c)");
1205 fpJetPtRhoNoLeading->GetYaxis()->SetTitle("p_{T}/Area (GeV/c)");
1207 fpJetPtRhokT = new TProfile("fpJetPtRhokT","#rho_{k_{T}} Profile vs Leading jet p_{T}",JetPtBins,JetPtLow,JetPtUp);
1208 fpJetPtRhokT->GetXaxis()->SetTitle("Leading jet p_{T} (GeV/c)");
1209 fpJetPtRhokT->GetYaxis()->SetTitle("p_{T}/Area (GeV/c)");
1211 // QA::2D Energy Density Profiles for Tracks and CLusters
1212 fpTrackPtProfile = new TProfile2D("fpTrackPtProfile","2D Profile of track pT density throughout the TPC",TCBins,fTPCEtaMin,fTPCEtaMax,TCBins,fTPCPhiMin,fTPCPhiMax);
1213 fpTrackPtProfile->GetXaxis()->SetTitle("#eta");
1214 fpTrackPtProfile->GetYaxis()->SetTitle("#phi");
1215 fpTrackPtProfile->GetZaxis()->SetTitle("p_{T} density (GeV/Area)");
1217 fpClusterPtProfile = new TProfile2D("fpClusterPtProfile","2D Profile of cluster pT density throughout the EMCal",TCBins,fEMCalEtaMin,fEMCalEtaMax,TCBins,fEMCalPhiMin,fEMCalPhiMax);
1218 fpClusterPtProfile->GetXaxis()->SetTitle("#eta");
1219 fpClusterPtProfile->GetYaxis()->SetTitle("#phi");
1220 fpClusterPtProfile->GetZaxis()->SetTitle("p_{T} density (GeV/Area)");
1222 TString temp_name="";
1223 TString title_name="";
1226 fEtaProfileLow=-0.7;
1229 for (Int_t i=0;i<14;i++)
1231 temp_name=Form("fpJetEtaProfile%d",i);
1232 title_name=Form("Jet Energy Density #eta Profile for ALL p_{T}, 0-20 Centrality, and eta=%g to %g",(i-7)/10.,(i-6)/10.);
1234 fpJetEtaProfile[i]= new TProfile(temp_name,title_name,fEtaProfileBins,fEtaProfileLow,fEtaProfileUp);
1235 fpJetEtaProfile[i]->GetXaxis()->SetTitle("#eta");
1236 fpJetEtaProfile[i]->GetYaxis()->SetTitle("p_{T}/Area (GeV/c)");
1237 fOutput->Add(fpJetEtaProfile[i]);
1241 temp_name=Form("fpJetAbsEtaProfile%d",i);
1242 title_name=Form("Jet Energy Density #Delta #eta Profile for ALL p_{T}, 0-20 Centrality, and eta=%g to %g",(i-7)/10.,(i-6)/10.);
1244 fpJetAbsEtaProfile[i]= new TProfile(temp_name,title_name,fEtaProfileBins,0,2*fEtaProfileUp);
1245 fpJetAbsEtaProfile[i]->GetXaxis()->SetTitle("#Delta#eta");
1246 fpJetAbsEtaProfile[i]->GetYaxis()->SetTitle("p_{T}/Area (GeV/c)");
1247 fOutput->Add(fpJetAbsEtaProfile[i]);
1255 fEDProfilePtBins=100;
1256 fEDProfilePtLow=0.0;
1257 fEDProfilePtUp=100.0;
1258 fEDProfileEtaBins=4;
1259 fEDProfileEtaLow=-0.2;
1260 fEDProfileEtaUp=0.2;
1262 for (Int_t i=0;i<8;i++)
1264 temp_name=Form("fpChargedJetRProfile%d",i);
1265 title_name=Form("Charged Jet Energy Density Radius Profile for ALL p_{T}, 0-20 Centrality, and eta=%g to %g",(i-4)/10.,(i-3)/10.);
1267 fpChargedJetRProfile[i]= new TProfile(temp_name,title_name,fEDProfileRBins,fEDProfileRLow,fEDProfileRUp);
1268 fpChargedJetRProfile[i]->GetXaxis()->SetTitle("Radius");
1269 fpChargedJetRProfile[i]->GetYaxis()->SetTitle("p_{T}/Area (GeV/c)");
1270 fOutput->Add(fpChargedJetRProfile[i]);
1275 for (Int_t i=0;i<4;i++)
1277 temp_name=Form("fpJetRProfile%d",i);
1278 title_name=Form("Jet Energy Density Radius Profile for ALL p_{T}, 0-20 Centrality, and eta=%g to %g",(i-2)/10.,(i-1)/10.);
1280 fpJetRProfile[i]= new TProfile(temp_name,title_name,fEDProfileRBins,fEDProfileRLow,fEDProfileRUp);
1281 fpJetRProfile[i]->GetXaxis()->SetTitle("Radius");
1282 fpJetRProfile[i]->GetYaxis()->SetTitle("p_{T}/Area (GeV/c)");
1283 fOutput->Add(fpJetRProfile[i]);
1288 for (Int_t i=0;i<10;i++)
1290 temp_name=Form("fpChargedJetEDProfile%d0",i);
1291 title_name=Form("Charged Jet Energy Density Profile for %d0-%d0 Centrality",i,i+1);
1293 fpChargedJetEDProfile[i]= new TProfile3D(temp_name,title_name,fEDProfilePtBins,fEDProfilePtLow,fEDProfilePtUp,fEDProfileEtaBins+4,fEDProfileEtaLow-0.2,fEDProfileEtaUp+0.2,fEDProfileRBins,fEDProfileRLow,fEDProfileRUp);
1294 fpChargedJetEDProfile[i]->GetXaxis()->SetTitle("p_{T} (GeV/c)");
1295 fpChargedJetEDProfile[i]->GetYaxis()->SetTitle("Pseudorapidity");
1296 fpChargedJetEDProfile[i]->GetZaxis()->SetTitle("Radius");
1297 fOutput->Add(fpChargedJetEDProfile[i]);
1301 temp_name=Form("fpJetEDProfile%d0",i);
1302 title_name=Form("Jet Energy Density Profile for %d0-%d0 Centrality",i,i+1);
1304 fpJetEDProfile[i]= new TProfile3D(temp_name,title_name,fEDProfilePtBins,fEDProfilePtLow,fEDProfilePtUp,fEDProfileEtaBins,fEDProfileEtaLow,fEDProfileEtaUp,fEDProfileRBins,fEDProfileRLow,fEDProfileRUp);
1305 fpJetEDProfile[i]->GetXaxis()->SetTitle("p_{T} (GeV/c)");
1306 fpJetEDProfile[i]->GetYaxis()->SetTitle("Pseudorapidity");
1307 fpJetEDProfile[i]->GetZaxis()->SetTitle("Radius");
1308 fOutput->Add(fpJetEDProfile[i]);
1313 fOutput->Add(fhTrackPt);
1314 fOutput->Add(fhTrackEta);
1315 fOutput->Add(fhTrackPhi);
1316 fOutput->Add(fhTrackEtaPhi);
1317 fOutput->Add(fhClusterPt);
1318 fOutput->Add(fhClusterEta);
1319 fOutput->Add(fhClusterPhi);
1320 fOutput->Add(fhClusterEtaPhi);
1321 fOutput->Add(fhCentrality);
1322 fOutput->Add(fhBckgMult);
1323 fOutput->Add(fhBckgFluc);
1324 fOutput->Add(fhChargedJetPt);
1325 fOutput->Add(fhChargedJetPtAreaCut);
1326 fOutput->Add(fhJetPtEMCal);
1327 fOutput->Add(fhJetPtEMCalAreaCut);
1328 fOutput->Add(fhJetPtEMCalAreaCutSignal);
1329 fOutput->Add(fhJetPtTPC);
1330 fOutput->Add(fhJetPtTPCAreaCut);
1331 fOutput->Add(fhJetPtArea);
1332 fOutput->Add(fhRhoTotal);
1333 fOutput->Add(fhRhoNoLeading);
1334 fOutput->Add(fhJetTPtRhoTotal);
1335 fOutput->Add(fhJetTPtRhoTotalSignal);
1336 fOutput->Add(fhJetTPtRhoNoLeading);
1337 fOutput->Add(fhJetTPtRhoNoLeadingSignal);
1338 fOutput->Add(fhJetTrigR1A);
1339 fOutput->Add(fhJetTPt1B);
1340 fOutput->Add(fhJetTPt1BSignal);
1341 fOutput->Add(fhEMCalBckg1B);
1342 fOutput->Add(fhRho1B);
1343 fOutput->Add(fhJetTPt1C);
1344 fOutput->Add(fhRho1C);
1345 fOutput->Add(fhEMCalBckg1C);
1346 fOutput->Add(fhEMCalJet2A);
1347 fOutput->Add(fh020EMCalJet2A);
1348 fOutput->Add(fhJetTPt2B);
1349 fOutput->Add(fhEMCalBckg2B);
1350 fOutput->Add(fhRho2B);
1351 fOutput->Add(fhRho3);
1352 fOutput->Add(fhJetTPt3);
1353 fOutput->Add(fhDeltaPtTotal);
1354 fOutput->Add(fhDeltaPtNoLeading);
1355 fOutput->Add(fhDeltaPt1B);
1356 fOutput->Add(fhJetConstituentPt);
1357 fOutput->Add(fhDeltaRho01);
1358 fOutput->Add(fhEMCalCellCounts);
1359 fOutput->Add(fh020RhoTotal);
1360 fOutput->Add(fh020RhoNoLeading);
1361 fOutput->Add(fh020Rho1B);
1362 fOutput->Add(fh020Rho2B);
1363 fOutput->Add(fh020Rho3);
1364 fOutput->Add(fh020JetPtEMCal);
1365 fOutput->Add(fh020JetPtEMCalAreaCut);
1366 fOutput->Add(fh020JetPtEMCalAreaCutSignal);
1367 fOutput->Add(fh020JetTPtRhoTotal);
1368 fOutput->Add(fh020JetTPtRhoTotalSignal);
1369 fOutput->Add(fh020JetTPtRhoNoLeading);
1370 fOutput->Add(fh020JetTPtRhoNoLeadingSignal);
1371 fOutput->Add(fh020JetTPt1B);
1372 fOutput->Add(fh020JetTPt1BSignal);
1373 fOutput->Add(fh020JetTPt1C);
1374 fOutput->Add(fh020JetTPt2B);
1375 fOutput->Add(fh020JetTPt3);
1376 fOutput->Add(fhDeltaPt2B);
1377 fOutput->Add(fhDeltaPtkT);
1378 fOutput->Add(fh020DiJetAsy);
1379 fOutput->Add(fh020RhokT);
1380 fOutput->Add(fh020EMCalkTClusters);
1381 fOutput->Add(fh020EMCalAkTJets);
1382 fOutput->Add(fh020DiJetDeltaPhi);
1383 fOutput->Add(fhDiJetEMCalLeadingPt);
1384 fOutput->Add(fhDiJetEMCalLeadingDeltaPhi);
1385 fOutput->Add(fhJetPtCenEMCal);
1386 fOutput->Add(fhJetPtCenEMCalAreaCut);
1387 fOutput->Add(fhJetPtCenEMCalAreaCutSignal);
1388 fOutput->Add(fhJetTPtCenRhoTotal);
1389 fOutput->Add(fhJetTPtCenRhoTotalSignal);
1390 fOutput->Add(fhJetTPtCenRhoNoLeading);
1391 fOutput->Add(fhJetTPtCenRhoNoLeadingSignal);
1392 fOutput->Add(fhJetTPtCen1B);
1393 fOutput->Add(fhJetTPtCen1BSignal);
1394 fOutput->Add(fhJetTPtCen1C);
1395 fOutput->Add(fhJetTPtCen2B);
1396 fOutput->Add(fhJetTPtCen3);
1397 fOutput->Add(fhDiJetCenAsy);
1398 fOutput->Add(fhDiJetCenDeltaPhi);
1399 fOutput->Add(fhEMCalCenJet2A);
1400 fOutput->Add(fhDeltaRho0DiJet);
1401 fOutput->Add(fh020Rho2BCore);
1402 fOutput->Add(fhRho2BCore);
1403 fOutput->Add(fh020Rho3NoJets);
1404 fOutput->Add(fh020Rho3DiJets);
1405 fOutput->Add(fhRho3NoJets);
1406 fOutput->Add(fhRho3DiJets);
1407 fOutput->Add(fh020Rho3Perp);
1408 fOutput->Add(fhRho3Perp);
1410 fOutput->Add(fpEventMult);
1411 fOutput->Add(fpRhoTotal);
1412 fOutput->Add(fpRhoNoLeading);
1413 fOutput->Add(fpRho1B);
1414 fOutput->Add(fpRho2B);
1415 fOutput->Add(fpRho2BCore);
1416 fOutput->Add(fpRho3);
1417 fOutput->Add(fpRho3NoJets);
1418 fOutput->Add(fpRho3DiJets);
1419 fOutput->Add(fpRho3Perp);
1420 fOutput->Add(fpRhoScale);
1421 fOutput->Add(fpRhokT);
1422 fOutput->Add(fpRhoChargedkT);
1423 fOutput->Add(fpRhoScalekT);
1424 fOutput->Add(fpJetPtRhoTotal);
1425 fOutput->Add(fpJetPtRhoNoLeading);
1426 fOutput->Add(fpJetPtRhokT);
1428 fOutput->Add(fpTrackPtProfile);
1429 fOutput->Add(fpClusterPtProfile);
1431 // Post data for ALL output slots >0 here,
1432 // To get at least an empty histogram
1433 // 1 is the outputnumber of a certain weg of task 1
1434 PostData(1, fOutput);
1437 void AliAnalysisTaskFullpAJets::UserExecOnce()
1439 // Get the event tracks from PicoTracks
1440 TString track_name="PicoTracks";
1441 fmyTracks =dynamic_cast <TClonesArray*>(InputEvent()->FindListObject(track_name));
1443 // Get the event caloclusters from CaloClustersCorr
1444 TString cluster_name="CaloClustersCorr";
1445 fmyClusters =dynamic_cast <TClonesArray*>(InputEvent()->FindListObject(cluster_name));
1448 TString jet_algorithm=Form("Jet_AKTChargedR0%d0_PicoTracks_pT0150",fRJET);
1449 fmyAKTChargedJets =dynamic_cast <TClonesArray*>(InputEvent()->FindListObject(jet_algorithm));
1451 jet_algorithm=Form("Jet_KTChargedR0%d0_PicoTracks_pT0150",fRJET);
1452 fmyKTChargedJets =dynamic_cast <TClonesArray*>(InputEvent()->FindListObject(jet_algorithm));
1454 // Get the full jets
1455 jet_algorithm=Form("Jet_AKTFullR0%d0_PicoTracks_pT0150_CaloClustersCorr_ET0300",fRJET);
1456 fmyAKTFullJets =dynamic_cast <TClonesArray*>(InputEvent()->FindListObject(jet_algorithm));
1458 jet_algorithm=Form("Jet_KTFullR0%d0_PicoTracks_pT0150_CaloClustersCorr_ET0300",fRJET);
1459 fmyKTFullJets =dynamic_cast <TClonesArray*>(InputEvent()->FindListObject(jet_algorithm));
1462 fIsInitialized=kTRUE;
1464 //________________________________________________________________________
1465 void AliAnalysisTaskFullpAJets::UserExec(Option_t *)
1467 if (fIsInitialized==kFALSE)
1472 // Get pointer to reconstructed event
1473 AliVEvent *event = InputEvent();
1476 AliError("Pointer == 0, this can not happen!");
1480 AliESDEvent* esd = dynamic_cast<AliESDEvent*>(event);
1481 AliAODEvent* aod = dynamic_cast<AliAODEvent*>(event);
1485 fEventCentrality=esd->GetCentrality()->GetCentralityPercentile("V0M");
1487 if (esd->GetPrimaryVertex()->GetNContributors()<1 || (TMath::Abs(esd->GetPrimaryVertex()->GetZ())>fVertexWindow))
1491 if (TMath::Sqrt(TMath::Power(esd->GetPrimaryVertex()->GetX(),2)+TMath::Power(esd->GetPrimaryVertex()->GetY(),2))>fVertexMaxR)
1496 esd->GetPrimaryVertex()->GetXYZ(fvertex);
1500 //cout<<"Hello AOD"<<endl;
1502 fEventCentrality=aod->GetCentrality()->GetCentralityPercentile("V0M");
1504 if (aod->GetPrimaryVertex()->GetNContributors()<1 || (TMath::Abs(aod->GetPrimaryVertex()->GetZ())>fVertexWindow))
1508 if (TMath::Sqrt(TMath::Power(aod->GetPrimaryVertex()->GetX(),2)+TMath::Power(aod->GetPrimaryVertex()->GetY(),2))>fVertexMaxR)
1513 aod->GetPrimaryVertex()->GetXYZ(fvertex);
1517 AliError("Cannot get AOD/ESD event. Rejecting Event");
1521 // Make sure Centrality isn't exactly 100% (to avoid bin filling errors in profile plots. Make it 99.99
1522 if (fEventCentrality>99.99)
1524 fEventCentrality=99.99;
1526 fhCentrality->Fill(fEventCentrality);
1528 fnTracks = fmyTracks->GetEntries();
1529 //cout<<"n Tracks:"<<fnTracks<<endl;
1530 // Reject any event that doesn't have any tracks, i.e. TPC is off
1533 AliWarning("No PicoTracks, Rejecting Event");
1537 fnClusters = fmyClusters->GetEntries();
1538 //cout<<"n Cluster:"<<fnClusters<<endl;
1541 AliInfo("No Corrected CaloClusters, using only charged jets");
1546 JetPtChargedProfile();
1547 DeleteArrays(kFALSE);
1561 EstimateTotalBackground();
1562 EstimateBackgoundMinusLJet();
1569 if (IsDiJetEvent()==kTRUE)
1579 // Compute Jet Energy Density Profile
1580 JetPtChargedProfile();
1584 // Delete Dynamic Arrays
1585 DeleteArrays(kTRUE);
1588 PostData(1, fOutput);
1591 //________________________________________________________________________
1592 void AliAnalysisTaskFullpAJets::Terminate(Option_t *) //specify what you want to have done
1594 // Called once at the end of the query. Done nothing here.
1597 /////////////////////////////////////////////////////////////////////////////////////////
1598 ///////////////// User Defined Sub_Routines ///////////////////////////////////////
1599 /////////////////////////////////////////////////////////////////////////////////////////
1601 void AliAnalysisTaskFullpAJets::TrackHisto()
1603 // Fill track histograms: Phi,Eta,Pt
1606 TH2D *hdummypT= new TH2D("hdummypT","",TCBins,fTPCEtaMin,fTPCEtaMax,TCBins,fTPCPhiMin,fTPCPhiMax); //!
1608 for (i=0;i<fnTracks;i++)
1610 AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i);
1611 fhTrackPt->Fill(vtrack->Pt());
1612 fhTrackEta->Fill(vtrack->Eta());
1613 fhTrackPhi->Fill(vtrack->Phi());
1614 fhTrackEtaPhi->Fill(vtrack->Eta(),vtrack->Phi());
1615 hdummypT->Fill(vtrack->Eta(),vtrack->Phi(),vtrack->Pt());
1617 for (i=1;i<=TCBins;i++)
1619 for (j=1;j<=TCBins;j++)
1621 fpTrackPtProfile->Fill(hdummypT->GetXaxis()->GetBinCenter(i),hdummypT->GetYaxis()->GetBinCenter(j),fTPCArea*TMath::Power(TCBins,-2)*hdummypT->GetBinContent(i,j));
1627 void AliAnalysisTaskFullpAJets::ClusterHisto()
1629 // Fill cluster histograms: Phi,Eta,Pt
1632 TH2D *hdummypT= new TH2D("hdummypT","",TCBins,fEMCalEtaMin,fEMCalEtaMax,TCBins,fEMCalPhiMin,fEMCalPhiMax); //!
1633 AliEMCALGeometry *myAliEMCGeo = AliEMCALGeometry::GetInstance();
1636 for (i=0;i<fnClusters;i++)
1638 AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(i);
1639 TLorentzVector *cluster_vec = new TLorentzVector;
1640 vcluster->GetMomentum(*cluster_vec,fvertex);
1642 fhClusterPt->Fill(cluster_vec->Pt());
1643 fhClusterEta->Fill(cluster_vec->Eta());
1644 fhClusterPhi->Fill(cluster_vec->Phi());
1645 fhClusterEtaPhi->Fill(cluster_vec->Eta(),cluster_vec->Phi());
1646 hdummypT->Fill(cluster_vec->Eta(),cluster_vec->Phi(),cluster_vec->Pt());
1647 myAliEMCGeo->GetAbsCellIdFromEtaPhi(cluster_vec->Eta(),cluster_vec->Phi(),myCellID);
1648 fhEMCalCellCounts->Fill(myCellID);
1649 //cout<<"Cluster ID:"<<i<<" (Eta,Phi): ("<<cluster_vec->Eta()<<","<<cluster_vec->Phi()<<") Cell ID:"<<myCellID<<endl;
1652 for (i=1;i<=TCBins;i++)
1654 for (j=1;j<=TCBins;j++)
1656 fpClusterPtProfile->Fill(hdummypT->GetXaxis()->GetBinCenter(i),hdummypT->GetYaxis()->GetBinCenter(j),fEMCalArea*TMath::Power(TCBins,-2)*hdummypT->GetBinContent(i,j));
1659 //myAliEMCGeo->GetAbsCellIdFromEtaPhi(0.38,2.88,myCellID);
1660 //cout<<"Cell ID Test:"<<myCellID<<endl;
1664 void AliAnalysisTaskFullpAJets::EventHistos()
1667 Double_t E_tracks_total=0.;
1668 Double_t E_caloclusters_total=0.;
1669 TRandom3 u(time(NULL));
1671 Double_t Eta_Center=0.5*(fEMCalEtaMin+fEMCalEtaMax);
1672 Double_t Phi_Center=0.5*(fEMCalPhiMin+fEMCalPhiMax);
1676 TLorentzVector *dummy= new TLorentzVector;
1678 for (j=0;j<fnBckgClusters;j++)
1683 E_caloclusters_total=0.;
1684 dummy->SetPtEtaPhiE(1,u.Uniform(Eta_Center-fJetR,Eta_Center+fJetR),u.Uniform(Phi_Center-fJetR,Phi_Center+fJetR),0);
1686 // Loop over all tracks
1687 for (i=0;i<fnTracks;i++)
1689 AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i);
1690 if (IsInEMCal(vtrack->Phi(),vtrack->Eta())==kTRUE)
1693 TLorentzVector *track_vec = new TLorentzVector;
1694 track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E());
1695 if (dummy->DeltaR(*track_vec)<fJetR)
1698 E_tracks_total+=vtrack->Pt();
1704 // Loop over all caloclusters
1705 for (i=0;i<fnClusters;i++)
1707 AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(i);
1708 TLorentzVector *cluster_vec = new TLorentzVector;
1709 vcluster->GetMomentum(*cluster_vec,fvertex);
1711 if (dummy->DeltaR(*cluster_vec)<fJetR)
1714 E_caloclusters_total+=vcluster->E();
1719 if (fEventCentrality<=20)
1721 fhBckgMult->Fill(clus_mult);
1722 fhBckgFluc->Fill(E_tracks_total+E_caloclusters_total);
1723 fRCBckgFluc[j]=E_tracks_total+E_caloclusters_total;
1727 fpEventMult->Fill(fEventCentrality,event_mult);
1731 void AliAnalysisTaskFullpAJets::InitChargedJets()
1733 // Preliminary Jet Placement and Selection Cuts
1736 Double_t delta_phi=0.0;
1738 fnAKTChargedJets = fmyAKTChargedJets->GetEntries();
1739 fnKTChargedJets = fmyKTChargedJets->GetEntries();
1740 fJetPtChargedCutID = new Int_t[fnAKTChargedJets+1];
1741 fJetkTTPCFullID = new Int_t[fnKTChargedJets+1];
1742 fnJetsChargedPtCut=0;
1744 fPtChargedMaxID=-1; // Initialize to not have any jet(s) fully contained within
1747 fInTPCChargedFull = new Bool_t[fnAKTChargedJets+1];
1749 for (i=0;i<fnAKTChargedJets;i++)
1751 AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTChargedJets->At(i);
1753 // Determine where the jet is
1754 fInTPCChargedFull[i]=IsInTPC(fJetR,myJet->Phi(),myJet->Eta(),kTRUE);
1756 // Fill Histograms with appropriate Jet Kinematics
1757 if (fInTPCChargedFull[i]==kTRUE)
1759 fhChargedJetPt->Fill(myJet->Pt());
1761 if (myJet->Pt()>=fPtChargedMax)
1763 fPtChargedMax=myJet->Pt();
1766 // Now determine if the jet is above the EMCal Jet Pt Threshold
1767 if (myJet->Area()>=fJetAreaThreshold)
1769 fhChargedJetPtAreaCut->Fill(myJet->Pt());
1771 if (myJet->Pt()>=fTPCJetThreshold && myJet->Area()>=fJetAreaThreshold)
1773 fJetPtChargedCutID[fnJetsChargedPtCut]=i;
1774 fnJetsChargedPtCut++;
1779 // Fill dijet delta phi plots
1780 if (fnJetsChargedPtCut>1)
1782 AliEmcalJet *myhJet =(AliEmcalJet*) fmyAKTChargedJets->At(fPtChargedMaxID);
1784 while (j<fnJetsChargedPtCut)
1786 if (fJetPtChargedCutID[j]==fPtChargedMaxID)
1792 AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTChargedJets->At(fJetPtChargedCutID[j]);
1794 delta_phi=TMath::Min(TMath::Abs(myhJet->Phi()-myJet->Phi()),2*TMath::Pi()-TMath::Abs(myhJet->Phi()-myJet->Phi()));
1795 fhDiJetCenDeltaPhi->Fill(delta_phi,fEventCentrality);
1796 if (fEventCentrality<=20)
1798 fh020DiJetDeltaPhi->Fill(delta_phi);
1806 // kT jets. Used for calculating rho
1808 for (i=0;i<fnKTChargedJets;i++)
1810 AliEmcalJet *myJet =(AliEmcalJet*) fmyKTChargedJets->At(i);
1812 if (IsInTPC(fJetR,myJet->Phi(),myJet->Eta(),kTRUE)==kTRUE)
1814 fJetkTTPCFullID[fnJetskTTPCFull]=i;
1819 if (fnJetskTTPCFull>=2)
1821 nkT_mid=fnJetskTTPCFull/2;
1823 else if (fnJetskTTPCFull==1)
1830 AliEmcalJet *myJet =(AliEmcalJet*) fmyKTChargedJets->At(fJetkTTPCFullID[nkT_mid]);
1831 kTRho=myJet->Pt()/myJet->Area();
1832 fRhokTCharged=kTRho;
1833 fpRhoChargedkT->Fill(fEventCentrality,kTRho);
1837 void AliAnalysisTaskFullpAJets::InitFullJets()
1839 // Preliminary Jet Placement and Selection Cuts
1841 Int_t EMCalFullCount=0;
1844 fnAKTFullJets = fmyAKTFullJets->GetEntries();
1845 fnKTFullJets = fmyKTFullJets->GetEntries();
1847 fJetPtCutID = new Int_t[fnAKTFullJets+1];
1848 fJetPtTPCCutID= new Int_t[fnAKTFullJets+1];
1849 fJetPtTotalCutID= new Int_t[fnAKTFullJets+1];
1850 fJetkTEMCalFullID= new Int_t[fnKTFullJets+1];
1855 fnJetskTEMCalFull=0;
1857 fPtMaxID=-1; // Initialize to not have any jet(s) in EMCal
1858 fPtFullMaxID=-1; // Initialize to not have any jet(s) fully contained within EMCal
1859 fPtTPCMaxID=-1; // Initialize to not have any jet(s) in TPC
1860 fPtFullTPCMaxID=-1; // Initialize to not have any jet(s) fully contained within TPC
1861 fPtTotalMaxID=-1; // Initialize to not have any jet(s) in Total Acceptance
1869 fInEMCal = new Bool_t[fnAKTFullJets+1];
1870 fInEMCalFull = new Bool_t[fnAKTFullJets+1];
1871 fInTPCFull = new Bool_t[fnAKTFullJets+1];
1873 for (i=0;i<fnAKTFullJets;i++)
1875 AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTFullJets->At(i);
1877 // Area distribution of the jet
1878 fhJetPtArea->Fill(myJet->Pt(),myJet->Area());
1880 // Determine where the jet is
1881 fInEMCal[i]=IsInEMCalPart(fJetR,myJet->Phi(),myJet->Eta());
1882 fInEMCalFull[i]=IsInEMCalFull(fJetR,myJet->Phi(),myJet->Eta());
1883 fInTPCFull[i]=IsInTPCFull(fJetR,myJet->Phi(),myJet->Eta());
1885 // Fill Histograms with appropriate Jet Kinematics
1886 if (fInEMCal[i]==kTRUE)
1889 if (myJet->Pt()>fPtMax)
1896 if (fInEMCalFull[i]==kTRUE)
1898 // Fill Jet Pt Distribution
1899 fhJetPtEMCal->Fill(myJet->Pt());
1900 fhJetPtCenEMCal->Fill(myJet->Pt(),fEventCentrality);
1901 if (fEventCentrality<=20)
1903 fh020JetPtEMCal->Fill(myJet->Pt());
1905 if (myJet->Area()>=fJetAreaThreshold)
1907 fhJetPtEMCalAreaCut->Fill(myJet->Pt());
1908 fhJetPtCenEMCalAreaCut->Fill(myJet->Pt(),fEventCentrality);
1909 if (fEventCentrality<=20)
1911 fh020JetPtEMCalAreaCut->Fill(myJet->Pt());
1914 if (myJet->Pt()>=fEMCalJetThreshold)
1916 fhJetPtEMCalAreaCutSignal->Fill(myJet->Pt());
1917 fhJetPtCenEMCalAreaCutSignal->Fill(myJet->Pt(),fEventCentrality);
1918 if (fEventCentrality<=20)
1920 fh020JetPtEMCalAreaCutSignal->Fill(myJet->Pt());
1925 if (myJet->Pt()>=fPtFullMax)
1927 fPtFullMax=myJet->Pt();
1931 // Now determine if the jet is above the EMCal Jet Pt Threshold
1932 if (myJet->Pt()>=fEMCalJetThreshold)
1934 fJetPtCutID[fnJetsPtCut]=i;
1942 if (myJet->Pt()>fPtTPCMax)
1944 fPtTPCMax=myJet->Pt();
1947 if (fInTPCFull[i]==kTRUE)
1949 // Jet Pt distribution
1950 fhJetPtTPC->Fill(myJet->Pt());
1951 if (myJet->Area()>=fJetAreaThreshold)
1953 fhJetPtTPCAreaCut->Fill(myJet->Pt());
1956 if (myJet->Pt()>fPtFullTPCMax)
1958 fPtFullTPCMax=myJet->Pt();
1963 // Now determine if the jet is above the TPC Jet Pt Threshold
1964 if (myJet->Pt()>=fTPCJetThreshold)
1966 fJetPtTPCCutID[fnJetsPtTPCCut]=i;
1970 // Find all jet(s) above the threshold within the Detector (TPC+EMCal; No Fudicial cut) for Plan2
1971 if (myJet->Pt()>fPtTotalMax)
1973 fPtTotalMax=myJet->Pt();
1976 // And if they are above the threshold?
1977 if (myJet->Pt()>=fTPCJetThreshold)
1979 fJetPtTotalCutID[fnJetsPtTotalCut]=i;
1983 fh020EMCalAkTJets->Fill(EMCalFullCount);
1987 // kT jets. Used for calculating rho
1989 for (i=0;i<fnKTFullJets;i++)
1991 AliEmcalJet *myJet =(AliEmcalJet*) fmyKTFullJets->At(i);
1993 if (IsInEMCalFull(fJetR,myJet->Phi(),myJet->Eta())==kTRUE)
1995 fJetkTEMCalFullID[fnJetskTEMCalFull]=i;
1996 fnJetskTEMCalFull++;
1999 if (fEventCentrality<=20)
2001 fh020EMCalkTClusters->Fill(fnJetskTEMCalFull);
2004 if (fnJetskTEMCalFull>=2)
2006 nkT_mid=fnJetskTEMCalFull/2;
2008 else if (fnJetskTEMCalFull==1)
2015 AliEmcalJet *myJet =(AliEmcalJet*) fmyKTFullJets->At(fJetkTEMCalFullID[nkT_mid]);
2016 kTRho=myJet->Pt()/myJet->Area();
2018 fpRhokT->Fill(fEventCentrality,kTRho);
2019 fpJetPtRhokT->Fill(fPtFullMax,kTRho);
2020 if (fRhokTCharged!=0.0)
2022 fpRhoScalekT->Fill(fEventCentrality,fRhokTTotal/fRhokTCharged);
2024 if (fEventCentrality<=20)
2026 FillBckgFlucDeltaPt(fhDeltaPtkT,kTRho);
2027 fh020RhokT->Fill(kTRho);
2032 void AliAnalysisTaskFullpAJets::EstimateTotalBackground()
2035 Double_t E_tracks_total=0.;
2036 Double_t E_caloclusters_total=0.;
2037 Double_t EMCal_rho=0.;
2040 // Loop over all tracks
2041 for (i=0;i<fnTracks;i++)
2043 AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i);
2044 if (IsInEMCal(vtrack->Phi(),vtrack->Eta())==kTRUE)
2046 E_tracks_total+=vtrack->Pt();
2050 // Loop over all caloclusters
2051 for (i=0;i<fnClusters;i++)
2053 AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(i);
2054 E_caloclusters_total+=vcluster->E();
2057 // Calculate the mean Background density
2058 EMCal_rho=(E_tracks_total+E_caloclusters_total)/fEMCalArea;
2059 fRhoAkTTotal=EMCal_rho;
2062 fhRhoTotal->Fill(EMCal_rho,fEventCentrality);
2063 fpRhoTotal->Fill(fEventCentrality,EMCal_rho);
2064 fpJetPtRhoTotal->Fill(fPtFullMax,EMCal_rho);
2065 FillFullCorrJetPt(fhJetTPtRhoTotal,EMCal_rho,kFALSE);
2066 FillFullCorrJetPt(fhJetTPtRhoTotalSignal,EMCal_rho,kTRUE);
2067 fDeltaRho01=EMCal_rho;
2069 FillFullCorrJetPt(fhJetTPtCenRhoTotal,EMCal_rho,kFALSE);
2070 FillFullCorrJetPt(fhJetTPtCenRhoTotalSignal,EMCal_rho,kTRUE);
2071 // Fill Background fluctuation spectrum F(A)
2072 if (fEventCentrality<=20)
2074 FillFullCorrJetPt(fh020JetTPtRhoTotal,EMCal_rho,kFALSE);
2075 FillFullCorrJetPt(fh020JetTPtRhoTotalSignal,EMCal_rho,kTRUE);
2076 FillBckgFlucDeltaPt(fhDeltaPtTotal,EMCal_rho);
2077 fh020RhoTotal->Fill(EMCal_rho);
2081 void AliAnalysisTaskFullpAJets::EstimateBackgoundMinusLJet()
2084 Double_t E_tracks_total=0.;
2085 Double_t E_caloclusters_total=0.;
2086 Double_t EMCal_rho=0.;
2088 if (fPtFullMax>=fEMCalJetThreshold)
2090 AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTFullJets->At(fPtMaxID);
2091 TLorentzVector *temp_jet= new TLorentzVector;
2092 myJet->GetMom(*temp_jet);
2094 // Loop over all tracks
2095 for (i=0;i<fnTracks;i++)
2097 AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i);
2098 if (IsInEMCal(vtrack->Phi(),vtrack->Eta())==kTRUE)
2100 TLorentzVector *track_vec = new TLorentzVector;
2101 track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E());
2102 if (temp_jet->DeltaR(*track_vec)>fJetR)
2104 E_tracks_total+=vtrack->Pt();
2110 // Loop over all caloclusters
2111 for (i=0;i<fnClusters;i++)
2113 AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(i);
2114 TLorentzVector *cluster_vec = new TLorentzVector;
2115 vcluster->GetMomentum(*cluster_vec,fvertex);
2116 if (temp_jet->DeltaR(*cluster_vec)>fJetR)
2118 E_caloclusters_total+=vcluster->E();
2123 // Calculate the mean Background density
2124 EMCal_rho=(E_tracks_total+E_caloclusters_total)/(fEMCalArea-TMath::Pi()*TMath::Power(fJetR,2));
2126 else // i.e. No signal jets-> same as total background density
2128 // Loop over all tracks
2129 for (i=0;i<fnTracks;i++)
2131 AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i);
2132 if (IsInEMCal(vtrack->Phi(),vtrack->Eta())==kTRUE)
2134 E_tracks_total+=vtrack->Pt();
2138 // Loop over all caloclusters
2139 for (i=0;i<fnClusters;i++)
2141 AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(i);
2142 E_caloclusters_total+=vcluster->E();
2144 // Calculate the mean Background density
2145 EMCal_rho=(E_tracks_total+E_caloclusters_total)/fEMCalArea;
2149 fhRhoNoLeading->Fill(EMCal_rho,fEventCentrality);
2150 fpRhoNoLeading->Fill(fEventCentrality,EMCal_rho);
2151 fpJetPtRhoNoLeading->Fill(fPtFullMax,EMCal_rho);
2152 FillFullCorrJetPt(fhJetTPtRhoNoLeading,EMCal_rho,kFALSE);
2153 FillFullCorrJetPt(fhJetTPtRhoNoLeadingSignal,EMCal_rho,kTRUE);
2154 fDeltaRho01-=EMCal_rho;
2155 FillFullDeltaRho(fhDeltaRho01,fDeltaRho01,kTRUE);
2158 FillFullCorrJetPt(fhJetTPtCenRhoNoLeading,EMCal_rho,kFALSE);
2159 FillFullCorrJetPt(fhJetTPtCenRhoNoLeadingSignal,EMCal_rho,kTRUE);
2160 // Fill Background fluctuation spectrum F(A)
2161 if (fEventCentrality<=20)
2163 FillFullCorrJetPt(fh020JetTPtRhoNoLeading,EMCal_rho,kFALSE);
2164 FillFullCorrJetPt(fh020JetTPtRhoNoLeadingSignal,EMCal_rho,kTRUE);
2165 FillBckgFlucDeltaPt(fhDeltaPtNoLeading,EMCal_rho);
2166 fh020RhoNoLeading->Fill(EMCal_rho);
2170 void AliAnalysisTaskFullpAJets::Method1A()
2175 if (fPtMax>=fEMCalJetThreshold && fnAKTFullJets>1)
2177 TLorentzVector *high_jet= new TLorentzVector;
2178 TLorentzVector *temp_jet= new TLorentzVector;
2180 AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTFullJets->At(fPtMaxID);
2181 myJet->GetMom(*high_jet);
2182 //cout<<"HJ Phi="<<high_jet->Phi()<<" HJ Eta="<<high_jet->Eta()<<endl;
2183 for(i=0;i<fnAKTFullJets;i++)
2185 if (i!=fPtMaxID && fInEMCalFull[i]==kTRUE)
2187 AliEmcalJet *myBckg =(AliEmcalJet*) fmyAKTFullJets->At(i);
2188 myBckg->GetMom(*temp_jet);
2189 delta_R=temp_jet->DeltaR(*high_jet);
2190 //cout<<"TJ Phi="<<temp_jet->Phi()<<" TJ Eta="<<temp_jet->Eta()<<endl;
2191 //cout<<"Delta R="<<delta_R<<endl;
2192 if (delta_R>=(2*fJetR))
2194 fhJetTrigR1A->Fill(myBckg->Pt(),fPtMax,delta_R);
2203 void AliAnalysisTaskFullpAJets::Method1B()
2206 Bool_t track_away_from_jet;
2207 Bool_t cluster_away_from_jet;
2208 Double_t E_tracks_total=0.;
2209 Double_t E_caloclusters_total=0.;
2210 Double_t EMCal_rho=0.;
2211 Double_t jet_area_total=0.;
2213 // First, sum all tracks within the EMCal that are away from jet(s) above Pt Threshold
2215 for (i=0;i<fnTracks;i++)
2217 // First, check if track is in the EMCal!!
2218 AliVTrack* vtrack = (AliVTrack*) fmyTracks->At(i); // pointer to reconstructed to track
2219 if (IsInEMCal(vtrack->Phi(),vtrack->Eta())==kTRUE)
2223 E_tracks_total+=vtrack->Pt();
2227 track_away_from_jet=kTRUE;
2229 TLorentzVector *track_vec = new TLorentzVector;
2230 track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E());
2231 //cout<<endl<<endl<<endl<<"Event # :"<<fnEvents+1<<" njets="<<fnAKTFullJets<<" Threshold EMCal jets="<<fnJetsPtCut<<" tracks # :"<<i<<","<<fnTracks<<endl;
2232 while (track_away_from_jet==kTRUE && j<fnJetsPtCut)
2234 //cout<<"j="<<j<<endl<<endl<<endl;
2236 TLorentzVector *jet_vec= new TLorentzVector;
2237 AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTFullJets->At(fJetPtCutID[j]);
2238 myJet->GetMom(*jet_vec);
2239 if (track_vec->DeltaR(*jet_vec)<=(fJetR))
2241 track_away_from_jet=kFALSE;
2246 if (track_away_from_jet==kTRUE)
2248 E_tracks_total+=vtrack->Pt();
2255 // Next, sum all CaloClusters within the EMCal (obviously all clusters must be within EMCal!!) that are away from jet(s) above Pt Threshold
2257 for (i=0;i<fnClusters;i++)
2259 AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(i); // pointer to reconstructed to cluster
2262 E_caloclusters_total+=vcluster->E();
2266 cluster_away_from_jet=kTRUE;
2269 TLorentzVector *cluster_vec = new TLorentzVector;
2270 vcluster->GetMomentum(*cluster_vec,fvertex);
2271 //cout<<endl<<endl<<endl<<"Event # :"<<fnEvents+1<<" njets="<<fnAKTFullJets<<" Threshold EMCal jets="<<fnJetsPtCut<<" cluster # :"<<i<<","<<fnClusters<<endl;
2273 while (cluster_away_from_jet==kTRUE && j<fnJetsPtCut)
2275 TLorentzVector *jet_vec= new TLorentzVector;
2276 AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTFullJets->At(fJetPtCutID[j]);
2277 myJet->GetMom(*jet_vec);
2278 if (cluster_vec->DeltaR(*jet_vec)<=(fJetR))
2280 cluster_away_from_jet=kFALSE;
2285 if (cluster_away_from_jet==kTRUE)
2287 E_caloclusters_total+=vcluster->E();
2293 // Determine area of all Jets that are within the EMCal
2300 for (i=0;i<fnJetsPtCut;i++)
2302 AliEmcalJet *myJet = (AliEmcalJet*) fmyAKTFullJets->At(fJetPtCutID[i]);
2303 jet_area_total+=AreaWithinEMCal(fJetR,myJet->Phi(),myJet->Eta());
2308 EMCal_rho=(E_tracks_total+E_caloclusters_total)/(fEMCalArea-jet_area_total);
2309 fRhoTotal=EMCal_rho;
2311 // Fill Background Histogram
2312 fhEMCalBckg1B->Fill(EMCal_rho*TMath::Pi()*TMath::Power(fJetR,2));
2313 fhRho1B->Fill(EMCal_rho,fEventCentrality);
2314 fpRho1B->Fill(fEventCentrality,EMCal_rho);
2315 FillFullCorrJetPt(fhJetTPt1B,EMCal_rho,kFALSE);
2316 FillFullCorrJetPt(fhJetTPt1BSignal,EMCal_rho,kTRUE);
2318 FillFullCorrJetPt(fhJetTPtCen1B,EMCal_rho,kFALSE);
2319 FillFullCorrJetPt(fhJetTPtCen1BSignal,EMCal_rho,kTRUE);
2321 if (fEventCentrality<=20)
2323 FillFullCorrJetPt(fh020JetTPt1B,EMCal_rho,kFALSE);
2324 FillFullCorrJetPt(fh020JetTPt1BSignal,EMCal_rho,kTRUE);
2325 FillBckgFlucDeltaPt(fhDeltaPt1B,EMCal_rho);
2326 fh020Rho1B->Fill(EMCal_rho);
2330 void AliAnalysisTaskFullpAJets::Method1C()
2332 const Double_t psi_ref=0.5*(45/360.)*2*TMath::Pi(); //Input the total acceptance within the paraenthesis to be +/- psi_ref
2334 Double_t E_tracks_total=0.;
2335 Double_t E_caloclusters_total=0.;
2336 Double_t EMCal_rho=0.;
2339 if (fPtFullMaxID !=-1)
2341 AliEmcalJet *myJet = (AliEmcalJet*) fmyAKTFullJets->At(fPtFullMaxID);
2343 if (myJet->Area()>=fJetAreaThreshold)
2345 // Loop over all tracks
2346 for (i=0;i<fnTracks;i++)
2348 AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i);
2349 if (IsInEMCal(vtrack->Phi(),vtrack->Eta())==kTRUE)
2351 if ((vtrack->Eta()>=(myJet->Eta()+fJetR)) || (vtrack->Eta()<=(myJet->Eta()-fJetR)))
2353 psi=TMath::ATan((vtrack->Phi()-myJet->Phi())/(vtrack->Eta()-myJet->Eta()));
2354 if ((psi>=(-1*psi_ref)) && (psi<=psi_ref))
2356 // The Track made the Cut!!
2357 E_tracks_total+=vtrack->Pt();
2363 // Loop over all caloclusters
2364 for (i=0;i<fnClusters;i++)
2366 AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(i);
2367 TLorentzVector *cluster_vec = new TLorentzVector;
2368 vcluster->GetMomentum(*cluster_vec,fvertex);
2370 if ((cluster_vec->Eta()>=(myJet->Eta()+fJetR)) || (cluster_vec->Eta()<=(myJet->Eta()-fJetR)))
2372 psi=TMath::ATan((cluster_vec->Phi()-myJet->Phi())/(cluster_vec->Eta()-myJet->Eta()));
2373 if ((psi>=(-1*psi_ref)) && (psi<=psi_ref))
2375 // The CaloCluster made the Cut!!
2376 E_caloclusters_total+=vcluster->E();
2381 // Calculate the mean Background density
2382 EMCal_rho=(E_tracks_total+E_caloclusters_total)/TransverseArea(fJetR,psi_ref,myJet->Phi(),myJet->Eta());
2385 fhEMCalBckg1C->Fill(EMCal_rho*TMath::Pi()*fJetR*fJetR);
2386 fhRho1C->Fill(EMCal_rho,fEventCentrality);
2387 fhJetTPt1C->Fill(myJet->Pt()-EMCal_rho*myJet->Area());
2388 FillFullCorrJetPt(fhJetTPt1C,EMCal_rho,kFALSE);
2389 FillFullCorrJetPt(fhJetTPtCen1C,EMCal_rho,kFALSE);
2392 if (fEventCentrality<=20)
2394 FillFullCorrJetPt(fh020JetTPt1C,EMCal_rho,kFALSE);
2400 void AliAnalysisTaskFullpAJets::Method2A()
2404 for (i=0;i<fnAKTFullJets;i++)
2406 if (fInEMCalFull[i]==kTRUE)
2408 AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTFullJets->At(i);
2409 if (myJet->Area()>=fJetAreaThreshold)
2411 fhEMCalCenJet2A->Fill(myJet->Pt(),fEventCentrality);
2412 fhEMCalJet2A->Fill(myJet->Pt());
2413 if (fEventCentrality<=20)
2415 fh020EMCalJet2A->Fill(myJet->Pt());
2422 void AliAnalysisTaskFullpAJets::Method2B()
2426 Double_t E_tracks_total=0.0;
2427 Double_t E_caloclusters_total=0.0;
2428 Double_t EMCal_rho=0.0;
2429 Double_t E_tracks_core_total=0.0;
2430 Double_t E_caloclusters_core_total=0.0;
2431 Double_t EMCal_core_rho=0.0;
2434 // Loop over all tracks
2435 for (i=0;i<fnTracks;i++)
2437 AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i);
2438 if (IsInEMCal(vtrack->Phi(),vtrack->Eta())==kTRUE)
2440 E_tracks_total+=vtrack->Pt();
2441 if (InsideRect(vtrack->Phi(),fEMCalPhiMin+RCore,fEMCalPhiMax-RCore,vtrack->Eta(),fEMCalEtaMin+RCore,fEMCalEtaMax-RCore)==kTRUE)
2443 E_tracks_core_total+=vtrack->Pt();
2448 // Loop over all caloclusters
2449 for (i=0;i<fnClusters;i++)
2451 AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(i);
2452 E_caloclusters_total+=vcluster->E();
2453 TLorentzVector *cluster_vec = new TLorentzVector;
2454 vcluster->GetMomentum(*cluster_vec,fvertex);
2455 if (InsideRect(cluster_vec->Phi(),fEMCalPhiMin+RCore,fEMCalPhiMax-RCore,cluster_vec->Eta(),fEMCalEtaMin+RCore,fEMCalEtaMax-RCore)==kTRUE)
2457 E_caloclusters_core_total+=vcluster->E();
2462 // Calculate the mean Background density
2463 EMCal_rho=(E_tracks_total+E_caloclusters_total)/fEMCalArea;
2464 EMCal_core_rho=(E_tracks_core_total+E_caloclusters_core_total)/((fEMCalPhiTotal-2*RCore)*(fEMCalEtaTotal-2*RCore));
2466 //Fill Background Cluster Histogram
2467 fhEMCalBckg2B->Fill(EMCal_rho*TMath::Pi()*TMath::Power(fJetR,2));
2468 fhRho2B->Fill(EMCal_rho,fEventCentrality);
2469 fpRho2B->Fill(fEventCentrality,EMCal_rho);
2470 FillFullCorrJetPt(fhJetTPt2B,EMCal_rho,kFALSE);
2471 FillFullCorrJetPt(fhJetTPtCen2B,EMCal_rho,kFALSE);
2472 fhDeltaRho0DiJet->Fill(fRhoAkTTotal-EMCal_rho);
2473 fhRho2BCore->Fill(EMCal_core_rho,fEventCentrality);
2474 fpRho2BCore->Fill(fEventCentrality,EMCal_core_rho);
2476 if (fEventCentrality<=20)
2478 FillFullCorrJetPt(fh020JetTPt2B,EMCal_rho,kFALSE);
2479 FillBckgFlucDeltaPt(fhDeltaPt2B,EMCal_rho);
2480 fh020Rho2B->Fill(EMCal_rho);
2481 fh020Rho2BCore->Fill(EMCal_core_rho);
2485 void AliAnalysisTaskFullpAJets::Method3(Bool_t EMCalOn)
2488 Bool_t track_away_from_jet;
2489 Double_t E_tracks_total=0.0;
2490 Double_t TPC_rho=0.0;
2491 Double_t jet_area_total=0.0;
2493 // Calculate charged background density in events with no signal jets
2494 if (fnJetsChargedPtCut==0)
2496 // Loop over all tracks
2497 for (i=0;i<fnTracks;i++)
2499 AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i);
2500 E_tracks_total+=vtrack->Pt();
2502 TPC_rho=E_tracks_total/fTPCArea;
2504 fhRho3NoJets->Fill(TPC_rho,fEventCentrality);
2505 fpRho3NoJets->Fill(fEventCentrality,TPC_rho);
2506 if (fEventCentrality<=20)
2508 fh020Rho3NoJets->Fill(TPC_rho);
2514 // First, sum all tracks within the TPC that are away from jet(s) above Pt Threshold
2516 for (i=0;i<fnTracks;i++)
2518 AliVTrack* vtrack = (AliVTrack*) fmyTracks->At(i);
2519 if (fnJetsChargedPtCut<1)
2521 E_tracks_total+=vtrack->Pt();
2525 track_away_from_jet=kTRUE;
2527 TLorentzVector *track_vec = new TLorentzVector;
2528 track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E());
2529 while (track_away_from_jet==kTRUE && j<fnJetsChargedPtCut)
2531 TLorentzVector *jet_vec= new TLorentzVector;
2532 AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTChargedJets->At(fJetPtChargedCutID[j]);
2533 myJet->GetMom(*jet_vec);
2534 if (track_vec->DeltaR(*jet_vec)<=fJetR)
2536 track_away_from_jet=kFALSE;
2541 if (track_away_from_jet==kTRUE)
2543 E_tracks_total+=vtrack->Pt();
2549 // Determine area of all Jets that are within the EMCal
2550 if (fnJetsChargedPtCut==0)
2556 for (i=0;i<fnJetsChargedPtCut;i++)
2558 AliEmcalJet *myJet = (AliEmcalJet*) fmyAKTChargedJets->At(fJetPtChargedCutID[i]);
2559 jet_area_total+=AreaWithinTPC(fJetR,myJet->Eta());
2564 TPC_rho=(E_tracks_total)/(fTPCArea-jet_area_total);
2565 fRhoCharged=TPC_rho;
2567 //Fill Background Histogram
2568 fhRho3->Fill(TPC_rho,fEventCentrality);
2569 fpRho3->Fill(fEventCentrality,TPC_rho);
2571 //Fill "True" Jet Pt Spectrum
2572 for (i=0;i<fnAKTChargedJets;i++)
2574 if (fInTPCChargedFull[i]==kTRUE)
2576 AliEmcalJet *myJet = (AliEmcalJet*) fmyAKTChargedJets->At(i);
2577 if (myJet->Area()>=fJetAreaThreshold && myJet->Pt()>=fTPCJetThreshold)
2579 fhJetTPt3->Fill(myJet->Pt()-(TPC_rho*myJet->Area()));
2580 fhJetTPtCen3->Fill(myJet->Pt()-(TPC_rho*myJet->Area()),fEventCentrality);
2581 if (fEventCentrality<=20)
2583 fh020JetTPt3->Fill(myJet->Pt()-(TPC_rho*myJet->Area()));
2589 // Fill Background Scaling factor profile.
2590 if (EMCalOn==kTRUE && fRhoCharged!=0)
2592 fpRhoScale->Fill(fEventCentrality,(fRhoTotal/fRhoCharged));
2595 if (fEventCentrality<=20)
2597 fh020Rho3->Fill(TPC_rho);
2601 void AliAnalysisTaskFullpAJets::Method3DiJet()
2604 Double_t E_tracks_total=0.0;
2605 Double_t TPC_rho=0.0;
2606 Double_t jet_area_total=0.0;
2607 Double_t jet_pT_total=0.0;
2609 // Loop over all tracks
2610 for (i=0;i<fnTracks;i++)
2612 AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i);
2613 E_tracks_total+=vtrack->Pt();
2616 AliEmcalJet *myhJet =(AliEmcalJet*) fmyAKTChargedJets->At(fPtChargedMaxID);
2617 AliEmcalJet *mybJet =(AliEmcalJet*) fmyAKTChargedJets->At(fChargedBackJetID);
2619 jet_area_total=myhJet->Area()+mybJet->Area();
2620 jet_pT_total=myhJet->Pt()+mybJet->Pt();
2621 TPC_rho=(E_tracks_total-jet_pT_total)/(fTPCArea-jet_area_total);
2623 fhRho3DiJets->Fill(TPC_rho,fEventCentrality);
2624 fpRho3DiJets->Fill(fEventCentrality,TPC_rho);
2625 if (fEventCentrality<=20)
2627 fh020Rho3DiJets->Fill(TPC_rho);
2631 void AliAnalysisTaskFullpAJets::Method3Perp()
2634 Double_t E_tracks_total=0.0;
2635 Double_t TPC_rho=0.0;
2636 Double_t phi_perp=0.0; // By construction, this angle must be between 90 and 270
2637 const Double_t delta_phi_prep=(30/360.0)*2*TMath::Pi(); // Half angle...
2639 AliEmcalJet *myhJet =(AliEmcalJet*) fmyAKTChargedJets->At(fPtChargedMaxID);
2640 AliEmcalJet *mybJet =(AliEmcalJet*) fmyAKTChargedJets->At(fChargedBackJetID);
2642 phi_perp=(0.5*(myhJet->Phi()+mybJet->Phi())/360.0)*2*TMath::Pi();
2644 // Loop over all tracks
2645 for (i=0;i<fnTracks;i++)
2647 AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i);
2648 // Select only those tracks that are within the "strip"
2649 if (vtrack->Phi() >= (phi_perp-delta_phi_prep) && vtrack->Phi() <= (phi_perp+delta_phi_prep))
2651 E_tracks_total+=vtrack->Pt();
2655 TPC_rho=(E_tracks_total)/(fTPCEtaMax*2*delta_phi_prep);
2657 fhRho3Perp->Fill(TPC_rho,fEventCentrality);
2658 fpRho3Perp->Fill(fEventCentrality,TPC_rho);
2659 if (fEventCentrality<=20)
2661 fh020Rho3Perp->Fill(TPC_rho);
2665 void AliAnalysisTaskFullpAJets::JetPtChargedProfile()
2669 Double_t ED_pT[fEDProfileRBins];
2671 for (i=0;i<fnJetsChargedPtCut;i++)
2673 AliEmcalJet *myJet = (AliEmcalJet*) fmyAKTChargedJets->At(fJetPtChargedCutID[i]);
2674 if (InsideRect(myJet->Phi(),fTPCPhiMin,fTPCPhiMax,myJet->Eta(),fTPCEtaMin+fEDProfileRUp,fTPCEtaMax-fEDProfileRUp)==kTRUE)
2676 for (j=0;j<fEDProfileRBins;j++)
2680 TLorentzVector *jet_vec= new TLorentzVector;
2681 myJet->GetMom(*jet_vec);
2682 // Sum all tracks in concentric rings around jet vertex
2683 for (j=0;j<fnTracks;j++)
2685 AliVTrack* vtrack = (AliVTrack*) fmyTracks->At(j);
2686 TLorentzVector *track_vec = new TLorentzVector;
2687 track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E());
2688 delta_R=jet_vec->DeltaR(*track_vec);
2689 if (delta_R<=fEDProfileRUp)
2691 ED_pT[TMath::FloorNint((fEDProfileRBins/fEDProfileRUp)*delta_R)]+=vtrack->Pt();
2696 //cout<<"Event Centrality:"<<fEventCentrality<<endl;
2697 //cout<<endl<<endl<<"Event Centrality bin:"<<TMath::FloorNint(fEventCentrality/10.)<<endl;
2698 for (j=0;j<fEDProfileRBins;j++)
2700 ED_pT[j]/=TMath::Pi()*TMath::Power((fEDProfileRUp/fEDProfileRBins),2)*(2*j+1);
2701 //cout<<"Strip "<<j<<" ED="<<ED_pT[j]<<endl;
2702 fpChargedJetEDProfile[TMath::FloorNint(fEventCentrality/10.)]->Fill(myJet->Pt(),myJet->Eta(),(fEDProfileRUp/fEDProfileRBins)*j,ED_pT[j]);
2703 if (fEventCentrality<=20)
2705 fpChargedJetRProfile[4+TMath::FloorNint(myJet->Eta()*10.)]->Fill((fEDProfileRUp/fEDProfileRBins)*j,ED_pT[j]);
2713 void AliAnalysisTaskFullpAJets::JetPtFullProfile()
2717 Double_t ED_pT[fEDProfileRBins];
2719 for (i=0;i<fnJetsPtCut;i++)
2721 AliEmcalJet *myJet = (AliEmcalJet*) fmyAKTFullJets->At(fJetPtCutID[i]);
2722 if (InsideRect(myJet->Phi(),fEMCalPhiMin+fEDProfileRUp,fEMCalPhiMax-fEDProfileRUp,myJet->Eta(),fEMCalEtaMin+fEDProfileRUp,fEMCalEtaMax-fEDProfileRUp)==kTRUE)
2724 for (j=0;j<fEDProfileRBins;j++)
2728 TLorentzVector *jet_vec= new TLorentzVector;
2729 myJet->GetMom(*jet_vec);
2730 // Sum all tracks in concentric rings around jet vertex
2731 for (j=0;j<fnTracks;j++)
2733 AliVTrack* vtrack = (AliVTrack*) fmyTracks->At(j);
2734 TLorentzVector *track_vec = new TLorentzVector;
2735 track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E());
2736 delta_R=jet_vec->DeltaR(*track_vec);
2737 if (delta_R<=fEDProfileRUp)
2739 ED_pT[TMath::FloorNint((fEDProfileRBins/fEDProfileRUp)*delta_R)]+=vtrack->Pt();
2744 // Sum all clusters in concentric rings around jet vertex
2745 for (j=0;j<fnClusters;j++)
2747 AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(j);
2748 TLorentzVector *cluster_vec = new TLorentzVector;
2749 vcluster->GetMomentum(*cluster_vec,fvertex);
2750 delta_R=jet_vec->DeltaR(*cluster_vec);
2751 if (delta_R<=fEDProfileRUp)
2753 ED_pT[TMath::FloorNint((fEDProfileRBins/fEDProfileRUp)*delta_R)]+=vcluster->E();
2758 for (j=0;j<fEDProfileRBins;j++)
2760 ED_pT[j]/=TMath::Pi()*TMath::Power((fEDProfileRUp/fEDProfileRBins),2)*(2*j+1);
2761 fpJetEDProfile[TMath::FloorNint(fEventCentrality/10.)]->Fill(myJet->Pt(),myJet->Eta(),(fEDProfileRUp/fEDProfileRBins)*j,ED_pT[j]);
2762 // Fill profile if a "most" central event (0-20%)
2763 if (fEventCentrality<=20)
2765 fpJetRProfile[2+TMath::FloorNint(myJet->Eta()*10.)]->Fill((fEDProfileRUp/fEDProfileRBins)*j,ED_pT[j]);
2770 // Fill constituent histogram
2771 for (j=0;j<myJet->GetNumberOfTracks();j++)
2773 AliVParticle* vparticle = (AliVParticle*) myJet->TrackAt(j,fmyTracks);
2774 fhJetConstituentPt->Fill(myJet->Pt(),vparticle->Pt());
2777 for (j=0;j<myJet->GetNumberOfClusters();j++)
2779 AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(myJet->ClusterAt(j));
2780 fhJetConstituentPt->Fill(myJet->Pt(),vcluster->E());
2786 void AliAnalysisTaskFullpAJets::JetPtEtaProfile()
2791 Double_t Eta_pT[fEtaProfileBins];
2792 Double_t Eta_abs_pT[Int_t(0.5*fEtaProfileBins)];
2794 for (i=0;i<fnJetsPtCut;i++)
2796 AliEmcalJet *myJet = (AliEmcalJet*) fmyAKTFullJets->At(fJetPtCutID[i]);
2797 if (IsInEMCal(myJet->Phi(),myJet->Eta())==kTRUE)
2799 for (j=0;j<fEtaProfileBins;j++)
2805 // Sum all tracks in strips of eta away from the jet vertex
2806 for (j=0;j<fnTracks;j++)
2808 AliVTrack* vtrack = (AliVTrack*) fmyTracks->At(j);
2810 delta_eta=TMath::Abs(vtrack->Eta()-myJet->Eta());
2811 if (IsInEMCal(vtrack->Phi(),vtrack->Eta())==kTRUE)
2813 Eta_pT[Int_t(0.5*fEtaProfileBins)+TMath::FloorNint(10*eta)]+=vtrack->Pt();
2814 Eta_abs_pT[TMath::FloorNint(10*delta_eta)]+=vtrack->Pt();
2818 // Sum all clusters in strips of eta away from the jet vertex
2819 for (j=0;j<fnClusters;j++)
2821 AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(j);
2822 TLorentzVector *cluster_vec = new TLorentzVector;
2823 vcluster->GetMomentum(*cluster_vec,fvertex);
2824 eta=cluster_vec->Eta();
2825 delta_eta=TMath::Abs(cluster_vec->Eta()-myJet->Eta());
2826 Eta_pT[Int_t(0.5*fEtaProfileBins)+TMath::FloorNint(10*eta)]+=vcluster->E();
2827 Eta_abs_pT[TMath::FloorNint(10*delta_eta)]+=vcluster->E();
2831 for (j=0;j<fEtaProfileBins;j++)
2833 Eta_pT[j]/=0.1*fEMCalPhiTotal;
2834 // Fill profile if a "most" central event (0-20%)
2835 if (j<(10*(fEMCalEtaMax-TMath::Abs(myJet->Eta()))))
2837 Eta_abs_pT[j]/=0.2*fEMCalPhiTotal;
2841 Eta_abs_pT[j]/=0.1*fEMCalPhiTotal;
2843 // Fill profile if a "most" central event (0-20%)
2844 if (fEventCentrality<=20)
2846 fpJetAbsEtaProfile[7+TMath::FloorNint(myJet->Eta()*10.)]->Fill(0.1*j,Eta_abs_pT[j]);
2847 fpJetEtaProfile[7+TMath::FloorNint(myJet->Eta()*10.)]->Fill(0.1*(j-7),Eta_pT[j]);
2854 void AliAnalysisTaskFullpAJets::FillFullCorrJetPt(TH1D *myHisto,Double_t rho, Bool_t signal_cut)
2857 // Fill "True" Jet Pt Spectrum. Always demand that jet area is greater then area threshold.
2858 for (i=0;i<fnAKTFullJets;i++)
2860 if (fInEMCalFull[i]==kTRUE)
2862 AliEmcalJet *myJet = (AliEmcalJet*) fmyAKTFullJets->At(i);
2863 if (myJet->Area()>=fJetAreaThreshold)
2865 if (signal_cut==kTRUE && myJet->Pt()>=fEMCalJetThreshold)
2867 myHisto->Fill(myJet->Pt()-(rho*myJet->Area()));
2869 else if (signal_cut==kFALSE)
2871 myHisto->Fill(myJet->Pt()-(rho*myJet->Area()));
2878 void AliAnalysisTaskFullpAJets::FillFullCorrJetPt(TH2D *myHisto,Double_t rho, Bool_t signal_cut)
2881 // Fill "True" Jet Pt Spectrum. Always demand that jet area is greater then area threshold.
2882 for (i=0;i<fnAKTFullJets;i++)
2884 if (fInEMCalFull[i]==kTRUE)
2886 AliEmcalJet *myJet = (AliEmcalJet*) fmyAKTFullJets->At(i);
2887 if (myJet->Area()>=fJetAreaThreshold)
2889 if (signal_cut==kTRUE && myJet->Pt()>=fEMCalJetThreshold)
2891 myHisto->Fill(myJet->Pt()-(rho*myJet->Area()),fEventCentrality);
2893 else if (signal_cut==kFALSE)
2895 myHisto->Fill(myJet->Pt()-(rho*myJet->Area()),fEventCentrality);
2902 void AliAnalysisTaskFullpAJets::FillFullDeltaRho(TH1D *myHisto,Double_t delta_rho,Bool_t signal_cut)
2905 // Fill "True" Jet Pt Spectrum. Always demand that jet area is greater then area threshold.
2906 for (i=0;i<fnAKTFullJets;i++)
2908 if (fInEMCalFull[i]==kTRUE)
2910 AliEmcalJet *myJet = (AliEmcalJet*) fmyAKTFullJets->At(i);
2911 if (myJet->Area()>=fJetAreaThreshold)
2913 if (signal_cut==kTRUE && myJet->Pt()>=fEMCalJetThreshold)
2915 myHisto->Fill(delta_rho);
2917 else if (signal_cut==kFALSE)
2919 myHisto->Fill(delta_rho);
2926 void AliAnalysisTaskFullpAJets::FillBckgFlucDeltaPt(TH1D *myHisto, Double_t rho)
2930 for (i=0;i<fnBckgClusters;i++)
2932 myHisto->Fill(fRCBckgFluc[i]-rho*TMath::Pi()*fJetR*fJetR);
2937 void AliAnalysisTaskFullpAJets::DeleteArrays(Bool_t EMCalOn)
2939 delete [] fJetPtChargedCutID;
2940 delete [] fInTPCChargedFull;
2941 delete [] fJetkTTPCFullID;
2944 delete [] fJetPtCutID;
2945 delete [] fJetPtTPCCutID;
2946 delete [] fJetPtTotalCutID;
2947 delete [] fJetkTEMCalFullID;
2949 delete [] fInEMCalFull;
2950 delete [] fInTPCFull;
2954 /////////////////////////////////////////////////////////////////////////////////////////
2955 ///////////////// User Defined Functions ///////////////////////////////////////
2956 /////////////////////////////////////////////////////////////////////////////////////////
2958 Bool_t AliAnalysisTaskFullpAJets::IsDiJetEvent()
2960 // Determine if event contains a di-jet within the detector. Uses charged jets.
2961 // Requires the delta phi of the jets to be 180 +/- 15 degrees.
2962 // Requires both jets to be outside of the EMCal
2963 // Requires both jets to be signal jets
2966 const Double_t dijet_delta_phi=(180/360.)*2*TMath::Pi();
2967 const Double_t dijet_phi_acceptance=0.5*(30/360.)*2*TMath::Pi(); //Input the total acceptance within the paraenthesis to be +/- dijet_phi_acceptance
2968 Double_t dummy_phi=0.0;
2969 Double_t dijet_asymmetry=0.0;
2970 Double_t delta_phi=0.0;
2971 fChargedBackJetID=-1;
2973 if (fnJetsChargedPtCut>1)
2975 AliEmcalJet *myhJet =(AliEmcalJet*) fmyAKTChargedJets->At(fPtChargedMaxID);
2977 if (IsInTPCFull(fJetR,myhJet->Phi(),myhJet->Eta())==kFALSE)
2981 while (i<fnJetsChargedPtCut)
2983 AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTChargedJets->At(fJetPtChargedCutID[i]);
2984 dummy_phi=TMath::Min(TMath::Abs(myhJet->Phi()-myJet->Phi()),2*TMath::Pi()-TMath::Abs(myhJet->Phi()-myJet->Phi()));
2985 if ((dummy_phi>(dijet_delta_phi-dijet_phi_acceptance)) && (IsInTPCFull(fJetR,myJet->Phi(),myJet->Eta())==kTRUE))
2987 fChargedBackJetID=fJetPtChargedCutID[i];
2989 dijet_asymmetry=(myhJet->Pt()-myJet->Pt())/(myhJet->Pt()+myJet->Pt());
2990 fhDiJetCenAsy->Fill(dijet_asymmetry,fEventCentrality);
2991 // Add Anti-kT Plots here...
2992 if (fPtFullMaxID!=-1)
2994 AliEmcalJet *myTestJet = (AliEmcalJet*) fmyAKTFullJets->At(fPtFullMaxID);
2996 fhDiJetEMCalLeadingPt->Fill(myTestJet->Pt());
2997 delta_phi=TMath::Min(TMath::Abs(myhJet->Phi()-myTestJet->Phi()),2*TMath::Pi()-TMath::Abs(myhJet->Phi()-myTestJet->Phi()));
2998 fhDiJetEMCalLeadingDeltaPhi->Fill(delta_phi);
3000 if (fEventCentrality<=20)
3002 fh020DiJetAsy->Fill(dijet_asymmetry);
3012 Bool_t AliAnalysisTaskFullpAJets::InsideRect(Double_t phi,Double_t phi_min,Double_t phi_max,Double_t eta,Double_t eta_min,Double_t eta_max)
3014 if (phi>phi_min && phi<phi_max)
3016 if (eta>eta_min && eta<eta_max)
3024 Bool_t AliAnalysisTaskFullpAJets::IsInEMCal(Double_t phi,Double_t eta)
3026 return InsideRect(phi,fEMCalPhiMin,fEMCalPhiMax,eta,fEMCalEtaMin,fEMCalEtaMax);
3029 Bool_t AliAnalysisTaskFullpAJets::IsInEMCalFull(Double_t r,Double_t phi,Double_t eta)
3031 return InsideRect(phi,fEMCalPhiMin+r,fEMCalPhiMax-r,eta,fEMCalEtaMin+r,fEMCalEtaMax-r);
3034 Bool_t AliAnalysisTaskFullpAJets::IsInEMCalPart(Double_t r,Double_t phi,Double_t eta)
3036 return InsideRect(phi,fEMCalPhiMin-r,fEMCalPhiMax+r,eta,fEMCalEtaMin-r,fEMCalEtaMax+r);
3039 Bool_t AliAnalysisTaskFullpAJets::IsInTPCFull(Double_t r,Double_t phi,Double_t eta)
3041 Bool_t in_EMCal= InsideRect(phi,fEMCalPhiMin-r,fEMCalPhiMax+r,eta,fEMCalEtaMin-r,fEMCalEtaMax+r);
3042 Bool_t in_TPC= InsideRect(phi,fTPCPhiMin,fTPCPhiMax,eta,fTPCEtaMin+r,fTPCEtaMax-r);
3044 if (in_EMCal==kFALSE && in_TPC==kTRUE)
3051 Bool_t AliAnalysisTaskFullpAJets::IsInTPC(Double_t r,Double_t phi,Double_t eta,Bool_t Complete)
3053 if (Complete==kTRUE)
3055 return InsideRect(phi,fTPCPhiMin,fTPCPhiMax,eta,fTPCEtaMin+r,fTPCEtaMax-r);
3057 return InsideRect(phi,fTPCPhiMin,fTPCPhiMax,eta,fTPCEtaMin,fTPCEtaMax);
3060 Double_t AliAnalysisTaskFullpAJets::AreaWithinTPC(Double_t r,Double_t eta)
3063 if (eta<(fTPCEtaMin+r))
3067 else if(eta>(fTPCEtaMax-r))
3075 return r*r*TMath::Pi()-AreaEdge(r,z);
3078 Double_t AliAnalysisTaskFullpAJets::AreaWithinEMCal(Double_t r,Double_t phi,Double_t eta)
3082 if (phi<(fEMCalPhiMin-r) || phi>(fEMCalPhiMax+r))
3086 else if (phi<(fEMCalPhiMin+r))
3090 else if (phi>(fEMCalPhiMin+r) && phi<(fEMCalPhiMax-r))
3099 if (eta<(fEMCalEtaMin-r) || eta>(fEMCalEtaMax+r))
3103 else if (eta<(fEMCalEtaMin+r))
3107 else if (eta>(fEMCalEtaMin+r) && eta<(fEMCalEtaMax-r))
3118 if (TMath::Sqrt(x*x+y*y)>=r)
3120 return r*r*TMath::Pi()-AreaEdge(r,x)-AreaEdge(r,y);
3122 return r*r*TMath::Pi()-AreaEdge(r,x)-AreaEdge(r,y)+AreaOverlap(r,x,y);
3124 else if ((x>=r && y<0) || (y>=r && x<0))
3126 return r*r*TMath::Pi()-AreaEdge(r,x)-AreaEdge(r,y);
3128 else if (x>0 && x<r && y<0)
3130 Double_t a=TMath::Sqrt(r*r-x*x);
3131 Double_t b=TMath::Sqrt(r*r-y*y);
3134 return r*r*TMath::ASin(b/r)+y*b;
3138 return 0.5*x*a+0.5*r*r*TMath::ASin(x/r)+0.5*y*b+x*y+0.5*r*r*TMath::ASin(b/r);
3141 else if (y>0 && y<r && x<0)
3143 Double_t a=TMath::Sqrt(r*r-x*x);
3144 Double_t b=TMath::Sqrt(r*r-y*y);
3147 return r*r*TMath::ASin(a/r)+x*a;
3151 return 0.5*y*b+0.5*r*r*TMath::ASin(y/r)+0.5*x*a+x*y+0.5*r*r*TMath::ASin(a/r);
3156 Double_t a=TMath::Sqrt(r*r-x*x);
3157 Double_t b=TMath::Sqrt(r*r-y*y);
3164 return 0.5*x*a+0.5*r*r*TMath::ASin(x/r)+0.5*y*b+x*y+0.5*r*r*TMath::ASin(b/r);
3169 Double_t AliAnalysisTaskFullpAJets::AreaEdge(Double_t r,Double_t z)
3171 Double_t a=TMath::Sqrt(r*r-z*z);
3172 return r*r*TMath::ASin(a/r)-a*z;
3175 Double_t AliAnalysisTaskFullpAJets::AreaOverlap(Double_t r,Double_t x,Double_t y)
3177 Double_t a=TMath::Sqrt(r*r-x*x);
3178 Double_t b=TMath::Sqrt(r*r-y*y);
3179 return x*y-0.5*(x*a+y*b)+0.5*r*r*(TMath::ASin(b/r)-TMath::ASin(x/r));
3182 Double_t AliAnalysisTaskFullpAJets::TransverseArea(Double_t r,Double_t psi0,Double_t phi,Double_t eta)
3184 Double_t area_left,area_right;
3185 Double_t eta_a,eta_b,eta_up,eta_down;
3187 Double_t u=eta-fEMCalEtaMin;
3188 Double_t v=fEMCalEtaMax-eta;
3190 Double_t phi1=phi+u*TMath::Tan(psi0);
3191 Double_t phi2=phi-u*TMath::Tan(psi0);
3192 Double_t phi3=phi+v*TMath::Tan(psi0);
3193 Double_t phi4=phi-v*TMath::Tan(psi0);
3195 //Calculate the Left side area
3196 if (phi1>=fEMCalPhiMax)
3198 eta_a=eta-u*((fEMCalPhiMax-phi)/(phi1-phi));
3200 if (phi2<=fEMCalPhiMin)
3202 eta_b=eta-u*((phi-fEMCalPhiMin)/(phi-phi2));
3205 if ((phi1>=fEMCalPhiMax) && (phi2<=fEMCalPhiMin))
3207 eta_up=TMath::Max(eta_a,eta_b);
3208 eta_down=TMath::Min(eta_a,eta_b);
3210 area_left=(eta_down-fEMCalEtaMin)*fEMCalPhiTotal + 0.5*(fEMCalPhiTotal+2*(eta-eta_up)*TMath::Tan(psi0))*(eta_up-eta_down) + (eta-eta_up+r)*TMath::Tan(psi0)*(eta-eta_up-r);
3212 else if (phi1>=fEMCalPhiMax)
3214 area_left=0.5*(fEMCalPhiMax-phi2+2*(eta-eta_a)*TMath::Tan(psi0))*(eta_a-fEMCalEtaMin) + (eta-eta_a+r)*TMath::Tan(psi0)*(eta-eta_a-r);
3216 else if (phi2<=fEMCalPhiMin)
3218 area_left=0.5*(phi1-fEMCalPhiMin+2*(eta-eta_b)*TMath::Tan(psi0))*(eta_b-fEMCalEtaMin) + (eta-eta_b+r)*TMath::Tan(psi0)*(eta-eta_b-r);
3222 area_left=0.5*(phi1-phi2+2*r*TMath::Tan(psi0))*(u-r);
3225 //Calculate the Right side area
3226 if (phi3>=fEMCalPhiMax)
3228 eta_a=eta+v*((fEMCalPhiMax-phi)/(phi3-phi));
3230 if (phi4<=fEMCalPhiMin)
3232 eta_b=eta+v*((phi-fEMCalPhiMin)/(phi-phi4));
3235 if ((phi3>=fEMCalPhiMax) && (phi4<=fEMCalPhiMin))
3237 eta_up=TMath::Max(eta_a,eta_b);
3238 eta_down=TMath::Min(eta_a,eta_b);
3240 area_right=(fEMCalEtaMax-eta_up)*fEMCalPhiTotal + 0.5*(fEMCalPhiTotal+2*(eta_down-eta)*TMath::Tan(psi0))*(eta_down-eta_up) + (eta_down-eta+r)*TMath::Tan(psi0)*(eta_up-eta-r);
3242 else if (phi3>=fEMCalPhiMax)
3244 area_right=0.5*(fEMCalPhiMax-phi4+2*(eta_a-eta)*TMath::Tan(psi0))*(fEMCalEtaMax-eta_a) + (eta_a-eta+r)*TMath::Tan(psi0)*(eta_a-eta-r);
3246 else if (phi4<=fEMCalPhiMin)
3248 area_right=0.5*(phi3-fEMCalPhiMin+2*(eta_b-eta)*TMath::Tan(psi0))*(fEMCalEtaMax-eta_b) + (eta_b-eta+r)*TMath::Tan(psi0)*(eta_b-eta-r);
3252 area_right=0.5*(phi3-phi4+2*r*TMath::Tan(psi0))*(v-r);
3254 return area_left+area_right;