1 #include "AliAnalysisTaskFullpAJets.h"
13 #include <TLorentzVector.h>
15 #include <TProfile2D.h>
16 #include <TProfile3D.h>
19 #include <TClonesArray.h>
20 #include <TObjArray.h>
22 #include "AliAnalysisTaskSE.h"
23 #include "AliAnalysisManager.h"
25 #include "AliESDtrackCuts.h"
26 #include "AliESDEvent.h"
27 #include "AliESDInputHandler.h"
28 #include "AliAODEvent.h"
29 #include "AliMCEvent.h"
30 #include "AliVTrack.h"
31 #include "AliVCluster.h"
32 #include "AliEmcalJet.h"
33 #include "AliEMCALGeometry.h"
34 #include "AliPicoTrack.h"
37 ClassImp(AliAnalysisTaskFullpAJets)
39 //________________________________________________________________________
40 AliAnalysisTaskFullpAJets::AliAnalysisTaskFullpAJets() :
50 fhComplementaryTrackPt(0),
51 fhComplementaryTrackEta(0),
52 fhComplementaryTrackPhi(0),
64 fhGlobalTrackEtaPhi(0),
65 fhGlobalTrackPhiPt(0),
66 fhGlobalTrackEtaPt(0),
67 fhComplementaryTrackEtaPhi(0),
68 fhComplementaryTrackPhiPt(0),
69 fhComplementaryTrackEtaPt(0),
74 fhJetConstituentPt(0),
78 fhGlobalTrackEtaPhiPt(0),
79 fhComplementaryTrackEtaPhiPt(0),
87 fpJetAbsEtaProfile(0),
88 fpChargedJetRProfile(0),
92 fpClusterPtProfile(0),
94 fpChargedJetEDProfile(0),
112 fRhoChargedkTScale(0),
114 fRhoChargedCMSScale(0),
130 fEMCalPhiMin(1.39626),
131 fEMCalPhiMax(3.26377),
132 fEMCalPhiTotal(1.86750),
139 fTPCPhiTotal(6.28319),
145 fParticlePtUp(200.0),
146 fParticlePtBins(2000),
149 fJetAreaCutFrac(0.6),
150 fJetAreaThreshold(0.30159),
156 fCentralityTag("V0A"),
164 fEtaProfileLow(-0.7),
169 fEDProfilePtBins(100),
172 fEDProfileEtaBins(4),
173 fEDProfileEtaLow(-0.2),
174 fEDProfileEtaUp(0.2),
183 fEMCalJetThreshold(5),
195 fmyAKTChargedJets(0),
202 fEMCalRCBckgFlucSignal(0),
203 fTPCRCBckgFlucSignal(0),
204 fEMCalRCBckgFlucNColl(0),
205 fTPCRCBckgFlucNColl(0)
207 // Dummy constructor ALWAYS needed for I/O.
208 fpJetEtaProfile = new TProfile *[14];
209 fpJetAbsEtaProfile = new TProfile *[14];
210 fpChargedJetRProfile = new TProfile *[8];
211 fpJetRProfile= new TProfile *[4];
212 fpChargedJetEDProfile= new TProfile3D *[10];
213 fpJetEDProfile= new TProfile3D *[10];
214 fvertex[0]=0.0,fvertex[1]=0.0,fvertex[2]=0.0;
217 //________________________________________________________________________
218 AliAnalysisTaskFullpAJets::AliAnalysisTaskFullpAJets(const char *name) :
219 AliAnalysisTaskSE(name),
228 fhComplementaryTrackPt(0),
229 fhComplementaryTrackEta(0),
230 fhComplementaryTrackPhi(0),
235 fhEMCalCellCounts(0),
242 fhGlobalTrackEtaPhi(0),
243 fhGlobalTrackPhiPt(0),
244 fhGlobalTrackEtaPt(0),
245 fhComplementaryTrackEtaPhi(0),
246 fhComplementaryTrackPhiPt(0),
247 fhComplementaryTrackEtaPt(0),
252 fhJetConstituentPt(0),
256 fhGlobalTrackEtaPhiPt(0),
257 fhComplementaryTrackEtaPhiPt(0),
258 fhClusterEtaPhiPt(0),
265 fpJetAbsEtaProfile(0),
266 fpChargedJetRProfile(0),
270 fpClusterPtProfile(0),
272 fpChargedJetEDProfile(0),
290 fRhoChargedkTScale(0),
292 fRhoChargedCMSScale(0),
308 fEMCalPhiMin(1.39626),
309 fEMCalPhiMax(3.26377),
310 fEMCalPhiTotal(1.86750),
317 fTPCPhiTotal(6.28319),
323 fParticlePtUp(200.0),
324 fParticlePtBins(2000),
327 fJetAreaCutFrac(0.6),
328 fJetAreaThreshold(0.30159),
334 fCentralityTag("V0A"),
342 fEtaProfileLow(-0.7),
347 fEDProfilePtBins(100),
350 fEDProfileEtaBins(4),
351 fEDProfileEtaLow(-0.2),
352 fEDProfileEtaUp(0.2),
361 fEMCalJetThreshold(5),
373 fmyAKTChargedJets(0),
380 fEMCalRCBckgFlucSignal(0),
381 fTPCRCBckgFlucSignal(0),
382 fEMCalRCBckgFlucNColl(0),
383 fTPCRCBckgFlucNColl(0)
386 // Define input and output slots here (never in the dummy constructor)
387 // Input slot #0 works with a TChain - it is connected to the default input container
388 // Output slot #1 writes into a TH1 container
389 fpJetEtaProfile = new TProfile *[14];
390 fpJetAbsEtaProfile = new TProfile *[14];
391 fpChargedJetRProfile = new TProfile *[8];
392 fpJetRProfile = new TProfile *[4];
393 fpChargedJetEDProfile= new TProfile3D *[10];
394 fpJetEDProfile= new TProfile3D *[10];
395 fvertex[0]=0.0,fvertex[1]=0.0,fvertex[2]=0.0;
397 DefineOutput(1,TList::Class()); // for output list
400 //________________________________________________________________________
401 AliAnalysisTaskFullpAJets::~AliAnalysisTaskFullpAJets()
403 // Destructor. Clean-up the output list, but not the histograms that are put inside
404 // (the list is owner and will clean-up these histograms). Protect in PROOF case.
405 if (fOutput && !AliAnalysisManager::GetAnalysisManager()->IsProofMode())
411 //________________________________________________________________________
412 void AliAnalysisTaskFullpAJets::UserCreateOutputObjects()
415 // Called once (on the worker node)
416 fIsInitialized=kFALSE;
417 fOutput = new TList();
418 fOutput->SetOwner(); // IMPORTANT!
420 // Initialize Global Variables
425 // fRJET=4 -> fJetR=0.4 && fRJET=25 -> fJetR=0.25, but for writing files, should be 4 and 25 respectively
428 fJetR=(Double_t)fRJET/100.0;
432 fJetR=(Double_t)fRJET/10.0;
436 fEMCalPhiMin=(80/(double)360)*2*TMath::Pi();
437 fEMCalPhiMax=(187/(double)360)*2*TMath::Pi();
438 fEMCalPhiTotal= fEMCalPhiMax-fEMCalPhiMin;
441 fEMCalEtaTotal=fEMCalEtaMax-fEMCalEtaMin;
442 fEMCalArea=fEMCalPhiTotal*fEMCalEtaTotal;
444 fTPCPhiMin=(0/(double)360)*2*TMath::Pi();
445 fTPCPhiMax=(360/(double)360)*2*TMath::Pi();
446 fTPCPhiTotal= fTPCPhiMax-fTPCPhiMin;
449 fTPCEtaTotal=fTPCEtaMax-fTPCEtaMin;
450 fTPCArea=fTPCPhiTotal*fTPCEtaTotal;
454 fParticlePtBins=Int_t(fParticlePtUp-fParticlePtLow);
459 Int_t CentralityBinMult=10;
461 fJetAreaCutFrac =0.6; // Fudge factor for selecting on jets with threshold Area or higher
462 fJetAreaThreshold=fJetAreaCutFrac*TMath::Pi()*fJetR*fJetR;
463 fTPCJetThreshold=5.0; // Threshold required for an Anti-kT Charged jet to be considered a "true" jet in TPC
464 fEMCalJetThreshold=5.0; // Threshold required for an Anti-kT Charged+Neutral jet to be considered a "true" jet in EMCal
469 fEMCalRCBckgFluc = new Double_t[fnBckgClusters];
470 fTPCRCBckgFluc = new Double_t[fnBckgClusters];
471 fEMCalRCBckgFlucSignal = new Double_t[fnBckgClusters];
472 fTPCRCBckgFlucSignal = new Double_t[fnBckgClusters];
473 fEMCalRCBckgFlucNColl = new Double_t[fnBckgClusters];
474 fTPCRCBckgFlucNColl = new Double_t[fnBckgClusters];
475 for (Int_t i=0;i<fnBckgClusters;i++)
477 fEMCalRCBckgFluc[i]=0.0;
478 fTPCRCBckgFluc[i]=0.0;
479 fEMCalRCBckgFlucSignal[i]=0.0;
480 fTPCRCBckgFlucSignal[i]=0.0;
481 fEMCalRCBckgFlucNColl[i]=0.0;
482 fTPCRCBckgFlucNColl[i]=0.0;
485 fnEMCalCells=12288; // sMods 1-10 have 24x48 cells, sMods 11&12 have 8x48 cells...
488 Int_t JetPtBins = 200;
489 Double_t JetPtLow = 0.0;
490 Double_t JetPtUp = 200.0;
496 fhTrackPt = new TH1D("fhTrackPt","p_{T} distribution of tracks in event",fParticlePtBins,fParticlePtLow,fParticlePtUp);
497 fhTrackPt->GetXaxis()->SetTitle("p_{T} (GeV/c)");
498 fhTrackPt->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
501 fhTrackPhi = new TH1D("fhTrackPhi","#phi distribution of tracks in event",TCBins,fTPCPhiMin,fTPCPhiMax);
502 fhTrackPhi->GetXaxis()->SetTitle("#phi");
503 fhTrackPhi->GetYaxis()->SetTitle("1/N_{Events} dN/d#phi");
506 fhTrackEta = new TH1D("fhTrackEta","#eta distribution of tracks in event",TCBins,fTPCEtaMin,fTPCEtaMax);
507 fhTrackEta->GetXaxis()->SetTitle("#eta");
508 fhTrackEta->GetYaxis()->SetTitle("1/N_{Events} dN/d#eta");
511 fhTrackEtaPhi = new TH2D("fhTrackEtaPhi","#eta-#phi distribution of tracks in event",TCBins,fTPCEtaMin,fTPCEtaMax,TCBins,fTPCPhiMin,fTPCPhiMax);
512 fhTrackEtaPhi->GetXaxis()->SetTitle("#eta");
513 fhTrackEtaPhi->GetYaxis()->SetTitle("#phi");
514 fhTrackEtaPhi->GetZaxis()->SetTitle("1/N_{Events} dN/d#etad#phi");
515 fhTrackEtaPhi->Sumw2();
517 fhTrackPhiPt = new TH2D("fhTrackPhiPt","#phi-p_{T} distribution of tracks in event",TCBins,fTPCPhiMin,fTPCPhiMax,fParticlePtBins,fParticlePtLow,fParticlePtUp);
518 fhTrackPhiPt->GetXaxis()->SetTitle("#phi");
519 fhTrackPhiPt->GetYaxis()->SetTitle("p_{T} (GeV/c)");
520 fhTrackPhiPt->GetZaxis()->SetTitle("1/N_{Events} dN/d#phidp_{T}");
521 fhTrackPhiPt->Sumw2();
523 fhTrackEtaPt = new TH2D("fhTrackEtaPt","#eta-p_{T} distribution of tracks in event",TCBins,fTPCEtaMin,fTPCEtaMax,fParticlePtBins,fParticlePtLow,fParticlePtUp);
524 fhTrackEtaPt->GetXaxis()->SetTitle("#phi");
525 fhTrackEtaPt->GetYaxis()->SetTitle("p_{T} (GeV/c)");
526 fhTrackEtaPt->GetZaxis()->SetTitle("1/N_{Events} dN/d#etadp_{T}");
527 fhTrackEtaPt->Sumw2();
529 fhTrackEtaPhiPt = new TH3D("fhTrackEtaPhiPt","#eta-#phi-p_{T} distribution of tracks in event",TCBins,fTPCEtaMin,fTPCEtaMax,TCBins,fTPCPhiMin,fTPCPhiMax,fParticlePtBins,fParticlePtLow,fParticlePtUp);
530 fhTrackEtaPhiPt->GetXaxis()->SetTitle("#eta");
531 fhTrackEtaPhiPt->GetYaxis()->SetTitle("#phi");
532 fhTrackEtaPhiPt->GetZaxis()->SetTitle("p_{T} (GeV/c)");
533 fhTrackEtaPhiPt->Sumw2();
536 fhGlobalTrackPt = new TH1D("fhGlobalTrackPt","Global p_{T} distribution of tracks in event",fParticlePtBins,fParticlePtLow,fParticlePtUp);
537 fhGlobalTrackPt->GetXaxis()->SetTitle("p_{T} (GeV/c)");
538 fhGlobalTrackPt->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
539 fhGlobalTrackPt->Sumw2();
541 fhGlobalTrackPhi = new TH1D("fhGlobalTrackPhi","Global #phi distribution of tracks in event",TCBins,fTPCPhiMin,fTPCPhiMax);
542 fhGlobalTrackPhi->GetXaxis()->SetTitle("#phi");
543 fhGlobalTrackPhi->GetYaxis()->SetTitle("1/N_{Events} dN/d#phi");
544 fhGlobalTrackPhi->Sumw2();
546 fhGlobalTrackEta = new TH1D("fhGlobalTrackEta","Global #eta distribution of tracks in event",TCBins,fTPCEtaMin,fTPCEtaMax);
547 fhGlobalTrackEta->GetXaxis()->SetTitle("#eta");
548 fhGlobalTrackEta->GetYaxis()->SetTitle("1/N_{Events} dN/d#eta");
549 fhGlobalTrackEta->Sumw2();
551 fhGlobalTrackEtaPhi = new TH2D("fhGlobalTrackEtaPhi","Global #eta-#phi distribution of tracks in event",TCBins,fTPCEtaMin,fTPCEtaMax,TCBins,fTPCPhiMin,fTPCPhiMax);
552 fhGlobalTrackEtaPhi->GetXaxis()->SetTitle("#eta");
553 fhGlobalTrackEtaPhi->GetYaxis()->SetTitle("#phi");
554 fhGlobalTrackEtaPhi->GetZaxis()->SetTitle("1/N_{Events} dN/d#etad#phi");
555 fhGlobalTrackEtaPhi->Sumw2();
557 fhGlobalTrackPhiPt = new TH2D("fhGlobalTrackPhiPt","Global #phi-p_{T} distribution of tracks in event",TCBins,fTPCPhiMin,fTPCPhiMax,fParticlePtBins,fParticlePtLow,fParticlePtUp);
558 fhGlobalTrackPhiPt->GetXaxis()->SetTitle("#phi");
559 fhGlobalTrackPhiPt->GetYaxis()->SetTitle("p_{T} (GeV/c)");
560 fhGlobalTrackPhiPt->GetZaxis()->SetTitle("1/N_{Events} dN/d#phidp_{T}");
561 fhGlobalTrackPhiPt->Sumw2();
563 fhGlobalTrackEtaPt = new TH2D("fhGlobalTrackEtaPt","Global #eta-p_{T} distribution of tracks in event",TCBins,fTPCEtaMin,fTPCEtaMax,fParticlePtBins,fParticlePtLow,fParticlePtUp);
564 fhGlobalTrackEtaPt->GetXaxis()->SetTitle("#phi");
565 fhGlobalTrackEtaPt->GetYaxis()->SetTitle("p_{T} (GeV/c)");
566 fhGlobalTrackEtaPt->GetZaxis()->SetTitle("1/N_{Events} dN/d#etadp_{T}");
567 fhGlobalTrackEtaPt->Sumw2();
569 fhGlobalTrackEtaPhiPt = new TH3D("fhGlobalTrackEtaPhiPt","Global #eta-#phi-p_{T} distribution of tracks in event",TCBins,fTPCEtaMin,fTPCEtaMax,TCBins,fTPCPhiMin,fTPCPhiMax,fParticlePtBins,fParticlePtLow,fParticlePtUp);
570 fhGlobalTrackEtaPhiPt->GetXaxis()->SetTitle("#eta");
571 fhGlobalTrackEtaPhiPt->GetYaxis()->SetTitle("#phi");
572 fhGlobalTrackEtaPhiPt->GetZaxis()->SetTitle("p_{T} (GeV/c)");
573 fhGlobalTrackEtaPhiPt->Sumw2();
575 // Complementary Tracks
576 fhComplementaryTrackPt = new TH1D("fhComplementaryTrackPt","Complementary p_{T} distribution of tracks in event",fParticlePtBins,fParticlePtLow,fParticlePtUp);
577 fhComplementaryTrackPt->GetXaxis()->SetTitle("p_{T} (GeV/c)");
578 fhComplementaryTrackPt->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
579 fhComplementaryTrackPt->Sumw2();
581 fhComplementaryTrackPhi = new TH1D("fhComplementaryTrackPhi","Complementary #phi distribution of tracks in event",TCBins,fTPCPhiMin,fTPCPhiMax);
582 fhComplementaryTrackPhi->GetXaxis()->SetTitle("#phi");
583 fhComplementaryTrackPhi->GetYaxis()->SetTitle("1/N_{Events} dN/d#phi");
584 fhComplementaryTrackPhi->Sumw2();
586 fhComplementaryTrackEta = new TH1D("fhComplementaryTrackEta","Complementary #eta distribution of tracks in event",TCBins,fTPCEtaMin,fTPCEtaMax);
587 fhComplementaryTrackEta->GetXaxis()->SetTitle("#eta");
588 fhComplementaryTrackEta->GetYaxis()->SetTitle("1/N_{Events} dN/d#eta");
589 fhComplementaryTrackEta->Sumw2();
591 fhComplementaryTrackEtaPhi = new TH2D("fhComplementaryTrackEtaPhi","Complementary #eta-#phi distribution of tracks in event",TCBins,fTPCEtaMin,fTPCEtaMax,TCBins,fTPCPhiMin,fTPCPhiMax);
592 fhComplementaryTrackEtaPhi->GetXaxis()->SetTitle("#eta");
593 fhComplementaryTrackEtaPhi->GetYaxis()->SetTitle("#phi");
594 fhComplementaryTrackEtaPhi->GetZaxis()->SetTitle("1/N_{Events} dN/d#etad#phi");
595 fhComplementaryTrackEtaPhi->Sumw2();
597 fhComplementaryTrackPhiPt = new TH2D("fhComplementaryTrackPhiPt","Complementary #phi-p_{T} distribution of tracks in event",TCBins,fTPCPhiMin,fTPCPhiMax,fParticlePtBins,fParticlePtLow,fParticlePtUp);
598 fhComplementaryTrackPhiPt->GetXaxis()->SetTitle("#phi");
599 fhComplementaryTrackPhiPt->GetYaxis()->SetTitle("p_{T} (GeV/c)");
600 fhComplementaryTrackPhiPt->GetZaxis()->SetTitle("1/N_{Events} dN/d#phidp_{T}");
601 fhComplementaryTrackPhiPt->Sumw2();
603 fhComplementaryTrackEtaPt = new TH2D("fhComplementaryTrackEtaPt","Complementary #eta-p_{T} distribution of tracks in event",TCBins,fTPCEtaMin,fTPCEtaMax,fParticlePtBins,fParticlePtLow,fParticlePtUp);
604 fhComplementaryTrackEtaPt->GetXaxis()->SetTitle("#phi");
605 fhComplementaryTrackEtaPt->GetYaxis()->SetTitle("p_{T} (GeV/c)");
606 fhComplementaryTrackEtaPt->GetZaxis()->SetTitle("1/N_{Events} dN/d#etadp_{T}");
607 fhComplementaryTrackEtaPt->Sumw2();
609 fhComplementaryTrackEtaPhiPt = new TH3D("fhComplementaryTrackEtaPhiPt","Complementary #eta-#phi-p_{T} distribution of tracks in event",TCBins,fTPCEtaMin,fTPCEtaMax,TCBins,fTPCPhiMin,fTPCPhiMax,fParticlePtBins,fParticlePtLow,fParticlePtUp);
610 fhComplementaryTrackEtaPhiPt->GetXaxis()->SetTitle("#eta");
611 fhComplementaryTrackEtaPhiPt->GetYaxis()->SetTitle("#phi");
612 fhComplementaryTrackEtaPhiPt->GetZaxis()->SetTitle("p_{T} (GeV/c)");
613 fhComplementaryTrackEtaPhiPt->Sumw2();
615 // Corrected Calo Clusters
616 fhClusterPt = new TH1D("fhClusterPt","p_{T} distribution of clusters in event",10*JetPtBins,JetPtLow,JetPtUp);
617 fhClusterPt->GetXaxis()->SetTitle("p_{T} (GeV/c)");
618 fhClusterPt->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}");
619 fhClusterPt->Sumw2();
621 fhClusterPhi = new TH1D("fhClusterPhi","#phi distribution of clusters in event",TCBins,fTPCPhiMin,fTPCPhiMax);
622 fhClusterPhi->GetXaxis()->SetTitle("#phi");
623 fhClusterPhi->GetYaxis()->SetTitle("1/N_{Events} dN/d#phi");
624 fhClusterPhi->Sumw2();
626 fhClusterEta = new TH1D("fhClusterEta","#eta distribution of clusters in event",TCBins,fTPCEtaMin,fTPCEtaMax);
627 fhClusterEta->GetXaxis()->SetTitle("#eta");
628 fhClusterEta->GetYaxis()->SetTitle("1/N_{Events} dN/d#eta");
629 fhClusterEta->Sumw2();
631 fhClusterEtaPhi = new TH2D("fhClusterEtaPhi","#eta-#phi distribution of clusters in event",TCBins,fEMCalEtaMin,fEMCalEtaMax,TCBins,fEMCalPhiMin,fEMCalPhiMax);
632 fhClusterEtaPhi->GetXaxis()->SetTitle("#eta");
633 fhClusterEtaPhi->GetYaxis()->SetTitle("#phi");
634 fhClusterEtaPhi->GetZaxis()->SetTitle("1/N_{Events} dN/d#etad#phi");
635 fhClusterEtaPhi->Sumw2();
637 fhClusterPhiPt = new TH2D("fhClusterPhiPt","#phi-p_{T} distribution of clusters in event",TCBins,fEMCalPhiMin,fEMCalPhiMax,fParticlePtBins,fParticlePtLow,fParticlePtUp);
638 fhClusterPhiPt->GetXaxis()->SetTitle("#phi");
639 fhClusterPhiPt->GetYaxis()->SetTitle("p_{T} (GeV/c)");
640 fhClusterPhiPt->GetZaxis()->SetTitle("1/N_{Events} dN/d#phidp_{T}");
641 fhClusterPhiPt->Sumw2();
643 fhClusterEtaPt = new TH2D("fhClusterEtaPt","#eta-p_{T} distribution of clusters in event",TCBins,fEMCalEtaMin,fEMCalEtaMax,fParticlePtBins,fParticlePtLow,fParticlePtUp);
644 fhClusterEtaPt->GetXaxis()->SetTitle("#phi");
645 fhClusterEtaPt->GetYaxis()->SetTitle("p_{T} (GeV/c)");
646 fhClusterEtaPt->GetZaxis()->SetTitle("1/N_{Events} dN/d#etadp_{T}");
647 fhClusterEtaPt->Sumw2();
649 fhClusterEtaPhiPt = new TH3D("fhClusterEtaPhiPt","#eta-#phi-p_{T} distribution of clusters in event",TCBins,fEMCalEtaMin,fEMCalEtaMax,TCBins,fEMCalPhiMin,fEMCalPhiMax,fParticlePtBins,fParticlePtLow,fParticlePtUp);
650 fhClusterEtaPhiPt->GetXaxis()->SetTitle("#eta");
651 fhClusterEtaPhiPt->GetYaxis()->SetTitle("#phi");
652 fhClusterEtaPhiPt->GetZaxis()->SetTitle("p_{T} (GeV/c)");
653 fhClusterEtaPhiPt->Sumw2();
655 fhCentrality = new TH1D("fhCentrality","Event Centrality Distribution",fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp);
656 fhCentrality->GetXaxis()->SetTitle(fCentralityTag);
657 fhCentrality->GetYaxis()->SetTitle("1/N_{Events}");
658 fhCentrality->Sumw2();
660 fhJetConstituentPt= new TH2D("fhJetConstituentPt","Jet constituents p_{T} distribution",JetPtBins, JetPtLow, JetPtUp,10*JetPtBins, JetPtLow, JetPtUp);
661 fhJetConstituentPt->GetXaxis()->SetTitle("Jet p_{T} (GeV/c)");
662 fhJetConstituentPt->GetYaxis()->SetTitle("Constituent p_{T} (GeV/c)");
663 fhJetConstituentPt->Sumw2();
665 fhEMCalCellCounts = new TH1D("fhEMCalCellCounts","Distribtuion of cluster counts across the EMCal",fnEMCalCells,1,fnEMCalCells);
666 fhEMCalCellCounts->GetXaxis()->SetTitle("Absoulute Cell Id");
667 fhEMCalCellCounts->GetYaxis()->SetTitle("Counts per Event");
668 fhEMCalCellCounts->Sumw2();
671 Int_t RhoBins = 1000;
672 Double_t RhoPtMin = -50.0;
673 Double_t RhoPtMax = 50.0;
675 fhDeltaRhoN = new TH1D("fhDeltaRhoN","0-100% #delta#rho_{N} = #rho_{N}^{TPC+EMCal} - #rho_{N}^{TPC+Scale}",RhoBins,RhoPtMin,RhoPtMax);
676 fhDeltaRhoN->GetXaxis()->SetTitle("#delta#rho (GeV)");
677 fhDeltaRhoN->GetYaxis()->SetTitle("Counts");
678 fhDeltaRhoN->Sumw2();
680 fhDeltaRhoCMS = new TH1D("fhDeltaRhoCMS","0-100% #delta#rho_{CMS} = #rho_{CMS}^{TPC+EMCal} - #rho_{CMS}^{TPC+Scale}",RhoBins,RhoPtMin,RhoPtMax);
681 fhDeltaRhoCMS->GetXaxis()->SetTitle("#delta#rho (GeV)");
682 fhDeltaRhoCMS->GetYaxis()->SetTitle("Counts");
683 fhDeltaRhoCMS->Sumw2();
685 // Jet Area vs pT Distribution
686 Int_t JetPtAreaBins=200;
687 Double_t JetPtAreaLow=0.0;
688 Double_t JetPtAreaUp=2.0;
694 fhJetPtArea = new TH2D("fhJetPtArea","Jet Area Distribution",JetPtBins, JetPtLow,JetPtUp,JetPtAreaBins,JetPtAreaLow,JetPtAreaUp);
695 fhJetPtArea->GetXaxis()->SetTitle("p_{T} (GeV/c)");
696 fhJetPtArea->GetYaxis()->SetTitle("A_{jet}");
697 fhJetPtArea->GetZaxis()->SetTitle("1/N_{Events} dN/dA_{jet}dp_{T}");
698 fhJetPtArea->Sumw2();
700 fhRhoScale = new TH2D("fhRhoScale","Scaling Factor",SFBins,SFLow,SFUp,CentralityBinMult*fCentralityBins,fCentralityLow,fCentralityUp);
701 fhRhoScale->GetXaxis()->SetTitle("Scale Factor");
702 fhRhoScale->GetYaxis()->SetTitle("Centrality");
703 fhRhoScale->GetZaxis()->SetTitle("Counts");
707 fpEMCalEventMult = new TProfile("fpEMCalEventMult","EMCal Event Multiplcity vs Centrality",CentralityBinMult*fCentralityBins,fCentralityLow,fCentralityUp);
708 fpEMCalEventMult->GetXaxis()->SetTitle(fCentralityTag);
709 fpEMCalEventMult->GetYaxis()->SetTitle("Multiplicity");
711 fpTPCEventMult = new TProfile("fpTPCEventMult","TPC Event Multiplcity vs Centrality",CentralityBinMult*fCentralityBins,fCentralityLow,fCentralityUp);
712 fpTPCEventMult->GetXaxis()->SetTitle(fCentralityTag);
713 fpTPCEventMult->GetYaxis()->SetTitle("Multiplicity");
715 fpRhoScale = new TProfile("fpRhoScale","Scaling Factor Profile vs Centrality",CentralityBinMult*fCentralityBins,fCentralityLow,fCentralityUp);
716 fpRhoScale->GetXaxis()->SetTitle(fCentralityTag);
717 fpRhoScale->GetYaxis()->SetTitle("Scale Factor");
719 // QA::2D Energy Density Profiles for Tracks and Clusters
720 fpTrackPtProfile = new TProfile2D("fpTrackPtProfile","2D Profile of track pT density throughout the TPC",TCBins,fTPCEtaMin,fTPCEtaMax,TCBins,fTPCPhiMin,fTPCPhiMax);
721 fpTrackPtProfile->GetXaxis()->SetTitle("#eta");
722 fpTrackPtProfile->GetYaxis()->SetTitle("#phi");
723 fpTrackPtProfile->GetZaxis()->SetTitle("p_{T} density (GeV/Area)");
725 fpClusterPtProfile = new TProfile2D("fpClusterPtProfile","2D Profile of cluster pT density throughout the EMCal",TCBins,fEMCalEtaMin,fEMCalEtaMax,TCBins,fEMCalPhiMin,fEMCalPhiMax);
726 fpClusterPtProfile->GetXaxis()->SetTitle("#eta");
727 fpClusterPtProfile->GetYaxis()->SetTitle("#phi");
728 fpClusterPtProfile->GetZaxis()->SetTitle("p_{T} density (GeV/Area)");
730 TString temp_name="";
731 TString title_name="";
737 for (Int_t i=0;i<14;i++)
739 temp_name=Form("fpJetEtaProfile%d",i);
740 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.);
742 fpJetEtaProfile[i]= new TProfile(temp_name,title_name,fEtaProfileBins,fEtaProfileLow,fEtaProfileUp);
743 fpJetEtaProfile[i]->GetXaxis()->SetTitle("#eta");
744 fpJetEtaProfile[i]->GetYaxis()->SetTitle("p_{T}/Area (GeV/c)");
745 fOutput->Add(fpJetEtaProfile[i]);
749 temp_name=Form("fpJetAbsEtaProfile%d",i);
750 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.);
752 fpJetAbsEtaProfile[i]= new TProfile(temp_name,title_name,fEtaProfileBins,0,2*fEtaProfileUp);
753 fpJetAbsEtaProfile[i]->GetXaxis()->SetTitle("#Delta#eta");
754 fpJetAbsEtaProfile[i]->GetYaxis()->SetTitle("p_{T}/Area (GeV/c)");
755 fOutput->Add(fpJetAbsEtaProfile[i]);
763 fEDProfilePtBins=100;
765 fEDProfilePtUp=100.0;
767 fEDProfileEtaLow=-0.2;
770 for (Int_t i=0;i<8;i++)
772 temp_name=Form("fpChargedJetRProfile%d",i);
773 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.);
775 fpChargedJetRProfile[i]= new TProfile(temp_name,title_name,fEDProfileRBins,fEDProfileRLow,fEDProfileRUp);
776 fpChargedJetRProfile[i]->GetXaxis()->SetTitle("Radius");
777 fpChargedJetRProfile[i]->GetYaxis()->SetTitle("p_{T}/Area (GeV/c)");
778 fOutput->Add(fpChargedJetRProfile[i]);
783 for (Int_t i=0;i<4;i++)
785 temp_name=Form("fpJetRProfile%d",i);
786 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.);
788 fpJetRProfile[i]= new TProfile(temp_name,title_name,fEDProfileRBins,fEDProfileRLow,fEDProfileRUp);
789 fpJetRProfile[i]->GetXaxis()->SetTitle("Radius");
790 fpJetRProfile[i]->GetYaxis()->SetTitle("p_{T}/Area (GeV/c)");
791 fOutput->Add(fpJetRProfile[i]);
796 for (Int_t i=0;i<10;i++)
798 temp_name=Form("fpChargedJetEDProfile%d0",i);
799 title_name=Form("Charged Jet Energy Density Profile for %d0-%d0 Centrality",i,i+1);
801 fpChargedJetEDProfile[i]= new TProfile3D(temp_name,title_name,fEDProfilePtBins,fEDProfilePtLow,fEDProfilePtUp,fEDProfileEtaBins+4,fEDProfileEtaLow-0.2,fEDProfileEtaUp+0.2,fEDProfileRBins,fEDProfileRLow,fEDProfileRUp);
802 fpChargedJetEDProfile[i]->GetXaxis()->SetTitle("p_{T} (GeV/c)");
803 fpChargedJetEDProfile[i]->GetYaxis()->SetTitle("Pseudorapidity");
804 fpChargedJetEDProfile[i]->GetZaxis()->SetTitle("Radius");
805 fOutput->Add(fpChargedJetEDProfile[i]);
809 temp_name=Form("fpJetEDProfile%d0",i);
810 title_name=Form("Jet Energy Density Profile for %d0-%d0 Centrality",i,i+1);
812 fpJetEDProfile[i]= new TProfile3D(temp_name,title_name,fEDProfilePtBins,fEDProfilePtLow,fEDProfilePtUp,fEDProfileEtaBins,fEDProfileEtaLow,fEDProfileEtaUp,fEDProfileRBins,fEDProfileRLow,fEDProfileRUp);
813 fpJetEDProfile[i]->GetXaxis()->SetTitle("p_{T} (GeV/c)");
814 fpJetEDProfile[i]->GetYaxis()->SetTitle("Pseudorapidity");
815 fpJetEDProfile[i]->GetZaxis()->SetTitle("Radius");
816 fOutput->Add(fpJetEDProfile[i]);
821 fTPCRawJets = new AlipAJetHistos("TPCRawJets",fCentralityTag);
822 fEMCalRawJets = new AlipAJetHistos("EMCalRawJets",fCentralityTag);
824 fRhoFull0 = new AlipAJetHistos("RhoFull0",fCentralityTag);
825 fRhoFull1 = new AlipAJetHistos("RhoFull1",fCentralityTag);
826 fRhoFull2 = new AlipAJetHistos("RhoFull2",fCentralityTag);
827 fRhoFullN = new AlipAJetHistos("RhoFullN",fCentralityTag);
828 fRhoFullDijet = new AlipAJetHistos("RhoFullDijet",fCentralityTag);
829 fRhoFullkT = new AlipAJetHistos("RhoFullkT",fCentralityTag);
830 fRhoFullCMS = new AlipAJetHistos("RhoFullCMS",fCentralityTag);
832 fRhoCharged0 = new AlipAJetHistos("RhoCharged0",fCentralityTag);
833 fRhoCharged1 = new AlipAJetHistos("RhoCharged1",fCentralityTag);
834 fRhoCharged2 = new AlipAJetHistos("RhoCharged2",fCentralityTag);
835 fRhoChargedN = new AlipAJetHistos("RhoChargedN",fCentralityTag);
836 fRhoChargedkT = new AlipAJetHistos("RhoChargedkT",fCentralityTag);
837 fRhoChargedScale = new AlipAJetHistos("RhoChargedScale",fCentralityTag);
838 fRhoChargedkTScale = new AlipAJetHistos("RhoChargedkTScale",fCentralityTag);
839 fRhoChargedCMS = new AlipAJetHistos("RhoChargedCMS",fCentralityTag);
840 fRhoChargedCMSScale = new AlipAJetHistos("RhoChargedCMSScale",fCentralityTag);
842 fOutput->Add(fhTrackPt);
843 fOutput->Add(fhTrackEta);
844 fOutput->Add(fhTrackPhi);
845 fOutput->Add(fhTrackEtaPhi);
846 fOutput->Add(fhTrackPhiPt);
847 fOutput->Add(fhTrackEtaPt);
848 fOutput->Add(fhTrackEtaPhiPt);
849 fOutput->Add(fhGlobalTrackPt);
850 fOutput->Add(fhGlobalTrackEta);
851 fOutput->Add(fhGlobalTrackPhi);
852 fOutput->Add(fhGlobalTrackEtaPhi);
853 fOutput->Add(fhGlobalTrackPhiPt);
854 fOutput->Add(fhGlobalTrackEtaPt);
855 fOutput->Add(fhGlobalTrackEtaPhiPt);
856 fOutput->Add(fhComplementaryTrackPt);
857 fOutput->Add(fhComplementaryTrackEta);
858 fOutput->Add(fhComplementaryTrackPhi);
859 fOutput->Add(fhComplementaryTrackEtaPhi);
860 fOutput->Add(fhComplementaryTrackPhiPt);
861 fOutput->Add(fhComplementaryTrackEtaPt);
862 fOutput->Add(fhComplementaryTrackEtaPhiPt);
863 fOutput->Add(fhClusterPt);
864 fOutput->Add(fhClusterEta);
865 fOutput->Add(fhClusterPhi);
866 fOutput->Add(fhClusterEtaPhi);
867 fOutput->Add(fhClusterPhiPt);
868 fOutput->Add(fhClusterEtaPt);
869 fOutput->Add(fhClusterEtaPhiPt);
870 fOutput->Add(fhCentrality);
871 fOutput->Add(fhEMCalCellCounts);
872 fOutput->Add(fhDeltaRhoN);
873 fOutput->Add(fhDeltaRhoCMS);
874 fOutput->Add(fhJetPtArea);
875 fOutput->Add(fhJetConstituentPt);
876 fOutput->Add(fhRhoScale);
878 fOutput->Add(fpTPCEventMult);
879 fOutput->Add(fpEMCalEventMult);
880 fOutput->Add(fpRhoScale);
882 fOutput->Add(fpTrackPtProfile);
883 fOutput->Add(fpClusterPtProfile);
885 fOutput->Add(fTPCRawJets->GetOutputHistos());
886 fOutput->Add(fEMCalRawJets->GetOutputHistos());
888 fOutput->Add(fRhoFull0->GetOutputHistos());
889 fOutput->Add(fRhoFull1->GetOutputHistos());
890 fOutput->Add(fRhoFull2->GetOutputHistos());
891 fOutput->Add(fRhoFullN->GetOutputHistos());
892 fOutput->Add(fRhoFullDijet->GetOutputHistos());
893 fOutput->Add(fRhoFullkT->GetOutputHistos());
894 fOutput->Add(fRhoFullCMS->GetOutputHistos());
895 fOutput->Add(fRhoCharged0->GetOutputHistos());
896 fOutput->Add(fRhoCharged1->GetOutputHistos());
897 fOutput->Add(fRhoCharged2->GetOutputHistos());
898 fOutput->Add(fRhoChargedN->GetOutputHistos());
899 fOutput->Add(fRhoChargedkT->GetOutputHistos());
900 fOutput->Add(fRhoChargedScale->GetOutputHistos());
901 fOutput->Add(fRhoChargedkTScale->GetOutputHistos());
902 fOutput->Add(fRhoChargedCMS->GetOutputHistos());
903 fOutput->Add(fRhoChargedCMSScale->GetOutputHistos());
905 // Post data for ALL output slots >0 here,
906 // To get at least an empty histogram
907 // 1 is the outputnumber of a certain weg of task 1
908 PostData(1, fOutput);
911 void AliAnalysisTaskFullpAJets::UserExecOnce()
913 // Get the event tracks
914 fOrgTracks = dynamic_cast <TClonesArray*>(InputEvent()->FindListObject(fTrackName));
916 // Get the event caloclusters
917 fOrgClusters = dynamic_cast <TClonesArray*>(InputEvent()->FindListObject(fClusName));
920 fmyKTChargedJets = dynamic_cast <TClonesArray*>(InputEvent()->FindListObject(fkTChargedName));
921 fmyAKTChargedJets = dynamic_cast <TClonesArray*>(InputEvent()->FindListObject(fAkTChargedName));
924 fmyKTFullJets = dynamic_cast <TClonesArray*>(InputEvent()->FindListObject(fkTFullName));
925 fmyAKTFullJets = dynamic_cast <TClonesArray*>(InputEvent()->FindListObject(fAkTFullName));
927 fIsInitialized=kTRUE;
929 //________________________________________________________________________
930 void AliAnalysisTaskFullpAJets::UserExec(Option_t *)
932 if (fIsInitialized==kFALSE)
937 // Get pointer to reconstructed event
938 AliVEvent *event = InputEvent();
941 AliError("Pointer == 0, this can not happen!");
945 AliESDEvent* esd = dynamic_cast<AliESDEvent*>(event);
946 AliAODEvent* aod = dynamic_cast<AliAODEvent*>(event);
950 fEventCentrality=esd->GetCentrality()->GetCentralityPercentile(fCentralityTag);
952 if (esd->GetPrimaryVertex()->GetNContributors()<1 || (TMath::Abs(esd->GetPrimaryVertex()->GetZ())>fVertexWindow))
956 if (TMath::Sqrt(TMath::Power(esd->GetPrimaryVertex()->GetX(),2)+TMath::Power(esd->GetPrimaryVertex()->GetY(),2))>fVertexMaxR)
961 esd->GetPrimaryVertex()->GetXYZ(fvertex);
965 fEventCentrality=aod->GetCentrality()->GetCentralityPercentile(fCentralityTag);
967 if (aod->GetPrimaryVertex()->GetNContributors()<1 || (TMath::Abs(aod->GetPrimaryVertex()->GetZ())>fVertexWindow))
971 if (TMath::Sqrt(TMath::Power(aod->GetPrimaryVertex()->GetX(),2)+TMath::Power(aod->GetPrimaryVertex()->GetY(),2))>fVertexMaxR)
976 aod->GetPrimaryVertex()->GetXYZ(fvertex);
980 AliError("Cannot get AOD/ESD event. Rejecting Event");
984 // Make sure Centrality isn't exactly 100% (to avoid bin filling errors in profile plots. Make it 99.99
985 if (fEventCentrality>99.99)
987 fEventCentrality=99.99;
989 fhCentrality->Fill(fEventCentrality);
992 // Reject any event that doesn't have any tracks, i.e. TPC is off
995 AliWarning("No PicoTracks, Rejecting Event");
1002 AliInfo("No Corrected CaloClusters, using only charged jets");
1006 GenerateTPCRandomConesPt();
1009 EstimateChargedRho0();
1010 EstimateChargedRho1();
1011 EstimateChargedRho2();
1012 EstimateChargedRhoN();
1013 EstimateChargedRhokT();
1014 EstimateChargedRhoCMS();
1016 JetPtChargedProfile();
1017 DeleteJetData(kFALSE);
1021 PostData(1, fOutput);
1032 GenerateTPCRandomConesPt();
1033 GenerateEMCalRandomConesPt();
1036 EstimateChargedRho0();
1037 EstimateChargedRho1();
1038 EstimateChargedRho2();
1039 EstimateChargedRhoN();
1040 EstimateChargedRhokT();
1041 EstimateChargedRhoCMS();
1047 EstimateFullRhokT();
1048 EstimateFullRhoCMS();
1050 EstimateChargedRhoScale();
1051 EstimateChargedRhokTScale();
1052 EstimateChargedRhoCMSScale();
1055 if (IsDiJetEvent()==kTRUE)
1057 EstimateFullRhoDijet();
1060 // Compute Jet Energy Density Profile
1061 JetPtChargedProfile();
1065 // Compute differences between TPC+EMCal Rho to TPC&Scaled Rho
1066 if (fRhoChargedScale->GetRho()>0 && fRhoFullN->GetRho()>0)
1068 fhDeltaRhoN->Fill(fRhoFullN->GetRho()-fRhoChargedScale->GetRho());
1070 if (fRhoChargedCMSScale->GetRho()>0 && fRhoFullCMS->GetRho()>0)
1072 fhDeltaRhoCMS->Fill(fRhoFullCMS->GetRho()-fRhoChargedCMSScale->GetRho());
1075 // Delete Dynamic Arrays
1076 DeleteJetData(kTRUE);
1079 PostData(1, fOutput);
1082 //________________________________________________________________________
1083 void AliAnalysisTaskFullpAJets::Terminate(Option_t *) //specify what you want to have done
1085 // Called once at the end of the query. Done nothing here.
1088 /////////////////////////////////////////////////////////////////////////////////////////
1089 ///////////////// User Defined Sub_Routines ///////////////////////////////////////
1090 /////////////////////////////////////////////////////////////////////////////////////////
1092 void AliAnalysisTaskFullpAJets::TrackCuts()
1094 // Fill a TObjArray with the tracks from a TClonesArray which grabs the picotracks.
1097 fmyTracks = new TObjArray();
1098 for (i=0;i<fOrgTracks->GetEntries();i++)
1100 AliVTrack* vtrack = (AliVTrack*) fOrgTracks->At(i);
1101 if (vtrack->Pt()>=fTrackMinPt)
1103 fmyTracks->Add(vtrack);
1106 fnTracks = fmyTracks->GetEntries();
1109 void AliAnalysisTaskFullpAJets::ClusterCuts()
1111 // Fill a TObjArray with the clusters from a TClonesArray which grabs the caloclusterscorr.
1114 fmyClusters = new TObjArray();
1116 for (i=0;i<fOrgClusters->GetEntries();i++)
1118 AliVCluster* vcluster = (AliVCluster*) fOrgClusters->At(i);
1119 TLorentzVector *cluster_vec = new TLorentzVector;
1120 vcluster->GetMomentum(*cluster_vec,fvertex);
1122 if (cluster_vec->Pt()>=fClusterMinPt)
1124 fmyClusters->Add(vcluster);
1130 fnClusters = fmyClusters->GetEntries();
1133 void AliAnalysisTaskFullpAJets::TrackHisto()
1135 // Fill track histograms: Phi,Eta,Pt
1138 TH2D *hdummypT= new TH2D("hdummypT","",TCBins,fTPCEtaMin,fTPCEtaMax,TCBins,fTPCPhiMin,fTPCPhiMax); //!
1140 for (i=0;i<fnTracks;i++)
1142 AliPicoTrack* vtrack =(AliPicoTrack*) fmyTracks->At(i);
1143 fhTrackPt->Fill(vtrack->Pt());
1144 fhTrackEta->Fill(vtrack->Eta());
1145 fhTrackPhi->Fill(vtrack->Phi());
1146 fhTrackEtaPhi->Fill(vtrack->Eta(),vtrack->Phi());
1147 fhTrackPhiPt->Fill(vtrack->Phi(),vtrack->Pt());
1148 fhTrackEtaPt->Fill(vtrack->Eta(),vtrack->Pt());
1149 fhTrackEtaPhiPt->Fill(vtrack->Eta(),vtrack->Phi(),vtrack->Pt());
1151 // Fill Associated Track Distributions for AOD QA Productions
1153 if (vtrack->GetTrackType()==0)
1155 fhGlobalTrackPt->Fill(vtrack->Pt());
1156 fhGlobalTrackEta->Fill(vtrack->Eta());
1157 fhGlobalTrackPhi->Fill(vtrack->Phi());
1158 fhGlobalTrackEtaPhi->Fill(vtrack->Eta(),vtrack->Phi());
1159 fhGlobalTrackPhiPt->Fill(vtrack->Phi(),vtrack->Pt());
1160 fhGlobalTrackEtaPt->Fill(vtrack->Eta(),vtrack->Pt());
1161 fhGlobalTrackEtaPhiPt->Fill(vtrack->Eta(),vtrack->Phi(),vtrack->Pt());
1163 // Complementary Tracks
1164 else if (vtrack->GetTrackType()==1)
1166 fhComplementaryTrackPt->Fill(vtrack->Pt());
1167 fhComplementaryTrackEta->Fill(vtrack->Eta());
1168 fhComplementaryTrackPhi->Fill(vtrack->Phi());
1169 fhComplementaryTrackEtaPhi->Fill(vtrack->Eta(),vtrack->Phi());
1170 fhComplementaryTrackPhiPt->Fill(vtrack->Phi(),vtrack->Pt());
1171 fhComplementaryTrackEtaPt->Fill(vtrack->Eta(),vtrack->Pt());
1172 fhComplementaryTrackEtaPhiPt->Fill(vtrack->Eta(),vtrack->Phi(),vtrack->Pt());
1175 hdummypT->Fill(vtrack->Eta(),vtrack->Phi(),vtrack->Pt());
1177 for (i=1;i<=TCBins;i++)
1179 for (j=1;j<=TCBins;j++)
1181 fpTrackPtProfile->Fill(hdummypT->GetXaxis()->GetBinCenter(i),hdummypT->GetYaxis()->GetBinCenter(j),fTPCArea*TMath::Power(TCBins,-2)*hdummypT->GetBinContent(i,j));
1187 void AliAnalysisTaskFullpAJets::ClusterHisto()
1189 // Fill cluster histograms: Phi,Eta,Pt
1192 TH2D *hdummypT= new TH2D("hdummypT","",TCBins,fEMCalEtaMin,fEMCalEtaMax,TCBins,fEMCalPhiMin,fEMCalPhiMax); //!
1193 AliEMCALGeometry *myAliEMCGeo = AliEMCALGeometry::GetInstance();
1196 for (i=0;i<fnClusters;i++)
1198 AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(i);
1199 TLorentzVector *cluster_vec = new TLorentzVector;
1200 vcluster->GetMomentum(*cluster_vec,fvertex);
1202 fhClusterPt->Fill(cluster_vec->Pt());
1203 fhClusterEta->Fill(cluster_vec->Eta());
1204 fhClusterPhi->Fill(cluster_vec->Phi());
1205 fhClusterEtaPhi->Fill(cluster_vec->Eta(),cluster_vec->Phi());
1206 fhClusterPhiPt->Fill(cluster_vec->Phi(),cluster_vec->Pt());
1207 fhClusterEtaPt->Fill(cluster_vec->Eta(),cluster_vec->Pt());
1208 fhClusterEtaPhiPt->Fill(cluster_vec->Eta(),cluster_vec->Phi(),cluster_vec->Pt());
1209 hdummypT->Fill(cluster_vec->Eta(),cluster_vec->Phi(),cluster_vec->Pt());
1210 myAliEMCGeo->GetAbsCellIdFromEtaPhi(cluster_vec->Eta(),cluster_vec->Phi(),myCellID);
1211 fhEMCalCellCounts->Fill(myCellID);
1214 for (i=1;i<=TCBins;i++)
1216 for (j=1;j<=TCBins;j++)
1218 fpClusterPtProfile->Fill(hdummypT->GetXaxis()->GetBinCenter(i),hdummypT->GetYaxis()->GetBinCenter(j),fEMCalArea*TMath::Power(TCBins,-2)*hdummypT->GetBinContent(i,j));
1224 void AliAnalysisTaskFullpAJets::InitChargedJets()
1226 // Preliminary Jet Placement and Selection Cuts
1229 fnAKTChargedJets = fmyAKTChargedJets->GetEntries();
1230 fnKTChargedJets = fmyKTChargedJets->GetEntries();
1232 fTPCJet = new AlipAJetData("fTPCJet",kFALSE,fnAKTChargedJets);
1233 fTPCFullJet = new AlipAJetData("fTPCFullJet",kFALSE,fnAKTChargedJets);
1234 fTPCOnlyJet = new AlipAJetData("fTPCOnlyJet",kFALSE,fnAKTChargedJets);
1236 fTPCJet->SetSignalCut(fTPCJetThreshold);
1237 fTPCJet->SetAreaCutFraction(fJetAreaCutFrac);
1238 fTPCJet->SetJetR(fJetR);
1239 fTPCFullJet->SetSignalCut(fTPCJetThreshold);
1240 fTPCFullJet->SetAreaCutFraction(fJetAreaCutFrac);
1241 fTPCFullJet->SetJetR(fJetR);
1242 fTPCOnlyJet->SetSignalCut(fTPCJetThreshold);
1243 fTPCOnlyJet->SetAreaCutFraction(fJetAreaCutFrac);
1244 fTPCOnlyJet->SetJetR(fJetR);
1246 // Initialize Jet Data
1247 for (i=0;i<fnAKTChargedJets;i++)
1249 AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTChargedJets->At(i);
1251 fTPCJet->SetIsJetInArray(IsInTPC(fJetR,myJet->Phi(),myJet->Eta(),kFALSE),i);
1252 fTPCFullJet->SetIsJetInArray(IsInTPC(fJetR,myJet->Phi(),myJet->Eta(),kTRUE),i);
1253 fTPCOnlyJet->SetIsJetInArray(IsInTPCFull(fJetR,myJet->Phi(),myJet->Eta()),i);
1255 fTPCJet->InitializeJetData(fmyAKTChargedJets,fnAKTChargedJets);
1256 fTPCFullJet->InitializeJetData(fmyAKTChargedJets,fnAKTChargedJets);
1257 fTPCOnlyJet->InitializeJetData(fmyAKTChargedJets,fnAKTChargedJets);
1260 fTPCkTFullJet = new AlipAJetData("fTPCkTFullJet",kFALSE,fnKTChargedJets);
1261 fTPCkTFullJet->SetSignalCut(fTPCJetThreshold);
1262 fTPCkTFullJet->SetAreaCutFraction(0.25*fJetAreaCutFrac);
1263 fTPCkTFullJet->SetJetR(fJetR);
1265 for (i=0;i<fnKTChargedJets;i++)
1267 AliEmcalJet *myJet =(AliEmcalJet*) fmyKTChargedJets->At(i);
1268 fTPCkTFullJet->SetIsJetInArray(IsInTPC(fJetR,myJet->Phi(),myJet->Eta(),kTRUE),i);
1270 fTPCkTFullJet->InitializeJetData(fmyKTChargedJets,fnKTChargedJets);
1272 // Raw Charged Jet Spectra
1273 fTPCRawJets->FillBSJS(fEventCentrality,0.0,fTPCJetThreshold,fmyAKTChargedJets,fTPCFullJet->GetJets(),fTPCFullJet->GetTotalJets());
1276 void AliAnalysisTaskFullpAJets::InitFullJets()
1278 // Preliminary Jet Placement and Selection Cuts
1281 fnAKTFullJets = fmyAKTFullJets->GetEntries();
1282 fnKTFullJets = fmyKTFullJets->GetEntries();
1284 fEMCalJet = new AlipAJetData("fEMCalJet",kTRUE,fnAKTFullJets);
1285 fEMCalFullJet = new AlipAJetData("fEMCalFullJet",kTRUE,fnAKTFullJets);
1286 fEMCalPartJet = new AlipAJetData("fEMCalPartJet",kTRUE,fnAKTFullJets);
1288 fEMCalJet->SetSignalCut(fEMCalJetThreshold);
1289 fEMCalJet->SetAreaCutFraction(fJetAreaCutFrac);
1290 fEMCalJet->SetJetR(fJetR);
1291 fEMCalFullJet->SetSignalCut(fEMCalJetThreshold);
1292 fEMCalFullJet->SetAreaCutFraction(fJetAreaCutFrac);
1293 fEMCalFullJet->SetJetR(fJetR);
1294 fEMCalPartJet->SetSignalCut(fEMCalJetThreshold);
1295 fEMCalPartJet->SetAreaCutFraction(fJetAreaCutFrac);
1296 fEMCalPartJet->SetJetR(fJetR);
1298 // Initialize Jet Data
1299 for (i=0;i<fnAKTFullJets;i++)
1301 AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTFullJets->At(i);
1303 fEMCalJet->SetIsJetInArray(IsInEMCal(myJet->Phi(),myJet->Eta()),i);
1304 fEMCalFullJet->SetIsJetInArray(IsInEMCalFull(fJetR,myJet->Phi(),myJet->Eta()),i);
1305 fEMCalPartJet->SetIsJetInArray(IsInEMCalPart(fJetR,myJet->Phi(),myJet->Eta()),i);
1307 fEMCalJet->InitializeJetData(fmyAKTFullJets,fnAKTFullJets);
1308 fEMCalFullJet->InitializeJetData(fmyAKTFullJets,fnAKTFullJets);
1309 fEMCalPartJet->InitializeJetData(fmyAKTFullJets,fnAKTFullJets);
1312 fEMCalkTFullJet = new AlipAJetData("fEMCalkTFullJet",kTRUE,fnKTFullJets);
1313 fEMCalkTFullJet->SetSignalCut(fEMCalJetThreshold);
1314 fEMCalkTFullJet->SetAreaCutFraction(0.25*fJetAreaCutFrac);
1315 fEMCalkTFullJet->SetJetR(fJetR);
1317 for (i=0;i<fnKTFullJets;i++)
1319 AliEmcalJet *myJet =(AliEmcalJet*) fmyKTFullJets->At(i);
1320 fEMCalkTFullJet->SetIsJetInArray(IsInEMCalFull(fJetR,myJet->Phi(),myJet->Eta()),i);
1322 fEMCalkTFullJet->InitializeJetData(fmyKTFullJets,fnKTFullJets);
1324 // Raw Full Jet Spectra
1325 fEMCalRawJets->FillBSJS(fEventCentrality,0.0,fEMCalJetThreshold,fmyAKTFullJets,fEMCalFullJet->GetJets(),fEMCalFullJet->GetTotalJets());
1328 void AliAnalysisTaskFullpAJets::JetPtArea()
1332 for (i=0;i<fEMCalFullJet->GetTotalJets();i++)
1334 AliEmcalJet *myJet = (AliEmcalJet*) fmyAKTFullJets->At(fEMCalFullJet->GetJetIndex(i));
1335 fhJetPtArea->Fill(myJet->Pt(),myJet->Area());
1339 void AliAnalysisTaskFullpAJets::GenerateTPCRandomConesPt()
1342 Double_t E_tracks_total=0.;
1343 TRandom3 u(time(NULL));
1345 Double_t Eta_Center=0.5*(fTPCEtaMin+fTPCEtaMax);
1346 Double_t Phi_Center=0.5*(fTPCPhiMin+fTPCPhiMax);
1350 for (i=0;i<fnBckgClusters;i++)
1352 fTPCRCBckgFluc[i]=0.0;
1353 fTPCRCBckgFlucSignal[i]=0.0;
1354 fTPCRCBckgFlucNColl[i]=0.0;
1357 TLorentzVector *dummy= new TLorentzVector;
1358 TLorentzVector *temp_jet= new TLorentzVector;
1360 // First, consider the RC with no spatial restrictions
1361 for (j=0;j<fnBckgClusters;j++)
1365 dummy->SetPtEtaPhiE(1,u.Uniform(Eta_Center-fJetR,Eta_Center+fJetR),u.Uniform(Phi_Center-fJetR,Phi_Center+fJetR),0);
1366 // Loop over all tracks
1367 for (i=0;i<fnTracks;i++)
1369 AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i);
1370 if (IsInTPC(fJetR,vtrack->Phi(),vtrack->Eta(),kFALSE)==kTRUE)
1372 TLorentzVector *track_vec = new TLorentzVector;
1373 track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E());
1374 if (dummy->DeltaR(*track_vec)<fJetR)
1376 E_tracks_total+=vtrack->Pt();
1381 fTPCRCBckgFlucSignal[j]=E_tracks_total;
1384 // Now, consider the RC where the vertex of RC is at least 2R away from the leading signal
1386 if (fTPCJet->GetLeadingPt()<0.0)
1388 temp_jet->SetPtEtaPhiE(1,u.Uniform(Eta_Center-fJetR,Eta_Center+fJetR),u.Uniform(Phi_Center-fJetR,Phi_Center+fJetR),0);
1392 AliEmcalJet *myJet = (AliEmcalJet*) fmyAKTChargedJets->At(fTPCJet->GetLeadingIndex());
1393 myJet->GetMom(*temp_jet);
1396 for (j=0;j<fnBckgClusters;j++)
1402 dummy->SetPtEtaPhiE(1,u.Uniform(Eta_Center-fJetR,Eta_Center+fJetR),u.Uniform(Phi_Center-fJetR,Phi_Center+fJetR),0);
1403 while (temp_jet->DeltaR(*dummy)<fJetR)
1405 dummy->SetPtEtaPhiE(1,u.Uniform(Eta_Center-fJetR,Eta_Center+fJetR),u.Uniform(Phi_Center-fJetR,Phi_Center+fJetR),0);
1407 // Loop over all tracks
1408 for (i=0;i<fnTracks;i++)
1410 AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i);
1411 if (IsInTPC(fJetR,vtrack->Phi(),vtrack->Eta(),kFALSE)==kTRUE)
1414 TLorentzVector *track_vec = new TLorentzVector;
1415 track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E());
1416 if (dummy->DeltaR(*track_vec)<fJetR)
1419 E_tracks_total+=vtrack->Pt();
1424 fTPCRCBckgFluc[j]=E_tracks_total;
1426 fpTPCEventMult->Fill(fEventCentrality,event_mult);
1427 fTPCRawJets->FillDeltaPt(fEventCentrality,0.0,fJetR,fTPCRCBckgFluc,1);
1429 // For the case of partial exclusion, merely allow a superposition of full and no exclusion with probability p=1/Ncoll
1430 Double_t exclusion_prob;
1431 for (j=0;j<fnBckgClusters;j++)
1433 exclusion_prob = u.Uniform(0,1);
1434 if (exclusion_prob<(1/fNColl))
1436 fTPCRCBckgFlucNColl[j]=fTPCRCBckgFlucSignal[j];
1440 fTPCRCBckgFlucNColl[j]=fTPCRCBckgFluc[j];
1448 void AliAnalysisTaskFullpAJets::GenerateEMCalRandomConesPt()
1451 Double_t E_tracks_total=0.;
1452 Double_t E_caloclusters_total=0.;
1453 TRandom3 u(time(NULL));
1455 Double_t Eta_Center=0.5*(fEMCalEtaMin+fEMCalEtaMax);
1456 Double_t Phi_Center=0.5*(fEMCalPhiMin+fEMCalPhiMax);
1460 for (i=0;i<fnBckgClusters;i++)
1462 fEMCalRCBckgFluc[i]=0.0;
1463 fEMCalRCBckgFlucSignal[i]=0.0;
1464 fEMCalRCBckgFlucNColl[i]=0.0;
1467 TLorentzVector *dummy= new TLorentzVector;
1468 TLorentzVector *temp_jet= new TLorentzVector;
1470 // First, consider the RC with no spatial restrictions
1471 for (j=0;j<fnBckgClusters;j++)
1474 E_caloclusters_total=0.;
1476 dummy->SetPtEtaPhiE(1,u.Uniform(Eta_Center-fJetR,Eta_Center+fJetR),u.Uniform(Phi_Center-fJetR,Phi_Center+fJetR),0);
1477 // Loop over all tracks
1478 for (i=0;i<fnTracks;i++)
1480 AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i);
1481 if (IsInEMCal(vtrack->Phi(),vtrack->Eta())==kTRUE)
1483 TLorentzVector *track_vec = new TLorentzVector;
1484 track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E());
1485 if (dummy->DeltaR(*track_vec)<fJetR)
1487 E_tracks_total+=vtrack->Pt();
1493 // Loop over all caloclusters
1494 for (i=0;i<fnClusters;i++)
1496 AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(i);
1497 TLorentzVector *cluster_vec = new TLorentzVector;
1498 vcluster->GetMomentum(*cluster_vec,fvertex);
1499 if (dummy->DeltaR(*cluster_vec)<fJetR)
1502 E_caloclusters_total+=vcluster->E();
1506 fEMCalRCBckgFlucSignal[j]=E_tracks_total+E_caloclusters_total;
1509 // Now, consider the RC where the vertex of RC is at least 2R away from the leading signal
1511 E_caloclusters_total=0.;
1512 if (fEMCalPartJet->GetLeadingPt()<0.0)
1514 temp_jet->SetPtEtaPhiE(1,u.Uniform(Eta_Center-fJetR,Eta_Center+fJetR),u.Uniform(Phi_Center-fJetR,Phi_Center+fJetR),0);
1518 AliEmcalJet *myJet = (AliEmcalJet*) fmyAKTFullJets->At(fEMCalPartJet->GetLeadingIndex());
1519 myJet->GetMom(*temp_jet);
1522 for (j=0;j<fnBckgClusters;j++)
1527 E_caloclusters_total=0.;
1529 dummy->SetPtEtaPhiE(1,u.Uniform(Eta_Center-fJetR,Eta_Center+fJetR),u.Uniform(Phi_Center-fJetR,Phi_Center+fJetR),0);
1530 while (temp_jet->DeltaR(*dummy)<fJetR)
1532 dummy->SetPtEtaPhiE(1,u.Uniform(Eta_Center-fJetR,Eta_Center+fJetR),u.Uniform(Phi_Center-fJetR,Phi_Center+fJetR),0);
1534 // Loop over all tracks
1535 for (i=0;i<fnTracks;i++)
1537 AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i);
1538 if (IsInEMCal(vtrack->Phi(),vtrack->Eta())==kTRUE)
1541 TLorentzVector *track_vec = new TLorentzVector;
1542 track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E());
1543 if (dummy->DeltaR(*track_vec)<fJetR)
1546 E_tracks_total+=vtrack->Pt();
1552 // Loop over all caloclusters
1553 for (i=0;i<fnClusters;i++)
1555 AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(i);
1556 TLorentzVector *cluster_vec = new TLorentzVector;
1557 vcluster->GetMomentum(*cluster_vec,fvertex);
1559 if (dummy->DeltaR(*cluster_vec)<fJetR)
1562 E_caloclusters_total+=vcluster->E();
1566 fEMCalRCBckgFluc[j]=E_tracks_total+E_caloclusters_total;
1568 fpEMCalEventMult->Fill(fEventCentrality,event_mult);
1569 fEMCalRawJets->FillDeltaPt(fEventCentrality,0.0,fJetR,fEMCalRCBckgFluc,1);
1571 // For the case of partial exclusion, merely allow a superposition of full and no exclusion with probability p=1/Ncoll
1572 Double_t exclusion_prob;
1573 for (j=0;j<fnBckgClusters;j++)
1575 exclusion_prob = u.Uniform(0,1);
1576 if (exclusion_prob<(1/fNColl))
1578 fEMCalRCBckgFlucNColl[j]=fEMCalRCBckgFlucSignal[j];
1582 fEMCalRCBckgFlucNColl[j]=fEMCalRCBckgFluc[j];
1591 void AliAnalysisTaskFullpAJets::EstimateChargedRho0()
1594 Double_t E_tracks_total=0.0;
1595 Double_t TPC_rho=0.;
1597 // Loop over all tracks
1598 for (i=0;i<fnTracks;i++)
1600 AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i);
1601 if (IsInTPC(fJetR,vtrack->Phi(),vtrack->Eta(),kFALSE)==kTRUE)
1603 E_tracks_total+=vtrack->Pt();
1607 // Calculate the mean Background density
1608 TPC_rho=E_tracks_total/fTPCArea;
1609 fRhoCharged=TPC_rho;
1612 fRhoCharged0->FillRho(fEventCentrality,TPC_rho);
1613 fRhoCharged0->FillBSJS(fEventCentrality,TPC_rho,fTPCJetThreshold,fmyAKTChargedJets,fTPCJet->GetJets(),fTPCJet->GetTotalJets());
1614 fRhoCharged0->FillDeltaPt(fEventCentrality,TPC_rho,fJetR,fTPCRCBckgFluc,1);
1615 fRhoCharged0->FillDeltaPtSignal(fEventCentrality,TPC_rho,fJetR,fTPCRCBckgFlucSignal,1);
1616 fRhoCharged0->FillDeltaPtNColl(fEventCentrality,TPC_rho,fJetR,fTPCRCBckgFlucNColl,1);
1617 fRhoCharged0->FillBackgroundFluctuations(fEventCentrality,TPC_rho,fJetR);
1618 fRhoCharged0->FillLeadingJetPtRho(fTPCJet->GetLeadingPt(),TPC_rho);
1622 void AliAnalysisTaskFullpAJets::EstimateChargedRho1()
1625 Double_t E_tracks_total=0.0;
1626 Double_t TPC_rho=0.;
1628 if (fTPCJet->GetLeadingPt()>=fTPCJetThreshold)
1630 AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTChargedJets->At(fTPCJet->GetLeadingIndex());
1631 TLorentzVector *temp_jet= new TLorentzVector;
1632 myJet->GetMom(*temp_jet);
1634 // Loop over all tracks
1635 for (i=0;i<fnTracks;i++)
1637 AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i);
1638 if (IsInTPC(fJetR,vtrack->Phi(),vtrack->Eta(),kFALSE)==kTRUE)
1640 TLorentzVector *track_vec = new TLorentzVector;
1641 track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E());
1642 if (temp_jet->DeltaR(*track_vec)>fJetRForRho)
1644 E_tracks_total+=vtrack->Pt();
1651 // Calculate the mean Background density
1652 TPC_rho=E_tracks_total/(fTPCArea-AreaWithinTPC(fJetR,myJet->Eta()));
1654 else // i.e. No signal jets -> same as total background density
1656 // Loop over all tracks
1657 for (i=0;i<fnTracks;i++)
1659 AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i);
1660 if (IsInTPC(fJetR,vtrack->Phi(),vtrack->Eta(),kFALSE)==kTRUE)
1662 E_tracks_total+=vtrack->Pt();
1665 // Calculate the mean Background density
1666 TPC_rho=E_tracks_total/fTPCArea;
1670 fRhoCharged1->FillRho(fEventCentrality,TPC_rho);
1671 fRhoCharged1->FillBSJS(fEventCentrality,TPC_rho,fTPCJetThreshold,fmyAKTChargedJets,fTPCFullJet->GetJets(),fTPCFullJet->GetTotalJets());
1672 fRhoCharged1->FillDeltaPt(fEventCentrality,TPC_rho,fJetR,fTPCRCBckgFluc,1);
1673 fRhoCharged1->FillDeltaPtSignal(fEventCentrality,TPC_rho,fJetR,fTPCRCBckgFlucSignal,1);
1674 fRhoCharged1->FillDeltaPtNColl(fEventCentrality,TPC_rho,fJetR,fTPCRCBckgFlucNColl,1);
1675 fRhoCharged1->FillBackgroundFluctuations(fEventCentrality,TPC_rho,fJetR);
1676 fRhoCharged1->FillLeadingJetPtRho(fTPCFullJet->GetLeadingPt(),TPC_rho);
1679 void AliAnalysisTaskFullpAJets::EstimateChargedRho2()
1682 Double_t E_tracks_total=0.0;
1683 Double_t TPC_rho=0.;
1685 if ((fTPCJet->GetLeadingPt()>=fTPCJetThreshold) && (fTPCJet->GetSubLeadingPt()>=fTPCJetThreshold))
1687 AliEmcalJet *myhJet =(AliEmcalJet*) fmyAKTChargedJets->At(fTPCJet->GetLeadingIndex());
1688 TLorentzVector *temp_jet1= new TLorentzVector;
1689 myhJet->GetMom(*temp_jet1);
1691 AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTChargedJets->At(fTPCJet->GetSubLeadingIndex());
1692 TLorentzVector *temp_jet2= new TLorentzVector;
1693 myJet->GetMom(*temp_jet2);
1695 // Loop over all tracks
1696 for (i=0;i<fnTracks;i++)
1698 AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i);
1699 if (IsInTPC(fJetR,vtrack->Phi(),vtrack->Eta(),kFALSE)==kTRUE)
1701 TLorentzVector *track_vec = new TLorentzVector;
1702 track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E());
1703 if ((temp_jet1->DeltaR(*track_vec)>fJetRForRho) && (temp_jet2->DeltaR(*track_vec)>fJetRForRho))
1705 E_tracks_total+=vtrack->Pt();
1713 // Calculate the mean Background density
1714 TPC_rho=E_tracks_total/(fTPCArea-AreaWithinTPC(fJetR,myhJet->Eta())-AreaWithinTPC(fJetR,myJet->Eta()));
1716 else if (fTPCJet->GetLeadingPt()>=fTPCJetThreshold)
1718 AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTChargedJets->At(fTPCJet->GetLeadingIndex());
1719 TLorentzVector *temp_jet= new TLorentzVector;
1720 myJet->GetMom(*temp_jet);
1722 // Loop over all tracks
1723 for (i=0;i<fnTracks;i++)
1725 AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i);
1726 if (IsInTPC(fJetR,vtrack->Phi(),vtrack->Eta(),kFALSE)==kTRUE)
1728 TLorentzVector *track_vec = new TLorentzVector;
1729 track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E());
1730 if (temp_jet->DeltaR(*track_vec)>fJetRForRho)
1732 E_tracks_total+=vtrack->Pt();
1739 // Calculate the mean Background density
1740 TPC_rho=E_tracks_total/(fTPCArea-AreaWithinTPC(fJetR,myJet->Eta()));
1742 else // i.e. No signal jets -> same as total background density
1744 // Loop over all tracks
1745 for (i=0;i<fnTracks;i++)
1747 AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i);
1748 if (IsInTPC(fJetR,vtrack->Phi(),vtrack->Eta(),kFALSE)==kTRUE)
1750 E_tracks_total+=vtrack->Pt();
1754 // Calculate the mean Background density
1755 TPC_rho=E_tracks_total/fTPCArea;
1759 fRhoCharged2->FillRho(fEventCentrality,TPC_rho);
1760 fRhoCharged2->FillBSJS(fEventCentrality,TPC_rho,fTPCJetThreshold,fmyAKTChargedJets,fTPCFullJet->GetJets(),fTPCFullJet->GetTotalJets());
1761 fRhoCharged2->FillDeltaPt(fEventCentrality,TPC_rho,fJetR,fTPCRCBckgFluc,1);
1762 fRhoCharged2->FillDeltaPtSignal(fEventCentrality,TPC_rho,fJetR,fTPCRCBckgFlucSignal,1);
1763 fRhoCharged2->FillDeltaPtNColl(fEventCentrality,TPC_rho,fJetR,fTPCRCBckgFlucNColl,1);
1764 fRhoCharged2->FillBackgroundFluctuations(fEventCentrality,TPC_rho,fJetR);
1765 fRhoCharged2->FillLeadingJetPtRho(fTPCFullJet->GetLeadingPt(),TPC_rho);
1768 void AliAnalysisTaskFullpAJets::EstimateChargedRhoN()
1771 Bool_t track_away_from_jet;
1772 Double_t E_tracks_total=0.0;
1773 Double_t TPC_rho=0.0;
1774 Double_t jet_area_total=0.0;
1776 // First, sum all tracks within the EMCal that are away from jet(s) above Pt Threshold
1777 for (i=0;i<fnTracks;i++)
1779 // First, check if track is in the EMCal!!
1780 AliVTrack* vtrack = (AliVTrack*) fmyTracks->At(i);
1781 if (IsInTPC(fJetR,vtrack->Phi(),vtrack->Eta(),kFALSE)==kTRUE)
1783 if (fTPCJet->GetTotalSignalJets()<1)
1785 E_tracks_total+=vtrack->Pt();
1789 track_away_from_jet=kTRUE;
1791 TLorentzVector *track_vec = new TLorentzVector;
1792 track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E());
1793 while (track_away_from_jet==kTRUE && j<fTPCJet->GetTotalSignalJets())
1795 TLorentzVector *jet_vec= new TLorentzVector;
1796 AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTChargedJets->At(fTPCJet->GetSignalJetIndex(j));
1797 myJet->GetMom(*jet_vec);
1798 if (track_vec->DeltaR(*jet_vec)<=fJetRForRho)
1800 track_away_from_jet=kFALSE;
1805 if (track_away_from_jet==kTRUE)
1807 E_tracks_total+=vtrack->Pt();
1814 // Determine area of all Jets that are within the EMCal
1815 if (fTPCJet->GetTotalSignalJets()==0)
1821 for (i=0;i<fTPCJet->GetTotalSignalJets();i++)
1823 AliEmcalJet *myJet = (AliEmcalJet*) fmyAKTChargedJets->At(fTPCJet->GetSignalJetIndex(i));
1824 jet_area_total+=AreaWithinTPC(fJetR,myJet->Eta());
1829 TPC_rho = E_tracks_total/(fTPCArea-jet_area_total);
1832 fRhoChargedN->FillRho(fEventCentrality,TPC_rho);
1833 fRhoChargedN->FillBSJS(fEventCentrality,TPC_rho,fTPCJetThreshold,fmyAKTChargedJets,fTPCFullJet->GetJets(),fTPCFullJet->GetTotalJets());
1834 fRhoChargedN->FillDeltaPt(fEventCentrality,TPC_rho,fJetR,fTPCRCBckgFluc,1);
1835 fRhoChargedN->FillDeltaPtSignal(fEventCentrality,TPC_rho,fJetR,fTPCRCBckgFlucSignal,1);
1836 fRhoChargedN->FillDeltaPtNColl(fEventCentrality,TPC_rho,fJetR,fTPCRCBckgFlucNColl,1);
1837 fRhoChargedN->FillBackgroundFluctuations(fEventCentrality,TPC_rho,fJetR);
1838 fRhoChargedN->FillLeadingJetPtRho(fTPCFullJet->GetLeadingPt(),TPC_rho);
1841 void AliAnalysisTaskFullpAJets::EstimateChargedRhoScale()
1844 Bool_t track_away_from_jet;
1845 Double_t E_tracks_total=0.0;
1846 Double_t TPC_rho=0.0;
1847 Double_t jet_area_total=0.0;
1849 // First, sum all tracks within the EMCal that are away from jet(s) above Pt Threshold
1850 for (i=0;i<fnTracks;i++)
1852 // First, check if track is in the EMCal!!
1853 AliVTrack* vtrack = (AliVTrack*) fmyTracks->At(i);
1854 if (IsInTPC(fJetR,vtrack->Phi(),vtrack->Eta(),kFALSE)==kTRUE)
1856 if (fTPCJet->GetTotalSignalJets()<1)
1858 E_tracks_total+=vtrack->Pt();
1862 track_away_from_jet=kTRUE;
1864 TLorentzVector *track_vec = new TLorentzVector;
1865 track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E());
1866 while (track_away_from_jet==kTRUE && j<fTPCJet->GetTotalSignalJets())
1868 TLorentzVector *jet_vec= new TLorentzVector;
1869 AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTChargedJets->At(fTPCJet->GetSignalJetIndex(j));
1870 myJet->GetMom(*jet_vec);
1871 if (track_vec->DeltaR(*jet_vec)<=fJetRForRho)
1873 track_away_from_jet=kFALSE;
1878 if (track_away_from_jet==kTRUE)
1880 E_tracks_total+=vtrack->Pt();
1887 // Determine area of all Jets that are within the TPC
1888 if (fTPCJet->GetTotalSignalJets()==0)
1894 for (i=0;i<fTPCJet->GetTotalSignalJets();i++)
1896 AliEmcalJet *myJet = (AliEmcalJet*) fmyAKTChargedJets->At(fTPCJet->GetSignalJetIndex(i));
1897 jet_area_total+=AreaWithinTPC(fJetR,myJet->Eta());
1902 TPC_rho = E_tracks_total/(fTPCArea-jet_area_total);
1903 TPC_rho*=fScaleFactor;
1906 fRhoChargedScale->FillRho(fEventCentrality,TPC_rho);
1907 fRhoChargedScale->FillBSJS(fEventCentrality,TPC_rho,fEMCalJetThreshold,fmyAKTFullJets,fEMCalFullJet->GetJets(),fEMCalFullJet->GetTotalJets());
1908 fRhoChargedScale->FillDeltaPt(fEventCentrality,TPC_rho,fJetR,fEMCalRCBckgFluc,1);
1909 fRhoChargedScale->FillDeltaPtSignal(fEventCentrality,TPC_rho,fJetR,fEMCalRCBckgFlucSignal,1);
1910 fRhoChargedScale->FillDeltaPtNColl(fEventCentrality,TPC_rho,fJetR,fEMCalRCBckgFlucNColl,1);
1911 fRhoChargedScale->FillBackgroundFluctuations(fEventCentrality,TPC_rho,fJetR);
1912 fRhoChargedScale->FillLeadingJetPtRho(fEMCalFullJet->GetLeadingPt(),TPC_rho);
1915 void AliAnalysisTaskFullpAJets::EstimateChargedRhokT()
1918 Double_t kTRho = 0.0;
1919 Double_t *pTArray = new Double_t[fTPCkTFullJet->GetTotalJets()];
1920 Double_t *RhoArray = new Double_t[fTPCkTFullJet->GetTotalJets()];
1922 for (i=0;i<fTPCkTFullJet->GetTotalJets();i++)
1924 AliEmcalJet *myJet =(AliEmcalJet*) fmyKTChargedJets->At(fTPCkTFullJet->GetJetIndex(i));
1925 pTArray[i]=myJet->Pt();
1926 RhoArray[i]=myJet->Pt()/myJet->Area();
1929 if (fTPCkTFullJet->GetTotalJets()>=2)
1931 kTRho=MedianRhokT(pTArray,RhoArray,fTPCkTFullJet->GetTotalJets());
1933 fRhoChargedkT->FillRho(fEventCentrality,kTRho);
1934 fRhoChargedkT->FillBSJS(fEventCentrality,kTRho,fTPCJetThreshold,fmyAKTChargedJets,fTPCFullJet->GetJets(),fTPCFullJet->GetTotalJets());
1935 fRhoChargedkT->FillDeltaPt(fEventCentrality,kTRho,fJetR,fTPCRCBckgFluc,1);
1936 fRhoChargedkT->FillDeltaPtSignal(fEventCentrality,kTRho,fJetR,fTPCRCBckgFlucSignal,1);
1937 fRhoChargedkT->FillDeltaPtNColl(fEventCentrality,kTRho,fJetR,fTPCRCBckgFlucNColl,1);
1938 fRhoChargedkT->FillBackgroundFluctuations(fEventCentrality,kTRho,fJetR);
1939 fRhoChargedkT->FillLeadingJetPtRho(fTPCFullJet->GetLeadingPt(),kTRho);
1945 void AliAnalysisTaskFullpAJets::EstimateChargedRhokTScale()
1948 Double_t kTRho = 0.0;
1949 Double_t *pTArray = new Double_t[fTPCkTFullJet->GetTotalJets()];
1950 Double_t *RhoArray = new Double_t[fTPCkTFullJet->GetTotalJets()];
1952 for (i=0;i<fTPCkTFullJet->GetTotalJets();i++)
1954 AliEmcalJet *myJet =(AliEmcalJet*) fmyKTChargedJets->At(fTPCkTFullJet->GetJetIndex(i));
1955 pTArray[i]=myJet->Pt();
1956 RhoArray[i]=myJet->Pt()/myJet->Area();
1959 if (fTPCkTFullJet->GetTotalJets()>=2)
1961 kTRho=MedianRhokT(pTArray,RhoArray,fTPCkTFullJet->GetTotalJets());
1962 kTRho*=fScaleFactor;
1964 fRhoChargedkTScale->FillRho(fEventCentrality,kTRho);
1965 fRhoChargedkTScale->FillBSJS(fEventCentrality,kTRho,fEMCalJetThreshold,fmyAKTFullJets,fEMCalFullJet->GetJets(),fEMCalFullJet->GetTotalJets());
1966 fRhoChargedkTScale->FillDeltaPt(fEventCentrality,kTRho,fJetR,fEMCalRCBckgFluc,1);
1967 fRhoChargedkTScale->FillDeltaPtSignal(fEventCentrality,kTRho,fJetR,fEMCalRCBckgFlucSignal,1);
1968 fRhoChargedkTScale->FillDeltaPtNColl(fEventCentrality,kTRho,fJetR,fEMCalRCBckgFlucNColl,1);
1969 fRhoChargedkTScale->FillBackgroundFluctuations(fEventCentrality,kTRho,fJetR);
1970 fRhoChargedkTScale->FillLeadingJetPtRho(fEMCalFullJet->GetLeadingPt(),kTRho);
1976 void AliAnalysisTaskFullpAJets::EstimateChargedRhoCMS()
1979 Double_t kTRho = 0.0;
1980 Double_t CMSTotalkTArea = 0.0;
1981 Double_t CMSTrackArea = 0.0;
1982 Double_t CMSCorrectionFactor = 1.0;
1983 Double_t *pTArray = new Double_t[fTPCkTFullJet->GetTotalJets()];
1984 Double_t *RhoArray = new Double_t[fTPCkTFullJet->GetTotalJets()];
1987 if ((fTPCJet->GetLeadingPt()>=fTPCJetThreshold) && (fTPCJet->GetSubLeadingPt()>=fTPCJetThreshold))
1989 AliEmcalJet *myJet1 =(AliEmcalJet*) fmyAKTChargedJets->At(fTPCJet->GetLeadingIndex());
1990 AliEmcalJet *myJet2 =(AliEmcalJet*) fmyAKTChargedJets->At(fTPCJet->GetSubLeadingIndex());
1992 for (i=0;i<fTPCkTFullJet->GetTotalJets();i++)
1994 AliEmcalJet *myJet =(AliEmcalJet*) fmyKTChargedJets->At(fTPCkTFullJet->GetJetIndex(i));
1996 CMSTotalkTArea+=myJet->Area();
1997 if (myJet->GetNumberOfTracks()>0)
1999 CMSTrackArea+=myJet->Area();
2001 if (IsJetOverlap(myJet,myJet1,kFALSE)==kFALSE && IsJetOverlap(myJet,myJet2,kFALSE)==kFALSE)
2003 pTArray[k]=myJet->Pt();
2004 RhoArray[k]=myJet->Pt()/myJet->Area();
2010 kTRho=MedianRhokT(pTArray,RhoArray,k);
2017 else if (fTPCJet->GetLeadingPt()>=fTPCJetThreshold)
2019 AliEmcalJet *myJet1 =(AliEmcalJet*) fmyAKTChargedJets->At(fTPCJet->GetLeadingIndex());
2021 for (i=0;i<fTPCkTFullJet->GetTotalJets();i++)
2023 AliEmcalJet *myJet =(AliEmcalJet*) fmyKTChargedJets->At(fTPCkTFullJet->GetJetIndex(i));
2025 CMSTotalkTArea+=myJet->Area();
2026 if (myJet->GetNumberOfTracks()>0)
2028 CMSTrackArea+=myJet->Area();
2030 if (IsJetOverlap(myJet,myJet1,kFALSE)==kFALSE)
2032 pTArray[k]=myJet->Pt();
2033 RhoArray[k]=myJet->Pt()/myJet->Area();
2039 kTRho=MedianRhokT(pTArray,RhoArray,k);
2048 for (i=0;i<fTPCkTFullJet->GetTotalJets();i++)
2050 AliEmcalJet *myJet =(AliEmcalJet*) fmyKTChargedJets->At(fTPCkTFullJet->GetJetIndex(i));
2052 CMSTotalkTArea+=myJet->Area();
2053 if (myJet->GetNumberOfTracks()>0)
2055 CMSTrackArea+=myJet->Area();
2057 pTArray[k]=myJet->Pt();
2058 RhoArray[k]=myJet->Pt()/myJet->Area();
2063 kTRho=MedianRhokT(pTArray,RhoArray,k);
2070 // Scale CMS Rho by Correction factor
2071 if (CMSTotalkTArea==0.0)
2073 CMSCorrectionFactor = 1.0;
2077 //CMSCorrectionFactor = CMSTrackArea/CMSTotalkTArea;
2078 CMSCorrectionFactor = CMSTrackArea/(fTPCPhiTotal*(fTPCEtaTotal-2*fJetR)); // The total physical area should be reduced by the eta cut due to looping over only fully contained kT jets within the TPC
2080 kTRho*=CMSCorrectionFactor;
2081 fRhoChargedCMS->FillRho(fEventCentrality,kTRho);
2082 fRhoChargedCMS->FillBSJS(fEventCentrality,kTRho,fTPCJetThreshold,fmyAKTChargedJets,fTPCFullJet->GetJets(),fTPCFullJet->GetTotalJets());
2083 fRhoChargedCMS->FillDeltaPt(fEventCentrality,kTRho,fJetR,fTPCRCBckgFluc,1);
2084 fRhoChargedCMS->FillDeltaPtSignal(fEventCentrality,kTRho,fJetR,fTPCRCBckgFlucSignal,1);
2085 fRhoChargedCMS->FillDeltaPtNColl(fEventCentrality,kTRho,fJetR,fTPCRCBckgFlucNColl,1);
2086 fRhoChargedCMS->FillBackgroundFluctuations(fEventCentrality,kTRho,fJetR);
2087 fRhoChargedCMS->FillLeadingJetPtRho(fTPCFullJet->GetLeadingPt(),kTRho);
2092 void AliAnalysisTaskFullpAJets::EstimateChargedRhoCMSScale()
2095 Double_t kTRho = 0.0;
2096 Double_t CMSTotalkTArea = 0.0;
2097 Double_t CMSTrackArea = 0.0;
2098 Double_t CMSCorrectionFactor = 1.0;
2099 Double_t *pTArray = new Double_t[fTPCkTFullJet->GetTotalJets()];
2100 Double_t *RhoArray = new Double_t[fTPCkTFullJet->GetTotalJets()];
2103 if ((fTPCJet->GetLeadingPt()>=fTPCJetThreshold) && (fTPCJet->GetSubLeadingPt()>=fTPCJetThreshold))
2105 AliEmcalJet *myJet1 =(AliEmcalJet*) fmyAKTChargedJets->At(fTPCJet->GetLeadingIndex());
2106 AliEmcalJet *myJet2 =(AliEmcalJet*) fmyAKTChargedJets->At(fTPCJet->GetSubLeadingIndex());
2108 for (i=0;i<fTPCkTFullJet->GetTotalJets();i++)
2110 AliEmcalJet *myJet =(AliEmcalJet*) fmyKTChargedJets->At(fTPCkTFullJet->GetJetIndex(i));
2112 CMSTotalkTArea+=myJet->Area();
2113 if (myJet->GetNumberOfTracks()>0)
2115 CMSTrackArea+=myJet->Area();
2117 if (IsJetOverlap(myJet,myJet1,kFALSE)==kFALSE && IsJetOverlap(myJet,myJet2,kFALSE)==kFALSE)
2119 pTArray[k]=myJet->Pt();
2120 RhoArray[k]=myJet->Pt()/myJet->Area();
2126 kTRho=MedianRhokT(pTArray,RhoArray,k);
2133 else if (fTPCJet->GetLeadingPt()>=fTPCJetThreshold)
2135 AliEmcalJet *myJet1 =(AliEmcalJet*) fmyAKTChargedJets->At(fTPCJet->GetLeadingIndex());
2137 for (i=0;i<fTPCkTFullJet->GetTotalJets();i++)
2139 AliEmcalJet *myJet =(AliEmcalJet*) fmyKTChargedJets->At(fTPCkTFullJet->GetJetIndex(i));
2141 CMSTotalkTArea+=myJet->Area();
2142 if (myJet->GetNumberOfTracks()>0)
2144 CMSTrackArea+=myJet->Area();
2146 if (IsJetOverlap(myJet,myJet1,kFALSE)==kFALSE)
2148 pTArray[k]=myJet->Pt();
2149 RhoArray[k]=myJet->Pt()/myJet->Area();
2155 kTRho=MedianRhokT(pTArray,RhoArray,k);
2164 for (i=0;i<fTPCkTFullJet->GetTotalJets();i++)
2166 AliEmcalJet *myJet =(AliEmcalJet*) fmyKTChargedJets->At(fTPCkTFullJet->GetJetIndex(i));
2168 CMSTotalkTArea+=myJet->Area();
2169 if (myJet->GetNumberOfTracks()>0)
2171 CMSTrackArea+=myJet->Area();
2173 pTArray[k]=myJet->Pt();
2174 RhoArray[k]=myJet->Pt()/myJet->Area();
2179 kTRho=MedianRhokT(pTArray,RhoArray,k);
2186 kTRho*=fScaleFactor;
2187 // Scale CMS Rho by Correction factor
2188 if (CMSTotalkTArea==0.0)
2190 CMSCorrectionFactor = 1.0;
2194 //CMSCorrectionFactor = CMSTrackArea/CMSTotalkTArea;
2195 CMSCorrectionFactor = CMSTrackArea/(fTPCPhiTotal*(fTPCEtaTotal-2*fJetR)); // The total physical area should be reduced by the eta cut due to looping over only fully contained kT jets within the TPC
2197 kTRho*=CMSCorrectionFactor;
2199 fRhoChargedCMSScale->FillRho(fEventCentrality,kTRho);
2200 fRhoChargedCMSScale->FillBSJS(fEventCentrality,kTRho,fEMCalJetThreshold,fmyAKTFullJets,fEMCalFullJet->GetJets(),fEMCalFullJet->GetTotalJets());
2201 fRhoChargedCMSScale->FillDeltaPt(fEventCentrality,kTRho,fJetR,fEMCalRCBckgFluc,1);
2202 fRhoChargedCMSScale->FillDeltaPtSignal(fEventCentrality,kTRho,fJetR,fEMCalRCBckgFlucSignal,1);
2203 fRhoChargedCMSScale->FillDeltaPtNColl(fEventCentrality,kTRho,fJetR,fEMCalRCBckgFlucNColl,1);
2204 fRhoChargedCMSScale->FillBackgroundFluctuations(fEventCentrality,kTRho,fJetR);
2205 fRhoChargedCMSScale->FillLeadingJetPtRho(fEMCalFullJet->GetLeadingPt(),kTRho);
2211 void AliAnalysisTaskFullpAJets::EstimateFullRho0()
2214 Double_t E_tracks_total=0.0;
2215 Double_t E_caloclusters_total=0.0;
2216 Double_t EMCal_rho=0.0;
2218 // Loop over all tracks
2219 for (i=0;i<fnTracks;i++)
2221 AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i);
2222 if (IsInEMCal(vtrack->Phi(),vtrack->Eta())==kTRUE)
2224 E_tracks_total+=vtrack->Pt();
2228 // Loop over all caloclusters
2229 for (i=0;i<fnClusters;i++)
2231 AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(i);
2232 TLorentzVector *cluster_vec = new TLorentzVector;
2233 vcluster->GetMomentum(*cluster_vec,fvertex);
2234 E_caloclusters_total+=cluster_vec->Pt();
2235 //E_caloclusters_total+=0.5*cluster_vec->Pt();
2238 // Calculate the mean Background density
2239 EMCal_rho=(E_tracks_total+E_caloclusters_total)/fEMCalArea;
2245 fpRhoScale->Fill(fEventCentrality,fRhoFull/fRhoCharged);
2246 fhRhoScale->Fill(fRhoFull/fRhoCharged,fEventCentrality);
2249 fRhoFull0->FillRho(fEventCentrality,EMCal_rho);
2250 fRhoFull0->FillBSJS(fEventCentrality,EMCal_rho,fEMCalJetThreshold,fmyAKTFullJets,fEMCalFullJet->GetJets(),fEMCalFullJet->GetTotalJets());
2251 fRhoFull0->FillDeltaPt(fEventCentrality,EMCal_rho,fJetR,fEMCalRCBckgFluc,1);
2252 fRhoFull0->FillDeltaPtSignal(fEventCentrality,EMCal_rho,fJetR,fEMCalRCBckgFlucSignal,1);
2253 fRhoFull0->FillDeltaPtNColl(fEventCentrality,EMCal_rho,fJetR,fEMCalRCBckgFlucNColl,1);
2254 fRhoFull0->FillBackgroundFluctuations(fEventCentrality,EMCal_rho,fJetR);
2255 fRhoFull0->FillLeadingJetPtRho(fEMCalFullJet->GetLeadingPt(),EMCal_rho);
2258 void AliAnalysisTaskFullpAJets::EstimateFullRho1()
2261 Double_t E_tracks_total=0.0;
2262 Double_t E_caloclusters_total=0.0;
2263 Double_t EMCal_rho=0.0;
2265 if (fEMCalPartJet->GetLeadingPt()>=fEMCalJetThreshold)
2267 AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTFullJets->At(fEMCalPartJet->GetLeadingIndex());
2268 TLorentzVector *temp_jet= new TLorentzVector;
2269 myJet->GetMom(*temp_jet);
2271 // Loop over all tracks
2272 for (i=0;i<fnTracks;i++)
2274 AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i);
2275 if (IsInEMCal(vtrack->Phi(),vtrack->Eta())==kTRUE)
2277 TLorentzVector *track_vec = new TLorentzVector;
2278 track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E());
2279 if (temp_jet->DeltaR(*track_vec)>fJetRForRho)
2281 E_tracks_total+=vtrack->Pt();
2287 // Loop over all caloclusters
2288 for (i=0;i<fnClusters;i++)
2290 AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(i);
2291 TLorentzVector *cluster_vec = new TLorentzVector;
2292 vcluster->GetMomentum(*cluster_vec,fvertex);
2293 if (temp_jet->DeltaR(*cluster_vec)>fJetRForRho)
2295 E_caloclusters_total+=vcluster->E();
2300 // Calculate the mean Background density
2301 EMCal_rho=(E_tracks_total+E_caloclusters_total)/(fEMCalArea-AreaWithinEMCal(fJetR,myJet->Phi(),myJet->Eta()));
2303 else // i.e. No signal jets -> same as total background density
2305 // Loop over all tracks
2306 for (i=0;i<fnTracks;i++)
2308 AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i);
2309 if (IsInEMCal(vtrack->Phi(),vtrack->Eta())==kTRUE)
2311 E_tracks_total+=vtrack->Pt();
2315 // Loop over all caloclusters
2316 for (i=0;i<fnClusters;i++)
2318 AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(i);
2319 E_caloclusters_total+=vcluster->E();
2321 // Calculate the mean Background density
2322 EMCal_rho=(E_tracks_total+E_caloclusters_total)/fEMCalArea;
2326 fRhoFull1->FillRho(fEventCentrality,EMCal_rho);
2327 fRhoFull1->FillBSJS(fEventCentrality,EMCal_rho,fEMCalJetThreshold,fmyAKTFullJets,fEMCalFullJet->GetJets(),fEMCalFullJet->GetTotalJets());
2328 fRhoFull1->FillDeltaPt(fEventCentrality,EMCal_rho,fJetR,fEMCalRCBckgFluc,1);
2329 fRhoFull1->FillDeltaPtSignal(fEventCentrality,EMCal_rho,fJetR,fEMCalRCBckgFlucSignal,1);
2330 fRhoFull1->FillDeltaPtNColl(fEventCentrality,EMCal_rho,fJetR,fEMCalRCBckgFlucNColl,1);
2331 fRhoFull1->FillBackgroundFluctuations(fEventCentrality,EMCal_rho,fJetR);
2332 fRhoFull1->FillLeadingJetPtRho(fEMCalFullJet->GetLeadingPt(),EMCal_rho);
2335 void AliAnalysisTaskFullpAJets::EstimateFullRho2()
2338 Double_t E_tracks_total=0.0;
2339 Double_t E_caloclusters_total=0.0;
2340 Double_t EMCal_rho=0.0;
2342 if ((fEMCalPartJet->GetLeadingPt()>=fEMCalJetThreshold) && (fEMCalPartJet->GetSubLeadingPt()>=fEMCalJetThreshold))
2344 AliEmcalJet *myhJet =(AliEmcalJet*) fmyAKTFullJets->At(fEMCalPartJet->GetLeadingIndex());
2345 TLorentzVector *temp_jet1 = new TLorentzVector;
2346 myhJet->GetMom(*temp_jet1);
2348 AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTFullJets->At(fEMCalPartJet->GetSubLeadingIndex());
2349 TLorentzVector *temp_jet2 = new TLorentzVector;
2350 myJet->GetMom(*temp_jet2);
2352 // Loop over all tracks
2353 for (i=0;i<fnTracks;i++)
2355 AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i);
2356 if (IsInEMCal(vtrack->Phi(),vtrack->Eta())==kTRUE)
2358 TLorentzVector *track_vec = new TLorentzVector;
2359 track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E());
2360 if ((temp_jet1->DeltaR(*track_vec)>fJetRForRho) && (temp_jet2->DeltaR(*track_vec)>fJetRForRho))
2362 E_tracks_total+=vtrack->Pt();
2368 // Loop over all caloclusters
2369 for (i=0;i<fnClusters;i++)
2371 AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(i);
2372 TLorentzVector *cluster_vec = new TLorentzVector;
2373 vcluster->GetMomentum(*cluster_vec,fvertex);
2374 if ((temp_jet1->DeltaR(*cluster_vec)>fJetRForRho) && (temp_jet2->DeltaR(*cluster_vec)>fJetRForRho))
2376 E_caloclusters_total+=vcluster->E();
2383 // Calculate the mean Background density
2384 EMCal_rho=(E_tracks_total+E_caloclusters_total)/(fEMCalArea-AreaWithinEMCal(fJetR,myhJet->Phi(),myhJet->Eta())-AreaWithinEMCal(fJetR,myJet->Phi(),myJet->Eta()));
2386 else if (fEMCalPartJet->GetLeadingPt()>=fEMCalJetThreshold)
2388 AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTFullJets->At(fEMCalPartJet->GetLeadingIndex());
2389 TLorentzVector *temp_jet= new TLorentzVector;
2390 myJet->GetMom(*temp_jet);
2392 // Loop over all tracks
2393 for (i=0;i<fnTracks;i++)
2395 AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i);
2396 if (IsInEMCal(vtrack->Phi(),vtrack->Eta())==kTRUE)
2398 TLorentzVector *track_vec = new TLorentzVector;
2399 track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E());
2400 if (temp_jet->DeltaR(*track_vec)>fJetRForRho)
2402 E_tracks_total+=vtrack->Pt();
2408 // Loop over all caloclusters
2409 for (i=0;i<fnClusters;i++)
2411 AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(i);
2412 TLorentzVector *cluster_vec = new TLorentzVector;
2413 vcluster->GetMomentum(*cluster_vec,fvertex);
2414 if (temp_jet->DeltaR(*cluster_vec)>fJetRForRho)
2416 E_caloclusters_total+=vcluster->E();
2421 // Calculate the mean Background density
2422 EMCal_rho=(E_tracks_total+E_caloclusters_total)/(fEMCalArea-AreaWithinEMCal(fJetR,myJet->Phi(),myJet->Eta()));
2424 else // i.e. No signal jets -> same as total background density
2426 // Loop over all tracks
2427 for (i=0;i<fnTracks;i++)
2429 AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i);
2430 if (IsInEMCal(vtrack->Phi(),vtrack->Eta())==kTRUE)
2432 E_tracks_total+=vtrack->Pt();
2436 // Loop over all caloclusters
2437 for (i=0;i<fnClusters;i++)
2439 AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(i);
2440 E_caloclusters_total+=vcluster->E();
2442 // Calculate the mean Background density
2443 EMCal_rho=(E_tracks_total+E_caloclusters_total)/fEMCalArea;
2447 fRhoFull2->FillRho(fEventCentrality,EMCal_rho);
2448 fRhoFull2->FillBSJS(fEventCentrality,EMCal_rho,fEMCalJetThreshold,fmyAKTFullJets,fEMCalFullJet->GetJets(),fEMCalFullJet->GetTotalJets());
2449 fRhoFull2->FillDeltaPt(fEventCentrality,EMCal_rho,fJetR,fEMCalRCBckgFluc,1);
2450 fRhoFull2->FillDeltaPtSignal(fEventCentrality,EMCal_rho,fJetR,fEMCalRCBckgFlucSignal,1);
2451 fRhoFull2->FillDeltaPtNColl(fEventCentrality,EMCal_rho,fJetR,fEMCalRCBckgFlucNColl,1);
2452 fRhoFull2->FillBackgroundFluctuations(fEventCentrality,EMCal_rho,fJetR);
2453 fRhoFull2->FillLeadingJetPtRho(fEMCalFullJet->GetLeadingPt(),EMCal_rho);
2456 void AliAnalysisTaskFullpAJets::EstimateFullRhoN()
2459 Bool_t track_away_from_jet;
2460 Bool_t cluster_away_from_jet;
2461 Double_t E_tracks_total=0.0;
2462 Double_t E_caloclusters_total=0.0;
2463 Double_t EMCal_rho=0.0;
2464 Double_t jet_area_total=0.0;
2466 // First, sum all tracks within the EMCal that are away from jet(s) above Pt Threshold
2467 for (i=0;i<fnTracks;i++)
2469 // First, check if track is in the EMCal!!
2470 AliVTrack* vtrack = (AliVTrack*) fmyTracks->At(i);
2471 if (IsInEMCal(vtrack->Phi(),vtrack->Eta())==kTRUE)
2473 if (fEMCalPartJet->GetTotalSignalJets()<1)
2475 E_tracks_total+=vtrack->Pt();
2479 track_away_from_jet=kTRUE;
2481 TLorentzVector *track_vec = new TLorentzVector;
2482 track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E());
2483 while (track_away_from_jet==kTRUE && j<fEMCalPartJet->GetTotalSignalJets())
2485 TLorentzVector *jet_vec= new TLorentzVector;
2486 AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTFullJets->At(fEMCalPartJet->GetSignalJetIndex(j));
2487 myJet->GetMom(*jet_vec);
2488 if (track_vec->DeltaR(*jet_vec)<=fJetRForRho)
2490 track_away_from_jet=kFALSE;
2495 if (track_away_from_jet==kTRUE)
2497 E_tracks_total+=vtrack->Pt();
2504 // Next, sum all CaloClusters within the EMCal (obviously all clusters must be within EMCal!!) that are away from jet(s) above Pt Threshold
2505 for (i=0;i<fnClusters;i++)
2507 AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(i);
2508 if (fEMCalPartJet->GetTotalSignalJets()<1)
2510 E_caloclusters_total+=vcluster->E();
2514 cluster_away_from_jet=kTRUE;
2517 TLorentzVector *cluster_vec = new TLorentzVector;
2518 vcluster->GetMomentum(*cluster_vec,fvertex);
2519 while (cluster_away_from_jet==kTRUE && j<fEMCalPartJet->GetTotalSignalJets())
2521 TLorentzVector *jet_vec= new TLorentzVector;
2522 AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTFullJets->At(fEMCalPartJet->GetSignalJetIndex(j));
2523 myJet->GetMom(*jet_vec);
2524 if (cluster_vec->DeltaR(*jet_vec)<=fJetRForRho)
2526 cluster_away_from_jet=kFALSE;
2531 if (cluster_away_from_jet==kTRUE)
2533 E_caloclusters_total+=vcluster->E();
2539 // Determine area of all Jets that are within the EMCal
2540 if (fEMCalPartJet->GetTotalSignalJets()==0)
2546 for (i=0;i<fEMCalPartJet->GetTotalSignalJets();i++)
2548 AliEmcalJet *myJet = (AliEmcalJet*) fmyAKTFullJets->At(fEMCalPartJet->GetSignalJetIndex(i));
2549 jet_area_total+=AreaWithinEMCal(fJetR,myJet->Phi(),myJet->Eta());
2554 EMCal_rho=(E_tracks_total+E_caloclusters_total)/(fEMCalArea-jet_area_total);
2557 fRhoFullN->FillRho(fEventCentrality,EMCal_rho);
2558 fRhoFullN->FillBSJS(fEventCentrality,EMCal_rho,fEMCalJetThreshold,fmyAKTFullJets,fEMCalFullJet->GetJets(),fEMCalFullJet->GetTotalJets());
2559 fRhoFullN->FillDeltaPt(fEventCentrality,EMCal_rho,fJetR,fEMCalRCBckgFluc,1);
2560 fRhoFullN->FillDeltaPtSignal(fEventCentrality,EMCal_rho,fJetR,fEMCalRCBckgFlucSignal,1);
2561 fRhoFullN->FillDeltaPtNColl(fEventCentrality,EMCal_rho,fJetR,fEMCalRCBckgFlucNColl,1);
2562 fRhoFullN->FillBackgroundFluctuations(fEventCentrality,EMCal_rho,fJetR);
2563 fRhoFullN->FillLeadingJetPtRho(fEMCalFullJet->GetLeadingPt(),EMCal_rho);
2566 void AliAnalysisTaskFullpAJets::EstimateFullRhoDijet()
2569 Double_t E_tracks_total=0.0;
2570 Double_t E_caloclusters_total=0.0;
2571 Double_t EMCal_rho=0.0;
2573 // Loop over all tracks
2574 for (i=0;i<fnTracks;i++)
2576 AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i);
2577 if (IsInEMCal(vtrack->Phi(),vtrack->Eta())==kTRUE)
2579 E_tracks_total+=vtrack->Pt();
2583 // Loop over all caloclusters
2584 for (i=0;i<fnClusters;i++)
2586 AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(i);
2587 E_caloclusters_total+=vcluster->E();
2590 // Calculate the mean Background density
2591 EMCal_rho=(E_tracks_total+E_caloclusters_total)/fEMCalArea;
2594 fRhoFullDijet->FillRho(fEventCentrality,EMCal_rho);
2595 fRhoFullDijet->FillBSJS(fEventCentrality,EMCal_rho,fEMCalJetThreshold,fmyAKTFullJets,fEMCalFullJet->GetJets(),fEMCalFullJet->GetTotalJets());
2596 fRhoFullDijet->FillDeltaPt(fEventCentrality,EMCal_rho,fJetR,fEMCalRCBckgFluc,1);
2597 fRhoFullDijet->FillDeltaPtSignal(fEventCentrality,EMCal_rho,fJetR,fEMCalRCBckgFlucSignal,1);
2598 fRhoFullDijet->FillDeltaPtNColl(fEventCentrality,EMCal_rho,fJetR,fEMCalRCBckgFlucNColl,1);
2599 fRhoFullDijet->FillBackgroundFluctuations(fEventCentrality,EMCal_rho,fJetR);
2600 fRhoFullDijet->FillLeadingJetPtRho(fEMCalFullJet->GetLeadingPt(),EMCal_rho);
2603 void AliAnalysisTaskFullpAJets::EstimateFullRhokT()
2606 Double_t kTRho = 0.0;
2607 Double_t *pTArray = new Double_t[fEMCalkTFullJet->GetTotalJets()];
2608 Double_t *RhoArray = new Double_t[fEMCalkTFullJet->GetTotalJets()];
2610 for (i=0;i<fEMCalkTFullJet->GetTotalJets();i++)
2612 AliEmcalJet *myJet =(AliEmcalJet*) fmyKTFullJets->At(fEMCalkTFullJet->GetJetIndex(i));
2613 pTArray[i]=myJet->Pt();
2614 RhoArray[i]=myJet->Pt()/myJet->Area();
2617 if (fEMCalkTFullJet->GetTotalJets()>0)
2619 kTRho=MedianRhokT(pTArray,RhoArray,fEMCalkTFullJet->GetTotalJets());
2625 fRhoFullkT->FillRho(fEventCentrality,kTRho);
2626 fRhoFullkT->FillBSJS(fEventCentrality,kTRho,fEMCalJetThreshold,fmyAKTFullJets,fEMCalFullJet->GetJets(),fEMCalFullJet->GetTotalJets());
2627 fRhoFullkT->FillDeltaPt(fEventCentrality,kTRho,fJetR,fEMCalRCBckgFluc,1);
2628 fRhoFullkT->FillDeltaPtSignal(fEventCentrality,kTRho,fJetR,fEMCalRCBckgFlucSignal,1);
2629 fRhoFullkT->FillDeltaPtNColl(fEventCentrality,kTRho,fJetR,fEMCalRCBckgFlucNColl,1);
2630 fRhoFullkT->FillBackgroundFluctuations(fEventCentrality,kTRho,fJetR);
2631 fRhoFullkT->FillLeadingJetPtRho(fEMCalFullJet->GetLeadingPt(),kTRho);
2636 void AliAnalysisTaskFullpAJets::EstimateFullRhoCMS()
2639 Double_t kTRho = 0.0;
2640 Double_t CMSTotalkTArea = 0.0;
2641 Double_t CMSParticleArea = 0.0;
2642 Double_t CMSCorrectionFactor = 1.0;
2643 Double_t *pTArray = new Double_t[fEMCalkTFullJet->GetTotalJets()];
2644 Double_t *RhoArray = new Double_t[fEMCalkTFullJet->GetTotalJets()];
2647 if ((fEMCalPartJet->GetLeadingPt()>=fEMCalJetThreshold) && (fEMCalPartJet->GetSubLeadingPt()>=fEMCalJetThreshold))
2649 AliEmcalJet *myJet1 =(AliEmcalJet*) fmyAKTFullJets->At(fEMCalPartJet->GetLeadingIndex());
2650 AliEmcalJet *myJet2 =(AliEmcalJet*) fmyAKTFullJets->At(fEMCalPartJet->GetSubLeadingIndex());
2652 for (i=0;i<fEMCalkTFullJet->GetTotalJets();i++)
2654 AliEmcalJet *myJet =(AliEmcalJet*) fmyKTFullJets->At(fEMCalkTFullJet->GetJetIndex(i));
2656 CMSTotalkTArea+=myJet->Area();
2657 if (myJet->GetNumberOfTracks()>0 || myJet->GetNumberOfClusters()>0)
2659 CMSParticleArea+=myJet->Area();
2661 if (IsJetOverlap(myJet,myJet1,kTRUE)==kFALSE && IsJetOverlap(myJet,myJet2,kFALSE)==kTRUE)
2663 pTArray[k]=myJet->Pt();
2664 RhoArray[k]=myJet->Pt()/myJet->Area();
2670 kTRho=MedianRhokT(pTArray,RhoArray,k);
2677 else if (fEMCalJet->GetLeadingPt()>=fEMCalJetThreshold)
2679 AliEmcalJet *myJet1 =(AliEmcalJet*) fmyAKTFullJets->At(fEMCalJet->GetLeadingIndex());
2681 for (i=0;i<fEMCalkTFullJet->GetTotalJets();i++)
2683 AliEmcalJet *myJet =(AliEmcalJet*) fmyKTFullJets->At(fEMCalkTFullJet->GetJetIndex(i));
2685 CMSTotalkTArea+=myJet->Area();
2686 if (myJet->GetNumberOfTracks()>0 || myJet->GetNumberOfClusters()>0)
2688 CMSParticleArea+=myJet->Area();
2690 if (IsJetOverlap(myJet,myJet1,kTRUE)==kFALSE)
2692 pTArray[k]=myJet->Pt();
2693 RhoArray[k]=myJet->Pt()/myJet->Area();
2699 kTRho=MedianRhokT(pTArray,RhoArray,k);
2708 for (i=0;i<fEMCalkTFullJet->GetTotalJets();i++)
2710 AliEmcalJet *myJet =(AliEmcalJet*) fmyKTFullJets->At(fEMCalkTFullJet->GetJetIndex(i));
2712 CMSTotalkTArea+=myJet->Area();
2713 if (myJet->GetNumberOfTracks()>0 || myJet->GetNumberOfClusters()>0)
2715 CMSParticleArea+=myJet->Area();
2717 pTArray[k]=myJet->Pt();
2718 RhoArray[k]=myJet->Pt()/myJet->Area();
2723 kTRho=MedianRhokT(pTArray,RhoArray,k);
2730 // Scale CMS Rho by Correction factor
2731 if (CMSTotalkTArea==0.0)
2733 CMSCorrectionFactor = 1.0;
2737 //CMSCorrectionFactor = CMSTrackArea/CMSTotalkTArea;
2738 CMSCorrectionFactor = CMSParticleArea/((fEMCalPhiTotal-2*fJetR)*(fEMCalEtaTotal-2*fJetR)); // The total physical area should be reduced by the eta & phi cuts due to looping over only fully contained kT jets within the EMCal
2740 kTRho*=CMSCorrectionFactor;
2742 fRhoFullCMS->FillRho(fEventCentrality,kTRho);
2743 fRhoFullCMS->FillBSJS(fEventCentrality,kTRho,fEMCalJetThreshold,fmyAKTFullJets,fEMCalFullJet->GetJets(),fEMCalFullJet->GetTotalJets());
2744 fRhoFullCMS->FillDeltaPt(fEventCentrality,kTRho,fJetR,fEMCalRCBckgFluc,1);
2745 fRhoFullCMS->FillDeltaPtSignal(fEventCentrality,kTRho,fJetR,fEMCalRCBckgFlucSignal,1);
2746 fRhoFullCMS->FillDeltaPtNColl(fEventCentrality,kTRho,fJetR,fEMCalRCBckgFlucNColl,1);
2747 fRhoFullCMS->FillBackgroundFluctuations(fEventCentrality,kTRho,fJetR);
2748 fRhoFullCMS->FillLeadingJetPtRho(fEMCalFullJet->GetLeadingPt(),kTRho);
2753 void AliAnalysisTaskFullpAJets::JetPtChargedProfile()
2757 Double_t ED_pT[fEDProfileRBins];
2759 for (i=0;i<fTPCFullJet->GetTotalSignalJets();i++)
2761 AliEmcalJet *myJet = (AliEmcalJet*) fmyAKTChargedJets->At(fTPCFullJet->GetSignalJetIndex(i));
2762 if (InsideRect(myJet->Phi(),fTPCPhiMin,fTPCPhiMax,myJet->Eta(),fTPCEtaMin+fEDProfileRUp,fTPCEtaMax-fEDProfileRUp)==kTRUE)
2764 for (j=0;j<fEDProfileRBins;j++)
2768 TLorentzVector *jet_vec= new TLorentzVector;
2769 myJet->GetMom(*jet_vec);
2770 // Sum all tracks in concentric rings around jet vertex
2771 for (j=0;j<fnTracks;j++)
2773 AliVTrack* vtrack = (AliVTrack*) fmyTracks->At(j);
2774 TLorentzVector *track_vec = new TLorentzVector;
2775 track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E());
2776 delta_R=jet_vec->DeltaR(*track_vec);
2777 if (delta_R<=fEDProfileRUp)
2779 ED_pT[TMath::FloorNint((fEDProfileRBins/fEDProfileRUp)*delta_R)]+=vtrack->Pt();
2784 for (j=0;j<fEDProfileRBins;j++)
2786 ED_pT[j]/=TMath::Pi()*TMath::Power((fEDProfileRUp/fEDProfileRBins),2)*(2*j+1);
2787 fpChargedJetEDProfile[TMath::FloorNint(fEventCentrality/10.)]->Fill(myJet->Pt(),myJet->Eta(),(fEDProfileRUp/fEDProfileRBins)*j,ED_pT[j]);
2788 if (fEventCentrality<=20)
2790 fpChargedJetRProfile[4+TMath::FloorNint(myJet->Eta()*10.)]->Fill((fEDProfileRUp/fEDProfileRBins)*j,ED_pT[j]);
2798 void AliAnalysisTaskFullpAJets::JetPtFullProfile()
2802 Double_t ED_pT[fEDProfileRBins];
2804 for (i=0;i<fEMCalFullJet->GetTotalSignalJets();i++)
2806 AliEmcalJet *myJet = (AliEmcalJet*) fmyAKTFullJets->At(fEMCalFullJet->GetSignalJetIndex(i));
2807 if (InsideRect(myJet->Phi(),fEMCalPhiMin+fEDProfileRUp,fEMCalPhiMax-fEDProfileRUp,myJet->Eta(),fEMCalEtaMin+fEDProfileRUp,fEMCalEtaMax-fEDProfileRUp)==kTRUE)
2809 for (j=0;j<fEDProfileRBins;j++)
2813 TLorentzVector *jet_vec= new TLorentzVector;
2814 myJet->GetMom(*jet_vec);
2815 // Sum all tracks in concentric rings around jet vertex
2816 for (j=0;j<fnTracks;j++)
2818 AliVTrack* vtrack = (AliVTrack*) fmyTracks->At(j);
2819 TLorentzVector *track_vec = new TLorentzVector;
2820 track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E());
2821 delta_R=jet_vec->DeltaR(*track_vec);
2822 if (delta_R<=fEDProfileRUp)
2824 ED_pT[TMath::FloorNint((fEDProfileRBins/fEDProfileRUp)*delta_R)]+=vtrack->Pt();
2829 // Sum all clusters in concentric rings around jet vertex
2830 for (j=0;j<fnClusters;j++)
2832 AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(j);
2833 TLorentzVector *cluster_vec = new TLorentzVector;
2834 vcluster->GetMomentum(*cluster_vec,fvertex);
2835 delta_R=jet_vec->DeltaR(*cluster_vec);
2836 if (delta_R<=fEDProfileRUp)
2838 ED_pT[TMath::FloorNint((fEDProfileRBins/fEDProfileRUp)*delta_R)]+=vcluster->E();
2843 for (j=0;j<fEDProfileRBins;j++)
2845 ED_pT[j]/=TMath::Pi()*TMath::Power((fEDProfileRUp/fEDProfileRBins),2)*(2*j+1);
2846 fpJetEDProfile[TMath::FloorNint(fEventCentrality/10.)]->Fill(myJet->Pt(),myJet->Eta(),(fEDProfileRUp/fEDProfileRBins)*j,ED_pT[j]);
2847 // Fill profile if a "most" central event (0-20%)
2848 if (fEventCentrality<=20)
2850 fpJetRProfile[2+TMath::FloorNint(myJet->Eta()*10.)]->Fill((fEDProfileRUp/fEDProfileRBins)*j,ED_pT[j]);
2855 // Fill constituent histogram
2856 for (j=0;j<myJet->GetNumberOfTracks();j++)
2858 AliVTrack* vtrack = (AliVTrack*) fOrgTracks->At(myJet->TrackAt(j));
2859 fhJetConstituentPt->Fill(myJet->Pt(),vtrack->Pt());
2862 for (j=0;j<myJet->GetNumberOfClusters();j++)
2864 AliVCluster* vcluster = (AliVCluster*) fOrgClusters->At(myJet->ClusterAt(j));
2865 TLorentzVector *cluster_vec = new TLorentzVector;
2866 vcluster->GetMomentum(*cluster_vec,fvertex);
2867 fhJetConstituentPt->Fill(myJet->Pt(),cluster_vec->Pt());
2874 void AliAnalysisTaskFullpAJets::JetPtEtaProfile()
2879 Double_t Eta_pT[fEtaProfileBins];
2880 Double_t Eta_abs_pT[Int_t(0.5*fEtaProfileBins)];
2882 for (i=0;i<fEMCalFullJet->GetTotalSignalJets();i++)
2884 AliEmcalJet *myJet = (AliEmcalJet*) fmyAKTFullJets->At(fEMCalFullJet->GetSignalJetIndex(i));
2885 if (IsInEMCal(myJet->Phi(),myJet->Eta())==kTRUE)
2887 for (j=0;j<fEtaProfileBins;j++)
2893 // Sum all tracks in strips of eta away from the jet vertex
2894 for (j=0;j<fnTracks;j++)
2896 AliVTrack* vtrack = (AliVTrack*) fmyTracks->At(j);
2898 delta_eta=TMath::Abs(vtrack->Eta()-myJet->Eta());
2899 if (IsInEMCal(vtrack->Phi(),vtrack->Eta())==kTRUE)
2901 Eta_pT[Int_t(0.5*fEtaProfileBins)+TMath::FloorNint(10*eta)]+=vtrack->Pt();
2902 Eta_abs_pT[TMath::FloorNint(10*delta_eta)]+=vtrack->Pt();
2906 // Sum all clusters in strips of eta away from the jet vertex
2907 for (j=0;j<fnClusters;j++)
2909 AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(j);
2910 TLorentzVector *cluster_vec = new TLorentzVector;
2911 vcluster->GetMomentum(*cluster_vec,fvertex);
2912 eta=cluster_vec->Eta();
2913 delta_eta=TMath::Abs(cluster_vec->Eta()-myJet->Eta());
2914 Eta_pT[Int_t(0.5*fEtaProfileBins)+TMath::FloorNint(10*eta)]+=vcluster->E();
2915 Eta_abs_pT[TMath::FloorNint(10*delta_eta)]+=vcluster->E();
2919 for (j=0;j<fEtaProfileBins;j++)
2921 Eta_pT[j]/=0.1*fEMCalPhiTotal;
2922 // Fill profile if a "most" central event (0-20%)
2923 if (j<(10*(fEMCalEtaMax-TMath::Abs(myJet->Eta()))))
2925 Eta_abs_pT[j]/=0.2*fEMCalPhiTotal;
2929 Eta_abs_pT[j]/=0.1*fEMCalPhiTotal;
2931 // Fill profile if a "most" central event (0-20%)
2932 if (fEventCentrality<=20)
2934 fpJetAbsEtaProfile[7+TMath::FloorNint(myJet->Eta()*10.)]->Fill(0.1*j,Eta_abs_pT[j]);
2935 fpJetEtaProfile[7+TMath::FloorNint(myJet->Eta()*10.)]->Fill(0.1*(j-7),Eta_pT[j]);
2942 void AliAnalysisTaskFullpAJets::DeleteJetData(Bool_t EMCalOn)
2948 delete fTPCkTFullJet;
2953 delete fEMCalFullJet;
2954 delete fEMCalPartJet;
2955 delete fEMCalkTFullJet;
2959 /////////////////////////////////////////////////////////////////////////////////////////
2960 ///////////////// User Defined Functions ///////////////////////////////////////
2961 /////////////////////////////////////////////////////////////////////////////////////////
2963 Bool_t AliAnalysisTaskFullpAJets::IsDiJetEvent()
2965 // Determine if event contains a di-jet within the detector. Uses charged jets.
2966 // Requires the delta phi of the jets to be 180 +/- 15 degrees.
2967 // Requires both jets to be outside of the EMCal
2968 // Requires both jets to be signal jets
2970 const Double_t dijet_delta_phi=(180/360.)*2*TMath::Pi();
2971 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
2972 Double_t dummy_phi=0.0;
2974 if (fTPCOnlyJet->GetTotalSignalJets()>1)
2976 AliEmcalJet *myhJet =(AliEmcalJet*) fmyAKTChargedJets->At(fTPCOnlyJet->GetLeadingIndex());
2977 AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTChargedJets->At(fTPCOnlyJet->GetSubLeadingIndex());
2978 dummy_phi=TMath::Min(TMath::Abs(myhJet->Phi()-myJet->Phi()),2*TMath::Pi()-TMath::Abs(myhJet->Phi()-myJet->Phi()));
2979 if (dummy_phi>(dijet_delta_phi-dijet_phi_acceptance))
2988 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)
2990 if (phi>phi_min && phi<phi_max)
2992 if (eta>eta_min && eta<eta_max)
3000 Bool_t AliAnalysisTaskFullpAJets::IsInEMCal(Double_t phi,Double_t eta)
3002 return InsideRect(phi,fEMCalPhiMin,fEMCalPhiMax,eta,fEMCalEtaMin,fEMCalEtaMax);
3005 Bool_t AliAnalysisTaskFullpAJets::IsInEMCalFull(Double_t r,Double_t phi,Double_t eta)
3007 return InsideRect(phi,fEMCalPhiMin+r,fEMCalPhiMax-r,eta,fEMCalEtaMin+r,fEMCalEtaMax-r);
3010 Bool_t AliAnalysisTaskFullpAJets::IsInEMCalPart(Double_t r,Double_t phi,Double_t eta)
3012 return InsideRect(phi,fEMCalPhiMin-r,fEMCalPhiMax+r,eta,fEMCalEtaMin-r,fEMCalEtaMax+r);
3015 Bool_t AliAnalysisTaskFullpAJets::IsInTPCFull(Double_t r,Double_t phi,Double_t eta)
3017 Bool_t in_EMCal= InsideRect(phi,fEMCalPhiMin-r,fEMCalPhiMax+r,eta,fEMCalEtaMin-r,fEMCalEtaMax+r);
3018 Bool_t in_TPC= InsideRect(phi,fTPCPhiMin,fTPCPhiMax,eta,fTPCEtaMin+r,fTPCEtaMax-r);
3020 if (in_EMCal==kFALSE && in_TPC==kTRUE)
3027 Bool_t AliAnalysisTaskFullpAJets::IsInTPC(Double_t r,Double_t phi,Double_t eta,Bool_t Complete)
3029 if (Complete==kTRUE)
3031 return InsideRect(phi,fTPCPhiMin,fTPCPhiMax,eta,fTPCEtaMin+r,fTPCEtaMax-r);
3033 return InsideRect(phi,fTPCPhiMin,fTPCPhiMax,eta,fTPCEtaMin,fTPCEtaMax);
3036 Bool_t AliAnalysisTaskFullpAJets::IsJetOverlap(AliEmcalJet *jet1,AliEmcalJet *jet2,Bool_t EMCalOn)
3041 Int_t jetCluster1=0;
3042 Int_t jetCluster2=0;
3044 for (i=0;i<jet1->GetNumberOfTracks();i++)
3046 jetTrack1=jet1->TrackAt(i);
3047 for (j=0;j<jet2->GetNumberOfTracks();j++)
3049 jetTrack2=jet2->TrackAt(j);
3050 if (jetTrack1 == jetTrack2)
3056 if (EMCalOn == kTRUE)
3058 for (i=0;i<jet1->GetNumberOfClusters();i++)
3060 jetCluster1=jet1->ClusterAt(i);
3061 for (j=0;j<jet2->GetNumberOfClusters();j++)
3063 jetCluster2=jet2->ClusterAt(j);
3064 if (jetCluster1 == jetCluster2)
3074 Double_t AliAnalysisTaskFullpAJets::AreaWithinTPC(Double_t r,Double_t eta)
3077 if (eta<(fTPCEtaMin+r))
3081 else if(eta>(fTPCEtaMax-r))
3089 return r*r*TMath::Pi()-AreaEdge(r,z);
3092 Double_t AliAnalysisTaskFullpAJets::AreaWithinEMCal(Double_t r,Double_t phi,Double_t eta)
3096 if (phi<(fEMCalPhiMin-r) || phi>(fEMCalPhiMax+r))
3100 else if (phi<(fEMCalPhiMin+r))
3104 else if (phi>(fEMCalPhiMin+r) && phi<(fEMCalPhiMax-r))
3113 if (eta<(fEMCalEtaMin-r) || eta>(fEMCalEtaMax+r))
3117 else if (eta<(fEMCalEtaMin+r))
3121 else if (eta>(fEMCalEtaMin+r) && eta<(fEMCalEtaMax-r))
3132 if (TMath::Sqrt(x*x+y*y)>=r)
3134 return r*r*TMath::Pi()-AreaEdge(r,x)-AreaEdge(r,y);
3136 return r*r*TMath::Pi()-AreaEdge(r,x)-AreaEdge(r,y)+AreaOverlap(r,x,y);
3138 else if ((x>=r && y<0) || (y>=r && x<0))
3140 return r*r*TMath::Pi()-AreaEdge(r,x)-AreaEdge(r,y);
3142 else if (x>0 && x<r && y<0)
3144 Double_t a=TMath::Sqrt(r*r-x*x);
3145 Double_t b=TMath::Sqrt(r*r-y*y);
3148 return r*r*TMath::ASin(b/r)+y*b;
3152 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);
3155 else if (y>0 && y<r && x<0)
3157 Double_t a=TMath::Sqrt(r*r-x*x);
3158 Double_t b=TMath::Sqrt(r*r-y*y);
3161 return r*r*TMath::ASin(a/r)+x*a;
3165 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);
3170 Double_t a=TMath::Sqrt(r*r-x*x);
3171 Double_t b=TMath::Sqrt(r*r-y*y);
3178 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);
3183 Double_t AliAnalysisTaskFullpAJets::AreaEdge(Double_t r,Double_t z)
3185 Double_t a=TMath::Sqrt(r*r-z*z);
3186 return r*r*TMath::ASin(a/r)-a*z;
3189 Double_t AliAnalysisTaskFullpAJets::AreaOverlap(Double_t r,Double_t x,Double_t y)
3191 Double_t a=TMath::Sqrt(r*r-x*x);
3192 Double_t b=TMath::Sqrt(r*r-y*y);
3193 return x*y-0.5*(x*a+y*b)+0.5*r*r*(TMath::ASin(b/r)-TMath::ASin(x/r));
3196 Double_t AliAnalysisTaskFullpAJets::TransverseArea(Double_t r,Double_t psi0,Double_t phi,Double_t eta)
3198 Double_t area_left=0;
3199 Double_t area_right=0;
3203 Double_t eta_down=0;
3205 Double_t u=eta-fEMCalEtaMin;
3206 Double_t v=fEMCalEtaMax-eta;
3208 Double_t phi1=phi+u*TMath::Tan(psi0);
3209 Double_t phi2=phi-u*TMath::Tan(psi0);
3210 Double_t phi3=phi+v*TMath::Tan(psi0);
3211 Double_t phi4=phi-v*TMath::Tan(psi0);
3213 //Calculate the Left side area
3214 if (phi1>=fEMCalPhiMax)
3216 eta_a=eta-u*((fEMCalPhiMax-phi)/(phi1-phi));
3218 if (phi2<=fEMCalPhiMin)
3220 eta_b=eta-u*((phi-fEMCalPhiMin)/(phi-phi2));
3223 if ((phi1>=fEMCalPhiMax) && (phi2<=fEMCalPhiMin))
3225 eta_up=TMath::Max(eta_a,eta_b);
3226 eta_down=TMath::Min(eta_a,eta_b);
3228 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);
3230 else if (phi1>=fEMCalPhiMax)
3232 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);
3234 else if (phi2<=fEMCalPhiMin)
3236 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);
3240 area_left=0.5*(phi1-phi2+2*r*TMath::Tan(psi0))*(u-r);
3243 // Calculate the Right side area
3244 if (phi3>=fEMCalPhiMax)
3246 eta_a=eta+v*((fEMCalPhiMax-phi)/(phi3-phi));
3248 if (phi4<=fEMCalPhiMin)
3250 eta_b=eta+v*((phi-fEMCalPhiMin)/(phi-phi4));
3253 if ((phi3>=fEMCalPhiMax) && (phi4<=fEMCalPhiMin))
3255 eta_up=TMath::Max(eta_a,eta_b);
3256 eta_down=TMath::Min(eta_a,eta_b);
3258 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);
3260 else if (phi3>=fEMCalPhiMax)
3262 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);
3264 else if (phi4<=fEMCalPhiMin)
3266 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);
3270 area_right=0.5*(phi3-phi4+2*r*TMath::Tan(psi0))*(v-r);
3272 return area_left+area_right;
3275 Double_t AliAnalysisTaskFullpAJets::MedianRhokT(Double_t *pTkTEntries, Double_t *RhokTEntries, Int_t nEntries)
3277 // This function is used to calculate the median Rho kT value. The procedure is:
3278 // - Order the kT cluster array from highest rho value to lowest
3279 // - Exclude highest rho kT cluster
3280 // - Return the median rho value of the remaining subset
3283 const Double_t rho_min=-9.9999E+99;
3285 Double_t w[nEntries]; // Used for sorting
3286 Double_t smax=rho_min;
3292 for (j=0;j<nEntries;j++)
3297 for (j=0;j<nEntries;j++)
3299 if (pTkTEntries[j]>pTmax)
3301 pTmax=pTkTEntries[j];
3306 for (j=0;j<nEntries;j++)
3308 for (k=0;k<nEntries;k++)
3310 if (RhokTEntries[k]>smax)
3312 smax=RhokTEntries[k];
3317 RhokTEntries[sindex]=rho_min;
3321 return w[nEntries/2];
3325 // AlipAJetData Class Member Defs
3327 AliAnalysisTaskFullpAJets::AlipAJetData::AlipAJetData() :
3339 fPtSubLeadingIndex(0),
3346 // Dummy constructor ALWAYS needed for I/O.
3349 AliAnalysisTaskFullpAJets::AlipAJetData::AlipAJetData(const char *name, Bool_t isFull, Int_t nEntries) :
3361 fPtSubLeadingIndex(0),
3368 SetIsJetsFull(isFull);
3369 SetTotalEntries(nEntries);
3370 SetLeading(0,-9.99E+099);
3371 SetSubLeading(0,-9.99E+099);
3373 SetAreaCutFraction(0.6);
3378 AliAnalysisTaskFullpAJets::AlipAJetData::~AlipAJetData()
3383 SetIsJetsFull(kFALSE);
3386 SetTotalSignalJets(0);
3390 SetAreaCutFraction(0);
3393 delete [] fJetsIndex;
3394 delete [] fJetsSCIndex;
3395 delete [] fIsJetInArray;
3399 // User Defined Sub-Routines
3400 void AliAnalysisTaskFullpAJets::AlipAJetData::InitializeJetData(TClonesArray *jetList, Int_t nEntries)
3405 Double_t AreaThreshold = fAreaCutFrac*TMath::Pi()*TMath::Power(fJetR,2);
3407 // Initialize Jet Data
3408 for (i=0;i<nEntries;i++)
3410 AliEmcalJet *myJet =(AliEmcalJet*) jetList->At(i);
3412 if (fIsJetInArray[i]==kTRUE && myJet->Area()>AreaThreshold)
3415 if (myJet->Pt()>fPtMax)
3417 SetSubLeading(fPtMaxIndex,fPtMax);
3418 SetLeading(i,myJet->Pt());
3420 else if (myJet->Pt()>fPtSubLeading)
3422 SetSubLeading(i,myJet->Pt());
3424 if (myJet->Pt()>=fSignalPt)
3426 SetSignalJetIndex(i,l);
3433 SetTotalSignalJets(l);
3437 void AliAnalysisTaskFullpAJets::AlipAJetData::SetName(const char *name)
3442 void AliAnalysisTaskFullpAJets::AlipAJetData::SetIsJetsFull(Bool_t isFull)
3444 fIsJetsFull = isFull;
3447 void AliAnalysisTaskFullpAJets::AlipAJetData::SetTotalEntries(Int_t nEntries)
3450 fJetsIndex = new Int_t[fnTotal];
3451 fJetsSCIndex = new Int_t[fnTotal];
3452 fIsJetInArray = new Bool_t[fnTotal];
3455 void AliAnalysisTaskFullpAJets::AlipAJetData::SetTotalJets(Int_t nJets)
3460 void AliAnalysisTaskFullpAJets::AlipAJetData::SetTotalSignalJets(Int_t nSignalJets)
3462 fnJetsSC = nSignalJets;
3465 void AliAnalysisTaskFullpAJets::AlipAJetData::SetSignalCut(Double_t Pt)
3470 void AliAnalysisTaskFullpAJets::AlipAJetData::SetLeading(Int_t index, Double_t Pt)
3472 fPtMaxIndex = index;
3476 void AliAnalysisTaskFullpAJets::AlipAJetData::SetSubLeading(Int_t index, Double_t Pt)
3478 fPtSubLeadingIndex = index;
3482 void AliAnalysisTaskFullpAJets::AlipAJetData::SetJetIndex(Int_t index, Int_t At)
3484 fJetsIndex[At] = index;
3487 void AliAnalysisTaskFullpAJets::AlipAJetData::SetSignalJetIndex(Int_t index, Int_t At)
3489 fJetsSCIndex[At] = index;
3492 void AliAnalysisTaskFullpAJets::AlipAJetData::SetIsJetInArray(Bool_t isInArray, Int_t At)
3494 fIsJetInArray[At] = isInArray;
3497 void AliAnalysisTaskFullpAJets::AlipAJetData::SetAreaCutFraction(Double_t areaFraction)
3499 fAreaCutFrac = areaFraction;
3502 void AliAnalysisTaskFullpAJets::AlipAJetData::SetJetR(Double_t jetR)
3508 Int_t AliAnalysisTaskFullpAJets::AlipAJetData::GetTotalEntries()
3513 Int_t AliAnalysisTaskFullpAJets::AlipAJetData::GetTotalJets()
3518 Int_t AliAnalysisTaskFullpAJets::AlipAJetData::GetTotalSignalJets()
3523 Double_t AliAnalysisTaskFullpAJets::AlipAJetData::GetSignalCut()
3528 Int_t AliAnalysisTaskFullpAJets::AlipAJetData::GetLeadingIndex()
3533 Double_t AliAnalysisTaskFullpAJets::AlipAJetData::GetLeadingPt()
3538 Int_t AliAnalysisTaskFullpAJets::AlipAJetData::GetSubLeadingIndex()
3540 return fPtSubLeadingIndex;
3543 Double_t AliAnalysisTaskFullpAJets::AlipAJetData::GetSubLeadingPt()
3545 return fPtSubLeading;
3548 Int_t AliAnalysisTaskFullpAJets::AlipAJetData::GetJetIndex(Int_t At)
3550 return fJetsIndex[At];
3553 Int_t AliAnalysisTaskFullpAJets::AlipAJetData::GetSignalJetIndex(Int_t At)
3555 return fJetsSCIndex[At];
3558 Bool_t AliAnalysisTaskFullpAJets::AlipAJetData::GetIsJetInArray(Int_t At)
3560 return fIsJetInArray[At];
3564 // AlipAJetHistos Class Member Defs
3566 AliAnalysisTaskFullpAJets::AlipAJetHistos::AlipAJetHistos() :
3579 fh80100BSPtSignal(0),
3586 fh020DeltaPtSignal(0),
3587 fh80100DeltaPtSignal(0),
3589 fhDeltaPtCenSignal(0),
3590 fh020DeltaPtNColl(0),
3591 fh80100DeltaPtNColl(0),
3593 fhDeltaPtCenNColl(0),
3595 fh80100BckgFlucPt(0),
3624 // Dummy constructor ALWAYS needed for I/O.
3627 AliAnalysisTaskFullpAJets::AlipAJetHistos::AlipAJetHistos(const char *name) :
3640 fh80100BSPtSignal(0),
3647 fh020DeltaPtSignal(0),
3648 fh80100DeltaPtSignal(0),
3650 fhDeltaPtCenSignal(0),
3651 fh020DeltaPtNColl(0),
3652 fh80100DeltaPtNColl(0),
3654 fhDeltaPtCenNColl(0),
3656 fh80100BckgFlucPt(0),
3686 SetCentralityTag("V0A");
3687 SetCentralityRange(100,0,100);
3688 SetPtRange(250,-50,200);
3689 SetRhoPtRange(500,0,50);
3690 SetDeltaPtRange(200,-100,100);
3691 SetBackgroundFluctuationsPtRange(100,0,100);
3692 SetLeadingJetPtRange(200,0,200);
3697 AliAnalysisTaskFullpAJets::AlipAJetHistos::AlipAJetHistos(const char *name, const char *centag) :
3710 fh80100BSPtSignal(0),
3717 fh020DeltaPtSignal(0),
3718 fh80100DeltaPtSignal(0),
3720 fhDeltaPtCenSignal(0),
3721 fh020DeltaPtNColl(0),
3722 fh80100DeltaPtNColl(0),
3724 fhDeltaPtCenNColl(0),
3726 fh80100BckgFlucPt(0),
3756 SetCentralityTag(centag);
3757 SetCentralityRange(100,0,100);
3758 SetPtRange(250,-50,200);
3759 SetRhoPtRange(500,0,50);
3760 SetDeltaPtRange(200,-100,100);
3761 SetBackgroundFluctuationsPtRange(100,0,100);
3762 SetLeadingJetPtRange(200,0,200);
3768 AliAnalysisTaskFullpAJets::AlipAJetHistos::~AlipAJetHistos()
3776 void AliAnalysisTaskFullpAJets::AlipAJetHistos::Init()
3778 fOutput = new TList();
3779 fOutput->SetOwner();
3780 fOutput->SetName(fName);
3782 TString RhoString="";
3783 TString PtString="";
3784 TString DeltaPtString="";
3785 TString BckgFlucPtString="";
3786 TString CentralityString;
3787 CentralityString = Form("Centrality (%s)",fCentralityTag);
3789 // Rho Spectral Plots
3790 RhoString = Form("%d-%d Centrality, Rho Spectrum",0,20);
3791 fh020Rho = new TH1D("fh020Rho",RhoString,fRhoPtBins,fRhoPtLow,fRhoPtUp);
3792 fh020Rho->GetXaxis()->SetTitle("p_{T}/Area (GeV/c)");
3793 fh020Rho->GetYaxis()->SetTitle("1/N_{Events} dN/d#rho");
3796 RhoString = Form("%d-%d Centrality, Rho Spectrum",80,100);
3797 fh80100Rho = new TH1D("fh80100Rho",RhoString,fRhoPtBins,fRhoPtLow,fRhoPtUp);
3798 fh80100Rho->GetXaxis()->SetTitle("p_{T}/Area (GeV/c)");
3799 fh80100Rho->GetYaxis()->SetTitle("1/N_{Events} dN/d#rho");
3800 fh80100Rho->Sumw2();
3802 RhoString = Form("%d-%d Centrality, Rho Spectrum",0,100);
3803 fhRho = new TH1D("fhRho",RhoString,fRhoPtBins,fRhoPtLow,fRhoPtUp);
3804 fhRho->GetXaxis()->SetTitle("p_{T}/Area (GeV/c)");
3805 fhRho->GetYaxis()->SetTitle("1/N_{Events} dN/d#rho");
3808 RhoString = "Rho Spectrum vs Centrality";
3809 fhRhoCen = new TH2D("fhRhoCen",RhoString,fRhoPtBins,fRhoPtLow,fRhoPtUp,fCentralityBins,fCentralityLow,fCentralityUp);
3810 fhRhoCen->GetXaxis()->SetTitle("p_{T}/Area (GeV/c)");
3811 fhRhoCen->GetYaxis()->SetTitle(Form("%s",CentralityString.Data()));
3812 fhRhoCen->GetZaxis()->SetTitle("1/N_{Events} dN/d#rho");
3815 // Background Subtracted Plots
3816 PtString = Form("%d-%d Centrality, Background Subtracted Jet Spectrum",0,20);
3817 fh020BSPt = new TH1D("fh020BSPt",PtString,fPtBins,fPtLow,fPtUp);
3818 fh020BSPt->GetXaxis()->SetTitle("p_{T} - #rhoA (GeV/c)");
3819 fh020BSPt->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}d#etad#phi");
3822 PtString = Form("%d-%d Centrality, Background Subtracted Jet Spectrum",80,100);
3823 fh80100BSPt = new TH1D("fh80100BSPt",PtString,fPtBins,fPtLow,fPtUp);
3824 fh80100BSPt->GetXaxis()->SetTitle("p_{T} - #rhoA (GeV/c)");
3825 fh80100BSPt->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}d#etad#phi");
3826 fh80100BSPt->Sumw2();
3828 PtString = Form("%d-%d Centrality, Background Subtracted Jet Spectrum",0,100);
3829 fhBSPt = new TH1D("fhBSPt",PtString,fPtBins,fPtLow,fPtUp);
3830 fhBSPt->GetXaxis()->SetTitle("p_{T} - #rhoA (GeV/c)");
3831 fhBSPt->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}d#etad#phi");
3834 PtString = "Background Subtracted Jet Spectrum vs Centrality";
3835 fhBSPtCen = new TH2D("fhBSPtCen",PtString,fPtBins,fPtLow,fPtUp,fCentralityBins,fCentralityLow,fCentralityUp);
3836 fhBSPtCen->GetXaxis()->SetTitle("p_{T} - #rhoA (GeV/c)");
3837 fhBSPtCen->GetYaxis()->SetTitle(Form("%s",CentralityString.Data()));
3838 fhBSPtCen->GetZaxis()->SetTitle("1/N_{Events} dN/dp_{T}d#etad#phi");
3841 PtString = Form("%d-%d Centrality, Background Subtracted Signal Jet Spectrum",0,20);
3842 fh020BSPtSignal = new TH1D("fh020BSPtSignal",PtString,fPtBins,fPtLow,fPtUp);
3843 fh020BSPtSignal->GetXaxis()->SetTitle("p_{T} - #rhoA (GeV/c)");
3844 fh020BSPtSignal->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}d#etad#phi");
3845 fh020BSPtSignal->Sumw2();
3847 PtString = Form("%d-%d Centrality, Background Subtracted Signal Jet Spectrum",80,100);
3848 fh80100BSPtSignal = new TH1D("fh80100BSPtSignal",PtString,fPtBins,fPtLow,fPtUp);
3849 fh80100BSPtSignal->GetXaxis()->SetTitle("p_{T} - #rhoA (GeV/c)");
3850 fh80100BSPtSignal->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}d#etad#phi");
3851 fh80100BSPtSignal->Sumw2();
3853 PtString = Form("%d-%d Centrality, Background Subtracted Signal Jet Spectrum",0,100);
3854 fhBSPtSignal = new TH1D("fhBSPtSignal",PtString,fPtBins,fPtLow,fPtUp);
3855 fhBSPtSignal->GetXaxis()->SetTitle("p_{T} - #rhoA (GeV/c)");
3856 fhBSPtSignal->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}d#etad#phi");
3857 fhBSPtSignal->Sumw2();
3859 PtString = "Background Subtracted Signal Jet Spectrum vs Centrality";
3860 fhBSPtCenSignal = new TH2D("fhBSPtCenSignal",PtString,fPtBins,fPtLow,fPtUp,fCentralityBins,fCentralityLow,fCentralityUp);
3861 fhBSPtCenSignal->GetXaxis()->SetTitle("p_{T} - #rhoA (GeV/c)");
3862 fhBSPtCenSignal->GetYaxis()->SetTitle(Form("%s",CentralityString.Data()));
3863 fhBSPtCenSignal->GetZaxis()->SetTitle("1/N_{Events} dN/dp_{T}d#etad#phi");
3864 fhBSPtCenSignal->Sumw2();
3866 // Delta Pt Plots with RC at least 2R away from Leading Signal
3867 DeltaPtString = Form("%d-%d Centrality, #deltap_{T} Spectrum",0,20);
3868 fh020DeltaPt = new TH1D("fh020DeltaPt",DeltaPtString,fDeltaPtBins,fDeltaPtLow,fDeltaPtUp);
3869 fh020DeltaPt->GetXaxis()->SetTitle("#deltap_{T} (GeV/c)");
3870 fh020DeltaPt->GetYaxis()->SetTitle("Probability Density");
3871 fh020DeltaPt->Sumw2();
3873 DeltaPtString = Form("%d-%d Centrality, #deltap_{T} Spectrum",80,100);
3874 fh80100DeltaPt = new TH1D("fh80100DeltaPt",DeltaPtString,fDeltaPtBins,fDeltaPtLow,fDeltaPtUp);
3875 fh80100DeltaPt->GetXaxis()->SetTitle("#deltap_{T} (GeV/c)");
3876 fh80100DeltaPt->GetYaxis()->SetTitle("Probability Density");
3877 fh80100DeltaPt->Sumw2();
3879 DeltaPtString = Form("%d-%d Centrality, #deltap_{T} Spectrum",0,100);
3880 fhDeltaPt = new TH1D("fhDeltaPt",DeltaPtString,fDeltaPtBins,fDeltaPtLow,fDeltaPtUp);
3881 fhDeltaPt->GetXaxis()->SetTitle("#deltap_{T} (GeV/c)");
3882 fhDeltaPt->GetYaxis()->SetTitle("Probability Density");
3885 DeltaPtString = "#deltap_{T} Spectrum vs Centrality";
3886 fhDeltaPtCen = new TH2D("fhDeltaPtCen",DeltaPtString,fDeltaPtBins,fDeltaPtLow,fDeltaPtUp,fCentralityBins,fCentralityLow,fCentralityUp);
3887 fhDeltaPtCen->GetXaxis()->SetTitle("#deltap_{T} (GeV/c)");
3888 fhDeltaPtCen->GetYaxis()->SetTitle(Form("%s",CentralityString.Data()));
3889 fhDeltaPtCen->GetZaxis()->SetTitle("Probability Density");
3890 fhDeltaPtCen->Sumw2();
3892 // Delta Pt Plots with no spatial restrictions on RC
3893 DeltaPtString = Form("%d-%d Centrality, #deltap_{T} Spectrum",0,20);
3894 fh020DeltaPtSignal = new TH1D("fh020DeltaPtSignal",DeltaPtString,fDeltaPtBins,fDeltaPtLow,fDeltaPtUp);
3895 fh020DeltaPtSignal->GetXaxis()->SetTitle("#deltap_{T} (GeV/c)");
3896 fh020DeltaPtSignal->GetYaxis()->SetTitle("Probability Density");
3897 fh020DeltaPtSignal->Sumw2();
3899 DeltaPtString = Form("%d-%d Centrality, #deltap_{T} Spectrum",80,100);
3900 fh80100DeltaPtSignal = new TH1D("fh80100DeltaPtSignal",DeltaPtString,fDeltaPtBins,fDeltaPtLow,fDeltaPtUp);
3901 fh80100DeltaPtSignal->GetXaxis()->SetTitle("#deltap_{T} (GeV/c)");
3902 fh80100DeltaPtSignal->GetYaxis()->SetTitle("Probability Density");
3903 fh80100DeltaPtSignal->Sumw2();
3905 DeltaPtString = Form("%d-%d Centrality, #deltap_{T} Spectrum",0,100);
3906 fhDeltaPtSignal = new TH1D("fhDeltaPtSignal",DeltaPtString,fDeltaPtBins,fDeltaPtLow,fDeltaPtUp);
3907 fhDeltaPtSignal->GetXaxis()->SetTitle("#deltap_{T} (GeV/c)");
3908 fhDeltaPtSignal->GetYaxis()->SetTitle("Probability Density");
3909 fhDeltaPtSignal->Sumw2();
3911 DeltaPtString = "#deltap_{T} Spectrum vs Centrality";
3912 fhDeltaPtCenSignal = new TH2D("fhDeltaPtCenSignal",DeltaPtString,fDeltaPtBins,fDeltaPtLow,fDeltaPtUp,fCentralityBins,fCentralityLow,fCentralityUp);
3913 fhDeltaPtCenSignal->GetXaxis()->SetTitle("#deltap_{T} (GeV/c)");
3914 fhDeltaPtCenSignal->GetYaxis()->SetTitle(Form("%s",CentralityString.Data()));
3915 fhDeltaPtCenSignal->GetZaxis()->SetTitle("Probability Density");
3916 fhDeltaPtCenSignal->Sumw2();
3918 // Delta Pt Plots with NColl restrictions on RC
3919 DeltaPtString = Form("%d-%d Centrality, #deltap_{T} Spectrum",0,20);
3920 fh020DeltaPtNColl = new TH1D("fh020DeltaPtNColl",DeltaPtString,fDeltaPtBins,fDeltaPtLow,fDeltaPtUp);
3921 fh020DeltaPtNColl->GetXaxis()->SetTitle("#deltap_{T} (GeV/c)");
3922 fh020DeltaPtNColl->GetYaxis()->SetTitle("Probability Density");
3923 fh020DeltaPtNColl->Sumw2();
3925 DeltaPtString = Form("%d-%d Centrality, #deltap_{T} Spectrum",80,100);
3926 fh80100DeltaPtNColl = new TH1D("fh80100DeltaPtNColl",DeltaPtString,fDeltaPtBins,fDeltaPtLow,fDeltaPtUp);
3927 fh80100DeltaPtNColl->GetXaxis()->SetTitle("#deltap_{T} (GeV/c)");
3928 fh80100DeltaPtNColl->GetYaxis()->SetTitle("Probability Density");
3929 fh80100DeltaPtNColl->Sumw2();
3931 DeltaPtString = Form("%d-%d Centrality, #deltap_{T} Spectrum",0,100);
3932 fhDeltaPtNColl = new TH1D("fhDeltaPtNColl",DeltaPtString,fDeltaPtBins,fDeltaPtLow,fDeltaPtUp);
3933 fhDeltaPtNColl->GetXaxis()->SetTitle("#deltap_{T} (GeV/c)");
3934 fhDeltaPtNColl->GetYaxis()->SetTitle("Probability Density");
3935 fhDeltaPtNColl->Sumw2();
3937 DeltaPtString = "#deltap_{T} Spectrum vs Centrality";
3938 fhDeltaPtCenNColl = new TH2D("fhDeltaPtCenNColl",DeltaPtString,fDeltaPtBins,fDeltaPtLow,fDeltaPtUp,fCentralityBins,fCentralityLow,fCentralityUp);
3939 fhDeltaPtCenNColl->GetXaxis()->SetTitle("#deltap_{T} (GeV/c)");
3940 fhDeltaPtCenNColl->GetYaxis()->SetTitle(Form("%s",CentralityString.Data()));
3941 fhDeltaPtCenNColl->GetZaxis()->SetTitle("Probability Density");
3942 fhDeltaPtCenNColl->Sumw2();
3944 // Background Fluctuations Pt Plots
3945 BckgFlucPtString = Form("%d-%d Centrality, Background Fluctuation p_{T} Spectrum",0,20);
3946 fh020BckgFlucPt = new TH1D("fh020BckgFlucPt",PtString,fPtBins,fPtLow,fPtUp);
3947 fh020BckgFlucPt->GetXaxis()->SetTitle("p_{T} (GeV/c)");
3948 fh020BckgFlucPt->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}d#etad#phi");
3949 fh020BckgFlucPt->Sumw2();
3951 BckgFlucPtString = Form("%d-%d Centrality, Background Fluctuation p_{T} Spectrum",80,100);
3952 fh80100BckgFlucPt = new TH1D("fh80100BckgFlucPt",BckgFlucPtString,fBckgFlucPtBins,fBckgFlucPtLow,fBckgFlucPtUp);
3953 fh80100BckgFlucPt->GetXaxis()->SetTitle("p_{T} (GeV/c)");
3954 fh80100BckgFlucPt->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}d#etad#phi");
3955 fh80100BckgFlucPt->Sumw2();
3957 BckgFlucPtString = Form("%d-%d Centrality, Background Fluctuation p_{T} Spectrum",0,100);
3958 fhBckgFlucPt = new TH1D("fhBckgFlucPt",BckgFlucPtString,fBckgFlucPtBins,fBckgFlucPtLow,fBckgFlucPtUp);
3959 fhBckgFlucPt->GetXaxis()->SetTitle("p_{T} (GeV/c)");
3960 fhBckgFlucPt->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}d#etad#phi");
3961 fhBckgFlucPt->Sumw2();
3963 BckgFlucPtString = "Background Fluctuation p_{T} Spectrum vs Centrality";
3964 fhBckgFlucPtCen = new TH2D("fhBckgFlucPtCen",BckgFlucPtString,fBckgFlucPtBins,fBckgFlucPtLow,fBckgFlucPtUp,fCentralityBins,fCentralityLow,fCentralityUp);
3965 fhBckgFlucPtCen->GetXaxis()->SetTitle("#p_{T} (GeV/c)");
3966 fhBckgFlucPtCen->GetYaxis()->SetTitle(Form("%s",CentralityString.Data()));
3967 fhBckgFlucPtCen->GetZaxis()->SetTitle("1/N_{Events} dN/dp_{T}d#etad#phi");
3968 fhBckgFlucPtCen->Sumw2();
3970 // Background Density vs Centrality Profile
3971 RhoString = "Background Density vs Centrality";
3972 fpRho = new TProfile("fpRho",RhoString,fCentralityBins,fCentralityLow,fCentralityUp);
3973 fpRho->GetXaxis()->SetTitle(Form("%s",CentralityString.Data()));
3974 fpRho->GetYaxis()->SetTitle("p_{T}/Area (GeV/c)");
3976 // Background Density vs Leading Jet Profile
3977 fpLJetRho = new TProfile("fpLJetRho","#rho vs Leading Jet p_{T}",fLJetPtBins,fLJetPtLow,fLJetPtUp);
3978 fpLJetRho->GetXaxis()->SetTitle("Leading Jet p_{T}");
3979 fpLJetRho->GetYaxis()->SetTitle("p_{T}/Area (GeV/c)");
3981 // Add Histos & Profiles to List
3982 fOutput->Add(fh020Rho);
3983 fOutput->Add(fh80100Rho);
3984 fOutput->Add(fhRho);
3985 fOutput->Add(fhRhoCen);
3986 fOutput->Add(fh020BSPt);
3987 fOutput->Add(fh80100BSPt);
3988 fOutput->Add(fhBSPt);
3989 fOutput->Add(fhBSPtCen);
3990 fOutput->Add(fh020BSPtSignal);
3991 fOutput->Add(fh80100BSPtSignal);
3992 fOutput->Add(fhBSPtSignal);
3993 fOutput->Add(fhBSPtCenSignal);
3994 fOutput->Add(fh020DeltaPt);
3995 fOutput->Add(fh80100DeltaPt);
3996 fOutput->Add(fhDeltaPt);
3997 fOutput->Add(fhDeltaPtCen);
3998 fOutput->Add(fh020DeltaPtSignal);
3999 fOutput->Add(fh80100DeltaPtSignal);
4000 fOutput->Add(fhDeltaPtSignal);
4001 fOutput->Add(fhDeltaPtCenSignal);
4002 fOutput->Add(fh020DeltaPtNColl);
4003 fOutput->Add(fh80100DeltaPtNColl);
4004 fOutput->Add(fhDeltaPtNColl);
4005 fOutput->Add(fhDeltaPtCenNColl);
4006 fOutput->Add(fh020BckgFlucPt);
4007 fOutput->Add(fh80100BckgFlucPt);
4008 fOutput->Add(fhBckgFlucPt);
4009 fOutput->Add(fhBckgFlucPtCen);
4010 fOutput->Add(fpRho);
4011 fOutput->Add(fpLJetRho);
4014 void AliAnalysisTaskFullpAJets::AlipAJetHistos::SetName(const char *name)
4019 void AliAnalysisTaskFullpAJets::AlipAJetHistos::SetCentralityTag(const char *name)
4021 fCentralityTag = name;
4024 void AliAnalysisTaskFullpAJets::AlipAJetHistos::SetCentralityRange(Int_t bins, Double_t low, Double_t up)
4026 fCentralityBins=bins;
4031 void AliAnalysisTaskFullpAJets::AlipAJetHistos::SetPtRange(Int_t bins, Double_t low, Double_t up)
4038 void AliAnalysisTaskFullpAJets::AlipAJetHistos::SetRhoPtRange(Int_t bins, Double_t low, Double_t up)
4045 void AliAnalysisTaskFullpAJets::AlipAJetHistos::SetDeltaPtRange(Int_t bins, Double_t low, Double_t up)
4052 void AliAnalysisTaskFullpAJets::AlipAJetHistos::SetBackgroundFluctuationsPtRange(Int_t bins, Double_t low, Double_t up)
4054 fBckgFlucPtBins=bins;
4059 void AliAnalysisTaskFullpAJets::AlipAJetHistos::SetLeadingJetPtRange(Int_t bins, Double_t low, Double_t up)
4066 TList* AliAnalysisTaskFullpAJets::AlipAJetHistos::GetOutputHistos()
4071 void AliAnalysisTaskFullpAJets::AlipAJetHistos::FillRho(Double_t eventCentrality, Double_t rho)
4076 fhRhoCen->Fill(rho,eventCentrality);
4077 fpRho->Fill(eventCentrality,rho);
4079 if (eventCentrality<=20)
4081 fh020Rho->Fill(rho);
4083 else if (eventCentrality>=80)
4085 fh80100Rho->Fill(rho);
4089 void AliAnalysisTaskFullpAJets::AlipAJetHistos::FillBSJS(Double_t eventCentrality, Double_t rho, Double_t signalCut, TClonesArray *jetList, Int_t *indexJetList, Int_t nIndexJetList)
4092 Double_t tempPt=0.0;
4094 for (i=0;i<nIndexJetList;i++)
4096 AliEmcalJet *myJet = (AliEmcalJet*) jetList->At(indexJetList[i]);
4097 tempPt=myJet->Pt()-rho*myJet->Area();
4099 fhBSPt->Fill(tempPt);
4100 fhBSPtCen->Fill(tempPt,eventCentrality);
4101 if (eventCentrality<=20)
4103 fh020BSPt->Fill(tempPt);
4105 else if (eventCentrality>=80)
4107 fh80100BSPt->Fill(tempPt);
4110 if (myJet->Pt()>=signalCut)
4112 fhBSPtSignal->Fill(tempPt);
4113 fhBSPtCenSignal->Fill(tempPt,eventCentrality);
4114 if (eventCentrality<=20)
4116 fh020BSPtSignal->Fill(tempPt);
4118 else if (eventCentrality>=80)
4120 fh80100BSPtSignal->Fill(tempPt);
4127 void AliAnalysisTaskFullpAJets::AlipAJetHistos::FillDeltaPt(Double_t eventCentrality, Double_t rho, Double_t jetRadius, Double_t *RCArray, Int_t nRC)
4130 Double_t tempPt=0.0;
4134 tempPt=RCArray[i]-rho*TMath::Power(jetRadius,2);
4135 fhDeltaPt->Fill(tempPt);
4136 fhDeltaPtCen->Fill(tempPt,eventCentrality);
4137 if (eventCentrality<=20)
4139 fh020DeltaPt->Fill(tempPt);
4141 else if (eventCentrality>=80)
4143 fh80100DeltaPt->Fill(tempPt);
4149 void AliAnalysisTaskFullpAJets::AlipAJetHistos::FillDeltaPtSignal(Double_t eventCentrality, Double_t rho, Double_t jetRadius, Double_t *RCArray, Int_t nRC)
4152 Double_t tempPt=0.0;
4156 tempPt=RCArray[i]-rho*TMath::Power(jetRadius,2);
4157 fhDeltaPtSignal->Fill(tempPt);
4158 fhDeltaPtCenSignal->Fill(tempPt,eventCentrality);
4159 if (eventCentrality<=20)
4161 fh020DeltaPtSignal->Fill(tempPt);
4163 else if (eventCentrality>=80)
4165 fh80100DeltaPtSignal->Fill(tempPt);
4171 void AliAnalysisTaskFullpAJets::AlipAJetHistos::FillDeltaPtNColl(Double_t eventCentrality, Double_t rho, Double_t jetRadius, Double_t *RCArray, Int_t nRC)
4174 Double_t tempPt=0.0;
4178 tempPt=RCArray[i]-rho*TMath::Power(jetRadius,2);
4179 fhDeltaPtNColl->Fill(tempPt);
4180 fhDeltaPtCenNColl->Fill(tempPt,eventCentrality);
4181 if (eventCentrality<=20)
4183 fh020DeltaPtNColl->Fill(tempPt);
4185 else if (eventCentrality>=80)
4187 fh80100DeltaPtNColl->Fill(tempPt);
4193 void AliAnalysisTaskFullpAJets::AlipAJetHistos::FillBackgroundFluctuations(Double_t eventCentrality, Double_t rho, Double_t jetRadius)
4195 Double_t tempPt=0.0;
4197 tempPt=rho*TMath::Power(jetRadius,2);
4198 fhBckgFlucPt->Fill(tempPt);
4199 fhBckgFlucPtCen->Fill(tempPt,eventCentrality);
4200 if (eventCentrality<=20)
4202 fh020BckgFlucPt->Fill(tempPt);
4204 else if (eventCentrality>=80)
4206 fh80100BckgFlucPt->Fill(tempPt);
4210 void AliAnalysisTaskFullpAJets::AlipAJetHistos::FillLeadingJetPtRho(Double_t jetPt, Double_t rho)
4212 fpLJetRho->Fill(jetPt,rho);
4215 Double_t AliAnalysisTaskFullpAJets::AlipAJetHistos::GetRho()