diff --git a/Reconstruction/eflowRec/eflowRec/PFCellLevelSubtractionTool.h b/Reconstruction/eflowRec/eflowRec/PFCellLevelSubtractionTool.h index 3151ebecf123fc32622239dc5d9332fcbcddb264..531e243d3acc978429589495afadf1b045003b7e 100644 --- a/Reconstruction/eflowRec/eflowRec/PFCellLevelSubtractionTool.h +++ b/Reconstruction/eflowRec/eflowRec/PFCellLevelSubtractionTool.h @@ -68,7 +68,7 @@ public: ToolHandle<IEFlowCellEOverPTool> m_theEOverPTool{this,"eflowCellEOverPTool","eflowCellEOverPTool","Energy Flow E/P Values and Shower Paremeters Tool"}; /** Parameter that controls whether to use retain remaining calorimeter energy in track-cluster system, after charged shower subtraction */ - Gaudi::Property<double> m_subtractionSigmaCut{this,"SubtractionSigmaCut",1.2,"Parameter that controls whether to use retain remaining calorimeter energy in track-cluster system, after charged shower subtraction"}; + Gaudi::Property<double> m_subtractionSigmaCut{this,"SubtractionSigmaCut",1.5,"Parameter that controls whether to use retain remaining calorimeter energy in track-cluster system, after charged shower subtraction"}; /** Parameter that controls whether a track, in a track-cluster system, will be processed by the split shower recovery algorithm */ Gaudi::Property<double> m_consistencySigmaCut{this,"ConsistencySigmaCut",1.0,"Parameter that controls whether a track, in a track-cluster system, will be processed by the split shower recovery algorithm"}; diff --git a/Reconstruction/eflowRec/share/PFlowMTConfig.py b/Reconstruction/eflowRec/share/PFlowMTConfig.py index 06d50a810351f3411c8958f2a98eaa220aeffba4..23ec2f8d586b6e7c444cd9462ad83a1ef434c029 100644 --- a/Reconstruction/eflowRec/share/PFlowMTConfig.py +++ b/Reconstruction/eflowRec/share/PFlowMTConfig.py @@ -91,7 +91,7 @@ MatchingTool_Recover.TrackPositionType = 'EM2EtaPhi' # str MatchingTool_Recover.ClusterPositionType = 'PlainEtaPhi' # str MatchingTool_Recover.DistanceType = 'EtaPhiSquareDistance' # str MatchingTool_Recover.MatchCut = 0.2*0.2 # float -PFRecoverSplitShowersTool.PFTrackClusterMatchingTool = MatchingTool +PFRecoverSplitShowersTool.PFTrackClusterMatchingTool = MatchingTool_Recover PFAlgorithm.SubtractionToolList += [PFRecoverSplitShowersTool] diff --git a/Reconstruction/eflowRec/share/run_ESDMT.py b/Reconstruction/eflowRec/share/run_ESDMT.py new file mode 100644 index 0000000000000000000000000000000000000000..abfaaebfbdb9e4645e9e27dd05cbdb2d6612efb0 --- /dev/null +++ b/Reconstruction/eflowRec/share/run_ESDMT.py @@ -0,0 +1,59 @@ +from AthenaCommon.AthenaCommonFlags import athenaCommonFlags +athenaCommonFlags.FilesInput=["/data/hodgkinson/scratchFiles/mc15_13TeV.361022.Pythia8EvtGen_A14NNPDF23LO_jetjet_JZ2W.recon.ESD.e3668_s2832_r7968/ESD.08355655._001904.pool.root.1"] + + +doDumpProperties=True + +from RecExConfig.RecAlgsFlags import recAlgs +recAlgs.doEFlow.set_Value_and_Lock(True) + +from RecExConfig.RecFlags import rec +rec.doEgamma.set_Value_and_Lock(False) +rec.doMuon.set_Value_and_Lock(False) + +#change some calo flags +from CaloRec.CaloRecFlags import jobproperties +jobproperties.CaloRecFlags.Enabled.set_Value_and_Lock(True) +jobproperties.CaloRecFlags.doCaloCluster.set_Value_and_Lock(True) +jobproperties.CaloRecFlags.doEmCluster.set_Value_and_Lock(False) +jobproperties.CaloRecFlags.doCaloTopoCluster.set_Value_and_Lock(True) + +#this turns off CaloCluster2xAOD +rec.doWritexAOD.set_Value_and_Lock(False) +#nothing to say on these +rec.doWriteTAG.set_Value_and_Lock(False) +rec.doTruth.set_Value_and_Lock(False) +rec.doAODCaloCells.set_Value_and_Lock(False) +rec.doTrigger.set_Value_and_Lock(False) +#Turns off xAODRingSetConfWriter +rec.doCaloRinger.set_Value_and_Lock(False) + +#disables VertexCnvAlg +from InDetRecExample.InDetJobProperties import jobproperties +jobproperties.InDetJobProperties.doxAOD.set_Value_and_Lock(False) +#Disables AllExecutedEvents +rec.doFileMetaData.set_Value_and_Lock(False) + +athenaCommonFlags.EvtMax=1 +include ("RecExCommon/RecExCommon_topOptions.py") +topSequence.CaloTopoCluster.ClustersOutputName="CaloCalTopoClusterV2" +#topSequence.eflowEMCaloObjectBuilder.CalClustersName="CaloCalTopoClusterV2" +topSequence.PFClusterSelector.calClustersName="CaloCalTopoClusterV2" +topSequence.PFOChargedCreatorAlgorithm.PFOOutputName="JetETMissChargedParticleFlowObjectsV2" +#topSequence.PFOChargedCreatorAlgorithm.OutputLevel=DEBUG +topSequence.PFONeutralCreatorAlgorithm.PFOOutputName="JetETMissNeutralParticleFlowObjectsV2" +#topSequence.PFONeutralCreatorAlgorithm.OutputLevel=DEBUG +#topSequence.PFTrackSelector.OutputLevel=DEBUG +#topSequence.PFLeptonSelector.OutputLevel=DEBUG +#topSequence.PFAlgorithm.OutputLevel=DEBUG +#ServiceMgr.MessageSvc.debugLimit = 1000000 +import AthenaCommon.PropertiesManip as manip +manip.removeItemsFromList(StreamAOD,'ItemList','xAOD::PFOContainer#JetETMissChargedParticleFlowObjects') +manip.removeItemsFromList(StreamAOD,'ItemList','xAOD::PFOAuxContainer#JetETMissChargedParticleFlowObjectsAux.') +manip.removeItemsFromList(StreamAOD,'ItemList','xAOD::PFOContainer#JetETMissNeutralParticleFlowObjects') +manip.removeItemsFromList(StreamAOD,'ItemList','xAOD::PFOAuxContainer#JetETMissNeutralParticleFlowObjectsAux.') +manip.appendItemsToList(StreamAOD,'ItemList','xAOD::PFOContainer#JetETMissChargedParticleFlowObjectsV2') +manip.appendItemsToList(StreamAOD,'ItemList','xAOD::PFOAuxContainer#JetETMissChargedParticleFlowObjectsV2Aux.') +manip.appendItemsToList(StreamAOD,'ItemList','xAOD::PFOContainer#JetETMissNeutralParticleFlowObjectsV2') +manip.appendItemsToList(StreamAOD,'ItemList','xAOD::PFOAuxContainer#JetETMissNeutralParticleFlowObjectsV2Aux.') + diff --git a/Reconstruction/eflowRec/share/run_ESDSerial.py b/Reconstruction/eflowRec/share/run_ESDSerial.py new file mode 100644 index 0000000000000000000000000000000000000000..3d253ac9e1bf5ee0c53f013ba71054842d2d134e --- /dev/null +++ b/Reconstruction/eflowRec/share/run_ESDSerial.py @@ -0,0 +1,58 @@ +from AthenaCommon.AthenaCommonFlags import athenaCommonFlags +athenaCommonFlags.FilesInput=["/data/hodgkinson/scratchFiles/mc15_13TeV.361022.Pythia8EvtGen_A14NNPDF23LO_jetjet_JZ2W.recon.ESD.e3668_s2832_r7968/ESD.08355655._001904.pool.root.1"] + +doDumpProperties=True + +from RecExConfig.RecAlgsFlags import recAlgs +recAlgs.doEFlow.set_Value_and_Lock(True) + +from RecExConfig.RecFlags import rec +rec.doEgamma.set_Value_and_Lock(False) +rec.doMuon.set_Value_and_Lock(False) + +#change some calo flags +from CaloRec.CaloRecFlags import jobproperties +jobproperties.CaloRecFlags.Enabled.set_Value_and_Lock(True) +jobproperties.CaloRecFlags.doCaloCluster.set_Value_and_Lock(True) +jobproperties.CaloRecFlags.doEmCluster.set_Value_and_Lock(False) +jobproperties.CaloRecFlags.doCaloTopoCluster.set_Value_and_Lock(True) + +#this turns off CaloCluster2xAOD +rec.doWritexAOD.set_Value_and_Lock(False) +#nothing to say on these +rec.doWriteTAG.set_Value_and_Lock(False) +rec.doTruth.set_Value_and_Lock(False) +rec.doAODCaloCells.set_Value_and_Lock(False) +rec.doTrigger.set_Value_and_Lock(False) +#Turns off xAODRingSetConfWriter +rec.doCaloRinger.set_Value_and_Lock(False) + +#disables VertexCnvAlg +from InDetRecExample.InDetJobProperties import jobproperties +jobproperties.InDetJobProperties.doxAOD.set_Value_and_Lock(False) +#Disables AllExecutedEvents +rec.doFileMetaData.set_Value_and_Lock(False) + +athenaCommonFlags.EvtMax=1 +include ("RecExCommon/RecExCommon_topOptions.py") +topSequence.CaloTopoCluster.ClustersOutputName="CaloCalTopoClusterV2" +topSequence.eflowEMCaloObjectBuilder.CalClustersName="CaloCalTopoClusterV2" +#topSequence.eflowObjectBuilder_EM.OutputLevel=DEBUG +#topSequence.eflowCaloObjectBuilder_EM.OutputLevel=DEBUG +#topSequence.eflowEMCaloObjectBuilder.OutputLevel=DEBUG +eflowObjectCreatorTool_update = topSequence.eflowObjectBuilder_EM.PrivateToolList[2] +eflowObjectCreatorTool_update.PFOOutputName="JetETMissV2" +topSequence.eflowVertextInformationSetter_EM.PFOInputName="JetETMissV2NeutralParticleFlowObjects" +topSequence.eflowOverlapRemoval_EM.PFOInputName="JetETMissV2NeutralParticleFlowObjects" + +import AthenaCommon.PropertiesManip as manip +manip.removeItemsFromList(StreamAOD,'ItemList','xAOD::PFOContainer#JetETMissChargedParticleFlowObjects') +manip.removeItemsFromList(StreamAOD,'ItemList','xAOD::PFOAuxContainer#JetETMissChargedParticleFlowObjectsAux.') +manip.removeItemsFromList(StreamAOD,'ItemList','xAOD::PFOContainer#JetETMissNeutralParticleFlowObjects') +manip.removeItemsFromList(StreamAOD,'ItemList','xAOD::PFOAuxContainer#JetETMissNeutralParticleFlowObjectsAux.') +manip.appendItemsToList(StreamAOD,'ItemList','xAOD::PFOContainer#JetETMissV2ChargedParticleFlowObjects') +manip.appendItemsToList(StreamAOD,'ItemList','xAOD::PFOAuxContainer#JetETMissV2ChargedParticleFlowObjectsAux.') +manip.appendItemsToList(StreamAOD,'ItemList','xAOD::PFOContainer#JetETMissV2NeutralParticleFlowObjects') +manip.appendItemsToList(StreamAOD,'ItemList','xAOD::PFOAuxContainer#JetETMissV2NeutralParticleFlowObjectsAux.') + +#ServiceMgr.MessageSvc.debugLimit = 1000000 diff --git a/Reconstruction/eflowRec/src/PFRecoverSplitShowersTool.cxx b/Reconstruction/eflowRec/src/PFRecoverSplitShowersTool.cxx index e6fd11aa7844370c3780a8ae10c46ea48f556f60..2954be3bb81480646728b25c865f55debb0c6ca7 100644 --- a/Reconstruction/eflowRec/src/PFRecoverSplitShowersTool.cxx +++ b/Reconstruction/eflowRec/src/PFRecoverSplitShowersTool.cxx @@ -178,6 +178,11 @@ int PFRecoverSplitShowersTool::matchAndCreateEflowCaloObj() { } /* Get list of matched clusters */ std::vector<eflowRecCluster*> matchedClusters = m_matchingTool->doMatches(thisEfRecTrack, m_clustersToConsider, -1); + + if (msgLvl(MSG::DEBUG)){ + for (auto thisEFRecCluster : matchedClusters) ATH_MSG_DEBUG("Have matched cluster with e, eta, phi of " << thisEFRecCluster->getCluster()->e() << ", " << thisEFRecCluster->getCluster()->eta() << " and " << thisEFRecCluster->getCluster()->phi()); + } + if (matchedClusters.empty()) { continue; } m_nTrackClusterMatches += matchedClusters.size();