From 1176d1999cf9a8ec6b2b808ee7f6607bbe544857 Mon Sep 17 00:00:00 2001
From: Fangyi Guo <guofangyi@ihep.ac.cn>
Date: Tue, 11 Mar 2025 17:40:42 +0800
Subject: [PATCH 1/2] Debug in CyberPFA: neighbor clustering and electron
 energy scale

---
 .../DetCRD/scripts/TDR_o1_v01/calodigi.py     | 14 ++++---
 Detector/DetCRD/scripts/TDR_o1_v01/rec.py     | 38 ++++++++-----------
 Reconstruction/ParticleID/src/FinalPIDAlg.cpp |  6 ++-
 Reconstruction/RecPFACyber/script/sim.py      | 10 ++++-
 Reconstruction/RecPFACyber/script/tracking.py | 10 ++++-
 .../RecPFACyber/src/Objects/CaloUnit.cc       |  8 ++--
 .../RecPFACyber/src/Tools/OutputCreator.cpp   | 11 +++++-
 7 files changed, 60 insertions(+), 37 deletions(-)

diff --git a/Detector/DetCRD/scripts/TDR_o1_v01/calodigi.py b/Detector/DetCRD/scripts/TDR_o1_v01/calodigi.py
index b90d25ae..cdd1ed17 100644
--- a/Detector/DetCRD/scripts/TDR_o1_v01/calodigi.py
+++ b/Detector/DetCRD/scripts/TDR_o1_v01/calodigi.py
@@ -72,13 +72,13 @@ EcalDigi.SkipEvt = 0
 EcalDigi.Seed = 2079
 #Digitalization parameters
 EcalDigi.TimeResolution = 0.7            # 0.7 ns
-EcalDigi.EcalMIPEnergy = 8.9             # MIP energy 8.9 MeV for 1 cm BGO
+EcalDigi.EcalMIPEnergy = 13.35            # MIP energy 13.35 MeV for 1.5 cm BGO
 EcalDigi.EcalMIP_Thre = 0.05              # 0.05 mip at each side, 0.1 mip for one bar
 EcalDigi.UseRealisticDigi = 1
 # scintillation
 EcalDigi.UseDigiScint = 1
 EcalDigi.EcalCryIntLY = 8200             #intrinsic LY 8200 [p.e./MIP]
-EcalDigi.EcalCryMipLY = 200              #Detected effective LY 200 [p.e./MIP]
+EcalDigi.EcalCryMipLY = 300              #Detected effective LY 300 [p.e./MIP]
 EcalDigi.AttenuationLength = 1e8         # 8000 mm for 5% non-uniformity
 # SiPM
 EcalDigi.SiPMDigiVerbose = 2             # 0:w/o response, w/o correction; 1:w/ response, w/o correction; 2:w/ response, w/ simple correction; 3:w/ response, w/ full correction
@@ -86,14 +86,18 @@ EcalDigi.EcalSiPMPDE = 0.25              # NDL-EQR06, PDE 0.25
 EcalDigi.EcalSiPMDCR = 0                 # NDL-EQR06, dark count rate 2500000 [Hz]
 EcalDigi.EcalTimeInterval = 0.           # Time interval 0.000002 [s]. DCR*TimeInterval = dark count noise
 EcalDigi.EcalSiPMCT = 0.                 # SiPM crosstalk Probability 12%
-EcalDigi.EcalSiPMGainMean = 50           # 50 [ADC/p.e.]
+EcalDigi.EcalSiPMGainMean = 5            # 5 [ADC/p.e.]
 EcalDigi.EcalSiPMGainSigma = 0.08        # 0.08
+#EcalDigi.EcalSiPMNoiseSigma = 0          # 0
 # ADC
 EcalDigi.ADC = 8192                      # 13-bit, 8192
 EcalDigi.ADCSwitch = 8000                # 8000
 EcalDigi.Pedestal = 50                   # Pedestal 50 ADC
-EcalDigi.GainRatio_12 = 50               # Gain ratio 50
-EcalDigi.GainRatio_23 = 60               # Gain ratio 60
+EcalDigi.GainRatio_12 = 30               # Gain ratio 30
+EcalDigi.GainRatio_23 = 10               # Gain ratio 10
+EcalDigi.EcalASICNoiseSigma = 4
+EcalDigi.EcalFEENoiseSigma = 5
+EcalDigi.ADCNonLinearity = 0             # ADC non-linearity 0
 # temperature control
 EcalDigi.UseCryTemp = 0
 EcalDigi.UseCryTempCor = 0
diff --git a/Detector/DetCRD/scripts/TDR_o1_v01/rec.py b/Detector/DetCRD/scripts/TDR_o1_v01/rec.py
index 172e8e93..94e1f86f 100644
--- a/Detector/DetCRD/scripts/TDR_o1_v01/rec.py
+++ b/Detector/DetCRD/scripts/TDR_o1_v01/rec.py
@@ -39,12 +39,12 @@ inp = PodioInput("InputReader")
 inp.collections = [ 
                     "ECALBarrel",
                     "ECALBarrelParticleAssoCol",
-#                    "ECALEndcaps",
-#                    "ECALEndcapsParticleAssoCol",
+                    "ECALEndcaps",
+                    "ECALEndcapsParticleAssoCol",
                     "HCALBarrel",
                     "HCALBarrelParticleAssoCol",
-#                    "HCALEndcaps",
-#                    "HCALEndcapsParticleAssoCol",
+                    "HCALEndcaps",
+                    "HCALEndcapsParticleAssoCol",
                     "MCParticle", 
                     "CompleteTracks", 
                     "CompleteTracksParticleAssociation",
@@ -75,18 +75,12 @@ CyberPFAlg.HcalNeutralCalib = 4.0
 CyberPFAlg.MCParticleCollection = "MCParticle"
 CyberPFAlg.TrackCollections = ["CompleteTracks"]
 CyberPFAlg.MCRecoTrackParticleAssociationCollection = "CompleteTracksParticleAssociation"
-#CyberPFAlg.ECalCaloHitCollections = ["ECALBarrel","ECALEndcaps"]
-#CyberPFAlg.ECalReadOutNames = ["EcalBarrelCollection","EcalEndcapsCollection"]
-#CyberPFAlg.ECalMCPAssociationName = ["ECALBarrelParticleAssoCol", "ECALEndcapsParticleAssoCol"]
-#CyberPFAlg.HCalCaloHitCollections = ["HCALBarrel", "HCALEndcaps"]
-#CyberPFAlg.HCalReadOutNames = ["HcalBarrelCollection", "HcalEndcapsCollection"]
-#CyberPFAlg.HCalMCPAssociationName = ["HCALBarrelParticleAssoCol", "HCALEndcapsParticleAssoCol"]
-CyberPFAlg.ECalCaloHitCollections = ["ECALBarrel"]
-CyberPFAlg.ECalReadOutNames = ["EcalBarrelCollection"]
-CyberPFAlg.ECalMCPAssociationName = ["ECALBarrelParticleAssoCol"]
-CyberPFAlg.HCalCaloHitCollections = ["HCALBarrel"]
-CyberPFAlg.HCalReadOutNames = ["HcalBarrelCollection"]
-CyberPFAlg.HCalMCPAssociationName = ["HCALBarrelParticleAssoCol"]
+CyberPFAlg.ECalCaloHitCollections = ["ECALBarrel","ECALEndcaps"]
+CyberPFAlg.ECalReadOutNames = ["EcalBarrelCollection","EcalEndcapsCollection"]
+CyberPFAlg.ECalMCPAssociationName = ["ECALBarrelParticleAssoCol", "ECALEndcapsParticleAssoCol"]
+CyberPFAlg.HCalCaloHitCollections = ["HCALBarrel", "HCALEndcaps"]
+CyberPFAlg.HCalReadOutNames = ["HcalBarrelCollection", "HcalEndcapsCollection"]
+CyberPFAlg.HCalMCPAssociationName = ["HCALBarrelParticleAssoCol", "HCALEndcapsParticleAssoCol"]
 
 ##--- Output collections ---
 CyberPFAlg.OutputPFO = "outputPFO";
@@ -113,8 +107,8 @@ CyberPFAlg.AlgParNames = [ ["InputECALBars","OutputECAL1DClusters","OutputECALHa
                                  ["OutputAxisName"], #6
                                  ["ReadinAxisName", "OutputClusName", "OutputTowerName"],  #9
                                  ["ReadinHFClusterName", "ReadinTowerName","OutputClusterName"], #11
-                                 ["InputHCALHits", "OutputHCALClusters"], #12
-                                 ["DoECALClustering","DoHCALClustering","InputHCALHits","OutputHCALClusters"], #15
+                                 ["OutputHCALClusters"], #12
+                                 ["DoECALClustering","DoHCALClustering","OutputHCALClusters"], #15
                                  ["ReadinECALClusterName", "ReadinHCALClusterName", "OutputCombPFO"],  #16
                                  ["ECALChargedCalib", "HCALChargedCalib", "ECALNeutralCalib", "HCALNeutralCalib"] ]#17
 CyberPFAlg.AlgParTypes = [ ["string","string","string"],#1
@@ -125,8 +119,8 @@ CyberPFAlg.AlgParTypes = [ ["string","string","string"],#1
                                  ["string"], #6
                                  ["string","string","string"],  #9
                                  ["string","string","string"], #11
-                                 ["string", "string"], #12
-                                 ["bool","bool","string","string"], #15
+                                 ["string"], #12
+                                 ["bool","bool","string"], #15
                                  ["string","string","string"],  #16
                                  ["double","double", "double","double"] ]#17
 CyberPFAlg.AlgParValues = [ ["BarCol","Cluster1DCol","HalfClusterCol"],#1
@@ -137,8 +131,8 @@ CyberPFAlg.AlgParValues = [ ["BarCol","Cluster1DCol","HalfClusterCol"],#1
                                   ["MergedAxis"], #6
                                   ["MergedAxis","ESHalfCluster","ESTower"],  #9
                                   ["ESHalfCluster","ESTower","EcalCluster"], #11
-                                  ["HCALBarrel", "SimpleHCALCluster"], #12
-                                  ["0","1","HCALBarrel","HCALCluster"], #15
+                                  ["SimpleHCALCluster"], #12
+                                  ["0","1","HCALCluster"], #15
                                   ["EcalCluster", "SimpleHCALCluster", "outputPFO"],  #16
                                   ["1.26","4.", "1.", "4."]  ]#17
 
diff --git a/Reconstruction/ParticleID/src/FinalPIDAlg.cpp b/Reconstruction/ParticleID/src/FinalPIDAlg.cpp
index 97bfd2ad..85cd4b8e 100644
--- a/Reconstruction/ParticleID/src/FinalPIDAlg.cpp
+++ b/Reconstruction/ParticleID/src/FinalPIDAlg.cpp
@@ -197,13 +197,15 @@ StatusCode FinalPIDAlg::FillCaloPID(edm4hep::MutableReconstructedParticle& pfo){
             int pdgid = 22;
             pfo.setType( pdgid );
             pfo.setMass( ParticleMass.at( abs(pdgid) ) );
-            pfo.setEnergy( sqrt(pfo.getMomentum()[0]*pfo.getMomentum()[0] + pfo.getMomentum()[1]*pfo.getMomentum()[1] + pfo.getMomentum()[2]*pfo.getMomentum()[2] + pfo.getMass()*pfo.getMass()) );
+            double p_scale = sqrt( pfo.getEnergy()*pfo.getEnergy() - pfo.getMass()*pfo.getMass() ) / sqrt(pfo.getMomentum()[0]*pfo.getMomentum()[0] + pfo.getMomentum()[1]*pfo.getMomentum()[1] + pfo.getMomentum()[2]*pfo.getMomentum()[2] );
+            pfo.setMomentum( Vector3f(pfo.getMomentum()[0]*p_scale, pfo.getMomentum()[1]*p_scale, pfo.getMomentum()[2]*p_scale) );
         }
         else{
             int pdgid = 130;
             pfo.setType( pdgid );
             pfo.setMass( ParticleMass.at( abs(pdgid) ) );
-            pfo.setEnergy( sqrt(pfo.getMomentum()[0]*pfo.getMomentum()[0] + pfo.getMomentum()[1]*pfo.getMomentum()[1] + pfo.getMomentum()[2]*pfo.getMomentum()[2] + pfo.getMass()*pfo.getMass()) );
+            double p_scale = sqrt( pfo.getEnergy()*pfo.getEnergy() - pfo.getMass()*pfo.getMass() ) / sqrt(pfo.getMomentum()[0]*pfo.getMomentum()[0] + pfo.getMomentum()[1]*pfo.getMomentum()[1] + pfo.getMomentum()[2]*pfo.getMomentum()[2] );
+            pfo.setMomentum( Vector3f(pfo.getMomentum()[0]*p_scale, pfo.getMomentum()[1]*p_scale, pfo.getMomentum()[2]*p_scale) );
 
         }
     }
diff --git a/Reconstruction/RecPFACyber/script/sim.py b/Reconstruction/RecPFACyber/script/sim.py
index 36408600..2182e266 100644
--- a/Reconstruction/RecPFACyber/script/sim.py
+++ b/Reconstruction/RecPFACyber/script/sim.py
@@ -67,6 +67,11 @@ genalg.GenTools = ["StdHepRdr"]
 from Configurables import DetSimSvc
 detsimsvc = DetSimSvc("DetSimSvc")
 
+from Configurables import Edm4hepWriterAnaElemTool
+edm4hep_writer = Edm4hepWriterAnaElemTool("Edm4hepWriterAnaElemTool")
+edm4hep_writer.TrackerCollections = ["VXD", "ITKBarrel", "ITKEndcap", "TPC", "TPCLowPt", "TPCSpacePoint",
+                                     "OTKBarrel", "OTKEndcap", "COIL", "MuonBarrel", "MuonEndcap"]
+
 from Configurables import DetSimAlg
 detsimalg = DetSimAlg("DetSimAlg")
 detsimalg.RandomSeeds = seed
@@ -84,7 +89,7 @@ detsimalg.RootDetElem = "WorldDetElemTool"
 from Configurables import TimeProjectionChamberSensDetTool
 tpc_sensdettool = TimeProjectionChamberSensDetTool("TimeProjectionChamberSensDetTool")
 tpc_sensdettool.TypeOption = 1
-tpc_sensdettool.DoHeedSim = False#True
+tpc_sensdettool.DoHeedSim = False #True
 dedxoption = "TrackHeedSimTool"
 tpc_sensdettool.DedxSimTool = dedxoption
 
@@ -105,6 +110,9 @@ cal_sensdettool.CalNamesMergeDisable = ["EcalBarrel", "EcalEndcap", "HcalBarrel"
 cal_sensdettool.CalNamesApplyBirks = ["EcalBarrel", "EcalEndcap", "HcalBarrel","HcalEndcaps"]
 cal_sensdettool.CalNamesBirksConstants = [0.008415, 0.008415, 0.01, 0.01] # BGO and Glass scintillator
 
+from Configurables import MarlinEvtSeeder
+evtseeder = MarlinEvtSeeder("EventSeeder")
+
 # output
 from Configurables import PodioOutput
 out = PodioOutput("outputalg")
diff --git a/Reconstruction/RecPFACyber/script/tracking.py b/Reconstruction/RecPFACyber/script/tracking.py
index 2f208513..c39aca46 100644
--- a/Reconstruction/RecPFACyber/script/tracking.py
+++ b/Reconstruction/RecPFACyber/script/tracking.py
@@ -76,6 +76,7 @@ from Configurables import SmearDigiTool,SiTrackerDigiAlg
 vxdtool = SmearDigiTool("VXD")
 vxdtool.ResolutionU = [0.005]
 vxdtool.ResolutionV = [0.005]
+vxdtool.EnergyThreshold = 0.00001 #GeV
 #vxdtool.OutputLevel = DEBUG
 
 digiVXD = SiTrackerDigiAlg("VXDDigi")
@@ -89,6 +90,7 @@ digiVXD.DigiTool = "SmearDigiTool/VXD"
 itkbtool = SmearDigiTool("ITKBarrel")
 itkbtool.ResolutionU = [0.008]
 itkbtool.ResolutionV = [0.040]
+itkbtool.EnergyThreshold = 0.00005 #GeV
 #itkbtool.OutputLevel = DEBUG
 
 digiITKB = SiTrackerDigiAlg("ITKBarrelDigi")
@@ -102,6 +104,7 @@ digiITKB.DigiTool = "SmearDigiTool/ITKBarrel"
 itketool = SmearDigiTool("ITKEndcap")
 itketool.ResolutionU = [0.008]
 itketool.ResolutionV = [0.040]
+itketool.EnergyThreshold = 0.00005 #GeV
 #itketool.OutputLevel = DEBUG
 
 digiITKE = SiTrackerDigiAlg("ITKEndcapDigi")
@@ -115,6 +118,7 @@ digiITKE.DigiTool = "SmearDigiTool/ITKEndcap"
 otkbtool = SmearDigiTool("OTKBarrel")
 otkbtool.ResolutionU = [0.010]
 otkbtool.ResolutionV = [1.000]
+otkbtool.EnergyThreshold = 0.00005 #GeV
 #otkbtool.OutputLevel = DEBUG
 
 digiOTKB = SiTrackerDigiAlg("OTKBarrelDigi")
@@ -128,6 +132,7 @@ digiOTKB.DigiTool = "SmearDigiTool/OTKBarrel"
 otketool = SmearDigiTool("OTKEndcap")
 otketool.ResolutionU = [0.010]
 otketool.ResolutionV = [1.000]
+otketool.EnergyThreshold = 0.00005 #GeV
 #otketool.OutputLevel = DEBUG
 
 digiOTKE = SiTrackerDigiAlg("OTKEndcapDigi")
@@ -273,7 +278,8 @@ full.OutputTracks  = "CompleteTracks" # default name
 full.FTDHitToTrackDistance = 5.
 full.SITHitToTrackDistance = 3.
 full.SETHitToTrackDistance = 5.
-full.ETDHitToTrackDistance = 15.
+#according to particle gun
+full.ETDHitToTrackDistance = 40.
 full.MinChi2ProbForSiliconTracks = 0
 full.MaxChi2PerHit = 200
 full.ForceSiTPCMerging = True
@@ -293,7 +299,7 @@ tpr = TrackParticleRelationAlg("Track2Particle")
 tpr.MCParticleCollection = "MCParticle"
 tpr.TrackList = ["CompleteTracks"]
 tpr.TrackerAssociationList = ["VXDTrackerHitAssociation", "ITKBarrelTrackerHitAssociation", "ITKEndcapTrackerHitAssociation",
-                              "OTKBarrelTrackerHitAssociation", "OTKEndcapTrackerHitAssociation"]
+                              "OTKBarrelTrackerHitAssociation", "OTKEndcapTrackerHitAssociation", "TPCTrackerHitAss"]
 #tpr.OutputLevel = DEBUG
 
 
diff --git a/Reconstruction/RecPFACyber/src/Objects/CaloUnit.cc b/Reconstruction/RecPFACyber/src/Objects/CaloUnit.cc
index aedb0e67..c815b695 100644
--- a/Reconstruction/RecPFACyber/src/Objects/CaloUnit.cc
+++ b/Reconstruction/RecPFACyber/src/Objects/CaloUnit.cc
@@ -13,13 +13,13 @@ namespace Cyber{
       if( module!=x->getModule() ) return false; 
       if( slayer==0){
         if(isAtLowerEdgeZ()){
-          if( ( ( getPosition().x()-x->getPosition().x() <= 2*ecal_endcap_barsize + 2*ecal_endcap_deadarea && getPosition().x()-x->getPosition().x()>1e-6)
+          if( ( ( getPosition().x()-x->getPosition().x() <= ecal_endcap_barsize + 2*ecal_endcap_deadarea && getPosition().x()-x->getPosition().x()>1e-6)
                 || ( x->getPosition().x()-getPosition().x() <= ecal_endcap_barsize + 1e-6 && x->getPosition().x()-getPosition().x()>1e-6) )
               && fabs(getPosition().y()-x->getPosition().y()) <= (getBarLength() + x->getBarLength())/2. + 2*ecal_endcap_deadarea + ecal_endcap_barsize) return true;
         }
         else if(isAtUpperEdgeZ()){
           if( ( (getPosition().x()-x->getPosition().x() <= ecal_endcap_barsize + 1e-6 && getPosition().x()-x->getPosition().x()>1e-6) 
-                || (x->getPosition().x()-getPosition().x() <= 2*ecal_endcap_barsize + 2*ecal_endcap_deadarea && x->getPosition().x()-getPosition().x()>1e-6) )
+                || (x->getPosition().x()-getPosition().x() <= ecal_endcap_barsize + 2*ecal_endcap_deadarea && x->getPosition().x()-getPosition().x()>1e-6) )
               && fabs(getPosition().y()-x->getPosition().y()) <= (getBarLength() + x->getBarLength())/2. + 2*ecal_endcap_deadarea + ecal_endcap_barsize) return true;
         }
         else{
@@ -29,13 +29,13 @@ namespace Cyber{
       } 
       if( slayer==1) {
         if(isAtLowerEdgePhi()){
-          if( ( (getPosition().y()-x->getPosition().y() <= 2*ecal_endcap_barsize + 2*ecal_endcap_deadarea && getPosition().y()-x->getPosition().y()>1e-6) 
+          if( ( (getPosition().y()-x->getPosition().y() <= ecal_endcap_barsize + 2*ecal_endcap_deadarea && getPosition().y()-x->getPosition().y()>1e-6) 
                 || ( x->getPosition().y()-getPosition().y() <= ecal_endcap_barsize + 1e-6 && x->getPosition().y()-getPosition().y()>1e-6) )
               && fabs(getPosition().x()-x->getPosition().x()) <= (getBarLength() + x->getBarLength())/2. + 2*ecal_endcap_deadarea + ecal_endcap_barsize) return true;
         }
         else if(isAtUpperEdgePhi()){
           if( ( (getPosition().y()-x->getPosition().y() <= ecal_endcap_barsize + 1e-6 && getPosition().y()-x->getPosition().y()>1e-6) 
-                || (x->getPosition().y()-getPosition().y() <= 2*ecal_endcap_barsize + 2*ecal_endcap_deadarea && x->getPosition().y()-getPosition().y()>1e-6) )
+                || (x->getPosition().y()-getPosition().y() <= ecal_endcap_barsize + 2*ecal_endcap_deadarea && x->getPosition().y()-getPosition().y()>1e-6) )
               && fabs(getPosition().x()-x->getPosition().x()) <= (getBarLength() + x->getBarLength())/2. + 2*ecal_endcap_deadarea + ecal_endcap_barsize) return true;
         }
         else{
diff --git a/Reconstruction/RecPFACyber/src/Tools/OutputCreator.cpp b/Reconstruction/RecPFACyber/src/Tools/OutputCreator.cpp
index 3016a262..f2943fd0 100644
--- a/Reconstruction/RecPFACyber/src/Tools/OutputCreator.cpp
+++ b/Reconstruction/RecPFACyber/src/Tools/OutputCreator.cpp
@@ -39,9 +39,18 @@ namespace Cyber{
       std::vector<const Track*> vec_trks = p_pfos[ip]->getTracks();
       std::vector<const Calo3DCluster*> vec_Ecalclus = p_pfos[ip]->getECALClusters();
       std::vector<const Calo3DCluster*> vec_Hcalclus = p_pfos[ip]->getHCALClusters();
-      double ecalcalib = vec_trks.size()==0 ? settings.map_floatPars.at("ECALNeutralCalib") : settings.map_floatPars.at("ECALChargedCalib");
+
+      double ecalcalib = 1.;
       double hcalcalib = vec_trks.size()==0 ? settings.map_floatPars.at("HCALNeutralCalib") : settings.map_floatPars.at("HCALChargedCalib");
 
+      //TODO: this is a calibration based on PID. May need to move this step into the algorithms. 
+      if(vec_trks.size()==0) ecalcalib = settings.map_floatPars.at("ECALNeutralCalib");
+      else{
+        //if( p_pfos[ip]->getTrackMomentum() < 15. || p_pfos[ip]->getECALClusterEnergy()*ecalcalib/p_pfos[ip]->getTrackMomentum() < 0.8 ) ecalcalib = settings.map_floatPars.at("ECALChargedCalib");
+        //else ecalcalib = settings.map_floatPars.at("ECALNeutralCalib");
+        ecalcalib = settings.map_floatPars.at("ECALChargedCalib");
+      }
+
       TVector3 vec_Pos(0.,0.,0.);
 
       //Write ECAL cluster
-- 
GitLab


From 89f52e773710eeaee5a5ecec9ee1a91a4b9cc245 Mon Sep 17 00:00:00 2001
From: Fangyi Guo <guofangyi@ihep.ac.cn>
Date: Wed, 12 Mar 2025 15:10:09 +0800
Subject: [PATCH 2/2] Debug: update E/p issue in charged PFO

---
 Reconstruction/RecPFACyber/src/Tools/OutputCreator.cpp | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/Reconstruction/RecPFACyber/src/Tools/OutputCreator.cpp b/Reconstruction/RecPFACyber/src/Tools/OutputCreator.cpp
index f2943fd0..8ae7e8a2 100644
--- a/Reconstruction/RecPFACyber/src/Tools/OutputCreator.cpp
+++ b/Reconstruction/RecPFACyber/src/Tools/OutputCreator.cpp
@@ -46,9 +46,8 @@ namespace Cyber{
       //TODO: this is a calibration based on PID. May need to move this step into the algorithms. 
       if(vec_trks.size()==0) ecalcalib = settings.map_floatPars.at("ECALNeutralCalib");
       else{
-        //if( p_pfos[ip]->getTrackMomentum() < 15. || p_pfos[ip]->getECALClusterEnergy()*ecalcalib/p_pfos[ip]->getTrackMomentum() < 0.8 ) ecalcalib = settings.map_floatPars.at("ECALChargedCalib");
-        //else ecalcalib = settings.map_floatPars.at("ECALNeutralCalib");
-        ecalcalib = settings.map_floatPars.at("ECALChargedCalib");
+        if( p_pfos[ip]->getTrackMomentum() < 15. || p_pfos[ip]->getECALClusterEnergy()*ecalcalib/p_pfos[ip]->getTrackMomentum() < 0.8 ) ecalcalib = settings.map_floatPars.at("ECALChargedCalib");
+        else ecalcalib = settings.map_floatPars.at("ECALNeutralCalib");
       }
 
       TVector3 vec_Pos(0.,0.,0.);
-- 
GitLab