]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskFullpAJets.cxx
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / UserTasks / AliAnalysisTaskFullpAJets.cxx
index eca1276f4540b6b38643abaa53ff9badff4ddd6e..2cbb68b92a40d5b85adb184f8748b44cbfe9aff7 100644 (file)
@@ -948,6 +948,7 @@ void AliAnalysisTaskFullpAJets::UserExec(Option_t *)
             // Vertex R cut not done in AliAnalysisTaskEmcal
             if (TMath::Sqrt(TMath::Power(esd->GetPrimaryVertex()->GetX(),2)+TMath::Power(esd->GetPrimaryVertex()->GetY(),2))>fVertexMaxR)
             {
+                DeleteJetData(0);
                 return;
             }
         }
@@ -965,6 +966,7 @@ void AliAnalysisTaskFullpAJets::UserExec(Option_t *)
             // Vertex R cut not done in AliAnalysisTaskEmcal
             if (TMath::Sqrt(TMath::Power(aod->GetPrimaryVertex()->GetX(),2)+TMath::Power(aod->GetPrimaryVertex()->GetY(),2))>fVertexMaxR)
             {
+                DeleteJetData(0);
                 return;
             }
         }
@@ -976,9 +978,10 @@ void AliAnalysisTaskFullpAJets::UserExec(Option_t *)
     else
     {
         AliError("Cannot get AOD/ESD event. Rejecting Event");
+        DeleteJetData(0);
         return;
     }
-
+    
     // Make sure Centrality isn't exactly 100% (to avoid bin filling errors in profile plots. Make it 99.99
     if (fEventCentrality>99.99)
     {
@@ -1000,6 +1003,8 @@ void AliAnalysisTaskFullpAJets::UserExec(Option_t *)
             fhEMCalTrackEventMult->Fill(fEventCentrality,0.0);
         }
         AliWarning("No PicoTracks, Rejecting Event");
+        DeleteJetData(1);
+        PostData(1,fOutput);
         return;
     }
     
@@ -1023,8 +1028,10 @@ void AliAnalysisTaskFullpAJets::UserExec(Option_t *)
         // Rho's
         if (fCalculateRhoJet>=1)
         {
-            ChargedJetEnergyDensityProfile();
-            
+            if (fDoJetRhoDensity == kTRUE)
+            {
+                ChargedJetEnergyDensityProfile();
+            }
             if (fMCPartLevel==kTRUE)
             {
                 EstimateChargedRhoCMS();
@@ -1043,14 +1050,12 @@ void AliAnalysisTaskFullpAJets::UserExec(Option_t *)
             EstimateChargedRhokT();
         }
         
-        DeleteJetData(kFALSE);
-        
+        DeleteJetData(2);
         fnEventsCharged++;
-
-        PostData(1, fOutput);
+        PostData(1,fOutput);
         return;
     }
-    
+
     if (fTrackQA==kTRUE)
     {
         TrackHisto();
@@ -1062,8 +1067,9 @@ void AliAnalysisTaskFullpAJets::UserExec(Option_t *)
     
     // Prep the jets
     InitChargedJets();
-    InitFullJets();
     GenerateTPCRandomConesPt();
+
+    InitFullJets();
     GenerateEMCalRandomConesPt();
     
     if (fCalculateRhoJet>=0)
@@ -1108,11 +1114,9 @@ void AliAnalysisTaskFullpAJets::UserExec(Option_t *)
     }
 
     // Delete Dynamic Arrays
-    DeleteJetData(kTRUE);
-    delete fRecoUtil;
+    DeleteJetData(3);
     fnEvents++;
-    
-    PostData(1, fOutput);
+    PostData(1,fOutput);
 }
 
 //________________________________________________________________________
@@ -1321,7 +1325,7 @@ void AliAnalysisTaskFullpAJets::InitChargedJets()
     fTPCFullJet = new AlipAJetData("fTPCFullJet",kFALSE,fnAKTChargedJets);
     fTPCOnlyJet = new AlipAJetData("fTPCOnlyJet",kFALSE,fnAKTChargedJets);
     fTPCJetUnbiased = new AlipAJetData("fTPCJetUnbiased",kFALSE,fnAKTChargedJets);
-    
+
     fTPCJet->SetSignalCut(fTPCJetThreshold);
     fTPCJet->SetAreaCutFraction(fJetAreaCutFrac);
     fTPCJet->SetJetR(fJetR);
@@ -1349,6 +1353,7 @@ void AliAnalysisTaskFullpAJets::InitChargedJets()
         fTPCOnlyJet->SetIsJetInArray(IsInTPCFull(fJetR,myJet->Phi(),myJet->Eta()),i);
         fTPCJetUnbiased->SetIsJetInArray(IsInTPC(fJetR,myJet->Phi(),myJet->Eta(),kFALSE),i);
     }
+    
     fTPCJet->InitializeJetData(fmyAKTChargedJets,fnAKTChargedJets);
     fTPCFullJet->InitializeJetData(fmyAKTChargedJets,fnAKTChargedJets);
     fTPCOnlyJet->InitializeJetData(fmyAKTChargedJets,fnAKTChargedJets);
@@ -2034,7 +2039,6 @@ void AliAnalysisTaskFullpAJets::EstimateChargedRhoScale()
     fRhoChargedScale->FillBackgroundFluctuations(fEventCentrality,TPC_rho,fJetR);
     fRhoChargedScale->FillLeadingJetPtRho(fEMCalFullJet->GetLeadingPt(),TPC_rho);
     fRhoChargedScale->FillMiscJetStats(fmyAKTFullJets,fEMCalFullJet->GetJets(),fEMCalFullJet->GetTotalJets(),fOrgTracks,fOrgClusters,fVertex);
-
 }
 
 void AliAnalysisTaskFullpAJets::EstimateChargedRhokT()
@@ -2329,6 +2333,7 @@ void AliAnalysisTaskFullpAJets::EstimateChargedRhoCMSScale()
     fRhoChargedCMSScale->FillLeadingJetPtRho(fEMCalFullJet->GetLeadingPt(),kTRho);
     fRhoChargedCMSScale->DoNEFAnalysis(fNEFSignalJetCut,fEMCalJetThreshold,fmyAKTFullJets,fEMCalFullJet->GetJets(),fEMCalFullJet->GetTotalJets(),fmyClusters,fOrgClusters,fEvent,fEMCALGeometry,fRecoUtil,fCells);
     fRhoChargedCMSScale->FillMiscJetStats(fmyAKTFullJets,fEMCalFullJet->GetJets(),fEMCalFullJet->GetTotalJets(),fOrgTracks,fOrgClusters,fVertex);
+    fRhoChargedCMSScale->FillJetEventCentrality(fEMCalFullJet->GetLeadingPt(),fEvent);
     
     delete [] RhoArray;
     delete [] pTArray;
@@ -2984,20 +2989,72 @@ void AliAnalysisTaskFullpAJets::ChargedJetEnergyDensityProfile()
     delete jet_vec;
 }
 
-void AliAnalysisTaskFullpAJets::DeleteJetData(Bool_t EMCalOn)
+void AliAnalysisTaskFullpAJets::DeleteJetData(Int_t delOption)
 {
-    delete fmyTracks;
-    delete fTPCJet;
-    delete fTPCFullJet;
-    delete fTPCOnlyJet;
-    delete fTPCkTFullJet;
-    if (EMCalOn==kTRUE)
+    if (delOption ==0)
     {
+        delete fRecoUtil;
+        
+        fRecoUtil = NULL;
+    }
+    else if (delOption==1)
+    {
+        delete fRecoUtil;
+        delete fmyTracks;
         delete fmyClusters;
+        
+        fRecoUtil = NULL;
+        fmyTracks = NULL;
+        fmyClusters = NULL;
+    }
+    else if (delOption==2)
+    {
+        delete fRecoUtil;
+        delete fmyTracks;
+        delete fmyClusters;
+        delete fTPCJet;
+        delete fTPCFullJet;
+        delete fTPCOnlyJet;
+        delete fTPCJetUnbiased;
+        delete fTPCkTFullJet;
+        
+        fRecoUtil = NULL;
+        fmyTracks = NULL;
+        fmyClusters = NULL;
+        fTPCJet = NULL;
+        fTPCFullJet = NULL;
+        fTPCOnlyJet = NULL;
+        fTPCJetUnbiased = NULL;
+        fTPCkTFullJet = NULL;
+    }
+    if (delOption==3)
+    {
+        delete fRecoUtil;
+        delete fmyTracks;
+        delete fmyClusters;
+        delete fTPCJet;
+        delete fTPCFullJet;
+        delete fTPCOnlyJet;
+        delete fTPCJetUnbiased;
+        delete fTPCkTFullJet;
         delete fEMCalJet;
         delete fEMCalFullJet;
         delete fEMCalPartJet;
+        delete fEMCalPartJetUnbiased;
         delete fEMCalkTFullJet;
+        
+        fRecoUtil = NULL;
+        fmyTracks = NULL;
+        fmyClusters = NULL;
+        fTPCJet = NULL;
+        fTPCFullJet = NULL;
+        fTPCOnlyJet = NULL;
+        fTPCJetUnbiased = NULL;
+        fEMCalJet = NULL;
+        fEMCalFullJet = NULL;
+        fEMCalPartJet = NULL;
+        fEMCalPartJetUnbiased = NULL;
+        fEMCalkTFullJet = NULL;
     }
 }
 
@@ -3429,26 +3486,24 @@ AliAnalysisTaskFullpAJets::AlipAJetData::AlipAJetData(const char *name, Bool_t i
 // Destructor
 AliAnalysisTaskFullpAJets::AlipAJetData::~AlipAJetData()
 {
-    if (fnTotal!=0)
-    {
-        SetName("");
-        SetIsJetsFull(kFALSE);
-        SetTotalEntries(0);
-        SetTotalJets(0);
-        SetTotalSignalJets(0);
-        SetLeading(0,0);
-        SetSubLeading(0,0);
-        SetSignalCut(0);
-        SetAreaCutFraction(0);
-        SetJetR(0);
-        SetNEF(0);
-        SetSignalTrackPtBias(kFALSE);
-        
-        delete [] fJetsIndex;
-        delete [] fJetsSCIndex;
-        delete [] fIsJetInArray;
-        delete [] fJetMaxChargedPt;
-    }
+    SetName("");
+    SetIsJetsFull(kFALSE);
+    SetTotalJets(0);
+    SetTotalSignalJets(0);
+    SetLeading(0,0);
+    SetSubLeading(0,0);
+    SetSignalCut(0);
+    SetAreaCutFraction(0);
+    SetJetR(0);
+    SetNEF(0);
+    SetSignalTrackPtBias(kFALSE);
+    
+    delete [] fJetsIndex;
+    delete [] fJetsSCIndex;
+    delete [] fIsJetInArray;
+    delete [] fJetMaxChargedPt;
+    
+    fnTotal = 0;
 }
 
 // User Defined Sub-Routines
@@ -3702,6 +3757,9 @@ AliAnalysisTaskFullpAJets::AlipAJetHistos::AlipAJetHistos() :
     fhJetPtZLeadingTrack(0),
     fhJetPtZLeadingCluster(0),
 
+    fhEventCentralityVsZNA(0),
+    fhEventCentralityVsZNAPt(0),
+
     fNEFOutput(0),
     fhJetPtNEF(0),
     fhJetNEFInfo(0),
@@ -3804,6 +3862,9 @@ AliAnalysisTaskFullpAJets::AlipAJetHistos::AlipAJetHistos(const char *name) :
     fhJetPtZLeadingTrack(0),
     fhJetPtZLeadingCluster(0),
 
+    fhEventCentralityVsZNA(0),
+    fhEventCentralityVsZNAPt(0),
+
     fNEFOutput(0),
     fhJetPtNEF(0),
     fhJetNEFInfo(0),
@@ -3918,6 +3979,9 @@ AliAnalysisTaskFullpAJets::AlipAJetHistos::AlipAJetHistos(const char *name, TStr
     fhJetPtZLeadingTrack(0),
     fhJetPtZLeadingCluster(0),
 
+    fhEventCentralityVsZNA(0),
+    fhEventCentralityVsZNAPt(0),
+
     fNEFOutput(0),
     fhJetPtNEF(0),
     fhJetNEFInfo(0),
@@ -4032,6 +4096,9 @@ AliAnalysisTaskFullpAJets::AlipAJetHistos::AlipAJetHistos(const char *name, TStr
     fhJetPtZLeadingTrack(0),
     fhJetPtZLeadingCluster(0),
 
+    fhEventCentralityVsZNA(0),
+    fhEventCentralityVsZNAPt(0),
+
     fNEFOutput(0),
     fhJetPtNEF(0),
     fhJetNEFInfo(0),
@@ -4126,7 +4193,9 @@ void AliAnalysisTaskFullpAJets::AlipAJetHistos::Init()
     TString DeltaPtString="";
     TString BckgFlucPtString="";
     TString CentralityString;
+    TString EventCentralityString;
     CentralityString = Form("Centrality (%s) ",fCentralityTag.Data());
+    EventCentralityString = Form("%s vs ZNA Centrality ",fCentralityTag.Data());
     
     // Rho Spectral Plots
     RhoString = Form("%d-%d Centrality, Rho Spectrum",0,20);
@@ -4413,6 +4482,20 @@ void AliAnalysisTaskFullpAJets::AlipAJetHistos::Init()
     fhJetPtZLeadingCluster->GetYaxis()->SetTitle("z_{Leading,cluster}");
     fhJetPtZLeadingCluster->GetZaxis()->SetTitle("1/N_{Events} dN_{jet}/dp_{T,jet}dz_{cluster}");
     fhJetPtZLeadingCluster->Sumw2();
+    
+    // Event Centralities vs Leading Jet Pt
+    fhEventCentralityVsZNA = new TH2F("fhEventCentralityVsZNA",EventCentralityString,fCentralityBins,fCentralityLow,fCentralityUp,fCentralityBins,fCentralityLow,fCentralityUp);
+    fhEventCentralityVsZNA->GetXaxis()->SetTitle(Form("%s",CentralityString.Data()));
+    fhEventCentralityVsZNA->GetYaxis()->SetTitle("Centrality (ZNA)");
+    fhEventCentralityVsZNA->GetZaxis()->SetTitle("Probability Density");
+    fhEventCentralityVsZNA->Sumw2();
+
+    EventCentralityString = Form("%s vs ZNA Centrality vs Leading Jet p_{T} ",fCentralityTag.Data());
+    fhEventCentralityVsZNAPt = new TH3F("fhEventCentralityVsZNAPt",EventCentralityString,fCentralityBins,fCentralityLow,fCentralityUp,fCentralityBins,fCentralityLow,fCentralityUp,fPtBins,fPtLow,fPtUp);
+    fhEventCentralityVsZNAPt->GetXaxis()->SetTitle(Form("%s",CentralityString.Data()));
+    fhEventCentralityVsZNAPt->GetYaxis()->SetTitle("Centrality (ZNA)");
+    fhEventCentralityVsZNAPt->GetZaxis()->SetTitle("Leading Jet p_{T} (GeV/c)");
+    fhEventCentralityVsZNAPt->Sumw2();
 
     // Neutral Energy Fraction Histograms & QA
     if (fDoNEFQAPlots==kTRUE)
@@ -4589,6 +4672,8 @@ void AliAnalysisTaskFullpAJets::AlipAJetHistos::Init()
     fOutput->Add(fhJetPtZLeadingConstituent);
     fOutput->Add(fhJetPtZLeadingTrack);
     fOutput->Add(fhJetPtZLeadingCluster);
+    fOutput->Add(fhEventCentralityVsZNA);
+    fOutput->Add(fhEventCentralityVsZNAPt);
 }
 
 void AliAnalysisTaskFullpAJets::AlipAJetHistos::SetName(const char *name)
@@ -5106,6 +5191,15 @@ void AliAnalysisTaskFullpAJets::AlipAJetHistos::FillMiscJetStats(TClonesArray *j
     delete cluster_vec;
 }
 
+void AliAnalysisTaskFullpAJets::AlipAJetHistos::FillJetEventCentrality(Double_t leadingJetPt, AliVEvent *event)
+{
+    Double_t event_centrality = event->GetCentrality()->GetCentralityPercentile(fCentralityTag);
+    Double_t event_centrality_ZNA = event->GetCentrality()->GetCentralityPercentile("ZNA");
+    
+    fhEventCentralityVsZNA->Fill(event_centrality,event_centrality_ZNA);
+    fhEventCentralityVsZNAPt->Fill(event_centrality,event_centrality_ZNA,leadingJetPt);
+}
+
 TList* AliAnalysisTaskFullpAJets::AlipAJetHistos::GetOutputHistos()
 {
     return fOutput;