]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGJE/EMCALJetTasks/AliAnalysisTaskRhoBase.cxx
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / AliAnalysisTaskRhoBase.cxx
index 2855b7e8521e2478e075d8f926c25403732b2fae..3e087550ef6d3aade23a2a012d05822d84c23d24 100644 (file)
@@ -21,18 +21,21 @@ ClassImp(AliAnalysisTaskRhoBase)
 //________________________________________________________________________
 AliAnalysisTaskRhoBase::AliAnalysisTaskRhoBase() : 
   AliAnalysisTaskEmcalJet("AliAnalysisTaskRhoBase", kFALSE),
-  fRhoScaledName(),
+  fOutRhoName(),
+  fOutRhoScaledName(),
   fCompareRhoName(),
   fCompareRhoScaledName(),
   fRhoFunction(0),
   fScaleFunction(0),
   fInEventSigmaRho(35.83),
   fAttachToEvent(kTRUE),
-  fRhoScaled(0),
+  fOutRho(0),
+  fOutRhoScaled(0),
   fCompareRho(0),
   fCompareRhoScaled(0),
   fHistJetPtvsCent(0),
   fHistJetAreavsCent(0),
+  fHistJetRhovsCent(0),
   fHistNjetvsCent(0),
   fHistJetPtvsNtrack(0),
   fHistJetAreavsNtrack(0),
@@ -52,6 +55,7 @@ AliAnalysisTaskRhoBase::AliAnalysisTaskRhoBase() :
 
   for (Int_t i = 0; i < 4; i++) {
     fHistJetNconstVsPt[i] = 0;
+    fHistJetRhovsEta[i] = 0;
   }
   for (Int_t i = 0; i < 12; i++) {
     fHistNjUEoverNjVsNj[i] = 0;
@@ -61,18 +65,21 @@ AliAnalysisTaskRhoBase::AliAnalysisTaskRhoBase() :
 //________________________________________________________________________
 AliAnalysisTaskRhoBase::AliAnalysisTaskRhoBase(const char *name, Bool_t histo) :
   AliAnalysisTaskEmcalJet(name, histo),
-  fRhoScaledName(),
+  fOutRhoName(),
+  fOutRhoScaledName(),
   fCompareRhoName(),
   fCompareRhoScaledName(),
   fRhoFunction(0),
   fScaleFunction(0),
   fInEventSigmaRho(35.83),
   fAttachToEvent(kTRUE),
-  fRhoScaled(0),
+  fOutRho(0),
+  fOutRhoScaled(0),
   fCompareRho(0),
   fCompareRhoScaled(0),
   fHistJetPtvsCent(0),
   fHistJetAreavsCent(0),
+  fHistJetRhovsCent(0),
   fHistNjetvsCent(0),
   fHistJetPtvsNtrack(0),
   fHistJetAreavsNtrack(0),
@@ -92,11 +99,11 @@ AliAnalysisTaskRhoBase::AliAnalysisTaskRhoBase(const char *name, Bool_t histo) :
 
   for (Int_t i = 0; i < 4; i++) {
     fHistJetNconstVsPt[i] = 0;
+    fHistJetRhovsEta[i] = 0;
   }
   for (Int_t i = 0; i < 12; i++) {
     fHistNjUEoverNjVsNj[i] = 0;
   }
-
   SetMakeGeneralHistograms(histo);
 }
 
@@ -110,35 +117,61 @@ void AliAnalysisTaskRhoBase::UserCreateOutputObjects()
 
   AliAnalysisTaskEmcalJet::UserCreateOutputObjects();
 
-  fHistRhovsCent = new TH2F("RhovsCent", "RhovsCent", 101, -1,  100, fNbins, fMinBinPt, fMaxBinPt*2);
+  fHistRhovsCent = new TH2F("fHistRhovsCent", "fHistRhovsCent", 101, -1,  100, fNbins, fMinBinPt, fMaxBinPt*2);
+  fHistRhovsCent->GetXaxis()->SetTitle("Centrality (%)");
+  fHistRhovsCent->GetYaxis()->SetTitle("#rho (GeV/c * rad^{-1})");
   fOutput->Add(fHistRhovsCent);
 
-  if (!fTracksName.IsNull()) {
-    fHistRhovsNtrack = new TH2F("RhovsNtrack", "RhovsNtrack", 125, 0, 4000, fNbins, fMinBinPt, fMaxBinPt*2);
+  if (fParticleCollArray.GetEntriesFast()>0) {
+    fHistRhovsNtrack = new TH2F("fHistRhovsNtrack", "fHistRhovsNtrack", 150, 0, 6000, fNbins, fMinBinPt, fMaxBinPt*2);
+    fHistRhovsNtrack->GetXaxis()->SetTitle("No. of tracks");
+    fHistRhovsNtrack->GetYaxis()->SetTitle("#rho (GeV/c * rad^{-1})");
     fOutput->Add(fHistRhovsNtrack);
   }
 
-  if (!fCaloName.IsNull()) {
-    fHistRhovsNcluster = new TH2F("RhovsNcluster", "RhovsNcluster", 50, 0, 1500, fNbins, fMinBinPt, fMaxBinPt*2);
+  if (fClusterCollArray.GetEntriesFast()>0) {
+    fHistRhovsNcluster = new TH2F("fHistRhovsNcluster", "fHistRhovsNcluster", 50, 0, 1500, fNbins, fMinBinPt, fMaxBinPt*2);
+    fHistRhovsNcluster->GetXaxis()->SetTitle("No. of tracks");
+    fHistRhovsNcluster->GetYaxis()->SetTitle("#rho (GeV/c * rad^{-1})");
     fOutput->Add(fHistRhovsNcluster);
   }
 
-  if (!fJetsName.IsNull()) {
-    fHistJetPtvsCent            = new TH2F("JetPtvsCent",           "JetPtvsCent",           101, -1,  100,   fNbins, fMinBinPt, fMaxBinPt);
-    fHistJetAreavsCent          = new TH2F("JetAreavsCent",         "JetAreavsCent",         101, -1,  100,   30, 0, fJetRadius * fJetRadius * TMath::Pi() * 3);
-    fHistNjetvsCent             = new TH2F("NjetvsCent",            "NjetvsCent",            101, -1,  100,   150, -0.5, 149.5);
-
+  if (fJetCollArray.GetEntriesFast()>0) {
+    fHistJetPtvsCent = new TH2F("fHistJetPtvsCent", "fHistJetPtvsCent", 101, -1,  100, fNbins, fMinBinPt, fMaxBinPt);
+    fHistJetPtvsCent->GetXaxis()->SetTitle("Centrality (%)");
+    fHistJetPtvsCent->GetYaxis()->SetTitle("#it{p}_{T,jet} (GeV/c)");
     fOutput->Add(fHistJetPtvsCent);
+
+    fHistJetAreavsCent = new TH2F("fHistJetAreavsCent", "fHistJetAreavsCent", 101, -1, 100, 100, 0, 1);
+    fHistJetAreavsCent->GetXaxis()->SetTitle("Centrality (%)");
+    fHistJetAreavsCent->GetYaxis()->SetTitle("Jet area");
     fOutput->Add(fHistJetAreavsCent);
+
+    fHistJetRhovsCent = new TH2F("fHistJetRhovsCent", "fHistJetRhovsCent", 101, -1, 100, fNbins, fMinBinPt, fMaxBinPt*2);
+    fHistJetRhovsCent->GetXaxis()->SetTitle("Centrality (%)");
+    fHistJetRhovsCent->GetYaxis()->SetTitle("Jet #rho (GeV/c)");
+    fOutput->Add(fHistJetRhovsCent);
+
+    fHistNjetvsCent = new TH2F("fHistNjetvsCent",  "fHistNjetvsCent", 101, -1, 100, 150, -0.5, 149.5);
+    fHistNjetvsCent->GetXaxis()->SetTitle("Centrality (%)");
+    fHistNjetvsCent->GetYaxis()->SetTitle("No. of jets");
     fOutput->Add(fHistNjetvsCent);
 
-    if (!fTracksName.IsNull()) {
-      fHistJetPtvsNtrack        = new TH2F("JetPtvsNtrack",         "JetPtvsNtrack",         125,  0,  4000,  fNbins, fMinBinPt, fMaxBinPt);
-      fHistJetAreavsNtrack      = new TH2F("JetAreavsNtrack",       "JetAreavsNtrack",       125,  0,  4000,  30, 0, fJetRadius * fJetRadius * TMath::Pi() * 3);
-      fHistNjetvsNtrack         = new TH2F("NjetvsNtrack",          "rNjetvsNtrack",         125,  0,  4000,  150, -0.5, 149.5);
 
+    if (fParticleCollArray.GetEntriesFast()>0) {
+      fHistJetPtvsNtrack = new TH2F("fHistJetPtvsNtrack", "fHistJetPtvsNtrack", 150, 0, 6000, fNbins, fMinBinPt, fMaxBinPt);
+      fHistJetPtvsNtrack->GetXaxis()->SetTitle("No. of tracks");
+      fHistJetPtvsNtrack->GetYaxis()->SetTitle("#it{p}_{T,jet} (GeV/c)");
       fOutput->Add(fHistJetPtvsNtrack);
+
+      fHistJetAreavsNtrack = new TH2F("fHistJetAreavsNtrack", "fHistJetAreavsNtrack", 150, 0, 6000, 100, 0, 1);
+      fHistJetAreavsNtrack->GetXaxis()->SetTitle("No. of tracks");
+      fHistJetAreavsNtrack->GetYaxis()->SetTitle("Jet area");
       fOutput->Add(fHistJetAreavsNtrack);
+
+      fHistNjetvsNtrack = new TH2F("fHistNjetvsNtrack", "fHistNjetvsNtrack", 150, 0, 6000, 150, -0.5, 149.5);
+      fHistNjetvsNtrack->GetXaxis()->SetTitle("No. of jets");
+      fHistNjetvsNtrack->GetYaxis()->SetTitle("No. of tracks");
       fOutput->Add(fHistNjetvsNtrack);
     }
 
@@ -147,10 +180,16 @@ void AliAnalysisTaskRhoBase::UserCreateOutputObjects()
     for (Int_t i = 0; i < 4; i++) {
       name = Form("fHistJetNconstVsPt_%d",i);
       fHistJetNconstVsPt[i] = new TH2F(name, name, 150, -0.5, 149.5, fNbins, fMinBinPt, fMaxBinPt);
-      fHistJetNconstVsPt[i]->GetXaxis()->SetTitle("# of constituents");
+      fHistJetNconstVsPt[i]->GetXaxis()->SetTitle("No. of constituents");
       fHistJetNconstVsPt[i]->GetYaxis()->SetTitle("p_{T,jet} (GeV/c)");
       fOutput->Add(fHistJetNconstVsPt[i]);
 
+      name = Form("fHistJetRhovsEta_%d",i);
+      fHistJetRhovsEta[i] = new TH2F(name, name, fNbins, fMinBinPt, fMaxBinPt*2, 16, -0.8, 0.8);
+      fHistJetRhovsEta[i]->GetXaxis()->SetTitle("#rho (GeV/c * rad^{-1})");
+      fHistJetRhovsEta[i]->GetYaxis()->SetTitle("#eta");
+      fOutput->Add(fHistJetRhovsEta[i]);
+
       for (Int_t j = 0; j < 3; j++) {
        name = Form("NjUEoverNjVsNj_%d_%d",i,j+1);
        fHistNjUEoverNjVsNj[i*3+j] = new TH2F(name, name, 150, -0.5, 149.5, 120, 0.01, 1.21);
@@ -162,34 +201,49 @@ void AliAnalysisTaskRhoBase::UserCreateOutputObjects()
   }
   
   if (!fCompareRhoName.IsNull()) {
-    fHistDeltaRhovsCent = new TH2F("DeltaRhovsCent", "DetlaRhovsCent", 101, -1, 100, fNbins, -fMaxBinPt, fMaxBinPt);
+    fHistDeltaRhovsCent = new TH2F("fHistDeltaRhovsCent", "fHistDeltaRhovsCent", 101, -1, 100, fNbins, -fMaxBinPt, fMaxBinPt);
+    fHistDeltaRhovsCent->GetXaxis()->SetTitle("Centrality (%)");
+    fHistDeltaRhovsCent->GetYaxis()->SetTitle("#Delta#rho (GeV/c * rad^{-1})");
     fOutput->Add(fHistDeltaRhovsCent);
-    if (!fTracksName.IsNull()) {
-      fHistDeltaRhovsNtrack = new TH2F("DeltaRhovsNtrack", "DeltaRhovsNtrack", 125, 0, 4000, fNbins, -fMaxBinPt, fMaxBinPt);
+
+    if (fParticleCollArray.GetEntriesFast()>0) {
+      fHistDeltaRhovsNtrack = new TH2F("fHistDeltaRhovsNtrack", "fHistDeltaRhovsNtrack", 150, 0, 6000, fNbins, -fMaxBinPt, fMaxBinPt);
+      fHistDeltaRhovsNtrack->GetXaxis()->SetTitle("No. of tracks");
+      fHistDeltaRhovsNtrack->GetYaxis()->SetTitle("#Delta#rho (GeV/c * rad^{-1})");
       fOutput->Add(fHistDeltaRhovsNtrack);
     }
   }
 
   if (fScaleFunction) {
-    fHistRhoScaledvsCent = new TH2F("RhoScaledvsCent", "RhoScalevsCent", 101, -1, 100, fNbins, fMinBinPt , fMaxBinPt*2);
+    fHistRhoScaledvsCent = new TH2F("fHistRhoScaledvsCent", "fHistRhoScaledvsCent", 101, -1, 100, fNbins, fMinBinPt , fMaxBinPt*2);
+    fHistRhoScaledvsCent->GetXaxis()->SetTitle("Centrality (%)");
+    fHistRhoScaledvsCent->GetYaxis()->SetTitle("#rho_{scaled} (GeV/c * rad^{-1})");
     fOutput->Add(fHistRhoScaledvsCent);
 
-    if (!fTracksName.IsNull()) {
-      fHistRhoScaledvsNtrack = new TH2F("RhoScaledvsNtrack", "RhoScaledvsNtrack", 125, 0, 4000, fNbins, fMinBinPt, fMaxBinPt*2);
+    if (fParticleCollArray.GetEntriesFast()>0) {
+      fHistRhoScaledvsNtrack = new TH2F("fHistRhoScaledvsNtrack", "fHistRhoScaledvsNtrack", 150, 0, 6000, fNbins, fMinBinPt, fMaxBinPt*2);
+      fHistRhoScaledvsNtrack->GetXaxis()->SetTitle("No. of tracks");
+      fHistRhoScaledvsNtrack->GetYaxis()->SetTitle("#rho_{scaled} (GeV/c * rad^{-1})");
       fOutput->Add(fHistRhoScaledvsNtrack);
     }
 
-    if (!fCaloName.IsNull()) {
-      fHistRhoScaledvsNcluster = new TH2F("RhoScaledvsNcluster", "RhoScaledvsNcluster", 50, 0, 1500, fNbins, fMinBinPt, fMaxBinPt*2);
+    if (fClusterCollArray.GetEntriesFast()>0) {
+      fHistRhoScaledvsNcluster = new TH2F("fHistRhoScaledvsNcluster", "fHistRhoScaledvsNcluster", 50, 0, 1500, fNbins, fMinBinPt, fMaxBinPt*2);
+      fHistRhoScaledvsNcluster->GetXaxis()->SetTitle("No. of clusters");
+      fHistRhoScaledvsNcluster->GetYaxis()->SetTitle("#rho_{scaled} (GeV/c * rad^{-1})");
       fOutput->Add(fHistRhoScaledvsNcluster);
     }
 
     if (!fCompareRhoScaledName.IsNull()) {
-      fHistDeltaRhoScalevsCent = new TH2F("DeltaRhoScalevsCent", "DeltaRhoScalevsCent", 101, -1, 100, fNbins, -fMaxBinPt, fMaxBinPt);
+      fHistDeltaRhoScalevsCent = new TH2F("fHistDeltaRhoScalevsCent", "fHistDeltaRhoScalevsCent", 101, -1, 100, fNbins, -fMaxBinPt, fMaxBinPt);
+      fHistDeltaRhoScalevsCent->GetXaxis()->SetTitle("Centrality (%)");
+      fHistDeltaRhoScalevsCent->GetYaxis()->SetTitle("#Delta#rho_{scaled} (GeV/c * rad^{-1})");
       fOutput->Add(fHistDeltaRhoScalevsCent);
       
-      if (!fTracksName.IsNull()) {
-       fHistDeltaRhoScalevsNtrack = new TH2F("DeltaRhoScalevsNtrack", "DeltaRhoScalevsNtrack", 125, 0, 4000, fNbins, -fMaxBinPt, fMaxBinPt);
+      if (fParticleCollArray.GetEntriesFast()>0) {
+       fHistDeltaRhoScalevsNtrack = new TH2F("fHistDeltaRhoScalevsNtrack", "fHistDeltaRhoScalevsNtrack", 150, 0, 6000, fNbins, -fMaxBinPt, fMaxBinPt);
+       fHistDeltaRhoScalevsNtrack->GetXaxis()->SetTitle("No. of tracks");
+       fHistDeltaRhoScalevsNtrack->GetYaxis()->SetTitle("#Delta#rho_{scaled} (GeV/c * rad^{-1})");
        fOutput->Add(fHistDeltaRhoScalevsNtrack);
       }
     }
@@ -202,11 +256,11 @@ Bool_t AliAnalysisTaskRhoBase::Run()
   // Run the analysis.
 
   Double_t rho = GetRhoFactor(fCent);
-  fRho->SetVal(rho);
+  fOutRho->SetVal(rho);
 
   if (fScaleFunction) {
     Double_t rhoScaled = rho * GetScaleFactor(fCent);
-    fRhoScaled->SetVal(rhoScaled);
+    fOutRhoScaled->SetVal(rhoScaled);
   }
 
   return kTRUE;
@@ -221,9 +275,9 @@ Bool_t AliAnalysisTaskRhoBase::FillHistograms()
   Int_t Nclusters = 0;
 
   if (fTracks)
-    Ntracks   = fTracks->GetEntriesFast();
+    Ntracks = fTracks->GetEntries();
   if (fCaloClusters)
-    Nclusters = fCaloClusters->GetEntriesFast();
+    Nclusters = fCaloClusters->GetEntries();
 
   if (fJets) {
     Int_t    Njets         = fJets->GetEntries();
@@ -231,9 +285,9 @@ Bool_t AliAnalysisTaskRhoBase::FillHistograms()
     Int_t    NjetUE1Sigma  = 0;
     Int_t    NjetUE2Sigma  = 0;
     Int_t    NjetUE3Sigma  = 0;
-    Double_t rhoPlus1Sigma = fRho->GetVal() + fInEventSigmaRho;
-    Double_t rhoPlus2Sigma = fRho->GetVal() + 2*fInEventSigmaRho;
-    Double_t rhoPlus3Sigma = fRho->GetVal() + 3*fInEventSigmaRho;
+    Double_t rhoPlus1Sigma = fOutRho->GetVal() + fInEventSigmaRho;
+    Double_t rhoPlus2Sigma = fOutRho->GetVal() + 2*fInEventSigmaRho;
+    Double_t rhoPlus3Sigma = fOutRho->GetVal() + 3*fInEventSigmaRho;
 
     for (Int_t i = 0; i < Njets; ++i) {
       
@@ -248,7 +302,9 @@ Bool_t AliAnalysisTaskRhoBase::FillHistograms()
       
       fHistJetPtvsCent->Fill(fCent, jet->Pt());
       fHistJetAreavsCent->Fill(fCent, jet->Area());
-      
+      fHistJetRhovsCent->Fill(fCent, jet->Pt() / jet->Area());
+      fHistJetRhovsEta[fCentBin]->Fill(jet->Pt() / jet->Area(), jet->Eta());
+
       if (fTracks) {
        fHistJetPtvsNtrack->Fill(Ntracks, jet->Pt());
        fHistJetAreavsNtrack->Fill(Ntracks, jet->Area());
@@ -279,28 +335,28 @@ Bool_t AliAnalysisTaskRhoBase::FillHistograms()
       fHistNjetvsNtrack->Fill(Ntracks, NjetAcc);
   }
   
-  fHistRhovsCent->Fill(fCent, fRho->GetVal());
+  fHistRhovsCent->Fill(fCent, fOutRho->GetVal());
 
   if (fTracks)
-    fHistRhovsNtrack->Fill(Ntracks, fRho->GetVal());
+    fHistRhovsNtrack->Fill(Ntracks, fOutRho->GetVal());
   if (fCaloClusters)
-    fHistRhovsNcluster->Fill(Nclusters, fRho->GetVal());
+    fHistRhovsNcluster->Fill(Nclusters, fOutRho->GetVal());
   if (fCompareRho) {
-    fHistDeltaRhovsCent->Fill(fCent, fRho->GetVal() - fCompareRho->GetVal());
+    fHistDeltaRhovsCent->Fill(fCent, fOutRho->GetVal() - fCompareRho->GetVal());
     if (fTracks)
-      fHistDeltaRhovsNtrack->Fill(Ntracks, fRho->GetVal() - fCompareRho->GetVal());
+      fHistDeltaRhovsNtrack->Fill(Ntracks, fOutRho->GetVal() - fCompareRho->GetVal());
   }
 
-  if (fRhoScaled) {
-    fHistRhoScaledvsCent->Fill(fCent, fRhoScaled->GetVal());
+  if (fOutRhoScaled) {
+    fHistRhoScaledvsCent->Fill(fCent, fOutRhoScaled->GetVal());
     if (fTracks)
-      fHistRhoScaledvsNtrack->Fill(Ntracks, fRhoScaled->GetVal());
+      fHistRhoScaledvsNtrack->Fill(Ntracks, fOutRhoScaled->GetVal());
     if (fCaloClusters)
-      fHistRhoScaledvsNcluster->Fill(Nclusters,  fRhoScaled->GetVal());
+      fHistRhoScaledvsNcluster->Fill(Nclusters,  fOutRhoScaled->GetVal());
     if (fCompareRhoScaled) {
-      fHistDeltaRhoScalevsCent->Fill(fCent, fRhoScaled->GetVal() - fCompareRhoScaled->GetVal());
+      fHistDeltaRhoScalevsCent->Fill(fCent, fOutRhoScaled->GetVal() - fCompareRhoScaled->GetVal());
       if (fTracks)
-       fHistDeltaRhoScalevsNtrack->Fill(Ntracks, fRhoScaled->GetVal() - fCompareRhoScaled->GetVal());
+       fHistDeltaRhoScalevsNtrack->Fill(Ntracks, fOutRhoScaled->GetVal() - fCompareRhoScaled->GetVal());
     }
   }
 
@@ -313,27 +369,28 @@ void AliAnalysisTaskRhoBase::ExecOnce()
 {
   // Init the analysis.
 
-  if (!fRho) {
-    fRho = new AliRhoParameter(fRhoName, 0);
+  if (!fOutRho) {
+    fOutRho = new AliRhoParameter(fOutRhoName, 0);
 
     if (fAttachToEvent) {
-      if (!(InputEvent()->FindListObject(fRhoName))) {
-       InputEvent()->AddObject(fRho);
+      if (!(InputEvent()->FindListObject(fOutRhoName))) {
+       InputEvent()->AddObject(fOutRho);
       } else {
-       AliFatal(Form("%s: Container with same name %s already present. Aborting", GetName(), fRhoName.Data()));
+       AliFatal(Form("%s: Container with same name %s already present. Aborting", GetName(), fOutRhoName.Data()));
        return;
       }
     }
-    
-    if (fScaleFunction && !fRhoScaled) {
-      fRhoScaled = new AliRhoParameter(fRhoScaledName, 0);
-      if (fAttachToEvent) {
-       if (!(InputEvent()->FindListObject(fRhoScaledName))) {
-         InputEvent()->AddObject(fRhoScaled);
-       } else {
-         AliFatal(Form("%s: Container with same name %s already present. Aborting", GetName(), fRhoScaledName.Data()));
-         return;
-       }
+  }
+
+  if (fScaleFunction && !fOutRhoScaled) {
+    fOutRhoScaled = new AliRhoParameter(fOutRhoScaledName, 0);
+
+    if (fAttachToEvent) {
+      if (!(InputEvent()->FindListObject(fOutRhoScaledName))) {
+       InputEvent()->AddObject(fOutRhoScaled);
+      } else {
+       AliFatal(Form("%s: Container with same name %s already present. Aborting", GetName(), fOutRhoScaledName.Data()));
+       return;
       }
     }
   }