]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
PID response properly set for both D meson and associated hadron selection cuts ...
authorprino <prino@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 2 Oct 2012 09:41:01 +0000 (09:41 +0000)
committerprino <prino@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 2 Oct 2012 09:41:01 +0000 (09:41 +0000)
PWGHF/correlationHF/AliAnalysisTaskSED0Correlations.cxx
PWGHF/correlationHF/AliAnalysisTaskSED0Correlations.h
PWGHF/correlationHF/AliHFAssociatedTrackCuts.cxx
PWGHF/correlationHF/AliHFAssociatedTrackCuts.h
PWGHF/correlationHF/AliHFCorrelator.h
PWGHF/correlationHF/macros/AddTaskD0Correlations.C

index 8f9095576b8ea0fa01ef80a32e2ee44b8ab5e8ee..972909843f67f401d0b3eb45b4c5579ba5748abb 100644 (file)
@@ -84,6 +84,7 @@ AliAnalysisTaskSE(),
   fFillOnlyD0D0bar(0),
   fIsSelectedCandidate(0),
   fSys(0),
+  fEtaForCorrel(0),
   fIsRejectSDDClusters(0),
   fFillGlobal(kTRUE)
 {
@@ -116,6 +117,7 @@ AliAnalysisTaskSED0Correlations::AliAnalysisTaskSED0Correlations(const char *nam
   fFillOnlyD0D0bar(0),
   fIsSelectedCandidate(0),
   fSys(0),
+  fEtaForCorrel(0),
   fIsRejectSDDClusters(0),
   fFillGlobal(kTRUE)
 {
@@ -166,6 +168,7 @@ AliAnalysisTaskSED0Correlations::AliAnalysisTaskSED0Correlations(const AliAnalys
   fFillOnlyD0D0bar(source.fFillOnlyD0D0bar),
   fIsSelectedCandidate(source.fIsSelectedCandidate),
   fSys(source.fSys),
+  fEtaForCorrel(source.fEtaForCorrel),
   fIsRejectSDDClusters(source.fIsRejectSDDClusters),
   fFillGlobal(source.fFillGlobal)
 {
@@ -242,6 +245,7 @@ AliAnalysisTaskSED0Correlations& AliAnalysisTaskSED0Correlations::operator=(cons
   fFillOnlyD0D0bar = orig.fFillOnlyD0D0bar;
   fIsSelectedCandidate = orig.fIsSelectedCandidate;
   fSys = orig.fSys;
+  fEtaForCorrel = orig.fEtaForCorrel;
   fIsRejectSDDClusters = orig.fIsRejectSDDClusters;
   fFillGlobal = orig.fFillGlobal;
 
@@ -478,6 +482,11 @@ void AliAnalysisTaskSED0Correlations::UserExec(Option_t */*option*/)
     return;
   }
 
+  //Setting PIDResponse for associated tracks
+  fCorrelatorTr->SetPidAssociated();
+  fCorrelatorKc->SetPidAssociated();
+  fCorrelatorK0->SetPidAssociated();
+
   // Check the Nb of SDD clusters
   if (fIsRejectSDDClusters) { 
     Bool_t skipEvent = kFALSE;
@@ -591,12 +600,12 @@ void AliAnalysisTaskSED0Correlations::UserExec(Option_t */*option*/)
       fCorrelatorK0->SetD0Properties(d,fIsSelectedCandidate);
 
       if(!fReadMC) {
-        CalculateCorrelations(d); //correlations on real data
+        if (TMath::Abs(d->Eta())<fEtaForCorrel) CalculateCorrelations(d); //correlations on real data
       } else { //correlations on MC -> association of selected D0 to MCinfo with MCtruth
-        Int_t pdgDgD0toKpi[2]={321,211};
-       Int_t labD0 = d->MatchToMC(421,mcArray,2,pdgDgD0toKpi); //return MC particle label if the array corresponds to a D0, -1 if not
-        if (labD0>-1) {
-          CalculateCorrelations(d,labD0,mcArray);
+        if (TMath::Abs(d->Eta())<fEtaForCorrel) {
+          Int_t pdgDgD0toKpi[2]={321,211};
+         Int_t labD0 = d->MatchToMC(421,mcArray,2,pdgDgD0toKpi); //return MC particle label if the array corresponds to a D0, -1 if not
+          if (labD0>-1) CalculateCorrelations(d,labD0,mcArray);
         }
       }
       
@@ -1339,7 +1348,7 @@ void AliAnalysisTaskSED0Correlations::CalculateCorrelations(AliAODRecoDecayHF2Pr
       //retrieving leading info...
       if(track->Pt() > highPt) {
         if(fReadMC && track->GetLabel()<1) continue;
-        if(fReadMC && !(AliAODMCParticle*)mcArray->At(track->GetLabel())) return;
+        if(fReadMC && !(AliAODMCParticle*)mcArray->At(track->GetLabel())) continue;
         lead[0] = fCorrelatorTr->GetDeltaPhi();
         lead[1] = fCorrelatorTr->GetDeltaEta();
         lead[2] = fReadMC ? CheckTrackOrigin(mcArray,(AliAODMCParticle*)mcArray->At(track->GetLabel())) : 0;
@@ -1732,6 +1741,8 @@ void AliAnalysisTaskSED0Correlations::PrintBinsAndLimits() {
     cout << fPtThreshUp.at(i) << "; ";
   }
   cout << "\n--------------------------\n";
+  cout << "D0 Eta cut for Correl = "<<fEtaForCorrel<<"\n";
+  cout << "--------------------------\n";
   cout << "MC Truth = "<<fReadMC<<"\n";
   cout << "--------------------------\n";
   cout << "Ev Mixing = "<<fMixing<<"\n";
index 1615f4bbed1b791ad94e649dc3fbb58ea903727e..897eaf3fa568e8abca00452f2dac15e135645de2 100644 (file)
@@ -57,6 +57,7 @@ class AliAnalysisTaskSED0Correlations : public AliAnalysisTaskSE
   Int_t  GetSystem() const {return fSys;}
   Bool_t GetRejectSDDClusters() const {return fIsRejectSDDClusters;}
   Bool_t GetFillGlobalPlots() const {return fFillGlobal;}
+  Double_t GetEtaForCorrel() {return fEtaForCorrel;}
 
   //correlations setters/printers
   void SetNPtBinsCorr(Int_t nbins) {fNPtBinsCorr = nbins;}
@@ -67,6 +68,7 @@ class AliAnalysisTaskSED0Correlations : public AliAnalysisTaskSE
   void PrintBinsAndLimits();
   Int_t PtBinCorr(Double_t pt) const;
   void SetEvMixing(Bool_t mix) {fMixing=mix;}
+  void SetEtaForCorrel(Double_t etacorr) {fEtaForCorrel=etacorr;}
 
   enum PartType {kTrack,kKCharg,kK0};
   enum FillType {kSE, kME}; //for single event or event mixing histos fill
@@ -107,6 +109,7 @@ class AliAnalysisTaskSED0Correlations : public AliAnalysisTaskSE
   Int_t     fFillOnlyD0D0bar;          // flag to fill mass histogram with D0/D0bar only (0 = fill with both, 1 = fill with D0 only, 2 = fill with D0bar only)
   Int_t     fIsSelectedCandidate;      // selection outcome
   Int_t     fSys;                      // fSys=0 -> p-p; fSys=1 ->PbPb
+  Double_t  fEtaForCorrel;             // cut for D0 eta to enable correlation with associated particles
   Bool_t    fIsRejectSDDClusters;      // flag to reject events with SDD clusters
   Bool_t    fFillGlobal;               // flag to fill global plots (in loops on tracks and V0 for each event)
 
index adfd78e01c74b2793c7b27885ff89bad99d37d41..b8609c2bc1c8befc820772c2c95028e431b12b73 100644 (file)
@@ -29,6 +29,8 @@
 #include "AliAODv0.h"
 #include "AliAODVertex.h"
 #include "AliAODMCParticle.h"
+#include "AliAnalysisManager.h"
+#include "AliInputEventHandler.h"
 #include "TString.h"
 
 using std::cout;
@@ -186,6 +188,7 @@ AliHFAssociatedTrackCuts::~AliHFAssociatedTrackCuts()
        if(fTrackCutsNames) {delete[] fTrackCutsNames; fTrackCutsNames=0;}
        if(fAODvZeroCuts){delete[] fAODvZeroCuts; fAODvZeroCuts=0;}
        if(fvZeroCutsNames) {delete[] fvZeroCutsNames; fvZeroCutsNames=0;}
+
        
 }
 //--------------------------------------------------------------------------
@@ -451,6 +454,18 @@ void AliHFAssociatedTrackCuts::SetvZeroCutsNames(/*TString *namearray*/){
        return;
 }
 
+//--------------------------------------------------------------------------
+void AliHFAssociatedTrackCuts::SetPidAssociated()
+{
+  //setting PidResponse
+  if(fPidObj->GetOldPid()==kFALSE && fPidObj->GetPidResponse()==0x0){
+    AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
+    AliInputEventHandler *inputHandler=(AliInputEventHandler*)mgr->GetInputEventHandler();
+    AliPIDResponse *pidResp=inputHandler->GetPIDResponse();
+    fPidObj->SetPidResponse(pidResp);
+  }
+}
+
 //--------------------------------------------------------------------------
 void AliHFAssociatedTrackCuts::PrintAll()
 {
index f9cf8509392894439c5b68599877846f18c7d4b9..2348e38073cd3c4881764564cc35c8f587a7f81b 100644 (file)
@@ -59,7 +59,8 @@ class AliHFAssociatedTrackCuts : public AliAnalysisCuts
        Bool_t CheckKaonCompatibility(AliAODTrack * track, Bool_t useMc, TClonesArray* mcArray, Int_t method=1);
        Bool_t IsKZeroSelected(AliAODv0 *vzero, AliAODVertex *vtx1);
        Bool_t *IsMCpartFromHF(Int_t label, TClonesArray*mcArray);
-       Bool_t InvMassDstarRejection(AliAODRecoDecayHF2Prong* d, AliAODTrack *track, Int_t hypD0) const;        
+       Bool_t InvMassDstarRejection(AliAODRecoDecayHF2Prong* d, AliAODTrack *track, Int_t hypD0) const;
+       void SetPidAssociated();        
        
        //getters
        Int_t GetMaxNEventsInPool() {return fPoolMaxNEvents;}
@@ -83,6 +84,8 @@ class AliHFAssociatedTrackCuts : public AliAnalysisCuts
                return;
        }
        
+       void AddDescription(TString description){fDescription=description;}
+       
        //setters
        //event pool settings
        void SetMaxNEventsInPool(Int_t events){fPoolMaxNEvents=events;}
index e7c2476304dc6fe1b1d26a61fed5b48e73d6031c..4457c2417e3f8ace27a06085c257f146582f32e3 100644 (file)
@@ -70,14 +70,15 @@ class AliHFCorrelator : public TNamed
        
        
        
-    Bool_t DefineEventPool(); // Definition of the Event pool parameters
+        Bool_t DefineEventPool(); // Definition of the Event pool parameters
        Bool_t Initialize(); // function that initlize everything for the analysis      
        Bool_t ProcessEventPool(); // processes the event pool
        Bool_t ProcessAssociatedTracks(Int_t EventLoopIndex); //
        Bool_t Correlate(Int_t loopindex); // function that computes the correlations between the trigger particle and the track n. loopindex
        Bool_t PoolUpdate();// updates the event pool
        Double_t SetCorrectPhiRange(Double_t phi); // sets all the angles in the correct range
-       
+       void SetPidAssociated() {fhadcuts->SetPidAssociated();}
+
        //getters
        AliEventPool* GetPool() {return fPool;}
        TObjArray * GetTrackArray(){return fAssociatedTracks;}
index cf55c31ec3d28abfacc4c276ee16fc3baff98ff5..3d44e33c40107edcd4b3e0b3e4db10efc6d6ca13 100644 (file)
@@ -1,5 +1,4 @@
-AliAnalysisTaskSED0Correlations *AddTaskD0Correlations(Bool_t readMC=kFALSE, Bool_t mixing=kFALSE, Int_t system=0/*0=pp,1=PbPb*/, Int_t flagD0D0bar=0,
-                                      Float_t minC=0, Float_t maxC=0, TString finDirname="Output", TString cutsfilename="D0toKpiCuts.root", 
+AliAnalysisTaskSED0Correlations *AddTaskD0Correlations(Bool_t readMC=kFALSE, Bool_t mixing=kFALSE, Double_t etacorr=1.0, Int_t system=0/*0=pp,1=PbPb*/, Int_t                                          flagD0D0bar=0, Float_t minC=0, Float_t maxC=0, TString finDirname="Output", TString cutsfilename="D0toKpiCuts.root", 
                                        TString cutsfilename2="AssocPartCuts.root", TString cutsD0name="D0toKpiCuts", TString cutsTrkname="AssociatedTrkCuts",                                          Bool_t flagAOD049=kFALSE, Int_t standardbins=1, Bool_t stdcuts=kFALSE)
 {
   //
@@ -148,6 +147,7 @@ AliAnalysisTaskSED0Correlations *AddTaskD0Correlations(Bool_t readMC=kFALSE, Boo
   massD0Task->SetEvMixing(mixing);
   massD0Task->SetFillOnlyD0D0bar(flagD0D0bar);
   massD0Task->SetSystem(system); //0=pp, 1=PbPb
+  massD0Task->SetEtaForCorrel(etacorr);
 
 //*********************
 //correlation settings