]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
add one dimension to the FF efficiency, add one extra step in the generated jets...
authorkleinb <kleinb@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 12 Oct 2010 05:26:33 +0000 (05:26 +0000)
committerkleinb <kleinb@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 12 Oct 2010 05:26:33 +0000 (05:26 +0000)
PWG4/JetTasks/AliAnalysisTaskFragmentationFunction.cxx
PWG4/JetTasks/AliAnalysisTaskFragmentationFunction.h
PWG4/JetTasks/AliAnalysisTaskJetSpectrum2.cxx

index b96474be935347e79c562d6bdd098177e7fde783..b8778a88585eaa02016e5eb7a391d27061eddfe4 100644 (file)
@@ -1877,16 +1877,16 @@ void AliAnalysisTaskFragmentationFunction::UserCreateOutputObjects()
   AliAnalysisTaskFragmentationFunction::SetProperties(fhnSingleTrackRecEffHisto,5,labelsSingleTrackEffHisto); 
   
   
-  // 7D jets track eff histo: jet phi:eta:pt:track pt:z:xi:isReconstructed - use binning as for track/jet QA
-  Int_t    nBinsJetTrackEffHisto[7]     = { fQAJetNBinsPhi, fQAJetNBinsEta, fFFNBinsJetPt, fFFNBinsPt, fFFNBinsZ, fFFNBinsXi, 2};
-  Double_t binMinJetTrackEffHisto[7]    = { fQAJetPhiMin, fQAJetEtaMin, fFFJetPtMin , fFFPtMin, fFFZMin ,  fFFXiMin, 0 };
-  Double_t binMaxJetTrackEffHisto[7]    = { fQAJetPhiMax, fQAJetEtaMax, fFFJetPtMax , fFFPtMax, fFFZMax ,  fFFXiMax, 2 };
-  const char* labelsJetTrackEffHisto[7] = {"jet #phi","jet #eta","jet p_{T} [GeV/c]","track p_{T} [GeV/c]","z","#xi","isRec"};
+  // 8D jets track eff histo: jet phi:eta:gen pt:rec pt:track pt:z:xi:isReconstructed - use binning as for track/jet QA
+  Int_t    nBinsJetTrackEffHisto[8]     = { fQAJetNBinsPhi, fQAJetNBinsEta, fFFNBinsJetPt, fFFNBinsJetPt, fFFNBinsPt, fFFNBinsZ, fFFNBinsXi, 2};
+  Double_t binMinJetTrackEffHisto[8]    = { fQAJetPhiMin, fQAJetEtaMin, fFFJetPtMin , fFFJetPtMin , fFFPtMin, fFFZMin ,  fFFXiMin, 0 };
+  Double_t binMaxJetTrackEffHisto[8]    = { fQAJetPhiMax, fQAJetEtaMax, fFFJetPtMax , fFFJetPtMax , fFFPtMax, fFFZMax ,  fFFXiMax, 2 };
+  const char* labelsJetTrackEffHisto[8] = {"jet #phi","jet #eta","jet gen p_{T} [GeV/c]","jet rec p_{T} [GeV/c]","track p_{T} [GeV/c]","z","#xi","isRec"};
 
-  fhnJetTrackRecEffHisto       = new THnSparseF("fhnJetTrackRecEffHisto","generated tracks - jet phi:jet eta:jet pt:track pt:z:xi:isReconstructed",7,
+  fhnJetTrackRecEffHisto       = new THnSparseF("fhnJetTrackRecEffHisto","generated tracks - jet phi:jet eta:jet gen pt:jet rec pt:track pt:z:xi:isReconstructed",8,
                                                nBinsJetTrackEffHisto,binMinJetTrackEffHisto,binMaxJetTrackEffHisto);
 
-  AliAnalysisTaskFragmentationFunction::SetProperties(fhnJetTrackRecEffHisto,7,labelsJetTrackEffHisto);
+  AliAnalysisTaskFragmentationFunction::SetProperties(fhnJetTrackRecEffHisto,8,labelsJetTrackEffHisto);
 
 
   fQATrackHistosRec          = new AliFragFuncQATrackHistos("Rec", fQATrackNBinsPt, fQATrackPtMin, fQATrackPtMax, 
@@ -2507,7 +2507,7 @@ void AliAnalysisTaskFragmentationFunction::UserExec(Option_t *)
 
   //_______ DiJet part _____________________________________________________
 
-  if (nRecJetsCuts > 1)  // OB: debugged this
+  if (nRecJetsCuts > 1) 
   {
 
     AliAODJet* jet1 = dynamic_cast<AliAODJet*>(fJetsRecCuts->At(0));
@@ -2788,19 +2788,25 @@ void AliAnalysisTaskFragmentationFunction::UserExec(Option_t *)
     
     if(ij==0){ // leading jet
       
-      TList* jettracklist = new TList();
-      Double_t sumPt = 0.;
-      
-      GetJetTracksPointing(fTracksGen, jettracklist, jet, GetFFRadius(), sumPt); // for efficiency: gen tracks from pointing with gen/rec jet
+      TList* jettracklistGen = new TList();
+      Double_t sumPtGen = 0.;
+
+      GetJetTracksPointing(fTracksGen, jettracklistGen, jet, GetFFRadius(), sumPtGen); // for efficiency: gen tracks from pointing with gen/rec jet
+
+      TList* jettracklistRec = new TList();
+      Double_t sumPtRec = 0;
+
+      GetJetTracksPointing(fTracksRecCuts,jettracklistRec, jet, GetFFRadius(), sumPtRec); // bin efficiency in jet pt bins using rec tracks  
+
       
-      Double_t jetEta = jet->Eta();
-      Double_t jetPhi = TVector2::Phi_0_2pi(jet->Phi());
-      Double_t jetPt  = sumPt;
+      Double_t jetEta   = jet->Eta();
+      Double_t jetPhi   = TVector2::Phi_0_2pi(jet->Phi());
+      Double_t jetPtGen = sumPtGen;
       
-      fQAJetHistosRecEffLeading->FillJetQA( jetEta, jetPhi, jetPt );
-      FillJetTrackRecEffHisto(fhnJetTrackRecEffHisto,jetPhi,jetEta,jetPt,jettracklist,fTracksAODMCCharged,indexAODTr,isGenPrim);
+      fQAJetHistosRecEffLeading->FillJetQA( jetEta, jetPhi, jetPtGen );
+      FillJetTrackRecEffHisto(fhnJetTrackRecEffHisto,jetPhi,jetEta,jetPtGen,sumPtRec,jettracklistGen,fTracksAODMCCharged,indexAODTr,isGenPrim);
       
-      delete jettracklist;
+      delete jettracklistGen;
     }
   }
    
@@ -3305,7 +3311,7 @@ void AliAnalysisTaskFragmentationFunction::FillSingleTrackRecEffHisto(THnSparse*
 }
 
 // ______________________________________________________________________________________________________________________________________________________
-void AliAnalysisTaskFragmentationFunction::FillJetTrackRecEffHisto(THnSparse* histo,Double_t jetPhi, Double_t jetEta, Double_t jetPt, TList* jetTrackList, 
+ void AliAnalysisTaskFragmentationFunction::FillJetTrackRecEffHisto(THnSparse* histo,Double_t jetPhi, Double_t jetEta, Double_t jetPtGen, Double_t jetPtRec, TList* jetTrackList, 
                                                                   TList* tracksGen, TArrayI& indexAODTr, TArrayS& isGenPrim)
 {
   // fill THnSparse for jet track reconstruction efficiency
@@ -3340,7 +3346,7 @@ void AliAnalysisTaskFragmentationFunction::FillJetTrackRecEffHisto(THnSparse* hi
     if(phiGen < fTrackPhiMin || phiGen > fTrackPhiMax) continue;
     if(ptGen  < fTrackPtCut) continue;
 
-    Double_t z = ptGen / jetPt;
+    Double_t z = ptGen / jetPtGen;
     Double_t xi = 0;
     if(z>0) xi = TMath::Log(1/z);
 
@@ -3348,7 +3354,7 @@ void AliAnalysisTaskFragmentationFunction::FillJetTrackRecEffHisto(THnSparse* hi
     Int_t iRec = indexAODTr[iGen]; // can be -1 if no good reconstructed track 
     if(iRec>=0) isRec = 1;
 
-    Double_t entries[7] = {jetPhi,jetEta,jetPt,ptGen,z,xi,isRec};
+    Double_t entries[8] = {jetPhi,jetEta,jetPtGen,jetPtRec,ptGen,z,xi,isRec};
     histo->Fill(entries);
   }
 }
index d65c5cef54d2daf339ec4258000b9a648b46a0aa..1171e27014c70ec9ee9399e0b87e6ba9d5532baf 100644 (file)
@@ -424,7 +424,7 @@ class AliAnalysisTaskFragmentationFunction : public AliAnalysisTaskSE {
   Double_t InvMass(AliAODJet* jet1, AliAODJet* jet2);
   void     AssociateGenRec(TList* tracksAODMCCharged,TList* tracksRec, TArrayI& indexAODTr,TArrayI& indexMCTr,TArrayS& isGenPrim);
   void     FillSingleTrackRecEffHisto(THnSparse* histo, TList* tracksGen, TList* tracksRec, TArrayI& indexAODTr, TArrayS& isGenPrim);
-  void     FillJetTrackRecEffHisto(THnSparse* histo,Double_t jetPhi,Double_t jetEta,Double_t jetPt,TList* jetTrackList, TList* tracksGen,
+  void     FillJetTrackRecEffHisto(THnSparse* histo,Double_t jetPhi,Double_t jetEta,Double_t jetPtGen,Double_t jetPtRec, TList* jetTrackList, TList* tracksGen,
                                   TArrayI& indexAODTr,TArrayS& isGenPrim);
 
     
@@ -660,7 +660,7 @@ class AliAnalysisTaskFragmentationFunction : public AliAnalysisTaskSE {
   THnSparseF *fhnSingleTrackRecEffHisto; //! track reconstruction efficiency 
   THnSparseF *fhnJetTrackRecEffHisto;    //! reconstruction efficiency jet tracks 
 
-  ClassDef(AliAnalysisTaskFragmentationFunction, 5);
+  ClassDef(AliAnalysisTaskFragmentationFunction, 6);
 };
 
 #endif
index c437fcdea59d6c9e9230ddc4d1257cbb6e483c80..fd5519e74314e423d1fe415e3bc5d99fd4e0147c 100644 (file)
@@ -1040,6 +1040,7 @@ void AliAnalysisTaskJetSpectrum2::UserExec(Option_t */*option*/)
       fhnJetContainer[kStep2]->Fill(&container[3],eventW);
       Double_t etaRec = recJets[ir].Eta();
       if(TMath::Abs(etaRec)<fRecEtaWindow)fhnJetContainer[kStep4]->Fill(&container[3],eventW);
+      if(TMath::Abs(etaRec)<fRecEtaWindow&&TMath::Abs(etaGen)<fRecEtaWindow)fhnJetContainer[kStep3]->Fill(&container[3],eventW);
     }
   }// loop over generated jets