]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
store matchingh histos vs DR
authormverweij <marta.verweij@cern.ch>
Fri, 19 Sep 2014 09:31:43 +0000 (11:31 +0200)
committermverweij <marta.verweij@cern.ch>
Fri, 19 Sep 2014 09:36:15 +0000 (11:36 +0200)
PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskJetShapeConst.cxx
PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskJetShapeConst.h
PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskJetShapeDeriv.cxx
PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskJetShapeDeriv.h

index 313ec1b845e32bf329107ee3b349aede34cc0dd7..ee99c350bce594cb55f4ffc25bb887714c14254a 100644 (file)
@@ -58,33 +58,33 @@ AliAnalysisTaskJetShapeConst::AliAnalysisTaskJetShapeConst() :
   fMatch(0),
   fh2MSubMatch(0x0),
   fh2MSubPtRawAll(0x0),
-  fh2MSubPtRawMatch(0x0),
-  fh2MSubPtTrue(0x0),
-  fh2MTruePtTrue(0x0),
-  fh2PtTrueDeltaM(0x0),
-  fh2PtTrueDeltaMRel(0x0),
+  fh3MSubPtRawDRMatch(0x0),
+  fh3MSubPtTrueDR(0x0),
+  fh3MTruePtTrueDR(0x0),
+  fh3PtTrueDeltaMDR(0x0),
+  fh3PtTrueDeltaMRelDR(0x0),
   fhnMassResponse(0x0)
 {
   // Default constructor.
 
-  fh2MSubMatch        = new TH2F*[fNcentBins];
-  fh2MSubPtRawAll     = new TH2F*[fNcentBins];
-  fh2MSubPtRawMatch   = new TH2F*[fNcentBins];
-  fh2MSubPtTrue       = new TH2F*[fNcentBins];
-  fh2MTruePtTrue      = new TH2F*[fNcentBins];
-  fh2PtTrueDeltaM     = new TH2F*[fNcentBins];
-  fh2PtTrueDeltaMRel  = new TH2F*[fNcentBins];
-  fhnMassResponse     = new THnSparse*[fNcentBins];
+  fh2MSubMatch         = new TH2F*[fNcentBins];
+  fh2MSubPtRawAll      = new TH2F*[fNcentBins];
+  fh3MSubPtRawDRMatch  = new TH3F*[fNcentBins];
+  fh3MSubPtTrueDR      = new TH3F*[fNcentBins];
+  fh3MTruePtTrueDR     = new TH3F*[fNcentBins];
+  fh3PtTrueDeltaMDR    = new TH3F*[fNcentBins];
+  fh3PtTrueDeltaMRelDR = new TH3F*[fNcentBins];
+  fhnMassResponse      = new THnSparse*[fNcentBins];
 
   for (Int_t i = 0; i < fNcentBins; i++) {
-    fh2MSubMatch[i]        = 0;
-    fh2MSubPtRawAll[i]     = 0;
-    fh2MSubPtRawMatch[i]   = 0;
-    fh2MSubPtTrue[i]       = 0;
-    fh2MTruePtTrue[i]      = 0;
-    fh2PtTrueDeltaM[i]     = 0;
-    fh2PtTrueDeltaMRel[i]  = 0;
-    fhnMassResponse[i]     = 0;
+    fh2MSubMatch[i]         = 0;
+    fh2MSubPtRawAll[i]      = 0;
+    fh3MSubPtRawDRMatch[i]  = 0;
+    fh3MSubPtTrueDR[i]      = 0;
+    fh3MTruePtTrueDR[i]     = 0;
+    fh3PtTrueDeltaMDR[i]    = 0;
+    fh3PtTrueDeltaMRelDR[i] = 0;
+    fhnMassResponse[i]      = 0;
   }
 
   SetMakeGeneralHistograms(kTRUE);
@@ -113,33 +113,33 @@ AliAnalysisTaskJetShapeConst::AliAnalysisTaskJetShapeConst(const char *name) :
   fMatch(0),
   fh2MSubMatch(0x0),
   fh2MSubPtRawAll(0x0),
-  fh2MSubPtRawMatch(0x0),
-  fh2MSubPtTrue(0x0),
-  fh2MTruePtTrue(0x0),
-  fh2PtTrueDeltaM(0x0),
-  fh2PtTrueDeltaMRel(0x0),
+  fh3MSubPtRawDRMatch(0x0),
+  fh3MSubPtTrueDR(0x0),
+  fh3MTruePtTrueDR(0x0),
+  fh3PtTrueDeltaMDR(0x0),
+  fh3PtTrueDeltaMRelDR(0x0),
   fhnMassResponse(0x0)
 {
   // Standard constructor.
 
-  fh2MSubMatch        = new TH2F*[fNcentBins];
-  fh2MSubPtRawAll     = new TH2F*[fNcentBins];
-  fh2MSubPtRawMatch   = new TH2F*[fNcentBins];
-  fh2MSubPtTrue       = new TH2F*[fNcentBins];
-  fh2MTruePtTrue      = new TH2F*[fNcentBins];
-  fh2PtTrueDeltaM     = new TH2F*[fNcentBins];
-  fh2PtTrueDeltaMRel  = new TH2F*[fNcentBins];
-  fhnMassResponse     = new THnSparse*[fNcentBins];
+  fh2MSubMatch         = new TH2F*[fNcentBins];
+  fh2MSubPtRawAll      = new TH2F*[fNcentBins];
+  fh3MSubPtRawDRMatch  = new TH3F*[fNcentBins];
+  fh3MSubPtTrueDR      = new TH3F*[fNcentBins];
+  fh3MTruePtTrueDR     = new TH3F*[fNcentBins];
+  fh3PtTrueDeltaMDR    = new TH3F*[fNcentBins];
+  fh3PtTrueDeltaMRelDR = new TH3F*[fNcentBins];
+  fhnMassResponse      = new THnSparse*[fNcentBins];
 
   for (Int_t i = 0; i < fNcentBins; i++) {
-    fh2MSubMatch[i]        = 0;
-    fh2MSubPtRawAll[i]     = 0;
-    fh2MSubPtRawMatch[i]   = 0;
-    fh2MSubPtTrue[i]       = 0;
-    fh2MTruePtTrue[i]      = 0;
-    fh2PtTrueDeltaM[i]     = 0;
-    fh2PtTrueDeltaMRel[i]  = 0;
-    fhnMassResponse[i]     = 0;
+    fh2MSubMatch[i]         = 0;
+    fh2MSubPtRawAll[i]      = 0;
+    fh3MSubPtRawDRMatch[i]  = 0;
+    fh3MSubPtTrueDR[i]      = 0;
+    fh3MTruePtTrueDR[i]     = 0;
+    fh3PtTrueDeltaMDR[i]    = 0;
+    fh3PtTrueDeltaMRelDR[i] = 0;
+    fhnMassResponse[i]      = 0;
   }
 
   SetMakeGeneralHistograms(kTRUE);
@@ -197,30 +197,30 @@ void AliAnalysisTaskJetShapeConst::UserCreateOutputObjects()
     fh2MSubPtRawAll[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsM,minM,maxM,nBinsPt,minPt,maxPt);
     fOutput->Add(fh2MSubPtRawAll[i]);
 
-    histName = Form("fh2MSubPtRawMatch_%d",i);
-    histTitle = Form("fh2MSubPtRawMatch_%d;#it{M}_{sub};#it{p}_{T}",i);
-    fh2MSubPtRawMatch[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsM,minM,maxM,nBinsPt,minPt,maxPt);
-    fOutput->Add(fh2MSubPtRawMatch[i]);
+    histName = Form("fh3MSubPtRawDRMatch_%d",i);
+    histTitle = Form("fh3MSubPtRawDRMatch_%d;#it{M}_{sub};#it{p}_{T}",i);
+    fh3MSubPtRawDRMatch[i] = new TH3F(histName.Data(),histTitle.Data(),nBinsM,minM,maxM,nBinsPt,minPt,maxPt,nBinsDRToLJ,minDRToLJ,maxDRToLJ);
+    fOutput->Add(fh3MSubPtRawDRMatch[i]);
 
-    histName = Form("fh2MSubPtTrue_%d",i);
-    histTitle = Form("fh2MSubPtTrue_%d;#it{M}_{sub};#it{p}_{T}",i);
-    fh2MSubPtTrue[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsM,minM,maxM,nBinsPt,minPt,maxPt);
-    fOutput->Add(fh2MSubPtTrue[i]);
+    histName = Form("fh3MSubPtTrueDR_%d",i);
+    histTitle = Form("fh3MSubPtTrueDR_%d;#it{M}_{sub};#it{p}_{T}",i);
+    fh3MSubPtTrueDR[i] = new TH3F(histName.Data(),histTitle.Data(),nBinsM,minM,maxM,nBinsPt,minPt,maxPt,nBinsDRToLJ,minDRToLJ,maxDRToLJ);
+    fOutput->Add(fh3MSubPtTrueDR[i]);
 
-    histName = Form("fh2MTruePtTrue_%d",i);
-    histTitle = Form("fh2MTruePtTrue_%d;#it{M}_{sub};#it{p}_{T}",i);
-    fh2MTruePtTrue[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsM,minM,maxM,nBinsPt,minPt,maxPt);
-    fOutput->Add(fh2MTruePtTrue[i]);
+    histName = Form("fh3MTruePtTrueDR_%d",i);
+    histTitle = Form("fh3MTruePtTrueDR_%d;#it{M}_{sub};#it{p}_{T}",i);
+    fh3MTruePtTrueDR[i] = new TH3F(histName.Data(),histTitle.Data(),nBinsM,minM,maxM,nBinsPt,minPt,maxPt,nBinsDRToLJ,minDRToLJ,maxDRToLJ);
+    fOutput->Add(fh3MTruePtTrueDR[i]);
 
-    histName = Form("fh2PtTrueDeltaM_%d",i);
-    histTitle = Form("fh2PtTrueDeltaM_%d;#it{p}_{T,true};#it{M}_{sub}-#it{M}_{true}",i);
-    fh2PtTrueDeltaM[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,100,-50.,50.);
-    fOutput->Add(fh2PtTrueDeltaM[i]);
+    histName = Form("fh3PtTrueDeltaMDR_%d",i);
+    histTitle = Form("fh3PtTrueDeltaMDR_%d;#it{p}_{T,true};#it{M}_{sub}-#it{M}_{true}",i);
+    fh3PtTrueDeltaMDR[i] = new TH3F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,100,-50.,50.,nBinsDRToLJ,minDRToLJ,maxDRToLJ);
+    fOutput->Add(fh3PtTrueDeltaMDR[i]);
 
-    histName = Form("fh2PtTrueDeltaMRel_%d",i);
-    histTitle = Form("fh2PtTrueDeltaMRel_%d;#it{p}_{T,true};(#it{M}_{sub}-#it{M}_{true})/#it{M}_{true}",i);
-    fh2PtTrueDeltaMRel[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,200,-1.,1.);
-    fOutput->Add(fh2PtTrueDeltaMRel[i]);
+    histName = Form("fh3PtTrueDeltaMRelDR_%d",i);
+    histTitle = Form("fh3PtTrueDeltaMRelDR_%d;#it{p}_{T,true};(#it{M}_{sub}-#it{M}_{true})/#it{M}_{true}",i);
+    fh3PtTrueDeltaMRelDR[i] = new TH3F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,200,-1.,1.,nBinsDRToLJ,minDRToLJ,maxDRToLJ);
+    fOutput->Add(fh3PtTrueDeltaMRelDR[i]);
 
     histName = Form("fhnMassResponse_%d",i);
     histTitle = Form("fhnMassResponse_%d;#it{M}_{sub};#it{M}_{true};#it{p}_{T,sub};#it{p}_{T,true};#it{M}_{sub}^{tagged}",i);
@@ -340,16 +340,16 @@ Bool_t AliAnalysisTaskJetShapeConst::FillHistograms()
       //Fill histograms for matched jets
       fh2MSubMatch[fCentBin]->Fill(jetS->M(),fMatch);
       if(fMatch==1) {
-       fh2MSubPtRawMatch[fCentBin]->Fill(jetS->M(),jet1->Pt()-jetCont->GetRhoVal()*jet1->Area());
+       Double_t drToLJ = -1.;
+       if(jetL) drToLJ = jet1->DeltaR(jetL);
+       fh3MSubPtRawDRMatch[fCentBin]->Fill(jetS->M(),jet1->Pt()-jetCont->GetRhoVal()*jet1->Area(),drToLJ);
        if(jet2) {
-         fh2MSubPtTrue[fCentBin]->Fill(jetS->M(),jet2->Pt());
-         fh2MTruePtTrue[fCentBin]->Fill(jet2->M(),jet2->Pt());
-         fh2PtTrueDeltaM[fCentBin]->Fill(jet2->Pt(),jetS->M()-jet2->M());
-         if(jet2->M()>0.) fh2PtTrueDeltaMRel[fCentBin]->Fill(jet2->Pt(),(jetS->M()-jet2->M())/jet2->M());
+         fh3MSubPtTrueDR[fCentBin]->Fill(jetS->M(),jet2->Pt(),drToLJ);
+         fh3MTruePtTrueDR[fCentBin]->Fill(jet2->M(),jet2->Pt(),drToLJ);
+         fh3PtTrueDeltaMDR[fCentBin]->Fill(jet2->Pt(),jetS->M()-jet2->M(),drToLJ);
+         if(jet2->M()>0.) fh3PtTrueDeltaMRelDR[fCentBin]->Fill(jet2->Pt(),(jetS->M()-jet2->M())/jet2->M(),drToLJ);
          //      Double_t mJet1Tagged = -1.;
          //      if(jet1T) mJet1Tagged = jet1T->M();
-         Double_t drToLJ = 0.;
-         if(jetL) drToLJ = jet1->DeltaR(jetL);
          Double_t var[5] = {jetS->M(),jet2->M(),jet1->Pt()-jetCont->GetRhoVal()*jet1->Area(),jet2->Pt(),drToLJ};
          fhnMassResponse[fCentBin]->Fill(var);
        }
index 4ccad622313f6eaa6814e2079cd24cd384794638..49ab21c4597ee0c9186cddf44b2b6f96a85c9263 100644 (file)
@@ -4,10 +4,8 @@
 class TH1;
 class TH2;
 class TH3;
-class TH3F;
 class THnSparse;
 class TF1;
-class TLorentzVector;
 class TClonesArray;
 class TArrayI;
 class TTree;
@@ -16,11 +14,6 @@ class AliAnalysisManager;
 class AliVParticle;
 class AliJetContainer;
 
-/* namespace fastjet { */
-/*   class PseudoJet; */
-/*   class GenericSubtractor; */
-/* } */
-
 #include "AliAnalysisTaskEmcalJet.h"
 
 class AliAnalysisTaskJetShapeConst : public AliAnalysisTaskEmcalJet {
@@ -70,18 +63,18 @@ class AliAnalysisTaskJetShapeConst : public AliAnalysisTaskEmcalJet {
 
   TH2F          **fh2MSubMatch;                                    //! subtracted jet mass vs match index (0: no match; 1:match)
   TH2F          **fh2MSubPtRawAll;                                 //! subtracted jet mass vs subtracted jet pT
-  TH2F          **fh2MSubPtRawMatch;                               //! subtracted jet mass vs subtracted jet pT for matched jets
-  TH2F          **fh2MSubPtTrue;                                   //! subtracted jet mass vs true jet pT for matched jets
-  TH2F          **fh2MTruePtTrue;                                  //! true jet mass vs true jet pT for matched jets
-  TH2F          **fh2PtTrueDeltaM;                                 //! true jet pT vs (Msub - Mtrue)
-  TH2F          **fh2PtTrueDeltaMRel;                              //! true jet pT vs (Msub - Mtrue)/Mtrue
-  THnSparse     **fhnMassResponse;                                 //! Msub vs Mtrue vs PtCorr vs PtTrue
+  TH3F          **fh3MSubPtRawDRMatch;                             //! subtracted jet mass vs subtracted jet pT vs distance to leading Pb-Pb jet
+  TH3F          **fh3MSubPtTrueDR;                                 //! subtracted jet mass vs true jet pT vs DR for matched jets for matched jets 
+  TH3F          **fh3MTruePtTrueDR;                                //! true jet mass vs true jet pT vs DR for matched jets for matched jets
+  TH3F          **fh3PtTrueDeltaMDR;                               //! true jet pT vs (Msub - Mtrue) vs distance to leading Pb-Pb jet for matched jets
+  TH3F          **fh3PtTrueDeltaMRelDR;                            //! true jet pT vs (Msub - Mtrue)/Mtrue vs DR for matched jets
+  THnSparse     **fhnMassResponse;                                 //! Msub vs Mtrue vs PtCorr vs PtTrue vs DR
 
  private:
   AliAnalysisTaskJetShapeConst(const AliAnalysisTaskJetShapeConst&);            // not implemented
   AliAnalysisTaskJetShapeConst &operator=(const AliAnalysisTaskJetShapeConst&); // not implemented
 
-  ClassDef(AliAnalysisTaskJetShapeConst, 2)
+  ClassDef(AliAnalysisTaskJetShapeConst, 3)
 };
 #endif
 
index 32e3e199064066d0aba56063599d50533718e0b6..5155b447cad4e0476881b84b8de8041d6fd8a8bc 100644 (file)
@@ -60,11 +60,11 @@ AliAnalysisTaskJetShapeDeriv::AliAnalysisTaskJetShapeDeriv() :
   fMatch(0),
   fh2MSubMatch(0x0),
   fh2MSubPtRawAll(0x0),
-  fh2MSubPtRawMatch(0x0),
-  fh2MSubPtTrue(0x0),
-  fh2MTruePtTrue(0x0),
-  fh2PtTrueDeltaM(0x0),
-  fh2PtTrueDeltaMRel(0x0),
+  fh3MSubPtRawDRMatch(0x0),
+  fh3MSubPtTrueDR(0x0),
+  fh3MTruePtTrueDR(0x0),
+  fh3PtTrueDeltaMDR(0x0),
+  fh3PtTrueDeltaMRelDR(0x0),
   fhnMassResponse(0x0),
   fh2PtTrueSubFacV1(0x0),
   fh2PtRawSubFacV1(0x0),
@@ -77,40 +77,40 @@ AliAnalysisTaskJetShapeDeriv::AliAnalysisTaskJetShapeDeriv() :
 {
   // Default constructor.
 
-  fh2MSubMatch        = new TH2F*[fNcentBins];
-  fh2MSubPtRawAll     = new TH2F*[fNcentBins];
-  fh2MSubPtRawMatch   = new TH2F*[fNcentBins];
-  fh2MSubPtTrue       = new TH2F*[fNcentBins];
-  fh2MTruePtTrue      = new TH2F*[fNcentBins];
-  fh2PtTrueDeltaM     = new TH2F*[fNcentBins];
-  fh2PtTrueDeltaMRel  = new TH2F*[fNcentBins];
-  fhnMassResponse     = new THnSparse*[fNcentBins];
-  fh2PtTrueSubFacV1   = new TH2F*[fNcentBins];
-  fh2PtRawSubFacV1    = new TH2F*[fNcentBins];
-  fh2PtCorrSubFacV1   = new TH2F*[fNcentBins];
-  fh2NConstSubFacV1   = new TH2F*[fNcentBins];
-  fh2PtTrueSubFacV2   = new TH2F*[fNcentBins];
-  fh2PtRawSubFacV2    = new TH2F*[fNcentBins];
-  fh2PtCorrSubFacV2   = new TH2F*[fNcentBins];
-  fh2NConstSubFacV2   = new TH2F*[fNcentBins];
+  fh2MSubMatch         = new TH2F*[fNcentBins];
+  fh2MSubPtRawAll      = new TH2F*[fNcentBins];
+  fh3MSubPtRawDRMatch  = new TH3F*[fNcentBins];
+  fh3MSubPtTrueDR      = new TH3F*[fNcentBins];
+  fh3MTruePtTrueDR     = new TH3F*[fNcentBins];
+  fh3PtTrueDeltaMDR    = new TH3F*[fNcentBins];
+  fh3PtTrueDeltaMRelDR = new TH3F*[fNcentBins];
+  fhnMassResponse      = new THnSparse*[fNcentBins];
+  fh2PtTrueSubFacV1    = new TH2F*[fNcentBins];
+  fh2PtRawSubFacV1     = new TH2F*[fNcentBins];
+  fh2PtCorrSubFacV1    = new TH2F*[fNcentBins];
+  fh2NConstSubFacV1    = new TH2F*[fNcentBins];
+  fh2PtTrueSubFacV2    = new TH2F*[fNcentBins];
+  fh2PtRawSubFacV2     = new TH2F*[fNcentBins];
+  fh2PtCorrSubFacV2    = new TH2F*[fNcentBins];
+  fh2NConstSubFacV2    = new TH2F*[fNcentBins];
 
   for (Int_t i = 0; i < fNcentBins; i++) {
-    fh2MSubMatch[i]        = 0;
-    fh2MSubPtRawAll[i]     = 0;
-    fh2MSubPtRawMatch[i]   = 0;
-    fh2MSubPtTrue[i]       = 0;
-    fh2MTruePtTrue[i]      = 0;
-    fh2PtTrueDeltaM[i]     = 0;
-    fh2PtTrueDeltaMRel[i]  = 0;
-    fhnMassResponse[i]     = 0;
-    fh2PtTrueSubFacV1[i]   = 0;
-    fh2PtRawSubFacV1[i]    = 0;
-    fh2PtCorrSubFacV1[i]   = 0;
-    fh2NConstSubFacV1[i]   = 0;
-    fh2PtTrueSubFacV2[i]   = 0;
-    fh2PtRawSubFacV2[i]    = 0;
-    fh2PtCorrSubFacV2[i]   = 0;
-    fh2NConstSubFacV2[i]   = 0;
+    fh2MSubMatch[i]         = 0;
+    fh2MSubPtRawAll[i]      = 0;
+    fh3MSubPtRawDRMatch[i]  = 0;
+    fh3MSubPtTrueDR[i]      = 0;
+    fh3MTruePtTrueDR[i]     = 0;
+    fh3PtTrueDeltaMDR[i]    = 0;
+    fh3PtTrueDeltaMRelDR[i] = 0;
+    fhnMassResponse[i]      = 0;
+    fh2PtTrueSubFacV1[i]    = 0;
+    fh2PtRawSubFacV1[i]     = 0;
+    fh2PtCorrSubFacV1[i]    = 0;
+    fh2NConstSubFacV1[i]    = 0;
+    fh2PtTrueSubFacV2[i]    = 0;
+    fh2PtRawSubFacV2[i]     = 0;
+    fh2PtCorrSubFacV2[i]    = 0;
+    fh2NConstSubFacV2[i]    = 0;
   }
 
   SetMakeGeneralHistograms(kTRUE);
@@ -141,11 +141,11 @@ AliAnalysisTaskJetShapeDeriv::AliAnalysisTaskJetShapeDeriv(const char *name) :
   fMatch(0),
   fh2MSubMatch(0x0),
   fh2MSubPtRawAll(0x0),
-  fh2MSubPtRawMatch(0x0),
-  fh2MSubPtTrue(0x0),
-  fh2MTruePtTrue(0x0),
-  fh2PtTrueDeltaM(0x0),
-  fh2PtTrueDeltaMRel(0x0),
+  fh3MSubPtRawDRMatch(0x0),
+  fh3MSubPtTrueDR(0x0),
+  fh3MTruePtTrueDR(0x0),
+  fh3PtTrueDeltaMDR(0x0),
+  fh3PtTrueDeltaMRelDR(0x0),
   fhnMassResponse(0x0),
   fh2PtTrueSubFacV1(0x0),
   fh2PtRawSubFacV1(0x0),
@@ -158,40 +158,40 @@ AliAnalysisTaskJetShapeDeriv::AliAnalysisTaskJetShapeDeriv(const char *name) :
 {
   // Standard constructor.
 
-  fh2MSubMatch        = new TH2F*[fNcentBins];
-  fh2MSubPtRawAll     = new TH2F*[fNcentBins];
-  fh2MSubPtRawMatch   = new TH2F*[fNcentBins];
-  fh2MSubPtTrue       = new TH2F*[fNcentBins];
-  fh2MTruePtTrue      = new TH2F*[fNcentBins];
-  fh2PtTrueDeltaM     = new TH2F*[fNcentBins];
-  fh2PtTrueDeltaMRel  = new TH2F*[fNcentBins];
-  fhnMassResponse     = new THnSparse*[fNcentBins];
-  fh2PtTrueSubFacV1   = new TH2F*[fNcentBins];
-  fh2PtRawSubFacV1    = new TH2F*[fNcentBins];
-  fh2PtCorrSubFacV1   = new TH2F*[fNcentBins];
-  fh2NConstSubFacV1   = new TH2F*[fNcentBins];
-  fh2PtTrueSubFacV2   = new TH2F*[fNcentBins];
-  fh2PtRawSubFacV2    = new TH2F*[fNcentBins];
-  fh2PtCorrSubFacV2   = new TH2F*[fNcentBins];
-  fh2NConstSubFacV2   = new TH2F*[fNcentBins];
+  fh2MSubMatch         = new TH2F*[fNcentBins];
+  fh2MSubPtRawAll      = new TH2F*[fNcentBins];
+  fh3MSubPtRawDRMatch  = new TH3F*[fNcentBins];
+  fh3MSubPtTrueDR      = new TH3F*[fNcentBins];
+  fh3MTruePtTrueDR     = new TH3F*[fNcentBins];
+  fh3PtTrueDeltaMDR    = new TH3F*[fNcentBins];
+  fh3PtTrueDeltaMRelDR = new TH3F*[fNcentBins];
+  fhnMassResponse      = new THnSparse*[fNcentBins];
+  fh2PtTrueSubFacV1    = new TH2F*[fNcentBins];
+  fh2PtRawSubFacV1     = new TH2F*[fNcentBins];
+  fh2PtCorrSubFacV1    = new TH2F*[fNcentBins];
+  fh2NConstSubFacV1    = new TH2F*[fNcentBins];
+  fh2PtTrueSubFacV2    = new TH2F*[fNcentBins];
+  fh2PtRawSubFacV2     = new TH2F*[fNcentBins];
+  fh2PtCorrSubFacV2    = new TH2F*[fNcentBins];
+  fh2NConstSubFacV2    = new TH2F*[fNcentBins];
 
   for (Int_t i = 0; i < fNcentBins; i++) {
-    fh2MSubMatch[i]        = 0;
-    fh2MSubPtRawAll[i]     = 0;
-    fh2MSubPtRawMatch[i]   = 0;
-    fh2MSubPtTrue[i]       = 0;
-    fh2MTruePtTrue[i]      = 0;
-    fh2PtTrueDeltaM[i]     = 0;
-    fh2PtTrueDeltaMRel[i]  = 0;
-    fhnMassResponse[i]     = 0;
-    fh2PtTrueSubFacV1[i]   = 0;
-    fh2PtRawSubFacV1[i]    = 0;
-    fh2PtCorrSubFacV1[i]   = 0;
-    fh2NConstSubFacV1[i]   = 0;
-    fh2PtTrueSubFacV2[i]   = 0;
-    fh2PtRawSubFacV2[i]    = 0;
-    fh2PtCorrSubFacV2[i]   = 0;
-    fh2NConstSubFacV2[i]   = 0;
+    fh2MSubMatch[i]         = 0;
+    fh2MSubPtRawAll[i]      = 0;
+    fh3MSubPtRawDRMatch[i]  = 0;
+    fh3MSubPtTrueDR[i]      = 0;
+    fh3MTruePtTrueDR[i]     = 0;
+    fh3PtTrueDeltaMDR[i]    = 0;
+    fh3PtTrueDeltaMRelDR[i] = 0;
+    fhnMassResponse[i]      = 0;
+    fh2PtTrueSubFacV1[i]    = 0;
+    fh2PtRawSubFacV1[i]     = 0;
+    fh2PtCorrSubFacV1[i]    = 0;
+    fh2NConstSubFacV1[i]    = 0;
+    fh2PtTrueSubFacV2[i]    = 0;
+    fh2PtRawSubFacV2[i]     = 0;
+    fh2PtCorrSubFacV2[i]    = 0;
+    fh2NConstSubFacV2[i]    = 0;
   }
 
   SetMakeGeneralHistograms(kTRUE);
@@ -258,30 +258,30 @@ void AliAnalysisTaskJetShapeDeriv::UserCreateOutputObjects()
     fh2MSubPtRawAll[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsM,minM,maxM,nBinsPt,minPt,maxPt);
     fOutput->Add(fh2MSubPtRawAll[i]);
 
-    histName = Form("fh2MSubPtRawMatch_%d",i);
-    histTitle = Form("fh2MSubPtRawMatch_%d;#it{M}_{sub};#it{p}_{T}",i);
-    fh2MSubPtRawMatch[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsM,minM,maxM,nBinsPt,minPt,maxPt);
-    fOutput->Add(fh2MSubPtRawMatch[i]);
+    histName = Form("fh3MSubPtRawDRMatch_%d",i);
+    histTitle = Form("fh3MSubPtRawDRMatch_%d;#it{M}_{sub};#it{p}_{T}",i);
+    fh3MSubPtRawDRMatch[i] = new TH3F(histName.Data(),histTitle.Data(),nBinsM,minM,maxM,nBinsPt,minPt,maxPt,nBinsDRToLJ,minDRToLJ,maxDRToLJ);
+    fOutput->Add(fh3MSubPtRawDRMatch[i]);
 
-    histName = Form("fh2MSubPtTrue_%d",i);
-    histTitle = Form("fh2MSubPtTrue_%d;#it{M}_{sub};#it{p}_{T}",i);
-    fh2MSubPtTrue[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsM,minM,maxM,nBinsPt,minPt,maxPt);
-    fOutput->Add(fh2MSubPtTrue[i]);
+    histName = Form("fh3MSubPtTrueDR_%d",i);
+    histTitle = Form("fh3MSubPtTrueDR_%d;#it{M}_{sub};#it{p}_{T}",i);
+    fh3MSubPtTrueDR[i] = new TH3F(histName.Data(),histTitle.Data(),nBinsM,minM,maxM,nBinsPt,minPt,maxPt,nBinsDRToLJ,minDRToLJ,maxDRToLJ);
+    fOutput->Add(fh3MSubPtTrueDR[i]);
 
-    histName = Form("fh2MTruePtTrue_%d",i);
-    histTitle = Form("fh2MTruePtTrue_%d;#it{M}_{sub};#it{p}_{T}",i);
-    fh2MTruePtTrue[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsM,minM,maxM,nBinsPt,minPt,maxPt);
-    fOutput->Add(fh2MTruePtTrue[i]);
+    histName = Form("fh3MTruePtTrueDR_%d",i);
+    histTitle = Form("fh3MTruePtTrueDR_%d;#it{M}_{sub};#it{p}_{T}",i);
+    fh3MTruePtTrueDR[i] = new TH3F(histName.Data(),histTitle.Data(),nBinsM,minM,maxM,nBinsPt,minPt,maxPt,nBinsDRToLJ,minDRToLJ,maxDRToLJ);
+    fOutput->Add(fh3MTruePtTrueDR[i]);
 
-    histName = Form("fh2PtTrueDeltaM_%d",i);
-    histTitle = Form("fh2PtTrueDeltaM_%d;#it{p}_{T,true};#it{M}_{sub}-#it{M}_{true}",i);
-    fh2PtTrueDeltaM[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,100,-50.,50.);
-    fOutput->Add(fh2PtTrueDeltaM[i]);
+    histName = Form("fh3PtTrueDeltaMDR_%d",i);
+    histTitle = Form("fh3PtTrueDeltaMDR_%d;#it{p}_{T,true};#it{M}_{sub}-#it{M}_{true}",i);
+    fh3PtTrueDeltaMDR[i] = new TH3F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,100,-50.,50.,nBinsDRToLJ,minDRToLJ,maxDRToLJ);
+    fOutput->Add(fh3PtTrueDeltaMDR[i]);
 
-    histName = Form("fh2PtTrueDeltaMRel_%d",i);
-    histTitle = Form("fh2PtTrueDeltaMRel_%d;#it{p}_{T,true};(#it{M}_{sub}-#it{M}_{true})/#it{M}_{true}",i);
-    fh2PtTrueDeltaMRel[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,200,-1.,1.);
-    fOutput->Add(fh2PtTrueDeltaMRel[i]);
+    histName = Form("fh3PtTrueDeltaMRelDR_%d",i);
+    histTitle = Form("fh3PtTrueDeltaMRelDR_%d;#it{p}_{T,true};(#it{M}_{sub}-#it{M}_{true})/#it{M}_{true}",i);
+    fh3PtTrueDeltaMRelDR[i] = new TH3F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,200,-1.,1.,nBinsDRToLJ,minDRToLJ,maxDRToLJ);
+    fOutput->Add(fh3PtTrueDeltaMRelDR[i]);
 
     histName = Form("fhnMassResponse_%d",i);
     histTitle = Form("fhnMassResponse_%d;#it{M}_{sub};#it{M}_{true};#it{p}_{T,sub};#it{p}_{T,true};#it{M}_{sub}^{tagged}",i);
@@ -427,27 +427,21 @@ Bool_t AliAnalysisTaskJetShapeDeriv::FillHistograms()
       //Fill histograms for matched jets
       fh2MSubMatch[fCentBin]->Fill(jet1->GetSecondOrderSubtracted(),fMatch);
       if(fMatch==1) {
-       fh2MSubPtRawMatch[fCentBin]->Fill(jet1->GetSecondOrderSubtracted(),jet1->Pt()-jetCont->GetRhoVal()*jet1->Area());
+       Double_t drToLJ = -1.;
+       if(jetL) drToLJ = jet1->DeltaR(jetL);
+       fh3MSubPtRawDRMatch[fCentBin]->Fill(jet1->GetSecondOrderSubtracted(),jet1->Pt()-jetCont->GetRhoVal()*jet1->Area(),drToLJ);
        if(jet2) {
-         fh2MSubPtTrue[fCentBin]->Fill(jet1->GetSecondOrderSubtracted(),jet2->Pt());
-         fh2MTruePtTrue[fCentBin]->Fill(jet2->M(),jet2->Pt());
-         fh2PtTrueDeltaM[fCentBin]->Fill(jet2->Pt(),jet1->GetSecondOrderSubtracted()-jet2->M());
-         if(jet2->M()>0.) fh2PtTrueDeltaMRel[fCentBin]->Fill(jet2->Pt(),(jet1->GetSecondOrderSubtracted()-jet2->M())/jet2->M());
+         fh3MSubPtTrueDR[fCentBin]->Fill(jet1->GetSecondOrderSubtracted(),jet2->Pt(),drToLJ);
+         fh3MTruePtTrueDR[fCentBin]->Fill(jet2->M(),jet2->Pt(),drToLJ);
+         fh3PtTrueDeltaMDR[fCentBin]->Fill(jet2->Pt(),jet1->GetSecondOrderSubtracted()-jet2->M(),drToLJ);
+         if(jet2->M()>0.) fh3PtTrueDeltaMRelDR[fCentBin]->Fill(jet2->Pt(),(jet1->GetSecondOrderSubtracted()-jet2->M())/jet2->M(),drToLJ);
          // Double_t mJet1Tagged = -1.;
          // if(jet1T) mJet1Tagged = jet1T->M();
-         Double_t drToLJ = 0.;
-         if(jetL) drToLJ = jet1->DeltaR(jetL);
          Double_t var[5] = {jet1->GetSecondOrderSubtracted(),jet2->M(),jet1->Pt()-jetCont->GetRhoVal()*jet1->Area(),jet2->Pt(),drToLJ};
          fhnMassResponse[fCentBin]->Fill(var);
        }
       }
 
-      //      if(jet2) Printf("unsubtracted: %f pt: %f  true: %f pt: %f",jet1->M(),jet1->Pt()-jetCont->GetRhoVal()*jet1->Area(),jet2->M(),jet2->Pt());
-      // Printf("1st derivative: %f",jet1->GetFirstDerivative());
-      // Printf("2nd derivative: %f",jet1->GetSecondDerivative());
-      // Printf("1st order subtracted: %f",jet1->GetFirstOrderSubtracted());
-      // Printf("2nd order subtracted: %f",jet1->GetSecondOrderSubtracted());
-
       if(fCreateTree) {      
        fJet1Vec->SetPxPyPzE(jet1->Px(),jet1->Py(),jet1->Pz(),jet1->E());
        fArea = (Float_t)jet1->Area();
index 497cfdb8043dbdc6f27c8cca270e4221412d1b1a..7aa042bbcef12056bbaefefcc3fb02930ef1227a 100644 (file)
@@ -4,10 +4,8 @@
 class TH1;
 class TH2;
 class TH3;
-class TH3F;
 class THnSparse;
 class TF1;
-class TLorentzVector;
 class TClonesArray;
 class TArrayI;
 class TTree;
@@ -16,11 +14,6 @@ class AliAnalysisManager;
 class AliVParticle;
 class AliJetContainer;
 
-/* namespace fastjet { */
-/*   class PseudoJet; */
-/*   class GenericSubtractor; */
-/* } */
-
 #include "AliAnalysisTaskEmcalJet.h"
 
 class AliAnalysisTaskJetShapeDeriv : public AliAnalysisTaskEmcalJet {
@@ -71,11 +64,11 @@ class AliAnalysisTaskJetShapeDeriv : public AliAnalysisTaskEmcalJet {
 
   TH2F          **fh2MSubMatch;                                    //! subtracted jet mass vs match index (0: no match; 1:match)
   TH2F          **fh2MSubPtRawAll;                                 //! subtracted jet mass vs subtracted jet pT
-  TH2F          **fh2MSubPtRawMatch;                               //! subtracted jet mass vs subtracted jet pT for matched jets
-  TH2F          **fh2MSubPtTrue;                                   //! subtracted jet mass vs true jet pT for matched jets
-  TH2F          **fh2MTruePtTrue;                                  //! true jet mass vs true jet pT for matched jets
-  TH2F          **fh2PtTrueDeltaM;                                 //! true jet pT vs (Msub - Mtrue)
-  TH2F          **fh2PtTrueDeltaMRel;                              //! true jet pT vs (Msub - Mtrue)/Mtrue
+  TH3F          **fh3MSubPtRawDRMatch;                             //! subtracted jet mass vs subtracted jet pT vs distance to leading Pb-Pb jet
+  TH3F          **fh3MSubPtTrueDR;                                 //! subtracted jet mass vs true jet pT vs DR for matched jets for matched jets 
+  TH3F          **fh3MTruePtTrueDR;                                //! true jet mass vs true jet pT vs DR for matched jets for matched jets
+  TH3F          **fh3PtTrueDeltaMDR;                               //! true jet pT vs (Msub - Mtrue) vs distance to leading Pb-Pb jet for matched jets
+  TH3F          **fh3PtTrueDeltaMRelDR;                            //! true jet pT vs (Msub - Mtrue)/Mtrue vs DR for matched jets
   THnSparse     **fhnMassResponse;                                 //! Msub vs Mtrue vs PtCorr vs PtTrue
 
   TH2F          **fh2PtTrueSubFacV1;                               //! true pT vs -(rho+rhom)*V1
@@ -91,7 +84,7 @@ class AliAnalysisTaskJetShapeDeriv : public AliAnalysisTaskEmcalJet {
   AliAnalysisTaskJetShapeDeriv(const AliAnalysisTaskJetShapeDeriv&);            // not implemented
   AliAnalysisTaskJetShapeDeriv &operator=(const AliAnalysisTaskJetShapeDeriv&); // not implemented
 
-  ClassDef(AliAnalysisTaskJetShapeDeriv, 2)
+  ClassDef(AliAnalysisTaskJetShapeDeriv, 3)
 };
 #endif