]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Use matched track cluster rejection defined in AliCaloPID
authorgconesab <gconesab@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 5 Dec 2011 08:26:58 +0000 (08:26 +0000)
committergconesab <gconesab@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 5 Dec 2011 08:26:58 +0000 (08:26 +0000)
PWG4/PartCorrBase/AliIsolationCut.cxx
PWG4/PartCorrBase/AliIsolationCut.h
PWG4/PartCorrDep/AliAnaParticleIsolation.cxx

index 2588cea292bb679ba6c825e6f4bff5078c72b147..734d05d34e6fdd91e42e915ccac0dad8da599168 100755 (executable)
@@ -40,6 +40,7 @@
 #include "AliVCluster.h"
 #include "AliCaloTrackReader.h"
 #include "AliMixedEvent.h"
+#include "AliCaloPID.h"
 
 ClassImp(AliIsolationCut)
   
@@ -104,6 +105,7 @@ void AliIsolationCut::InitParameters()
 void  AliIsolationCut::MakeIsolationCut(const TObjArray * plCTS, 
                                         const TObjArray * plNe, 
                                         const AliCaloTrackReader * reader, 
+                                        const AliCaloPID * pid, 
                                         const Bool_t bFillAOD, 
                                         AliAODPWG4ParticleCorrelation  *pCandidate, 
                                         const TString & aodArrayRefName,
@@ -132,6 +134,7 @@ void  AliIsolationCut::MakeIsolationCut(const TObjArray * plCTS,
   TObjArray * reftracks   = 0x0;
   Int_t ntrackrefs   = 0;
   Int_t nclusterrefs = 0;
+  
   //Check charged particles in cone.
   if(plCTS && (fPartInCone==kOnlyCharged || fPartInCone==kNeutralAndCharged)){
     TVector3 p3;
@@ -200,11 +203,14 @@ void  AliIsolationCut::MakeIsolationCut(const TObjArray * plCTS,
       }
       
       //Do not count the candidate (photon or pi0) or the daughters of the candidate
-      if(calo->GetID() == pCandidate->GetCaloLabel(0) || calo->GetID() == pCandidate->GetCaloLabel(1)) continue ;      //Skip matched clusters with tracks
-      
-      if(calo->GetNTracksMatched() > 0) continue ; 
+      if(calo->GetID() == pCandidate->GetCaloLabel(0) || 
+         calo->GetID() == pCandidate->GetCaloLabel(1)) continue ;      
       
-      calo->GetMomentum(mom,reader->GetVertex(evtIndex)) ;//Assume that come from vertex in straight line
+      //Skip matched clusters with tracks
+      if( pid->IsTrackMatched(calo,reader->GetCaloUtils(),reader->GetInputEvent()) ) continue ;
+    
+      //Assume that come from vertex in straight line
+      calo->GetMomentum(mom,reader->GetVertex(evtIndex)) ;
       
       pt   = mom.Pt();
       eta  = mom.Eta();
@@ -212,8 +218,9 @@ void  AliIsolationCut::MakeIsolationCut(const TObjArray * plCTS,
       if(phi<0) phi+=TMath::TwoPi();
       //only loop the particle at the same side of candidate
       
-      if(TMath::Abs(phi-phiC)>TMath::PiOver2()) continue ;
       //if at the same side has particle larger than candidate, then candidate can not be the leading, skip such events
+      if(TMath::Abs(phi-phiC)>TMath::PiOver2()) continue ;
+      
       if(pt > ptC){
         n         = -1;
         nfrac     = -1;
index 4d85ffe63cebb5daaa1774faba9e9d6e1e74bb70..d7af49158fd80a61c19977842789b9e05e934026 100755 (executable)
@@ -23,7 +23,7 @@ class TObjArray ;
 // --- ANALYSIS system ---
 class AliAODPWG4ParticleCorrelation ;
 class AliCaloTrackReader ;
-
+class AliCaloPID; 
 class AliIsolationCut : public TObject {
   
  public: 
@@ -43,7 +43,9 @@ class AliIsolationCut : public TObject {
   
   TString    GetICParametersList() ; 
   
-  void       MakeIsolationCut(const TObjArray * plCTS, const TObjArray * plNe, const AliCaloTrackReader * reader, 
+  void       MakeIsolationCut(const TObjArray * plCTS, const TObjArray * plNe, 
+                              const AliCaloTrackReader * reader, 
+                              const AliCaloPID * pid, 
                               const Bool_t bFillAOD, AliAODPWG4ParticleCorrelation  * pCandidate, const TString &aodObjArrayName,
                               Int_t &n, Int_t & nfrac, Float_t &ptsum, Bool_t & isolated) const ;  
   
index 3691d7907f94390255b02f4c59627eb4b3cc878b..438196a91aa55d6d53f0fd09bde1cffabf14910b 100755 (executable)
@@ -699,7 +699,9 @@ void  AliAnaParticleIsolation::MakeAnalysisFillAOD()
     
   //After cuts, study isolation
   n=0; nfrac = 0; isolated = kFALSE; coneptsum = 0;
-  GetIsolationCut()->MakeIsolationCut(GetCTSTracks(),pl,GetReader(), kTRUE, aodinput, GetAODObjArrayName(), n,nfrac,coneptsum, isolated);
+  GetIsolationCut()->MakeIsolationCut(GetCTSTracks(),pl,
+                                      GetReader(), GetCaloPID(),
+                                      kTRUE, aodinput, GetAODObjArrayName(), n,nfrac,coneptsum, isolated);
   aodinput->SetIsolated(isolated);
   
   if(GetDebug() > 1) {
@@ -753,7 +755,9 @@ void  AliAnaParticleIsolation::MakeAnalysisFillHistograms()
     else if(fReMakeIC){
       //In case a more strict IC is needed in the produced AOD
       n=0; nfrac = 0; isolated = kFALSE; coneptsum = 0;
-      GetIsolationCut()->MakeIsolationCut(reftracks, refclusters, GetReader(), kFALSE, aod, "", n,nfrac,coneptsum, isolated);
+      GetIsolationCut()->MakeIsolationCut(reftracks,   refclusters, 
+                                          GetReader(), GetCaloPID(),
+                                          kFALSE, aod, "", n,nfrac,coneptsum, isolated);
       fhConeSumPt->Fill(pt,coneptsum);    
       if(GetDebug() > 0) printf("AliAnaParticleIsolation::MakeAnalysisFillHistograms() - Energy Sum in Isolation Cone %2.2f\n", coneptsum);    
     }
@@ -939,7 +943,8 @@ void  AliAnaParticleIsolation::MakeSeveralICAnalysis(AliAODPWG4ParticleCorrelati
       GetIsolationCut()->SetPtThreshold(fPtThresholds[ipt]);
       GetIsolationCut()->MakeIsolationCut(ph->GetObjArray(GetAODObjArrayName()+"Tracks"), 
                                           ph->GetObjArray(GetAODObjArrayName()+"Clusters"),
-                                          GetReader(), kFALSE, ph, "",n[icone][ipt],nfrac[icone][ipt],coneptsum, isolated);
+                                          GetReader(), GetCaloPID(),
+                                          kFALSE, ph, "",n[icone][ipt],nfrac[icone][ipt],coneptsum, isolated);
       
       //Normal ptThreshold cut
       if(n[icone][ipt] == 0) {