]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EMCAL/AliEMCALRecoUtils.cxx
Add the configuration for AD0
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALRecoUtils.cxx
index 7a46f16658ab24051d1a7d5a2f24ceffe1be6084..6e512eeb407b2bb0a10f49a6660cf41cc065e2c0 100644 (file)
@@ -83,7 +83,7 @@ AliEMCALRecoUtils::AliEMCALRecoUtils():
   fCutMinNClusterITS(0),                  fCutMaxChi2PerClusterTPC(0),            fCutMaxChi2PerClusterITS(0),
   fCutRequireTPCRefit(kFALSE),            fCutRequireITSRefit(kFALSE),            fCutAcceptKinkDaughters(kFALSE),
   fCutMaxDCAToVertexXY(0),                fCutMaxDCAToVertexZ(0),                 fCutDCAToVertex2D(kFALSE),
-  fCutRequireITSStandAlone(kFALSE),       fCutRequireITSpureSA(kFALSE) 
+  fCutRequireITSStandAlone(kFALSE),       fCutRequireITSpureSA(kFALSE)
 {
 //
   // Constructor.
@@ -136,7 +136,7 @@ AliEMCALRecoUtils::AliEMCALRecoUtils(const AliEMCALRecoUtils & reco)
   fCutRequireTPCRefit(reco.fCutRequireTPCRefit),             fCutRequireITSRefit(reco.fCutRequireITSRefit),
   fCutAcceptKinkDaughters(reco.fCutAcceptKinkDaughters),     fCutMaxDCAToVertexXY(reco.fCutMaxDCAToVertexXY),    
   fCutMaxDCAToVertexZ(reco.fCutMaxDCAToVertexZ),             fCutDCAToVertex2D(reco.fCutDCAToVertex2D),
-  fCutRequireITSStandAlone(reco.fCutRequireITSStandAlone),   fCutRequireITSpureSA(reco.fCutRequireITSpureSA) 
+  fCutRequireITSStandAlone(reco.fCutRequireITSStandAlone),   fCutRequireITSpureSA(reco.fCutRequireITSpureSA)
 {
   //Copy ctor
   
@@ -222,7 +222,8 @@ AliEMCALRecoUtils & AliEMCALRecoUtils::operator = (const AliEMCALRecoUtils & rec
   fCutMaxDCAToVertexZ        = reco.fCutMaxDCAToVertexZ;
   fCutDCAToVertex2D          = reco.fCutDCAToVertex2D;
   fCutRequireITSStandAlone   = reco.fCutRequireITSStandAlone; 
-  fCutRequireITSpureSA       = reco.fCutRequireITSpureSA; 
+  fCutRequireITSpureSA       = reco.fCutRequireITSpureSA;
+
   if (reco.fResidualEta) {
     // assign or copy construct
     if (fResidualEta) { 
@@ -270,7 +271,7 @@ AliEMCALRecoUtils & AliEMCALRecoUtils::operator = (const AliEMCALRecoUtils & rec
     if (fMatchedClusterIndex) delete fMatchedClusterIndex;
     fMatchedClusterIndex = 0;
   }
-   
+  
   return *this;
 }
 
@@ -979,7 +980,7 @@ void AliEMCALRecoUtils::InitParameters()
   
   fExoticCellFraction     = 0.97;
   fExoticCellDiffTime     = 1e6;
-  fExoticCellMinAmplitude = 0.5;
+  fExoticCellMinAmplitude = 4.0;
   
   fAODFilterMask    = 128;
   fAODHybridTracks  = kFALSE;
@@ -1808,7 +1809,8 @@ void AliEMCALRecoUtils::FindMatches(AliVEvent *event,
     //If the input event is AOD, the starting point for extrapolation is at vertex
     //AOD tracks are selected according to its filterbit.
     else if (aodevent) {
-      aodTrack = aodevent->GetTrack(itr);
+      aodTrack = dynamic_cast<AliAODTrack*>(aodevent->GetTrack(itr));
+      if(!aodTrack) AliFatal("Not a standard AOD");
       if (!aodTrack) continue;
             
       if (fAODTPCOnlyTracks) { // Match with TPC only tracks, default from May 2013, before filter bit 32
@@ -2000,7 +2002,9 @@ Int_t  AliEMCALRecoUtils::FindMatchedClusterInClusterArr(const AliExternalTrackP
 
 //------------------------------------------------------------------------------------
 Bool_t AliEMCALRecoUtils::ExtrapolateTrackToEMCalSurface(AliVTrack *track,
-                                                        Double_t emcalR, Double_t mass, Double_t step, Double_t minpt)
+                                                         Double_t emcalR, Double_t mass,
+                                                         Double_t step, Double_t minpt,
+                                                         Bool_t useMassForTracking)
 { 
   // Extrapolate track to EMCAL surface
 
@@ -2021,14 +2025,22 @@ Bool_t AliEMCALRecoUtils::ExtrapolateTrackToEMCalSurface(AliVTrack *track,
       return kFALSE;
   }
 
-  if (mass<0) {
+  // Select the mass hypothesis
+  if ( mass < 0 )
+  {
     Bool_t onlyTPC = kFALSE;
-    if (mass==-99)
-      onlyTPC=kTRUE;
+    if ( mass == -99 ) onlyTPC=kTRUE;
+    
     if (esdt)
-      mass = esdt->GetMass(onlyTPC);
-    else 
-      mass = aodt->M();
+    {
+      if ( useMassForTracking ) mass = esdt->GetMassForTracking();
+      else                      mass = esdt->GetMass(onlyTPC);
+    }
+    else
+    {
+      if ( useMassForTracking ) mass = aodt->GetMassForTracking();
+      else                      mass = aodt->M();
+    }
   }
 
   AliExternalTrackParam *trackParam = 0;