Skip to content
Snippets Groups Projects
Commit 5b4118fc authored by Sebastian Tapia Araya's avatar Sebastian Tapia Araya Committed by Julien Maurer
Browse files

fix HIClusters content and HIflags

fix HIClusters content and HIflags
parent 27c72e3e
No related branches found
No related tags found
2 merge requests!656302023-09-06: merge of 23.0 into main,!65551fix HIClusters content and HIflags
......@@ -16,13 +16,13 @@ from AthenaCommon.Logging import logging
__log = logging.getLogger('HIJetRecConfigCA')
def HIClusterMakerCfg(flags, save=True, **kwargs):
def HIClusterMakerCfg(flags, save=False, **kwargs):
"""Function to equip HI cluster builder from towers and cells, adds to output AOD stream."""
acc = ComponentAccumulator()
kwargs.setdefault("CaloCellContainerKey", "AllCalo")
kwargs.setdefault("OutputContainerKey", flags.HeavyIon.Jet.ClusterKey)
kwargs.setdefault("OutputContainerKey", flags.HeavyIon.Jet.Internal.ClusterKey)
# get towers
from CaloRec.CaloRecoConfig import CaloRecoCfg
......@@ -48,8 +48,8 @@ def HIClusterMakerCfg(flags, save=True, **kwargs):
def HICaloJetInputConstitSeq(flags, name="HICaloConstit", **kwargs):
kwargs.setdefault("objtype", xAODType.CaloCluster)
kwargs.setdefault("modifiers", [])
kwargs.setdefault("inputname", flags.HeavyIon.Jet.ClusterKey)
kwargs.setdefault("outputname", flags.HeavyIon.Jet.ClusterKey)
kwargs.setdefault("inputname", flags.HeavyIon.Jet.Internal.ClusterKey)
kwargs.setdefault("outputname", flags.HeavyIon.Jet.Internal.ClusterKey)
kwargs.setdefault("label", "HI")
jetConstit = JetInputConstitSeq(name, **kwargs)
......@@ -103,9 +103,9 @@ def HIPseudoJetAlgCfg(flags, **kwargs):
"""Creates a pseudo jet algorithm"""
acc = ComponentAccumulator()
kwargs.setdefault("name", "pjcs"+flags.HeavyIon.Jet.ClusterKey)
kwargs.setdefault("InputContainer", flags.HeavyIon.Jet.ClusterKey)
kwargs.setdefault("OutputContainer", "PseudoJet"+flags.HeavyIon.Jet.ClusterKey)
kwargs.setdefault("name", "pjcs"+flags.HeavyIon.Jet.Internal.ClusterKey)
kwargs.setdefault("InputContainer", flags.HeavyIon.Jet.Internal.ClusterKey)
kwargs.setdefault("OutputContainer", "PseudoJet"+flags.HeavyIon.Jet.Internal.ClusterKey)
kwargs.setdefault("Label", "LCTopo")
kwargs.setdefault("SkipNegativeEnergy", False)
kwargs.setdefault("TreatNegativeEnergyAsGhost", True)
......@@ -136,7 +136,7 @@ def HIJetClustererCfg(flags, name="builder", jetDef=None, **kwargs):
kwargs.setdefault("JetRadius", jetDef.radius)
kwargs.setdefault("PtMin", jetDef.ptmin)
kwargs.setdefault("GhostArea", 0.01)
kwargs.setdefault("InputPseudoJets", "PseudoJet"+flags.HeavyIon.Jet.ClusterKey+"_GhostTracks")
kwargs.setdefault("InputPseudoJets", "PseudoJet"+flags.HeavyIon.Jet.Internal.ClusterKey+"_GhostTracks")
acc.setPrivateTools(CompFactory.JetClusterer(name, **kwargs))
return acc
......@@ -205,9 +205,9 @@ def updateStdJetModifier(flags, name, **kwargs):
stdJetModifiers.update(
HIJetAssoc=JetModifier("HIJetDRAssociationTool",
"HIJetDRAssociation",
ContainerKey=flags.HeavyIon.Jet.ClusterKey,
ContainerKey=flags.HeavyIon.Jet.Internal.ClusterKey,
DeltaR=0.8,
AssociationName=flags.HeavyIon.Jet.ClusterKey+"_DR8Assoc"))
AssociationName=flags.HeavyIon.Jet.Internal.ClusterKey+"_DR8Assoc"))
return
if name == "HIJetMaxOverMean":
......@@ -405,7 +405,7 @@ def HIEventShapeJetIterationCfg(flags, suffix=None, useClusters=True, **kwargs):
map_tool = acc.popToolsAndMerge(HIEventShapeMapToolCfg(flags))
kwargs.setdefault("EventShapeMapTool", map_tool)
kwargs.setdefault("OutputEventShapeKey", out_shape_name)
kwargs.setdefault("AssociationKey", flags.HeavyIon.Jet.ClusterKey+"_DR8Assoc")
kwargs.setdefault("AssociationKey", flags.HeavyIon.Jet.Internal.ClusterKey+"_DR8Assoc")
kwargs.setdefault("ModulationScheme", 1)
kwargs.setdefault("RemodulateUE", True)
kwargs.setdefault("ShallowCopy", False)
......@@ -482,7 +482,7 @@ def HISubtractionToClustersCfg(flags, name="HIClusterSubtraction", useClusters=T
acc = ComponentAccumulator()
kwargs.setdefault('EventShapeKey', 'EventShapeKey')
kwargs.setdefault('ClusterKey', flags.HeavyIon.Jet.ClusterKey)
kwargs.setdefault('ClusterKey', flags.HeavyIon.Jet.Internal.ClusterKey)
kwargs.setdefault('OutClusterKey', 'ClusterKey_deep')
kwargs.setdefault('UpdateOnly', False)
kwargs.setdefault('ApplyOriginCorrection', True)
......@@ -517,7 +517,7 @@ def HIJetRecCfg(flags):
acc.merge(HIEventShapeMakerCfg(flags,
name="HIEventShapeMaker_Weighted",
doWeighted=True,
InputTowerKey=flags.HeavyIon.Jet.ClusterKey,
InputTowerKey=flags.HeavyIon.Jet.Internal.ClusterKey,
OutputContainerKey=eventshapeKey))
# get jet definition
......@@ -544,12 +544,12 @@ def HIJetRecCfg(flags):
## merge between PJHICluster and PJTracks
pjContNames = ["PseudoJet"+flags.HeavyIon.Jet.ClusterKey,pseudoGhostTrks]
pjContNames = ["PseudoJet"+flags.HeavyIon.Jet.Internal.ClusterKey,pseudoGhostTrks]
mergeAlg = CompFactory.PseudoJetMerger(
"PJmerge_HIGhostTrack",
InputPJContainers = pjContNames,
OutputContainer = "PseudoJet"+flags.HeavyIon.Jet.ClusterKey+"_GhostTracks"
OutputContainer = "PseudoJet"+flags.HeavyIon.Jet.Internal.ClusterKey+"_GhostTracks"
)
acc.addEventAlgo(mergeAlg)
......@@ -625,7 +625,7 @@ def HIJetRecCfg(flags):
acc.addEventAlgo(CompFactory.JetAlgorithm("jetalgHI_iter1_egamma", Tools=[iter1_eg]))
# constituents subtraction for egamma, cell-level
cluster_key_eGamma_deep = flags.HeavyIon.Jet.ClusterKey+"_eGamma_deep"
cluster_key_eGamma_deep = flags.HeavyIon.Jet.Internal.ClusterKey+"_eGamma_deep"
subtrToCelltool = acc.popToolsAndMerge(
HISubtractionToCellsCfg(flags,
name="HIClusterSubtraction_egamma",
......@@ -642,13 +642,12 @@ def HIJetRecCfg(flags):
updateStdJetModifier(flags, "subtr1", **jm_dict1)
# constituents subtraction for jets, tower-level
cluster_key_final_deep = cluster_key_eGamma_deep+"_Cluster_deep"
subtrToClusterTool = acc.popToolsAndMerge(
HISubtractionToClustersCfg(flags,
name="HIClusterSubtraction_final",
EventShapeKey=jm_dict1["EventShapeKey"],
ClusterKey=cluster_key_eGamma_deep,
OutClusterKey=cluster_key_final_deep,
OutClusterKey=flags.HeavyIon.Jet.ClusterKey,
Modulator=jm_dict1["Modulator"],
EventShapeMapTool=jm_dict1["EventShapeMapTool"],
ApplyOriginCorrection=False)
......@@ -658,9 +657,16 @@ def HIJetRecCfg(flags):
# jet modifier from the tower-level subtraction
updateStdJetModifier(flags, "consmod",
ClusterKey=cluster_key_final_deep,
ClusterKey=flags.HeavyIon.Jet.ClusterKey,
Subtractor=jm_dict1["Subtractor"])
# store final version of HIClusters
if flags.HeavyIon.Jet.WriteHIClusters:
output_hicluster = ["xAOD::CaloClusterContainer#"+flags.HeavyIon.Jet.ClusterKey,
"xAOD::CaloClusterAuxContainer#"+flags.HeavyIon.Jet.ClusterKey+"Aux."]
acc.merge(addToESD(flags, output_hicluster))
acc.merge(addToAOD(flags, output_hicluster))
# configure final jets and store them
extramods = ["Sort","Width","CaloEnergies","LArHVCorr","CaloQuality","TrackMoments","JVF","JVT"]# adding modifiers to final jets
for jd in jetDef:
......
......@@ -129,7 +129,7 @@ int HIClusterSubtraction::execute() const
const auto *originalCluster = readHandleClusters.cptr();
// Create the new container and its auxiliary store.
xAOD::CaloClusterContainer* copyClusters = new xAOD::CaloClusterContainer();
xAOD::AuxContainerBase* copyClustersAux = new xAOD::AuxContainerBase();
xAOD::CaloClusterAuxContainer* copyClustersAux = new xAOD::CaloClusterAuxContainer();
copyClusters->setStore(copyClustersAux);
copyClusters->reserve (originalCluster->size());
......@@ -195,7 +195,7 @@ int HIClusterSubtraction::execute() const
// Make sure that memory is managed safely
std::unique_ptr<xAOD::CaloClusterContainer> outClusters(copyClusters);
std::unique_ptr<xAOD::AuxContainerBase> deepAux(copyClustersAux);
std::unique_ptr<xAOD::CaloClusterAuxContainer> deepAux(copyClustersAux);
if(writeHandleDeepCopyClusters.record ( std::move(outClusters), std::move(deepAux)).isFailure() ){
ATH_MSG_ERROR("Unable to write DeepCopy Copy containers for subtracted clusters with key: " << m_outClusterKey.key());
......
......@@ -34,20 +34,9 @@ def HIPmode(flags):
flags.HeavyIon.Jet.TrackJetPtMin=4000
def UPCmode(flags):
flags.Reco.EnableHI=True
flags.Reco.EnableTau=True
flags.Reco.EnableJet=True
flags.Jet.WriteToAOD=True # this is to save "standard" jets and btagging to xAOD
flags.Reco.EnableMet=True
flags.MET.WritetoAOD=True
flags.Reco.EnableCaloRinger=False
flags.Reco.EnableBTagging=True
flags.Tracking.doUPC=True # only UPC
flags.Egamma.doLowMu=True # only UPC
flags.Tracking.doTrackSegmentsPixel=True #only UPC
flags.HeavyIon.Egamma.doSubtractedClusters=False
flags.HeavyIon.Jet.ApplyTowerEtaPhiCorrection=False
flags.HeavyIon.Jet.HarmonicsForSubtraction=[]
flags.HeavyIon.Jet.SeedPtMin=8000
flags.HeavyIon.Jet.RecoOutputPtMin=8000
flags.HeavyIon.Jet.TrackJetPtMin=4000
HIPmode(flags)
#UPC dedicated flags
flags.Tracking.doUPC=True
flags.Egamma.doLowMu=True
flags.Tracking.doTrackSegmentsPixel=True
flags.HeavyIon.Jet.WriteHIClusters = False
......@@ -19,6 +19,8 @@ def createHIRecConfigFlags():
flags.addFlag("HeavyIon.Jet.TrackJetPtMin", 7000)
flags.addFlag("HeavyIon.Jet.HIClusterGeoWeightFile", "auto")
flags.addFlag("HeavyIon.Jet.ClusterKey", "HIClusters")
flags.addFlag("HeavyIon.Jet.Internal.ClusterKey", "HIClusters_temp")
flags.addFlag("HeavyIon.Jet.WriteHIClusters", True)
flags.addFlag("HeavyIon.Egamma.doSubtractedClusters", lambda prevFlags: prevFlags.Reco.EnableHI)
flags.addFlag("HeavyIon.Egamma.EventShape", "HIEventShape_iter_egamma")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment