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