diff --git a/Event/EventOverlay/OverlayMonitoringRTT/test/OverlayMonitoringRTT_TestConfiguration.xml b/Event/EventOverlay/OverlayMonitoringRTT/test/OverlayMonitoringRTT_TestConfiguration.xml index 291ae88068815f985e45efef0970e4cbb909585b..a1818eef1c0eb519423b5df8985a47a1b34a14fc 100644 --- a/Event/EventOverlay/OverlayMonitoringRTT/test/OverlayMonitoringRTT_TestConfiguration.xml +++ b/Event/EventOverlay/OverlayMonitoringRTT/test/OverlayMonitoringRTT_TestConfiguration.xml @@ -19,7 +19,7 @@ <doc></doc> <jobTransformJobName>MC15_2016_Legacy_OverlayChain_tf</jobTransformJobName> <jobTransformCmd> - OverlayChain_tf.py --inputZeroBiasBSFile /afs/cern.ch/work/t/tkharlam/public/mc15_valid.00200010.overlay_streamsAll_2016_pp_1.skim.DRAW.r8381/DRAW.09331084._000146.pool.root.1 --DataRunNumber 2015 --inputEVNTFile /afs/cern.ch/work/t/tkharlam/public/overlay_RTT/mc16_13TeV.361107.PowhegPythia8EvtGen_AZNLOCTEQ6L1_Zmumu.merge.EVNT.e3601_e5984/EVNT.12228944._002158.pool.root.1 --outputRDOFile testRTT.RDO.pool.root --outputHITSFile testRTT.HITS.pool.root --triggerBit 240 --skipEvents 0 --maxEvents 10 --randomSeed 123456789 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag CONDBR2-BLKPA-2016-12 --digiSeedOffset1=211 --digiSeedOffset2=122 --samplingFractionDbTag FTFP_BERT_BIRK --fSampltag LARElecCalibMCfSampl-G496-19213- --preInclude 'sim:EventOverlayJobTransforms/custom.py,EventOverlayJobTransforms/magfield.py' 'overlayBS:EventOverlayJobTransforms/custom.py' --preExec 'from LArROD.LArRODFlags import larRODFlags;larRODFlags.nSamples.set_Value_and_Lock(4);from LArConditionsCommon.LArCondFlags import larCondFlags; larCondFlags.OFCShapeFolder.set_Value_and_Lock("4samples1phase")' --postInclude 'sim:EventOverlayJobTransforms/Rt_override_CONDBR2-BLKPA-2015-12.py,EventOverlayJobTransforms/muAlign.py,EventOverlayJobTransforms/g4runnumber.py' 'overlayBS:EventOverlayJobTransforms/Rt_override_CONDBR2-BLKPA-2015-12.py' --ignorePatterns "L1TopoMenuLoader.+ERROR." + OverlayChain_tf.py --inputZeroBiasBSFile /afs/cern.ch/work/t/tkharlam/public/mc15_valid.00200010.overlay_streamsAll_2016_pp_1.skim.DRAW.r8381/DRAW.09331084._000146.pool.root.1 --DataRunNumber 2015 --inputEVNTFile /afs/cern.ch/work/t/tkharlam/public/overlay_RTT/mc15_13TeV.147407.PowhegPythia8_AZNLO_Zmumu.evgen.EVNT.e4032/EVNT.05685490._000002.pool.root.1 --outputRDOFile testRTT.RDO.pool.root --outputHITSFile testRTT.HITS.pool.root --triggerBit 240 --skipEvents 0 --maxEvents 10 --randomSeed 123456789 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag CONDBR2-BLKPA-2016-12 --digiSeedOffset1=211 --digiSeedOffset2=122 --samplingFractionDbTag FTFP_BERT_BIRK --fSampltag LARElecCalibMCfSampl-G496-19213- --preInclude 'sim:EventOverlayJobTransforms/custom.py,EventOverlayJobTransforms/magfield.py' 'overlayBS:EventOverlayJobTransforms/custom.py' --preExec 'from LArROD.LArRODFlags import larRODFlags;larRODFlags.nSamples.set_Value_and_Lock(4);from LArConditionsCommon.LArCondFlags import larCondFlags; larCondFlags.OFCShapeFolder.set_Value_and_Lock("4samples1phase")' --postInclude 'sim:EventOverlayJobTransforms/Rt_override_CONDBR2-BLKPA-2015-12.py,EventOverlayJobTransforms/muAlign.py,EventOverlayJobTransforms/g4runnumber.py' 'overlayBS:EventOverlayJobTransforms/Rt_override_CONDBR2-BLKPA-2015-12.py' --ignorePatterns "L1TopoMenuLoader.+ERROR." </jobTransformCmd> <group>Overlay_JobTransforms</group> <queue>long</queue> diff --git a/Event/EventOverlay/OverlayMonitoringRTT/test/test_BSFilter.sh b/Event/EventOverlay/OverlayMonitoringRTT/test/test_BSFilter.sh deleted file mode 100644 index 3b8460a1cbf7f01b1c293e4206310ae91cd9bfa5..0000000000000000000000000000000000000000 --- a/Event/EventOverlay/OverlayMonitoringRTT/test/test_BSFilter.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -# art-description: BSOverlayFilter_tf legacy test -# art-type: grid -# art-ci: 21.0 - -# art-output: trigs_tar.txt -# art-output: log.* -# art-output: mem.summary.* -# art-output: mem.full.* - -BSOverlayFilter_tf.py --jobNumber 23 --inputBSCONFIGFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/OverlayMonitoringRTT/test23.tar --inputFileValidation False --outputBS_TRIGSKIMFile trigskim.RAW --triggerBit 240 --inputFilterFile trigs_tar.txt -JOBSTATUS_1=$? - -echo "art-result: [${JOBSTATUS_1}]" - -rm -f *.RAW - -grep 'Events processed: 625' log.BSFilter -grep 'number of events written: 400' log.BSFilter -grep 'leaving with code 0' log.BSFilter - diff --git a/Event/EventOverlay/OverlayMonitoringRTT/test/test_DataOverlayMC16.sh b/Event/EventOverlay/OverlayMonitoringRTT/test/test_DataOverlayMC16.sh index 3d24d7d2954eca6f480dafb06a315a8b724e84b7..5f701c007f3292d9211092c98d80645265419679 100755 --- a/Event/EventOverlay/OverlayMonitoringRTT/test/test_DataOverlayMC16.sh +++ b/Event/EventOverlay/OverlayMonitoringRTT/test/test_DataOverlayMC16.sh @@ -4,17 +4,9 @@ # art-type: grid # art-ci: 21.0 -# art-output: *.root -# art-output: log.* -# art-output: mem.summary.* -# art-output: mem.full.* -# art-output: runargs.* - -OverlayChain_tf.py --inputZeroBiasBSFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/OverlayMonitoringRTT/mc15_valid.00200010.overlay_streamsAll_2016_pp_1.skim.DRAW.r8381/DRAW.09331084._000146.pool.root.1 --DataRunNumber 2015 --inputEVNTFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/OverlayMonitoringRTT/mc16_13TeV.361107.PowhegPythia8EvtGen_AZNLOCTEQ6L1_Zmumu.merge.EVNT.e3601_e5984/EVNT.12228944._002158.pool.root.1 --outputRDOFile testRTT.RDO.pool.root --outputHITSFile testRTT.HITS.pool.root --triggerBit 240 --skipEvents 0 --maxEvents 10 --randomSeed 123456789 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag CONDBR2-BLKPA-2016-12 --digiSeedOffset1=211 --digiSeedOffset2=122 --samplingFractionDbTag FTFP_BERT_BIRK --fSampltag LARElecCalibMCfSampl-G496-19213- --preInclude 'sim:EventOverlayJobTransforms/custom.py,EventOverlayJobTransforms/magfield.py' 'overlayBS:EventOverlayJobTransforms/custom.py' --preExec 'from LArROD.LArRODFlags import larRODFlags;larRODFlags.nSamples.set_Value_and_Lock(4);from LArConditionsCommon.LArCondFlags import larCondFlags; larCondFlags.OFCShapeFolder.set_Value_and_Lock("4samples1phase")' --postInclude 'sim:EventOverlayJobTransforms/Rt_override_CONDBR2-BLKPA-2015-12.py,EventOverlayJobTransforms/muAlign.py,EventOverlayJobTransforms/g4runnumber.py' 'overlayBS:EventOverlayJobTransforms/Rt_override_CONDBR2-BLKPA-2015-12.py' --ignorePatterns "L1TopoMenuLoader.+ERROR." -JOBSTATUS_1=$? +OverlayChain_tf.py --inputZeroBiasBSFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/OverlayMonitoringRTT/mc15_valid.00200010.overlay_streamsAll_2016_pp_1.skim.DRAW.r8381/DRAW.09331084._000146.pool.root.1 --DataRunNumber 2015 --inputEVNTFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/OverlayMonitoringRTT/mc15_13TeV.147407.PowhegPythia8_AZNLO_Zmumu.evgen.EVNT.e4032/EVNT.05685490._000002.pool.root.1 --outputRDOFile testRTT.RDO.pool.root --outputHITSFile testRTT.HITS.pool.root --triggerBit 240 --skipEvents 0 --maxEvents 10 --randomSeed 123456789 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag CONDBR2-BLKPA-2016-12 --digiSeedOffset1=211 --digiSeedOffset2=122 --samplingFractionDbTag FTFP_BERT_BIRK --fSampltag LARElecCalibMCfSampl-G496-19213- --preInclude 'sim:EventOverlayJobTransforms/custom.py,EventOverlayJobTransforms/magfield.py' 'overlayBS:EventOverlayJobTransforms/custom.py' --preExec 'from LArROD.LArRODFlags import larRODFlags;larRODFlags.nSamples.set_Value_and_Lock(4);from LArConditionsCommon.LArCondFlags import larCondFlags; larCondFlags.OFCShapeFolder.set_Value_and_Lock("4samples1phase")' --postInclude 'sim:EventOverlayJobTransforms/Rt_override_CONDBR2-BLKPA-2015-12.py,EventOverlayJobTransforms/muAlign.py,EventOverlayJobTransforms/g4runnumber.py' 'overlayBS:EventOverlayJobTransforms/Rt_override_CONDBR2-BLKPA-2015-12.py' --ignorePatterns "L1TopoMenuLoader.+ERROR." Reco_tf.py --inputRDOFile testRTT.RDO.pool.root --outputESDFile testRTT.ESD.pool.root --outputAODFile testRTT.AOD.pool.root --preInclude 'EventOverlayJobTransforms/custom.py,EventOverlayJobTransforms/recotrfpre.py' --postInclude 'r2e:EventOverlayJobTransforms/Rt_override_CONDBR2-BLKPA-2015-12.py,EventOverlayJobTransforms/muAlign_reco.py' --preExec 'from LArConditionsCommon.LArCondFlags import larCondFlags;larCondFlags.OFCShapeFolder.set_Value_and_Lock("4samples1phase");rec.doTrigger=False;' --ignorePatterns "L1TopoMenuLoader.+ERROR." --postExec 'r2e:from LArCellRec.LArCellRecConf import LArCellBuilderFromLArRawChannelTool;LArCellBuilderFromLArRawChannelTool.RawChannelsName="LArRawChannels_FromDigits"' -JOBSTATUS_2=$? SCRIPT_DIRECTORY=$1 PACKAGE=$2 @@ -25,7 +17,4 @@ PROJECT=$6 PLATFORM=$7 NIGHTLY_TAG=$8 -art.py compare grid $NIGHTLY_RELEASE $PROJECT $PLATFORM $NIGHTLY_TAG $PACKAGE $TEST_NAME testRTT.HITS.pool.root testRTT.RDO.pool.root testRTT.ESD.pool.root -JOBSTATUS_3=$? - -echo "art-result: [${JOBSTATUS_1}, ${JOBSTATUS_2}, ${JOBSTATUS_3}]" +#art.py compare grid $NIGHTLY_RELEASE $PROJECT $PLATFORM $NIGHTLY_TAG $PACKAGE $TEST_NAME testRTT.HITS.pool.root testRTT.RDO.pool.root testRTT.ESD.pool.root \ No newline at end of file diff --git a/Event/EventOverlay/OverlayMonitoringRTT/test/test_MCOverlayMC16.sh b/Event/EventOverlay/OverlayMonitoringRTT/test/test_MCOverlayMC16.sh deleted file mode 100644 index 73b8289a6ef799e80fc930ae0431c5a8b9194d44..0000000000000000000000000000000000000000 --- a/Event/EventOverlay/OverlayMonitoringRTT/test/test_MCOverlayMC16.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh - -# art-description: OverlayTrf for data16. -# art-type: grid -# art-ci: 21.0 - -# art-output: *.root -# art-output: log.* -# art-output: mem.summary.* -# art-output: mem.full.* -# art-output: runargs.* - -OverlayPool_tf.py --inputHITSFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/OverlayMonitoringRTT/mc16_13TeV.424000.ParticleGun_single_mu_Pt100.simul.HITS.e3580_s3126/HITS.11330296._000376.pool.root.1 --inputRDO_BKGFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/OverlayMonitoringRTT/user.tkharlam.PileupPremixing.r21.0.22.159000.ParticleGenerator_nu_E50.pileup.mc16a_caseA_EXT0/user.tkharlam.11805093.EXT0._000346.RDO.pool.root --outputRDOFile MC_plus_MC.RDO.pool.root --maxEvents 20 --skipEvents 10 --digiSeedOffset1 511 --digiSeedOffset2 727 --conditionsTag OFLCOND-MC16-SDR-14 --geometryVersion ATLAS-R2-2016-01-00-01 --triggerConfig 'OverlayPool=NONE' --postExec 'ServiceMgr.TGCcablingServerSvc.forcedUse=True' --preExec 'from LArROD.LArRODFlags import larRODFlags;larRODFlags.NumberOfCollisions.set_Value_and_Lock(20);larRODFlags.nSamples.set_Value_and_Lock(4);larRODFlags.doOFCPileupOptimization.set_Value_and_Lock(True);larRODFlags.firstSample.set_Value_and_Lock(0);larRODFlags.useHighestGainAutoCorr.set_Value_and_Lock(True)' -JOBSTATUS_1=$? - - Reco_tf.py --inputRDOFile MC_plus_MC.RDO.pool.root --outputESDFile MC_plus_MC.ESD.pool.root --outputAODFile MC_plus_MC.AOD.pool.root --maxEvents -1 --skipEvents 0 --autoConfiguration everything --preExec 'rec.doTrigger=False;from LArROD.LArRODFlags import larRODFlags;larRODFlags.NumberOfCollisions.set_Value_and_Lock(20);larRODFlags.nSamples.set_Value_and_Lock(4);larRODFlags.doOFCPileupOptimization.set_Value_and_Lock(True);larRODFlags.firstSample.set_Value_and_Lock(0);larRODFlags.useHighestGainAutoCorr.set_Value_and_Lock(True);' 'RAWtoESD:from CaloRec.CaloCellFlags import jobproperties;jobproperties.CaloCellFlags.doLArCellEmMisCalib=False' -JOBSTATUS_2=$? - -SCRIPT_DIRECTORY=$1 -PACKAGE=$2 -TYPE=$3 -TEST_NAME=$4 -NIGHTLY_RELEASE=$5 -PROJECT=$6 -PLATFORM=$7 -NIGHTLY_TAG=$8 - -art.py compare grid $NIGHTLY_RELEASE $PROJECT $PLATFORM $NIGHTLY_TAG $PACKAGE $TEST_NAME MC_plus_MC.RDO.pool.root MC_plus_MC.ESD.pool.root MC_plus_MC.AOD.pool.root -JOBSTATUS_3=$? - -echo "art-result: [${JOBSTATUS_1}, ${JOBSTATUS_2}, ${JOBSTATUS_3}]" diff --git a/Generators/EvgenProdTools/python/LogicalExpressionFilter.py b/Generators/EvgenProdTools/python/LogicalExpressionFilter.py index fa7f3f12bb2749bbece21eabad34b3c85b26341a..d1d202c44d220ee8a5d8546b4d9c5068b633f505 100644 --- a/Generators/EvgenProdTools/python/LogicalExpressionFilter.py +++ b/Generators/EvgenProdTools/python/LogicalExpressionFilter.py @@ -158,8 +158,7 @@ class LogicalExpressionFilter( PyAthena.Alg ): def evalFilter(self, filterName): if not self.algdict[filterName].isExecuted(): - self.algdict[filterName].sysExecute( ) -# self.algdict[filterName].sysExecute( self.getContext() ) # for rel. 22 + self.algdict[filterName].sysExecute( self.getContext() ) self.algdict[filterName].setExecuted(True) decision = self.algdict[filterName].filterPassed() self.msg.verbose(filterName + " decision=" + str(decision)) diff --git a/Generators/EvtGen_i/CMakeLists.txt b/Generators/EvtGen_i/CMakeLists.txt index 434688704289216258ac1ceae0221395c6e0f4c2..e47c478b9ab9cfa289a98b6f8b4362742122c5a8 100644 --- a/Generators/EvtGen_i/CMakeLists.txt +++ b/Generators/EvtGen_i/CMakeLists.txt @@ -44,7 +44,6 @@ atlas_add_library( EvtGen_iLib src/EvtPythiaEngine.cxx src/EvtInclusiveDecay.cxx PUBLIC_HEADERS EvtGen_i - DEFINITIONS -DEVTGEN_PYTHIA -DEVTGEN_PHOTOS -DEVTGEN_TAUOLA INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${HEPPDT_INCLUDE_DIRS} ${PYTHIA8_INCLUDE_DIRS} ${PHOTOSPP_INCLUDE_DIRS} ${TAUOLAPP_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS} ${EVTGEN_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} PRIVATE_INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS} diff --git a/InnerDetector/InDetExample/InDetRecExample/python/ConfiguredNewTrackingCuts.py b/InnerDetector/InDetExample/InDetRecExample/python/ConfiguredNewTrackingCuts.py index 153a7bbf4453066c634af9c4ef857e536e437314..de69d115c739bc1f3bbf694a61825054cea803e8 100755 --- a/InnerDetector/InDetExample/InDetRecExample/python/ConfiguredNewTrackingCuts.py +++ b/InnerDetector/InDetExample/InDetRecExample/python/ConfiguredNewTrackingCuts.py @@ -319,7 +319,7 @@ class ConfiguredNewTrackingCuts : if mode == "LargeD0": self.__extension = "LargeD0" # this runs parallel to NewTracking self.__maxPT = 1.0 * Units.TeV - self.__minPT = 900 * Units.MeV + self.__minPT = 500 * Units.MeV self.__maxEta = 5 self.__maxPrimaryImpact = 300.0 * Units.mm self.__maxZImpact = 1500.0 * Units.mm diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/python/InDetPhysValDecoration.py b/InnerDetector/InDetValidation/InDetPhysValMonitoring/python/InDetPhysValDecoration.py index 126b87738266135bb6bb61670152cfe4c2c99b99..4a361bb77593f1186a8cd6d506496333fe8db8cc 100644 --- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/python/InDetPhysValDecoration.py +++ b/InnerDetector/InDetValidation/InDetPhysValMonitoring/python/InDetPhysValDecoration.py @@ -377,6 +377,19 @@ def addExtraMonitoring() : mon_manager = topSequence.getChildren()[mon_index] from InDetPhysValMonitoring.InDetPhysValMonitoringTool import InDetPhysValMonitoringTool + from InDetRecExample.InDetKeys import InDetKeys + # for backward compatibility check whether DBM has been added already + if InDetPhysValFlags.doValidateTightPrimaryTracks() : + mon_manager.AthenaMonTools += [ toolFactory(InDetPhysValMonitoringTool.InDetPhysValMonitoringToolTightPrimary ) ] + + if InDetPhysValFlags.doValidateGSFTracks() : + mon_manager.AthenaMonTools += [ toolFactory(InDetPhysValMonitoringTool.InDetPhysValMonitoringToolGSF ) ] + + from InDetRecExample.InDetKeys import InDetKeys + # for backward compatibility check whether DBM has been added already + if InDetPhysValFlags.doValidateDBMTracks() and hasattr(InDetKeys,'DBMTrackParticles') : + mon_manager.AthenaMonTools += [ toolFactory(InDetPhysValMonitoringTool.InDetPhysValMonitoringToolDBM ) ] + except ImportError : import sys,traceback exc_type, exc_value, exc_traceback = sys.exc_info() @@ -442,6 +455,10 @@ def addDecoratorIfNeeded() : # the monitoring manager exists already. from InDetPhysValMonitoring.InDetPhysValJobProperties import InDetPhysValFlags InDetPhysValFlags.init() + if InDetPhysValFlags.doValidateGSFTracks() or InDetPhysValFlags.doValidateDBMTracks() or InDetPhysValFlags.doValidateTightPrimaryTracks(): + from RecExConfig.RecFlags import rec + rec.UserExecs += ['from InDetPhysValMonitoring.InDetPhysValDecoration import addExtraMonitoring;addExtraMonitoring();'] # from AthenaCommon.AppMgr import ServiceMgr as svcMgr # print 'DEBUG addDecoratorIfNeeded add meta data %s.' % svcMgr.TagInfoMgr.ExtraTagValuePairs + diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/python/InDetPhysValJobProperties.py b/InnerDetector/InDetValidation/InDetPhysValMonitoring/python/InDetPhysValJobProperties.py index c2cdc56117157d17d04e868d8cb44257432f8773..751cd8c30e4db6097fdd906e6460636d142eba00 100644 --- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/python/InDetPhysValJobProperties.py +++ b/InnerDetector/InDetValidation/InDetPhysValMonitoring/python/InDetPhysValJobProperties.py @@ -52,11 +52,6 @@ class doValidateGSFTracks(InDetPhysValFlagsJobProperty): allowedTypes = ['bool'] StoredValue = False -class doValidateLooseTracks(InDetPhysValFlagsJobProperty): - statusOn = True - allowedTypes = ['bool'] - StoredValue = False - class doValidateTightPrimaryTracks(InDetPhysValFlagsJobProperty): statusOn = True allowedTypes = ['bool'] @@ -122,8 +117,7 @@ jobproperties.add_Container(InDetPhysValJobProperties) _list_InDetPhysValJobProperties = [ Enabled, doValidateDBMTracks, - doValidateGSFTracks, - doValidateLooseTracks, + doValidateGSFTracks, doValidateTightPrimaryTracks, doValidateTracksInJets ] diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/python/InDetPhysValMonitoringTool.py b/InnerDetector/InDetValidation/InDetPhysValMonitoring/python/InDetPhysValMonitoringTool.py index 6e9d441c958ba0b25d4df77d73cc1df927073f23..e941f93a2bfb5b80f169c93c1439503e86748656 100644 --- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/python/InDetPhysValMonitoringTool.py +++ b/InnerDetector/InDetValidation/InDetPhysValMonitoring/python/InDetPhysValMonitoringTool.py @@ -85,29 +85,6 @@ class InDetPhysValMonitoringTool(object) : from RecExConfig.RecFlags import rec rec.UserExecs += ['from InDetPhysValMonitoring.InDetPhysValMonitoringTool import removePhysValExample;removePhysValExample();'] - - class InDetPhysValMonitoringToolLoose(InDetPhysValMonitoringTool) : - ''' - InDetPhysValMonitoringTool for track particles which pass the loose selection - ''' - #@injectNameArgument - #def __new__(cls, *args, **kwargs) : - # return InDetPhysValMonitoringTool.InDetPhysValMonitoringTool.__new__(cls,*args,**kwargs) - - @checkKWArgs - def __init__(self, **kwargs) : - super(InDetPhysValMonitoringTool.InDetPhysValMonitoringToolLoose,self)\ - .__init__(**_args( kwargs, - name = self.__class__.__name__)) - - # special parameters of the InDetPhysValMonitoringTool for monitoring loose tracks - self.SubFolder='Loose/' - self.useTrackSelection = True - - from InDetPhysValMonitoring.TrackSelectionTool import InDetTrackSelectionTool - self.TrackSelectionTool = toolFactory(InDetTrackSelectionTool.InDetTrackSelectionToolLoose) - - class InDetPhysValMonitoringToolTightPrimary(InDetPhysValMonitoringTool) : ''' InDetPhysValMonitoringTool for track particles which pass the tight primary selection @@ -129,6 +106,7 @@ class InDetPhysValMonitoringTool(object) : from InDetPhysValMonitoring.TrackSelectionTool import InDetTrackSelectionTool self.TrackSelectionTool = toolFactory(InDetTrackSelectionTool.InDetTrackSelectionToolTightPrimary) + class InDetPhysValMonitoringToolGSF(InDetPhysValMonitoringTool) : ''' InDetPhysValMonitoringTool for GSF track particles diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/python/TrackSelectionTool.py b/InnerDetector/InDetValidation/InDetPhysValMonitoring/python/TrackSelectionTool.py index 90b888e37f4197af26cfe7e0d07cc88c33e66dd0..e24bf518dcd12185873b2cb598fd42a63d63724e 100644 --- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/python/TrackSelectionTool.py +++ b/InnerDetector/InDetValidation/InDetPhysValMonitoring/python/TrackSelectionTool.py @@ -9,23 +9,6 @@ class InDetTrackSelectionTool(object) : ''' def __init__(self) : raise('must not be instantiated. Only child classes should be instantiated.') - - class InDetTrackSelectionToolLoose(InDet__InDetTrackSelectionTool) : - ''' - Default InDetTrackSelectionTool for InDetTrackParticles - ''' - @injectNameArgument - def __new__(cls, *args, **kwargs) : - return InDet__InDetTrackSelectionTool.__new__(cls,*args,**kwargs) - - @checkKWArgs - def __init__(self, **kwargs) : - super(InDetTrackSelectionTool.InDetTrackSelectionToolLoose,self)\ - .__init__(**_args( kwargs, - name = self.__class__.__name__)) - - # special parameters of the InDetTrackSelectionToolLoose - self.CutLevel = "Loose" class InDetTrackSelectionToolTightPrimary(InDet__InDetTrackSelectionTool) : ''' @@ -43,5 +26,3 @@ class InDetTrackSelectionTool(object) : # special parameters of the InDetTrackSelectionToolTightPrimary self.CutLevel = "TightPrimary" - - diff --git a/PhysicsAnalysis/PhysicsValidation/PhysValMonitoring/share/PhysValInDet_jobOptions.py b/PhysicsAnalysis/PhysicsValidation/PhysValMonitoring/share/PhysValInDet_jobOptions.py index b3b8c897ca789dc37f07d5bbd972d77d4eb099bd..5072048d1ee398f6d6b830f2e9a8eb66e7ba4ebb 100644 --- a/PhysicsAnalysis/PhysicsValidation/PhysValMonitoring/share/PhysValInDet_jobOptions.py +++ b/PhysicsAnalysis/PhysicsValidation/PhysValMonitoring/share/PhysValInDet_jobOptions.py @@ -4,27 +4,9 @@ decoration = InDetPhysValMonitoring.InDetPhysValDecoration.addDecoratorIfNeeded( # add ID physics validation monitoring tool from InDetPhysValMonitoring.InDetPhysValMonitoringTool import InDetPhysValMonitoringTool - indet_mon_tool = InDetPhysValMonitoringTool.InDetPhysValMonitoringTool() -ToolSvc += [indet_mon_tool] -monMan.AthenaMonTools += [indet_mon_tool] - -if InDetPhysValFlags.doValidateDBMTracks(): - indet_mon_tool_DBM = InDetPhysValMonitoringTool.InDetPhysValMonitoringToolDBM() - ToolSvc += [ indet_mon_tool_DBM ] - monMan.AthenaMonTools += [ indet_mon_tool_DBM ] -if InDetPhysValFlags.doValidateGSFTracks(): - indet_mon_tool_GSF = InDetPhysValMonitoringTool.InDetPhysValMonitoringToolGSF() - ToolSvc += [ indet_mon_tool_GSF ] - monMan.AthenaMonTools += [ indet_mon_tool_GSF ] +ToolSvc += indet_mon_tool +monMan.AthenaMonTools += [indet_mon_tool] -if InDetPhysValFlags.doValidateLooseTracks(): - indet_mon_tool_Loose = InDetPhysValMonitoringTool.InDetPhysValMonitoringToolLoose() - ToolSvc += [ indet_mon_tool_Loose ] - monMan.AthenaMonTools += [ indet_mon_tool_Loose ] -if InDetPhysValFlags.doValidateTightPrimaryTracks(): - indet_mon_tool_TightPrimary = InDetPhysValMonitoringTool.InDetPhysValMonitoringToolTightPrimary() - ToolSvc += [ indet_mon_tool_TightPrimary ] - monMan.AthenaMonTools += [ indet_mon_tool_TightPrimary ] diff --git a/PhysicsAnalysis/TauID/TauDQA/src/PhysValTau.cxx b/PhysicsAnalysis/TauID/TauDQA/src/PhysValTau.cxx index 023ac1b1b6fd429c27d1cd6a9349ee7f3b49f638..2edec5e894485ac6c9d11ea77b690fb32aa47296 100644 --- a/PhysicsAnalysis/TauID/TauDQA/src/PhysValTau.cxx +++ b/PhysicsAnalysis/TauID/TauDQA/src/PhysValTau.cxx @@ -34,15 +34,17 @@ using CLHEP::GeV; // Constructors //////////////// -PhysValTau::PhysValTau(const std::string& type, - const std::string& name, - const IInterface* parent) : - ManagedMonitorToolBase(type, name, parent) +PhysValTau::PhysValTau( const std::string& type, + const std::string& name, + const IInterface* parent ) : + ManagedMonitorToolBase( type, name, parent ) { - declareProperty("TauContainerName", m_TauJetContainerName = "TauRecContainer"); - declareProperty("TruthParticleContainerName", m_TruthParticleContainerName = "TruthParticle"); - declareProperty("TauDetailsContainerName", m_TauDetailsContainerName = "TauRecDetailsContainer"); - declareProperty("isMC", m_isMC= false); + declareProperty( "TauContainerName", m_TauJetContainerName = "TauRecContainer" ); + declareProperty( "TruthParticleContainerName", m_TruthParticleContainerName = "TruthParticle" ); + declareProperty( "TauDetailsContainerName", m_TauDetailsContainerName = "TauRecDetailsContainer" ); + declareProperty("isMC", m_isMC= false); + + // std::cout << "Match tool Core Var Truth Cuts Et " << matchtool.getvisETCut() << " eta " << matchtool.getvisEtaCut() << std::endl; } // Destructor @@ -54,187 +56,193 @@ PhysValTau::~PhysValTau() //////////////////////////// StatusCode PhysValTau::initialize() { - ATH_MSG_INFO ("Initializing " << name() << "..."); - ATH_CHECK(ManagedMonitorToolBase::initialize()); - - // geometrical matching between Reco Tau and MC tau - m_DeltaRMatchCut = 0.2; - m_LeadingChPiPt_Threshold = 0.0; - - //Truth Matching Cuts - m_visETcut = 10.; - m_visEtacut = 2.5; + ATH_MSG_INFO ("Initializing " << name() << "..."); + ATH_CHECK(ManagedMonitorToolBase::initialize()); + + // geometrical matching between Reco Tau and MC tau + m_DeltaRMatchCut = 0.2; + m_LeadingChPiPt_Threshold = 0.0; + + //Truth Matching Cuts + m_visETcut = 10.; + m_visEtacut = 2.5; + + + //Initialize Counters + + m_truth_all = 0; + m_truth_1p = 0; + m_truth_3p = 0; - //Initialize Counters - m_truth_all = 0; - m_truth_1p = 0; - m_truth_3p = 0; - - m_truth_all_matched = 0; - m_truth_1p_matched = 0; - m_truth_3p_matched = 0; - - return StatusCode::SUCCESS; + m_truth_all_matched = 0; + m_truth_1p_matched = 0; + m_truth_3p_matched = 0; + + return StatusCode::SUCCESS; } StatusCode PhysValTau::bookHistograms() { - ATH_MSG_INFO ("Booking hists " << name() << "..."); - - // Physics validation plots are level 10 - m_oTauValidationPlots.reset(new TauValidationPlots(0,"Tau/" /* + m_TauJetContainerName*/, m_TauJetContainerName)); - m_oTauValidationPlots->setDetailLevel(100); - m_oTauValidationPlots->initialize(); - std::vector<HistData> hists = m_oTauValidationPlots->retrieveBookedHistograms(); - ATH_MSG_INFO ("Filling n of hists " << hists.size() << " "); - for (auto hist : hists) { - ATH_CHECK(regHist(hist.first,hist.second,all)); - } - - return StatusCode::SUCCESS; + ATH_MSG_INFO ("Booking hists " << name() << "..."); + + // Physics validation plots are level 10 + m_oTauValidationPlots.reset(new TauValidationPlots(0,"Tau/" /* + m_TauJetContainerName*/, m_TauJetContainerName)); + m_oTauValidationPlots->setDetailLevel(100); + m_oTauValidationPlots->initialize(); + std::vector<HistData> hists = m_oTauValidationPlots->retrieveBookedHistograms(); + ATH_MSG_INFO ("Filling n of hists " << hists.size() << " "); + for (auto hist : hists) { + ATH_CHECK(regHist(hist.first,hist.second,all)); + } + + return StatusCode::SUCCESS; } StatusCode PhysValTau::fillHistograms() { - ATH_MSG_INFO ("Filling hists " << name() << "..."); - //////////////////////////////////////////////////////////////////////////////////////////////// - // Retrieve tau container: - const xAOD::TauJetContainer* taus = evtStore()->retrieve< const xAOD::TauJetContainer >( m_TauJetContainerName ); - if ( !taus ) { - ATH_MSG_ERROR ("Couldn't retrieve tau container with key: " << m_TauJetContainerName); - return StatusCode::FAILURE; - } - ATH_MSG_DEBUG("Number of taus: " << taus->size()); + ATH_MSG_INFO ("Filling hists " << name() << "..."); + //////////////////////////////////////////////////////////////////////////////////////////////// + // Retrieve tau container: + const xAOD::TauJetContainer* taus = evtStore()->retrieve< const xAOD::TauJetContainer >( m_TauJetContainerName ); + if (!taus) { + ATH_MSG_ERROR ("Couldn't retrieve tau container with key: " << m_TauJetContainerName); + return StatusCode::FAILURE; + } + ATH_MSG_DEBUG( "Number of taus: " << taus->size() ); - //////////////////////////////////////////////////////////////////////////////////////////////// - // Retrieve truth container: - const xAOD::TruthParticleContainer* truth = 0; - if ( m_isMC ) { - truth = evtStore()->retrieve<const xAOD::TruthParticleContainer>(m_TruthParticleContainerName); - if ( !truth ) { - ATH_MSG_ERROR ("Couldn't retrieve tau container with key: " << m_TruthParticleContainerName); - return StatusCode::FAILURE; - } - // ATH_MSG_DEBUG( "Number of truth: " << truth->size() ); - } - ////////////////////////////////////////////////////////////////////////////////////////////////// - // Retrieve true hadronic tau container from truth container - // getHaderonicTruth finds true taus (ID == 15) with correct status and no leptonic decay. - const xAOD::TruthParticleContainer* trueTauContainer = 0; - if ( m_isMC ) { - trueTauContainer = truthHandler.getHadronicTruth(truth); - ATH_MSG_DEBUG("Number of true had taus: " << trueTauContainer->size()); - } + //////////////////////////////////////////////////////////////////////////////////////////////// + // Retrieve truth container: + const xAOD::TruthParticleContainer* truth = 0; + if (m_isMC){ + truth = evtStore()->retrieve< const xAOD::TruthParticleContainer >( m_TruthParticleContainerName ); + if (!truth) { + ATH_MSG_ERROR ("Couldn't retrieve tau container with key: " << m_TruthParticleContainerName); + return StatusCode::FAILURE; + } + // ATH_MSG_DEBUG( "Number of truth: " << truth->size() ); + } + ////////////////////////////////////////////////////////////////////////////////////////////////// + // Retrieve true hadronic tau container from truth container + // getHaderonicTruth finds true taus (ID == 15) with correct status and no leptonic decay. + const xAOD::TruthParticleContainer* trueTauContainer = 0; + if (m_isMC){ + trueTauContainer = truthHandler.getHadronicTruth(truth); + ATH_MSG_DEBUG( "Number of true had taus: " << trueTauContainer->size() ); + } - ////////////////////////////////////////// - // Plotting TauRec Variables - - // Loop through reco tau jet container - for (auto tau : *taus) { - if (m_detailLevel < 10) continue; - if (tau->pt()/GeV < 20) continue; - // fill Substructure/PFO histograms - m_oTauValidationPlots->m_oRecoTauAllProngsPlots.fill(*tau); - m_oTauValidationPlots->m_oNewCorePlots.fill(*tau); - m_oTauValidationPlots->m_oRecTauEffPlots.fill(*tau); - //Reco Tau General Plots - m_oTauValidationPlots->m_oRecoGeneralTauAllProngsPlots.fill(*tau); - if ( tau->nTracks()==1 ) { - m_oTauValidationPlots->m_oRecoHad1ProngPlots.fill(*tau); - m_oTauValidationPlots->m_oRecTauEff1PPlots.fill(*tau); - - } - if ( tau->nTracks()==3 ) { - m_oTauValidationPlots->m_oRecoHad3ProngPlots.fill(*tau); - m_oTauValidationPlots->m_oRecTauEff3PPlots.fill(*tau); - } - } - m_matched_itr.clear(); - ////////////////////////////////////////// - // Plotting TruthMatched Variables - // Loop through reco tau jet container - - // - - if ( (trueTauContainer != 0) && (m_isMC == true) ) { - xAOD::TruthParticleContainer::const_iterator truth_itr = trueTauContainer->begin(); - xAOD::TruthParticleContainer::const_iterator truth_end = trueTauContainer->end(); - for ( ; truth_itr != truth_end; truth_itr++ ) { - ATH_MSG_DEBUG( "Trying to match tau :"); - xAOD::TruthParticle* trueTau = const_cast<xAOD::TruthParticle*>(*truth_itr); - const xAOD::TauJet *matchedRecTau = 0; - ATH_MSG_DEBUG("Matching Tau"); - bool matched = matchTrueAndRecoTau(taus,trueTau,matchedRecTau); - if ( matched ) { - m_oTauValidationPlots->m_oGeneralTauAllProngsPlots.fill(*matchedRecTau); - m_oTauValidationPlots->m_oNewCoreMatchedPlots.fill(*matchedRecTau); - // Substructure/PFO histograms - m_oTauValidationPlots->m_oMatchedTauAllProngsPlots.fill(*matchedRecTau); - m_oTauValidationPlots->m_oMatchedTauEffPlots.fill(*matchedRecTau); - // 1-prong - if ( matchedRecTau->nTracks() == 1 ) { - m_oTauValidationPlots->m_oHad1ProngPlots.fill(*matchedRecTau); - m_oTauValidationPlots->m_oMatchedTauEff1PPlots.fill(*matchedRecTau); - } - // 3-prong - else if( matchedRecTau->nTracks() == 3 ) { - m_oTauValidationPlots->m_oHad3ProngPlots.fill(*matchedRecTau); - m_oTauValidationPlots->m_oMatchedTauEff3PPlots.fill(*matchedRecTau); - } - } - } - if ( taus != 0 ) { - xAOD::TauJetContainer::const_iterator tau_itr = taus->begin(); - xAOD::TauJetContainer::const_iterator tau_end = taus->end(); - for ( size_t iRecTau = 0 ; iRecTau < taus->size(); iRecTau++ ) { - bool alreadymatched = false; - if ( m_matched_itr.size() > 0 ) { - for ( size_t i = 0; i < m_matched_itr.size(); i++ ) { - if(m_matched_itr.at(i) == iRecTau) alreadymatched = true; - } - } - if ( alreadymatched ) continue; - const xAOD::TauJet *recTau = taus->at(iRecTau); - if ( m_detailLevel < 10 ) continue; - if ( recTau->pt()/GeV < 20 ) continue; - bool eleMatch = false; - // Matching to electrons (Improvements needed) - for ( auto mc_candidate : *truth ) { - if ( abs(mc_candidate->pdgId())==11 && mc_candidate->pt()>10000. ) { - float dr = sqrt( (mc_candidate->eta()-recTau->eta())*(mc_candidate->eta()-recTau->eta()) - + (mc_candidate->phi()-recTau->phi())*(mc_candidate->phi()-recTau->phi())); - if( dr < 0.2 ) { - eleMatch = true; - continue; - } - } - } - // electron matched taus - if ( eleMatch ) { - m_oTauValidationPlots->m_oElMatchedParamPlots.fill(*recTau); - m_oTauValidationPlots->m_oElMatchedEVetoPlots.fill(*recTau); + + ////////////////////////////////////////// + // Plotting TauRec Variables + + // Loop through reco tau jet container + for (auto tau : *taus) { + if (m_detailLevel < 10) continue; + if (tau->pt()/GeV < 20) continue; + m_oTauValidationPlots->m_oRecoTauAllProngsPlots.fill(*tau); // Substructure/PFO histograms filled + m_oTauValidationPlots->m_oNewCorePlots.fill(*tau); // NewCore histograms filled + m_oTauValidationPlots->m_oRecTauEffPlots.fill(*tau); //Eff Reco Tau plots + m_oTauValidationPlots->m_oRecoGeneralTauAllProngsPlots.fill(*tau); //Reco Tau General Plots + if(tau->nTracks()==1){ + m_oTauValidationPlots->m_oRecoHad1ProngPlots.fill(*tau); //Reco Tau 1P plots + m_oTauValidationPlots->m_oRecTauEff1PPlots.fill(*tau); //Eff Reco Tau 1P plots + + } + if(tau->nTracks()==3){ + m_oTauValidationPlots->m_oRecoHad3ProngPlots.fill(*tau); //Reco Tau 3P plots + m_oTauValidationPlots->m_oRecTauEff3PPlots.fill(*tau); //Eff Reco Tau 3P plots + } + } + m_matched_itr.clear(); + ////////////////////////////////////////// + // Plotting TruthMatched Variables + // Loop through reco tau jet container + + // + + if(trueTauContainer != 0 && m_isMC==true){ + xAOD::TruthParticleContainer::const_iterator truth_itr = trueTauContainer->begin(); + xAOD::TruthParticleContainer::const_iterator truth_end = trueTauContainer->end(); + // std::cout<<"new true tau container"<<std::endl; + + for (; truth_itr != truth_end; truth_itr++) { + + ATH_MSG_DEBUG( "Trying to match tau :"); + xAOD::TruthParticle* trueTau = const_cast<xAOD::TruthParticle*>(*truth_itr); + const xAOD::TauJet *matchedRecTau = 0; + ATH_MSG_DEBUG("Matching Tau"); + bool matched = matchTrueAndRecoTau(taus,trueTau,matchedRecTau); + if(matched) { + m_oTauValidationPlots->m_oGeneralTauAllProngsPlots.fill(*matchedRecTau); + m_oTauValidationPlots->m_oNewCoreMatchedPlots.fill(*matchedRecTau); // NewCore histograms filled + m_oTauValidationPlots->m_oMatchedTauAllProngsPlots.fill(*matchedRecTau); // Substructure/PFO histograms filled + m_oTauValidationPlots->m_oMatchedTauEffPlots.fill(*matchedRecTau); + + if(matchedRecTau->nTracks() == 1){ + m_oTauValidationPlots->m_oHad1ProngPlots.fill(*matchedRecTau); + m_oTauValidationPlots->m_oMatchedTauEff1PPlots.fill(*matchedRecTau); + + + } + if(matchedRecTau->nTracks() == 3){ + m_oTauValidationPlots->m_oHad3ProngPlots.fill(*matchedRecTau); + m_oTauValidationPlots->m_oMatchedTauEff3PPlots.fill(*matchedRecTau); + } } - else { - m_oTauValidationPlots->m_oFakeGeneralTauAllProngsPlots.fill(*recTau); - // Substructure/PFO histograms - m_oTauValidationPlots->m_oFakeTauAllProngsPlots.fill(*recTau); - m_oTauValidationPlots->m_oNewCoreFakePlots.fill(*recTau); - m_oTauValidationPlots->m_oFakeTauEffPlots.fill(*recTau); - if ( recTau->nTracks()==1 ) { - m_oTauValidationPlots->m_oFakeHad1ProngPlots.fill(*recTau); - m_oTauValidationPlots->m_oFakeTauEff1PPlots.fill(*recTau); - } - if ( recTau->nTracks()==3 ) { - m_oTauValidationPlots->m_oFakeTauEff3PPlots.fill(*recTau); - m_oTauValidationPlots->m_oFakeHad3ProngPlots.fill(*recTau); - } + } + + // std::cout<<"Number of matched: "<<m_matched_itr.size()<<std::endl; + if(taus != 0){ + xAOD::TauJetContainer::const_iterator tau_itr = taus->begin(); + xAOD::TauJetContainer::const_iterator tau_end = taus->end(); + for (size_t iRecTau = 0 ; iRecTau < taus->size(); iRecTau++) { + bool alreadymatched = false; + if(m_matched_itr.size()>0) + for (size_t i = 0; i<m_matched_itr.size(); i++) + if(m_matched_itr.at(i) == iRecTau) alreadymatched = true; + if(alreadymatched)continue; + const xAOD::TauJet *recTau = taus->at(iRecTau); + if (m_detailLevel < 10) continue; + if (recTau->pt()/GeV < 20) continue; + bool eleMatch = false; + // Matching to electrons (Improvements needed) + for (auto mc_candidate : *truth) { + + if(abs(mc_candidate->pdgId())==11 && mc_candidate->pt()>10000.) + { + float dr = sqrt( (mc_candidate->eta()-recTau->eta())*(mc_candidate->eta()-recTau->eta()) + (mc_candidate->phi()-recTau->phi())*(mc_candidate->phi()-recTau->phi())); + if( dr < 0.2 ) { + eleMatch = true; + continue; + } + } + } + if(eleMatch){ + m_oTauValidationPlots->m_oElMatchedParamPlots.fill(*recTau); + + }else{ + m_oTauValidationPlots->m_oFakeGeneralTauAllProngsPlots.fill(*recTau); + m_oTauValidationPlots->m_oFakeTauAllProngsPlots.fill(*recTau); // Substructure/PFO histograms filled + m_oTauValidationPlots->m_oNewCoreFakePlots.fill(*recTau); // NewCore histograms filled + m_oTauValidationPlots->m_oFakeTauEffPlots.fill(*recTau); + if(recTau->nTracks()==1) + { + m_oTauValidationPlots->m_oFakeHad1ProngPlots.fill(*recTau); + m_oTauValidationPlots->m_oFakeTauEff1PPlots.fill(*recTau); + } + if(recTau->nTracks()==3) + { + m_oTauValidationPlots->m_oFakeTauEff3PPlots.fill(*recTau); + m_oTauValidationPlots->m_oFakeHad3ProngPlots.fill(*recTau); + } + + } + } - } - } - } ///////////////////////////////////////////////////////////////////////////////////////////////// - - return StatusCode::SUCCESS; + } + } ///////////////////////////////////////////////////////////////////////////////////////////////// + + return StatusCode::SUCCESS; } StatusCode PhysValTau::procHistograms() @@ -258,11 +266,11 @@ bool PhysValTau::matchTrueAndRecoTau(const xAOD::TauJetContainer *&taus, const x ATH_MSG_DEBUG( "True decay mode is " << nCharged << "p" << nNeutral << "n" ); if (!RecoTypes::IsValidMode(trueDecayMode)) { - ATH_MSG_DEBUG(" Decay mode is not valid, skipping..." ); + ATH_MSG_DEBUG(" Decay mode is not valid, skipping..." ); return false; } - TLorentzVector visSum = truthHandler.getTauVisibleSumTruth(trueTau); // Get visible TLV for true had tau + TLorentzVector visSum = truthHandler.getTauVisibleSumTruth(trueTau); // Get visible TLV for true had tau if ((visSum.Et()/GeV < m_visETcut) || (fabs(visSum.Eta()) > m_visEtacut)) return false; // Detector limitations xAOD::TauJetContainer::const_iterator tau_itr = taus->begin(); @@ -280,7 +288,7 @@ bool PhysValTau::matchTrueAndRecoTau(const xAOD::TauJetContainer *&taus, const x double recM = recTau->mIntermediateAxis(); TLorentzVector hlv_recTau; hlv_recTau.SetPtEtaPhiM(recPt, recEta, recPhi, recM); - + double curDeltaR = visSum.DeltaR(hlv_recTau); if (curDeltaR < minDeltaR) { minDeltaR = curDeltaR; @@ -292,10 +300,10 @@ bool PhysValTau::matchTrueAndRecoTau(const xAOD::TauJetContainer *&taus, const x } if(matched){ - const xAOD::TauJet *recTau = taus->at(iMatchedRecTau); - m_oTauValidationPlots->m_oMigrationPlots.fill(*recTau,nCharged,nNeutral); //Migration - m_matched_itr.push_back(iMatchedRecTau); - // std::cout<<"Number of matched between: "<<m_matched_itr.size()<<std::endl; + const xAOD::TauJet *recTau = taus->at(iMatchedRecTau); + m_oTauValidationPlots->m_oMigrationPlots.fill(*recTau,nCharged,nNeutral); //Migration + m_matched_itr.push_back(iMatchedRecTau); + // std::cout<<"Number of matched between: "<<m_matched_itr.size()<<std::endl; } return matched; diff --git a/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/EVetoPlots.h b/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/EVetoPlots.h index 1ff5648c0c729028eac58492b1642f95acb6efc9..6c20f83560d8602ac07adbefe455c5cf62a05391 100644 --- a/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/EVetoPlots.h +++ b/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/EVetoPlots.h @@ -24,9 +24,6 @@ class EVetoPlots: public PlotBase { TH1* m_pt_eleBDTloose; TH1* m_pt_eleBDTmed; TH1* m_pt_eleBDTtight; - TH1* m_pt_eleBDTlooseHighPt; - TH1* m_pt_eleBDTmedHighPt; - TH1* m_pt_eleBDTtightHighPt; private: void initializePlots(); diff --git a/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/EfficiencyPtPlots.h b/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/EfficiencyPtPlots.h index ade7ba15a6ac5b131d3ba1f3ff05204b8f11885d..c5e4f3673c174ebe432ea9e3c0af3f866a5af686 100644 --- a/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/EfficiencyPtPlots.h +++ b/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/EfficiencyPtPlots.h @@ -21,9 +21,6 @@ class EfficiencyPtPlots: public PlotBase { TProfile* m_eff_pt_jetBDTloose; TProfile* m_eff_pt_jetBDTmed; TProfile* m_eff_pt_jetBDTtight; - TProfile* m_eff_pt_jetBDTlooseHighPt; - TProfile* m_eff_pt_jetBDTmedHighPt; - TProfile* m_eff_pt_jetBDTtightHighPt; TProfile* m_eff_jetBDTloose; TProfile* m_eff_jetBDTmed; diff --git a/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/GeneralTauPlots.h b/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/GeneralTauPlots.h index 3dd320031eb119b15f1db545743151c2f4c1906d..151ced0f00b5cf43395c60f73ec086382cf0e475 100644 --- a/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/GeneralTauPlots.h +++ b/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/GeneralTauPlots.h @@ -13,27 +13,24 @@ namespace Tau{ class GeneralTauPlots: public PlotBase { - public: - GeneralTauPlots(PlotBase *pParent, std::string sDir, std::string sTauJetContainerName); - virtual ~GeneralTauPlots(); - - void fill(const xAOD::TauJet& tau); - - Tau::ParamPlots m_oParamPlots; - TH1* m_tauCharge; - TH1* m_tauNCoreTracks; - TH1* m_tauNWideTracks; - TH1* m_id_BDTJetScore; - TH1* m_pt_jetBDTloose; - TH1* m_pt_jetBDTmed; - TH1* m_pt_jetBDTtight; - TH1* m_pt_jetBDTlooseHighPt; - TH1* m_pt_jetBDTmedHighPt; - TH1* m_pt_jetBDTtightHighPt; - - private: - void initializePlots(); - std::string m_sTauJetContainerName; + public: + GeneralTauPlots(PlotBase *pParent, std::string sDir, std::string sTauJetContainerName); + virtual ~GeneralTauPlots(); + + void fill(const xAOD::TauJet& tau); + + Tau::ParamPlots m_oParamPlots; + TH1* m_tauCharge; + TH1* m_tauNCoreTracks; + TH1* m_tauNWideTracks; + TH1* m_id_BDTJetScore; + TH1* m_pt_jetBDTloose; + TH1* m_pt_jetBDTmed; + TH1* m_pt_jetBDTtight; + + private: + void initializePlots(); + std::string m_sTauJetContainerName; }; } diff --git a/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/Migration.h b/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/Migration.h index ed51f467c757556acf2f37d2b078ee08a3a09f8a..d43b568f477a91d618c3379a8dd8d542c344a4a4 100644 --- a/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/Migration.h +++ b/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/Migration.h @@ -57,14 +57,39 @@ namespace Tau{ "t1r3", "t3r1" }; + /* + "t10r10", + "t10r11", + "t10r1x", + "t10r30", + "t10r3x", + "t11r10", + "t11r11", + "t11r1x", + "t11r30", + "t11r3x", + "t1xr10", + "t1xr11", + "t1xr1x", + "t1xr30", + "t1xr3x", + "t30r10", + "t30r11", + "t30r1x", + "t30r30", + "t30r3x", + "t3xr10", + "t3xr11", + "t3xr1x", + "t3xr30", + "t3xr3x"*/ - TH1* m_migration_panTau; - TH1* m_migration_panTauProto; + TH1* m_migration_tauRec; + TH1* m_migration_eflow; TH1* m_migration_cellBased; private: void initializePlots(); std::string m_sTauJetContainerName; - void decayModeFill(int trueMode, int recP, int recN,TH1 *histo); void decayModeFill(int trueP,int trueN,int recP, int recN,TH1 *histo); }; diff --git a/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/ParamPlots.h b/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/ParamPlots.h index 11627c1380bf0a0217c75c7905e1b2ae50f4dcad..fe4019f2316065016f990bb16e940bbf3357f2cd 100644 --- a/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/ParamPlots.h +++ b/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/ParamPlots.h @@ -11,21 +11,20 @@ namespace Tau{ class ParamPlots:public PlotBase { - public: - ParamPlots(PlotBase *pParent, std::string sDir, std::string sParticleType); - ~ParamPlots(); - void fill(const xAOD::IParticle& prt); - - TH1* eta; - TH1* phi; - TH1* pt; - - TH1* eta_phi; - TH1* eta_pt; - - private: - void initializePlots(); - std::string m_sParticleType; + public: + ParamPlots(PlotBase *pParent, std::string sDir, std::string sParticleType); + void fill(const xAOD::IParticle& prt); + + TH1* eta; + TH1* phi; + TH1* pt; + + TH1* eta_phi; + TH1* eta_pt; + + private: + void initializePlots(); + std::string m_sParticleType; }; } diff --git a/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/RecoTauPlots.h b/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/RecoTauPlots.h index cc053e394770730cf193deb48dda6d262ff927c4..758ad287fde4dfecb72feb22554c87cef8709ff5 100644 --- a/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/RecoTauPlots.h +++ b/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/RecoTauPlots.h @@ -22,6 +22,18 @@ class RecoTauPlots: public PlotBase { Tau::ParamPlots m_oParamPlots; + //Here I try to include eflowRec substructure variables, from the Particle FLow Object (PFO), begining with basic charged and neutral PFO 4-vector. + TH1* m_eflowRec_charPFO_Pt; + TH1* m_eflowRec_charPFO_Eta; + TH1* m_eflowRec_charPFO_Phi; + TH1* m_eflowRec_charPFO_E; + + TH1* m_eflowRec_neuPFO_Pt; + TH1* m_eflowRec_neuPFO_Eta; + TH1* m_eflowRec_neuPFO_Phi; + TH1* m_eflowRec_neuPFO_E; + TH1* m_eflowRec_neuPFO_bdtPi0Score; + //Here I try to include CellBased substructure variables, from the Particle FLow Object (PFO), begining with basic charged and neutral PFO 4-vector. TH1* m_cellBased_charPFO_Pt; TH1* m_cellBased_charPFO_Eta; @@ -51,6 +63,22 @@ class RecoTauPlots: public PlotBase { TH1* m_pantau_CellBasedInput_BDTVar_Neutral_Shots_NPhotonsInSeed; TH1* m_pantau_CellBasedInput_BDTVar_Combined_DeltaR1stNeutralTo1stCharged; + TH1* m_pantau_eflowRecInput_isPanTauCandidate; + TH1* m_pantau_eflowRecInput_DecayMode; + TH1* m_pantau_eflowRecInput_BDTValue_1p0n_vs_1p1n; + TH1* m_pantau_eflowRecInput_BDTValue_1p1n_vs_1pXn; + TH1* m_pantau_eflowRecInput_BDTValue_3p0n_vs_3pXn; + TH1* m_pantau_eflowRecInput_BDTVar_Basic_NPi0NeutConsts; + TH1* m_pantau_eflowRecInput_BDTVar_Basic_NNeutralConsts; + TH1* m_pantau_eflowRecInput_BDTVar_Charged_Ratio_EtOverEtAllConsts; + TH1* m_pantau_eflowRecInput_BDTVar_Neutral_HLV_SumM; + TH1* m_pantau_eflowRecInput_BDTVar_Neutral_PID_BDTValues_EtSort_1; + TH1* m_pantau_eflowRecInput_BDTVar_Neutral_PID_BDTValues_BDTSort_2; + TH1* m_pantau_eflowRecInput_BDTVar_Neutral_Ratio_EtOverEtAllConsts; + TH1* m_pantau_eflowRecInput_BDTVar_Neutral_Mean_DRToLeading_WrtEtAllConsts; + TH1* m_pantau_eflowRecInput_BDTVar_Combined_DeltaR1stNeutralTo1stCharged; + + // BDT output TH1* m_id_BDTJetScore; diff --git a/PhysicsAnalysis/TauID/TauHistUtils/src/EVetoPlots.cxx b/PhysicsAnalysis/TauID/TauHistUtils/src/EVetoPlots.cxx index deb71166dae027c0c835786b2a8d685c50f2e611..67392e0bc310759f1db159c19c0c4e6c82170b94 100644 --- a/PhysicsAnalysis/TauID/TauHistUtils/src/EVetoPlots.cxx +++ b/PhysicsAnalysis/TauID/TauHistUtils/src/EVetoPlots.cxx @@ -16,9 +16,6 @@ EVetoPlots::EVetoPlots(PlotBase* pParent, std::string sDir, std::string sTauJetC m_pt_eleBDTloose(nullptr), m_pt_eleBDTmed(nullptr), m_pt_eleBDTtight(nullptr), - m_pt_eleBDTlooseHighPt(nullptr), - m_pt_eleBDTmedHighPt(nullptr), - m_pt_eleBDTtightHighPt(nullptr), m_sTauJetContainerName(sTauJetContainerName) { } @@ -36,12 +33,9 @@ void EVetoPlots::initializePlots(){ m_CentFrac = Book1D("CentFrac",m_sTauJetContainerName + " Cent Frac; Cent Frac; # Part",20,0,1.); m_id_BDTEleScore = Book1D("id_BDTEleScore",m_sTauJetContainerName + " BDTEleScore ; BDTEleScore; # Tau",10,0.,1.05); - m_pt_eleBDTloose = Book1D("Pt_eleBDTloose",m_sTauJetContainerName + " Tau pt; pt; # Taus",20,0.,150.); - m_pt_eleBDTmed = Book1D("Pt_eleBDTmed",m_sTauJetContainerName + " Tau pt; pt; # Taus",20,0.,150.); - m_pt_eleBDTtight = Book1D("Pt_eleBDTtight",m_sTauJetContainerName + " Tau pt; pt; # Taus",20,0.,150.); - m_pt_eleBDTlooseHighPt = Book1D("Pt_eleBDTlooseHighPt",m_sTauJetContainerName + " Tau pt; pt; # Taus",20,0.,1500.); - m_pt_eleBDTmedHighPt = Book1D("Pt_eleBDTmedHighPt",m_sTauJetContainerName + " Tau pt; pt; # Taus",20,0.,1500.); - m_pt_eleBDTtightHighPt = Book1D("Pt_eleBDTtightHighPt",m_sTauJetContainerName + " Tau pt; pt; # Taus",20,0.,1500.); + m_pt_eleBDTloose = Book1D("Pt_eleBDTloose",m_sTauJetContainerName + " Tau pt; pt; # Taus",20,0.,300.); + m_pt_eleBDTmed = Book1D("Pt_eleBDTmed",m_sTauJetContainerName + " Tau pt; pt; # Taus",20,0.,300.); + m_pt_eleBDTtight = Book1D("Pt_eleBDTtight",m_sTauJetContainerName + " Tau pt; pt; # Taus",20,0.,300.); } @@ -65,18 +59,9 @@ void EVetoPlots::fill(const xAOD::TauJet& tau) { if (test) m_CentFrac->Fill(avariable,1.); if(tau.hasDiscriminant(xAOD::TauJetParameters::BDTEleScore) )m_id_BDTEleScore->Fill(tau.discriminant(xAOD::TauJetParameters::BDTEleScore)); - if ( tau.isTau(xAOD::TauJetParameters::EleBDTLoose) ) { - m_pt_eleBDTloose ->Fill(tau.pt()/1000.0, 1.0); - m_pt_eleBDTlooseHighPt->Fill(tau.pt()/1000.0, 1.0); - } - if ( tau.isTau(xAOD::TauJetParameters::EleBDTMedium) ) { - m_pt_eleBDTmed ->Fill(tau.pt()/1000.0, 1.0); - m_pt_eleBDTmedHighPt->Fill(tau.pt()/1000.0, 1.0); - } - if ( tau.isTau(xAOD::TauJetParameters::EleBDTTight) ) { - m_pt_eleBDTtight ->Fill(tau.pt()/1000.0, 1.0); - m_pt_eleBDTtightHighPt->Fill(tau.pt()/1000.0, 1.0); - } + if(tau.isTau(xAOD::TauJetParameters::EleBDTLoose)) m_pt_eleBDTloose->Fill( tau.pt()/1000,1); + if(tau.isTau(xAOD::TauJetParameters::EleBDTMedium)) m_pt_eleBDTmed ->Fill( tau.pt()/1000,1); + if(tau.isTau(xAOD::TauJetParameters::EleBDTTight)) m_pt_eleBDTtight->Fill( tau.pt()/1000,1); } diff --git a/PhysicsAnalysis/TauID/TauHistUtils/src/EfficiencyPtPlots.cxx b/PhysicsAnalysis/TauID/TauHistUtils/src/EfficiencyPtPlots.cxx index b48cb72af1ff4bc61b5e44c131beccaadb4a9a96..9aa1ecbcdc8ef2c2cf66bc2ab803012d29ca4b72 100644 --- a/PhysicsAnalysis/TauID/TauHistUtils/src/EfficiencyPtPlots.cxx +++ b/PhysicsAnalysis/TauID/TauHistUtils/src/EfficiencyPtPlots.cxx @@ -22,53 +22,45 @@ EfficiencyPtPlots::~EfficiencyPtPlots() { } -void EfficiencyPtPlots::initializePlots() -{ - m_eff_pt_jetBDTloose = BookTProfile("Eff_Pt_jetBDTloose"," Matched Tau loose eff in pt; pt; eff", 20, 0., 150.0); - m_eff_pt_jetBDTmed = BookTProfile("Eff_Pt_jetBDTmed","Matched Tau med eff in pt; pt; eff", 20, 0.0, 150.0); - m_eff_pt_jetBDTtight = BookTProfile("Eff_Pt_jetBDTtight","Matched Tau tight eff in pt; pt; eff", 20, 0.0, 150.0); - m_eff_pt_jetBDTlooseHighPt = BookTProfile("Eff_Pt_jetBDTlooseHightPt"," Matched Tau loose eff in pt; pt; eff", 20, 0.0, 1500.0); - m_eff_pt_jetBDTmedHighPt = BookTProfile("Eff_Pt_jetBDTmedHightPt","Matched Tau med eff in pt; pt; eff", 20, 0.0, 1500.0); - m_eff_pt_jetBDTtightHighPt = BookTProfile("Eff_Pt_jetBDTtightHightPt","Matched Tau tight eff in pt; pt; eff", 20, 0.0, 1500.0); - m_eff_jetBDTloose = BookTProfile("Eff_jetBDTloose"," Matched Tau loose eff total; bin; eff",3,-1.5,1.5); - m_eff_jetBDTmed = BookTProfile("Eff_jetBDTmed","Matched Tau med eff total; bin; eff",3,-1.5,1.5); - m_eff_jetBDTtight = BookTProfile("Eff_jetBDTtight","Matched Tau tight eff total; bin; eff",3,-1.5,1.5); -} +void EfficiencyPtPlots::initializePlots(){ -void EfficiencyPtPlots::fill(const xAOD::TauJet& tau) -{ - if ( tau.isTau(xAOD::TauJetParameters::JetBDTSigLoose) ) { - m_eff_pt_jetBDTloose ->Fill(tau.pt()/1000, 1.0, 1.0); - m_eff_pt_jetBDTlooseHighPt->Fill(tau.pt()/1000, 1.0, 1.0); - m_eff_jetBDTloose ->Fill(0.0, 1.0, 1.0); - } - else { - m_eff_pt_jetBDTloose ->Fill(tau.pt()/1000, 0.0, 1.0); - m_eff_pt_jetBDTlooseHighPt->Fill(tau.pt()/1000, 0.0, 1.0); - m_eff_jetBDTloose ->Fill(0.0, 0.0, 1.0); - } + m_eff_pt_jetBDTloose = BookTProfile("Eff_Pt_jetBDTloose"," Matched Tau loose eff in pt; pt; eff",15,0.,300.); + m_eff_pt_jetBDTmed = BookTProfile("Eff_Pt_jetBDTmed","Matched Tau med eff in pt; pt; eff",15,0.,300.); + m_eff_pt_jetBDTtight = BookTProfile("Eff_Pt_jetBDTtight","Matched Tau tight eff in pt; pt; eff",15,0.,300.); + + m_eff_jetBDTloose = BookTProfile("Eff_jetBDTloose"," Matched Tau loose eff total; bin; eff",3,-1.5,1.5); + m_eff_jetBDTmed = BookTProfile("Eff_jetBDTmed","Matched Tau med eff total; bin; eff",3,-1.5,1.5); + m_eff_jetBDTtight = BookTProfile("Eff_jetBDTtight","Matched Tau tight eff total; bin; eff",3,-1.5,1.5); - if ( tau.isTau(xAOD::TauJetParameters::JetBDTSigMedium) ) { - m_eff_pt_jetBDTmed ->Fill(tau.pt()/1000, 1.0, 1.0); - m_eff_pt_jetBDTmedHighPt->Fill(tau.pt()/1000, 1.0, 1.0); - m_eff_jetBDTmed ->Fill(0.0, 1.0, 1.0); - } - else { - m_eff_pt_jetBDTmed ->Fill(tau.pt()/1000, 0.0, 1.0); - m_eff_pt_jetBDTmedHighPt->Fill(tau.pt()/1000, 0.0, 1.0); - m_eff_jetBDTmed ->Fill(0.0, 0.0, 1.0); - } - if ( tau.isTau(xAOD::TauJetParameters::JetBDTSigTight) ) { - m_eff_pt_jetBDTtight ->Fill(tau.pt()/1000, 1.0, 1.0); - m_eff_pt_jetBDTtightHighPt->Fill(tau.pt()/1000, 1.0, 1.0); - m_eff_jetBDTtight ->Fill(0.0, 1.0, 1.0); - } - else { - m_eff_pt_jetBDTtight ->Fill(tau.pt()/1000, 0.0, 1.0); - m_eff_pt_jetBDTtightHighPt->Fill(tau.pt()/1000, 0.0, 1.0); - m_eff_jetBDTtight ->Fill(0.0, 0.0, 1.0); - } +} + +void EfficiencyPtPlots::fill(const xAOD::TauJet& tau) { + if(tau.isTau(xAOD::TauJetParameters::JetBDTSigLoose)){ + m_eff_pt_jetBDTloose->Fill( tau.pt()/1000,1,1); + m_eff_jetBDTloose->Fill( 0.,1.,1.); + } + else{ + m_eff_pt_jetBDTloose->Fill( tau.pt()/1000,0,1); + m_eff_jetBDTloose->Fill( 0.,0.,1.); + } + + if(tau.isTau(xAOD::TauJetParameters::JetBDTSigMedium)){ + m_eff_pt_jetBDTmed ->Fill( tau.pt()/1000,1,1); + m_eff_jetBDTmed ->Fill( 0.,1.,1.); + } + else{ + m_eff_pt_jetBDTmed ->Fill( tau.pt()/1000,0,1); + m_eff_jetBDTmed ->Fill( 0.,0.,1.); + } + if(tau.isTau(xAOD::TauJetParameters::JetBDTSigTight)){ + m_eff_pt_jetBDTtight->Fill( tau.pt()/1000,1,1); + m_eff_jetBDTtight->Fill( 0.,1.,1.); + } + else{ + m_eff_pt_jetBDTtight->Fill( tau.pt()/1000,0,1); + m_eff_jetBDTtight->Fill( 0.,0.,1.); + } } diff --git a/PhysicsAnalysis/TauID/TauHistUtils/src/GeneralTauPlots.cxx b/PhysicsAnalysis/TauID/TauHistUtils/src/GeneralTauPlots.cxx index 5fa54b51875e323cecd880b3aac56448e65281e8..98ecb3514154b2640dfa56b6d42990f59f187ec2 100644 --- a/PhysicsAnalysis/TauID/TauHistUtils/src/GeneralTauPlots.cxx +++ b/PhysicsAnalysis/TauID/TauHistUtils/src/GeneralTauPlots.cxx @@ -17,9 +17,6 @@ GeneralTauPlots::GeneralTauPlots(PlotBase* pParent, std::string sDir, std::strin m_pt_jetBDTloose(nullptr), m_pt_jetBDTmed(nullptr), m_pt_jetBDTtight(nullptr), - m_pt_jetBDTlooseHighPt(nullptr), - m_pt_jetBDTmedHighPt(nullptr), - m_pt_jetBDTtightHighPt(nullptr), m_sTauJetContainerName(sTauJetContainerName) { } @@ -29,18 +26,17 @@ GeneralTauPlots::~GeneralTauPlots() } void GeneralTauPlots::initializePlots(){ - // m_oParamPlots.initialize(); - m_tauCharge = Book1D("Charge",m_sTauJetContainerName + " Tau charge; charge; # Taus",7,-3.,4.); - m_tauNCoreTracks = Book1D("NCoreTracks",m_sTauJetContainerName + " Tau n core tracks; nCore; # Taus",10,0.,10.); - m_tauNWideTracks = Book1D("NWideTracks",m_sTauJetContainerName + " Tau n wide tracks; nWide; # Taus",10,0.,10.); - m_id_BDTJetScore = Book1D("id_BDTJetScore",m_sTauJetContainerName + " BDTJetScore ; BDTJetScore; # Tau",10,1.01,1.01); - - m_pt_jetBDTloose = Book1D("Pt_jetBDTloose",m_sTauJetContainerName + " Loose tau pt; pt; # Taus",20, 0.0, 150.0); - m_pt_jetBDTmed = Book1D("Pt_jetBDTmed",m_sTauJetContainerName + " Medium tau pt; pt; # Taus",20, 0.0, 150.0); - m_pt_jetBDTtight = Book1D("Pt_jetBDTtigth",m_sTauJetContainerName + " Tight tau pt; pt; # Taus",20, 0.0, 150.0); - m_pt_jetBDTlooseHighPt = Book1D("Pt_jetBDTlooseHighPt",m_sTauJetContainerName + " Loose tau pt; pt; # Taus", 20, 0.0, 1500.0); - m_pt_jetBDTmedHighPt = Book1D("Pt_jetBDTmedHighPt",m_sTauJetContainerName + " Medium tau pt; pt; # Taus", 20, 0.0, 1500.0); - m_pt_jetBDTtightHighPt = Book1D("Pt_jetBDTtigthHighPt",m_sTauJetContainerName + " Tight tau pt; pt; # Taus", 20, 0.0, 1500.0); + + // m_oParamPlots.initialize(); + m_tauCharge = Book1D("Charge",m_sTauJetContainerName + " Tau charge; charge; # Taus",7,-3.,4.); + m_tauNCoreTracks = Book1D("NCoreTracks",m_sTauJetContainerName + " Tau n core tracks; nCore; # Taus",10,0.,10.); + m_tauNWideTracks = Book1D("NWideTracks",m_sTauJetContainerName + " Tau n wide tracks; nWide; # Taus",10,0.,10.); + m_id_BDTJetScore = Book1D("id_BDTJetScore",m_sTauJetContainerName + " BDTJetScore ; BDTJetScore; # Tau",10,1.01,1.01); + m_pt_jetBDTloose = Book1D("Pt_jetBDTloose",m_sTauJetContainerName + " Tau pt; pt; # Taus",20,0.,300.); + m_pt_jetBDTmed = Book1D("Pt_jetBDTmed",m_sTauJetContainerName + " Tau pt; pt; # Taus",20,0.,300.); + m_pt_jetBDTtight = Book1D("Pt_jetBDTtigth",m_sTauJetContainerName + " Tau pt; pt; # Taus",20,0.,300.); + + } void GeneralTauPlots::fill(const xAOD::TauJet& tau) { @@ -50,18 +46,9 @@ void GeneralTauPlots::fill(const xAOD::TauJet& tau) { // m_tauNWideTracks->Fill(tau.nWideTracks(), 1.); m_tauNWideTracks->Fill(tau.nTracks(xAOD::TauJetParameters::classifiedIsolation), 1.); // if( tau.hasDiscriminant(xAOD::TauJetParameters::BDTJetScore) )m_id_BDTJetScore->Fill(tau.discriminant(xAOD::TauJetParameters::BDTJetScore)); - if ( tau.isTau(xAOD::TauJetParameters::JetBDTSigLoose) ) { - m_pt_jetBDTloose -> Fill(tau.pt()/1000, 1.0); - m_pt_jetBDTlooseHighPt -> Fill(tau.pt()/1000, 1.0); - } - if ( tau.isTau(xAOD::TauJetParameters::JetBDTSigMedium) ) { - m_pt_jetBDTmed -> Fill(tau.pt()/1000, 1.0); - m_pt_jetBDTmedHighPt -> Fill(tau.pt()/1000, 1.0); - } - if ( tau.isTau(xAOD::TauJetParameters::JetBDTSigTight) ) { - m_pt_jetBDTtight -> Fill(tau.pt()/1000, 1.0); - m_pt_jetBDTtightHighPt -> Fill(tau.pt()/1000, 1.0); - } + if(tau.isTau(xAOD::TauJetParameters::JetBDTSigLoose)) m_pt_jetBDTloose->Fill( tau.pt()/1000,1); + if(tau.isTau(xAOD::TauJetParameters::JetBDTSigMedium)) m_pt_jetBDTmed ->Fill( tau.pt()/1000,1); + if(tau.isTau(xAOD::TauJetParameters::JetBDTSigTight)) m_pt_jetBDTtight->Fill( tau.pt()/1000,1); } diff --git a/PhysicsAnalysis/TauID/TauHistUtils/src/Had1ProngPlots.cxx b/PhysicsAnalysis/TauID/TauHistUtils/src/Had1ProngPlots.cxx index 09d2198cf1df95c46b217f7c0ad4db93e9c482c1..771ed5820c1628ea86a6a1e6530e285526631760 100644 --- a/PhysicsAnalysis/TauID/TauHistUtils/src/Had1ProngPlots.cxx +++ b/PhysicsAnalysis/TauID/TauHistUtils/src/Had1ProngPlots.cxx @@ -6,8 +6,7 @@ namespace Tau{ -Had1ProngPlots::Had1ProngPlots(PlotBase* pParent, std::string sDir, - std::string sTauJetContainerName): +Had1ProngPlots::Had1ProngPlots(PlotBase* pParent, std::string sDir, std::string sTauJetContainerName): PlotBase(pParent, sDir), m_oGeneralTauPlots(this, "", sTauJetContainerName), m_tauNWideTracks(nullptr), @@ -37,27 +36,27 @@ Had1ProngPlots::~Had1ProngPlots() void Had1ProngPlots::initializePlots(){ - // m_oGeneralTauPlots.initialize(); - m_tauCoreFrac = Book1D("CoreFrac",m_sTauJetContainerName + " Tau CoreFrac; CoreFrac; # Taus",40,0.,2.); - m_tauEoverPTrk = Book1D("EoverPTrk",m_sTauJetContainerName + " Tau E over pLeadTrk; EoverP; # Taus",50,0.,4.); - m_tauTrkAvgDist = Book1D("TrkAvgDist",m_sTauJetContainerName + " Tau track avg dist; TrkAvgDist; # Taus",10,-0.2,.8); - m_tauIpSig = Book1D("IpSig",m_sTauJetContainerName + " Tau lead track IP signif. ; IpSig; # Taus",30,-15.,15.); - - m_tauDRMax = Book1D("DRMax",m_sTauJetContainerName + " Tau DR Max track-seed; DRMax; # Taus",20,0.,0.5); - m_tauSflight = Book1D("Sflight",m_sTauJetContainerName + " Tau flight sign. ; Sflight; # Taus",100,-10.,20.); - m_tauMtrks = Book1D("Mtracks",m_sTauJetContainerName + " Tau tracks mass ; Mtrks; # Taus",50,-1.,10.); - m_SumPtTrkFrac = Book1D("SumPtTrkFrac",m_sTauJetContainerName + " Tau Sum PtTrk Frac ; SumPtTrkFrac; # Taus",100,-10.,20.); - - m_innerTrkAvgDist = Book1D("innerTrkAvgDist",m_sTauJetContainerName + "Tau innerTrkAvgDist; innerTrkAvgDist; # of Taus",10,-0.2,.8); - m_ptRatioEflowApprox = Book1D("ptRatioEflowApprox",m_sTauJetContainerName + "Tau ptRatioEflowApprox; ptRatioEflowApprox; # of Taus", 10, 0, 10); - m_mEflowApprox = Book1D("mEflowApprox",m_sTauJetContainerName + "Tau mEflowApprox; mEflowApprox; #Taus",30,0.0,3000.0); - - m_ChPiEMEOverCaloEME = Book1D("ChPiEMEOverCaloEME",m_sTauJetContainerName + "Tau ChPiEMEOverCaloEME; ChPiEMEOverCaloEME; # of Taus", 30, -15, 15); - m_EMPOverTrkSysP = Book1D("EMPOverTrkSysP",m_sTauJetContainerName + "Tau EMPOverTrkSysP; EMPOverTrkSysP; # of Taus", 21, -1, 20); - - m_HadRadius = Book1D("HadRadius",m_sTauJetContainerName + " Had Radius; HadRadius; # Part",20,0,2.); - m_EMRadius = Book1D("EMRadius",m_sTauJetContainerName + " EM Radius; EMRadius; # Part",20,0,2.); - m_IsoFrac = Book1D("IsoFrac",m_sTauJetContainerName + " Iso Frac; Iso Frac; # Part",20,0,1.); + // m_oGeneralTauPlots.initialize(); + m_tauCoreFrac = Book1D("CoreFrac",m_sTauJetContainerName + " Tau CoreFrac; CoreFrac; # Taus",40,0.,2.); + m_tauEoverPTrk = Book1D("EoverPTrk",m_sTauJetContainerName + " Tau E over pLeadTrk; EoverP; # Taus",50,0.,4.); + m_tauTrkAvgDist = Book1D("TrkAvgDist",m_sTauJetContainerName + " Tau track avg dist; TrkAvgDist; # Taus",10,-0.2,.8); + m_tauIpSig = Book1D("IpSig",m_sTauJetContainerName + " Tau lead track IP signif. ; IpSig; # Taus",30,-15.,15.); + + m_tauDRMax = Book1D("DRMax",m_sTauJetContainerName + " Tau DR Max track-seed; DRMax; # Taus",20,0.,0.5); + m_tauSflight = Book1D("Sflight",m_sTauJetContainerName + " Tau flight sign. ; Sflight; # Taus",100,-10.,20.); + m_tauMtrks = Book1D("Mtracks",m_sTauJetContainerName + " Tau tracks mass ; Mtrks; # Taus",50,-1.,10.); + m_SumPtTrkFrac = Book1D("SumPtTrkFrac",m_sTauJetContainerName + " Tau Sum PtTrk Frac ; SumPtTrkFrac; # Taus",100,-10.,20.); + + m_innerTrkAvgDist = Book1D("innerTrkAvgDist",m_sTauJetContainerName + "Tau innerTrkAvgDist; innerTrkAvgDist; # of Taus",10,-0.2,.8); + m_ptRatioEflowApprox = Book1D("ptRatioEflowApprox",m_sTauJetContainerName + "Tau ptRatioEflowApprox; ptRatioEflowApprox; # of Taus", 10, 0, 10); + m_mEflowApprox = Book1D("mEflowApprox",m_sTauJetContainerName + "Tau mEflowApprox; mEflowApprox; #Taus",30,0,300); + + m_ChPiEMEOverCaloEME = Book1D("ChPiEMEOverCaloEME",m_sTauJetContainerName + "Tau ChPiEMEOverCaloEME; ChPiEMEOverCaloEME; # of Taus", 30, -15, 15); + m_EMPOverTrkSysP = Book1D("EMPOverTrkSysP",m_sTauJetContainerName + "Tau EMPOverTrkSysP; EMPOverTrkSysP; # of Taus", 21, -1, 20); + + m_HadRadius = Book1D("HadRadius",m_sTauJetContainerName + " Had Radius; HadRadius; # Part",20,0,2.); + m_EMRadius = Book1D("EMRadius",m_sTauJetContainerName + " EM Radius; EMRadius; # Part",20,0,2.); + m_IsoFrac = Book1D("IsoFrac",m_sTauJetContainerName + " Iso Frac; Iso Frac; # Part",20,0,1.); } diff --git a/PhysicsAnalysis/TauID/TauHistUtils/src/Had3ProngPlots.cxx b/PhysicsAnalysis/TauID/TauHistUtils/src/Had3ProngPlots.cxx index bccd482e37ee4f8647404efa893c2a18fcc54ad6..86e2db83fc65444b600fb502bcd54801618c397e 100644 --- a/PhysicsAnalysis/TauID/TauHistUtils/src/Had3ProngPlots.cxx +++ b/PhysicsAnalysis/TauID/TauHistUtils/src/Had3ProngPlots.cxx @@ -42,7 +42,7 @@ void Had3ProngPlots::initializePlots(){ m_innerTrkAvgDist = Book1D("innerTrkAvgDist",m_sTauJetContainerName + "Tau innerTrkAvgDist; innerTrkAvgDist; # of Taus", 10,-0.2,.8); m_ptRatioEflowApprox = Book1D("ptRatioEflowApprox",m_sTauJetContainerName + "Tau ptRatioEflowApprox; ptRatioEflowApprox; # of Taus", 10, 0, 10); - m_mEflowApprox = Book1D("mEflowApprox",m_sTauJetContainerName + "Tau mEflowApprox; mEflowApprox; #Taus",30,0.0,3000.0); + m_mEflowApprox = Book1D("mEflowApprox",m_sTauJetContainerName + "Tau mEflowApprox; mEflowApprox; #Taus",30,0,300); m_ChPiEMEOverCaloEME = Book1D("ChPiEMEOverCaloEME",m_sTauJetContainerName + "Tau ChPiEMEOverCaloEME; ChPiEMEOverCaloEME; # of Taus", 30, -15, 15); m_EMPOverTrkSysP = Book1D("EMPOverTrkSysP",m_sTauJetContainerName + "Tau EMPOverTrkSysP; EMPOverTrkSysP; # of Taus", 21, -1, 20); diff --git a/PhysicsAnalysis/TauID/TauHistUtils/src/Migration.cxx b/PhysicsAnalysis/TauID/TauHistUtils/src/Migration.cxx index 17032bda135321cbf02e8900c3576efd070399dc..1955adc11a2e4e25359bfef59cd1f7b82a82a338 100644 --- a/PhysicsAnalysis/TauID/TauHistUtils/src/Migration.cxx +++ b/PhysicsAnalysis/TauID/TauHistUtils/src/Migration.cxx @@ -8,8 +8,8 @@ namespace Tau{ Migration::Migration(PlotBase* pParent, std::string sDir, std::string sTauJetContainerName): PlotBase(pParent, sDir), - m_migration_panTau(nullptr), - m_migration_panTauProto(nullptr), + m_migration_tauRec(nullptr), + m_migration_eflow(nullptr), m_migration_cellBased(nullptr), m_sTauJetContainerName(sTauJetContainerName) { @@ -19,141 +19,94 @@ Migration::~Migration() { } -void Migration::initializePlots() -{ - m_migration_panTau = Book1D("panTau_migration",m_sTauJetContainerName + " panTau migration",DECAYSIZE,0,DECAYSIZE); - m_migration_panTauProto = Book1D("panTauProto_migration",m_sTauJetContainerName + " panTau proto migration",DECAYSIZE,0,DECAYSIZE); - m_migration_cellBased = Book1D("cellBased_migration",m_sTauJetContainerName + " cellBased migration",DECAYSIZE,0,DECAYSIZE); - m_migration_panTau->GetXaxis()->SetLabelSize(0.05); - m_migration_panTauProto->GetXaxis()->SetLabelSize(0.05); - m_migration_cellBased->GetXaxis()->SetLabelSize(0.05); - for(int i=1; i<= DECAYSIZE;i++){ - m_migration_panTauProto->GetXaxis()->SetBinLabel(i,m_lable[i-1]); - m_migration_panTau->GetXaxis()->SetBinLabel(i,m_lable[i-1]); - m_migration_cellBased->GetXaxis()->SetBinLabel(i,m_lable[i-1]); - } -} - -void Migration::fill(const xAOD::TauJet& thisTau,int nProng, int nNeu) { - - // panTau - int isPanTauCandidate = 0; - bool foundDetail = thisTau.panTauDetail(xAOD::TauJetParameters::PanTauDetails::PanTau_isPanTauCandidate, isPanTauCandidate); - if ( !foundDetail || !isPanTauCandidate ) return; - - int decayMode = xAOD::TauJetParameters::DecayMode::Mode_Error; - foundDetail = thisTau.panTauDetail(xAOD::TauJetParameters::PanTauDetails::PanTau_DecayMode, decayMode); - if ( foundDetail ) decayModeFill(decayMode, nProng, nNeu, m_migration_panTau); - - decayMode = xAOD::TauJetParameters::DecayMode::Mode_Error; - foundDetail = thisTau.panTauDetail(xAOD::TauJetParameters::PanTauDetails::PanTau_DecayModeProto, decayMode); - if ( foundDetail ) decayModeFill(decayMode, nProng, nNeu, m_migration_panTauProto); - - -//RecTau - + void Migration::initializePlots(){ + m_migration_tauRec = Book1D("tauRec_migration",m_sTauJetContainerName + " TauRec migration",DECAYSIZE,0,DECAYSIZE); + m_migration_eflow = Book1D("eflow_migration",m_sTauJetContainerName + " eflow migration",DECAYSIZE,0,DECAYSIZE); + m_migration_cellBased = Book1D("cellBased_migration",m_sTauJetContainerName + " cellBased migration",DECAYSIZE,0,DECAYSIZE); + for(int i=1; i<= DECAYSIZE;i++){ + m_migration_tauRec->GetXaxis()->SetBinLabel(i,m_lable[i-1]); + m_migration_eflow->GetXaxis()->SetBinLabel(i,m_lable[i-1]); + m_migration_cellBased->GetXaxis()->SetBinLabel(i,m_lable[i-1]); + } + } + + void Migration::fill(const xAOD::TauJet& thisTau,int nProng, int nNeu) { + //RecTau - - - /*+++++++++++++++++++++++++++++++++++++++++++++++++ - +++++++++++++++++++CellBased+++++++++++++++++++++ - +++++++++++++++++++++++++++++++++++++++++++++++++*/ - - - //Charged Pions - std::vector< ElementLink< xAOD::PFOContainer > > cellBased_chargedPFO = thisTau.protoChargedPFOLinks(); - int cellP = cellBased_chargedPFO.size(); - - //Neutral Pions - int nPi0_tau = 0; - std::vector< ElementLink< xAOD::PFOContainer > > cellBased_neutralPFO = thisTau.protoNeutralPFOLinks(); - std::vector< ElementLink< xAOD::PFOContainer > >::iterator first_cellBased_neutralPFO = cellBased_neutralPFO.begin(); - std::vector< ElementLink< xAOD::PFOContainer > >::iterator last_cellBased_neutralPFO = cellBased_neutralPFO.end(); - for (; first_cellBased_neutralPFO != last_cellBased_neutralPFO; ++first_cellBased_neutralPFO){ - ElementLink<xAOD::PFOContainer> thisLink = *first_cellBased_neutralPFO; - const xAOD::PFO* thisPFO = *thisLink; - int myNPi0Proto = 0; - if(thisPFO->attribute(xAOD::PFODetails::nPi0Proto, myNPi0Proto)) nPi0_tau+=myNPi0Proto; - - } - decayModeFill(nProng,nNeu,cellP,nPi0_tau,m_migration_cellBased); - - - - /*+++++++++++++++++++++++++++++++++++++++++++++++++ - +++++++++++++++++++Pantau+++++++++++++++++++++ - +++++++++++++++++++++++++++++++++++++++++++++++++*/ - -} - - -void Migration::decayModeFill(int trueMode, int recP, int recN,TH1 *histo) -{ - switch (trueMode) { - case xAOD::TauJetParameters::DecayMode::Mode_1p0n: - if ( recP == 1 && recN == 0 ) histo->Fill(t10r10 + 0.5); - else if ( recP == 1 && recN == 1 ) histo->Fill(t10r11 + 0.5); - else if ( recP == 1 && recN > 1 ) histo->Fill(t10r1x + 0.5); - else if ( recP == 3 ) histo->Fill(t1r3 + 0.5); - break; - case xAOD::TauJetParameters::DecayMode::Mode_1p1n: - if ( recP == 1 && recN == 0 ) histo->Fill(t11r10 + 0.5); - else if ( recP == 1 && recN == 1 ) histo->Fill(t11r11 + 0.5); - else if ( recP == 1 && recN > 1 ) histo->Fill(t11r1x + 0.5); - else if ( recP == 3 ) histo->Fill(t1r3 + 0.5); - break; - case xAOD::TauJetParameters::DecayMode::Mode_1pXn: - if ( recP == 1 && recN == 0 ) histo->Fill(t1xr10 + 0.5); - else if ( recP == 1 && recN == 1 ) histo->Fill(t1xr11 + 0.5); - else if ( recP == 1 && recN > 1 ) histo->Fill(t1xr1x + 0.5); - else if ( recP == 3 ) histo->Fill(t1r3 + 0.5); - break; - case xAOD::TauJetParameters::DecayMode::Mode_3p0n: - if ( recP == 3 && recN == 0 ) histo->Fill(t30r30 + 0.5); - else if ( recP == 3 && recN >= 1 ) histo->Fill(t30r3x + 0.5); - else if ( recP == 1 ) histo->Fill(t3r1 + 0.5); - break; - case xAOD::TauJetParameters::DecayMode::Mode_3pXn: - if ( recP == 3 && recN == 0 ) histo->Fill(t3xr30 + 0.5); - else if ( recP == 3 && recN >= 1 ) histo->Fill(t3xr3x + 0.5); - else if ( recP == 1 ) histo->Fill(t3r1 + 0.5); - break; - } - return; -} - - -void Migration::decayModeFill(int trueP,int trueN,int recP, int recN,TH1 *histo){ - if(recP == 1 && recN== 0){ - if(trueP == 1 && trueN== 0) histo->Fill(t10r10 + 0.5); - if(trueP == 1 && trueN== 1) histo->Fill(t11r10 + 0.5); - if(trueP == 1 && trueN > 1) histo->Fill(t1xr10 + 0.5); - if(trueP == 3) histo->Fill(t3r1 + 0.5); - } - if(recP == 1 && recN== 1){ - if(trueP == 1 && trueN== 0) histo->Fill(t10r11 + 0.5); - if(trueP == 1 && trueN== 1) histo->Fill(t11r11 + 0.5); - if(trueP == 1 && trueN > 1) histo->Fill(t1xr11 + 0.5); - if(trueP == 3 ) histo->Fill(t3r1 + 0.5); - } - if(recP == 1 && recN > 1){ - if(trueP == 1 && trueN== 0) histo->Fill(t10r1x + 0.5); - if(trueP == 1 && trueN== 1) histo->Fill(t11r1x + 0.5); - if(trueP == 1 && trueN > 1) histo->Fill(t1xr1x + 0.5); - if(trueP == 3 ) histo->Fill(t3r1 + 0.5); - } - if(recP == 3 && recN== 0){ - if(trueP == 1 ) histo->Fill(t1r3 + 0.5); - if(trueP == 3 && trueN== 0) histo->Fill(t30r30 + 0.5); - if(trueP == 3 && trueN>= 1) histo->Fill(t3xr30 + 0.5); - } - if(recP == 3 && recN>= 1){ - if(trueP == 1 ) histo->Fill(t1r3 + 0.5); - if(trueP == 3 && trueN== 0) histo->Fill(t30r3x + 0.5); - if(trueP == 3 && trueN>= 1) histo->Fill(t3xr3x + 0.5); - } - return; -} + + + /*+++++++++++++++++++++++++++++++++++++++++++++++++ + +++++++++++++++++++EFLOW_REC+++++++++++++++++++++ + +++++++++++++++++++++++++++++++++++++++++++++++++*/ + + //Charged Pions + // FIXME!!! taujet v2 does no longer have eflowrec pfos + // std::vector< ElementLink< xAOD::PFOContainer > > eflowRec_chargedPFO = thisTau.eflowRec_Charged_PFOLinks(); + // int efP = eflowRec_chargedPFO.size(); + // //Neutral Pions + // std::vector< ElementLink< xAOD::PFOContainer > > eflowRec_neutralPFO = thisTau.eflowRec_Pi0_PFOLinks(); + // int efN = eflowRec_neutralPFO.size(); + // decayModeFill(nProng,nNeu,efP,efN,m_migration_eflow); + /*+++++++++++++++++++++++++++++++++++++++++++++++++ + +++++++++++++++++++CellBased+++++++++++++++++++++ + +++++++++++++++++++++++++++++++++++++++++++++++++*/ + + //Charged Pions + std::vector< ElementLink< xAOD::PFOContainer > > cellBased_chargedPFO = thisTau.protoChargedPFOLinks(); + int cellP = cellBased_chargedPFO.size(); + + //Neutral Pions + int nPi0_tau = 0; + std::vector< ElementLink< xAOD::PFOContainer > > cellBased_neutralPFO = thisTau.protoNeutralPFOLinks(); + std::vector< ElementLink< xAOD::PFOContainer > >::iterator first_cellBased_neutralPFO = cellBased_neutralPFO.begin(); + std::vector< ElementLink< xAOD::PFOContainer > >::iterator last_cellBased_neutralPFO = cellBased_neutralPFO.end(); + for (; first_cellBased_neutralPFO != last_cellBased_neutralPFO; ++first_cellBased_neutralPFO){ + ElementLink<xAOD::PFOContainer> thisLink = *first_cellBased_neutralPFO; + const xAOD::PFO* thisPFO = *thisLink; + int myNPi0Proto = 0; + if(thisPFO->attribute(xAOD::PFODetails::nPi0Proto, myNPi0Proto)) nPi0_tau+=myNPi0Proto; + + } + decayModeFill(nProng,nNeu,cellP,nPi0_tau,m_migration_cellBased); + + + + /*+++++++++++++++++++++++++++++++++++++++++++++++++ + +++++++++++++++++++Pantau+++++++++++++++++++++ + +++++++++++++++++++++++++++++++++++++++++++++++++*/ + + } + void Migration::decayModeFill(int trueP,int trueN,int recP, int recN,TH1 *histo){ + if(recP == 1 && recN== 0){ + if(trueP == 1 && trueN== 0) histo->Fill(t10r10 + 0.5); + if(trueP == 1 && trueN== 1) histo->Fill(t11r10 + 0.5); + if(trueP == 1 && trueN > 1) histo->Fill(t1xr10 + 0.5); + if(trueP == 3) histo->Fill(t3r1 + 0.5); + } + if(recP == 1 && recN== 1){ + if(trueP == 1 && trueN== 0) histo->Fill(t10r11 + 0.5); + if(trueP == 1 && trueN== 1) histo->Fill(t11r11 + 0.5); + if(trueP == 1 && trueN > 1) histo->Fill(t1xr11 + 0.5); + if(trueP == 3 ) histo->Fill(t3r1 + 0.5); + } + if(recP == 1 && recN > 1){ + if(trueP == 1 && trueN== 0) histo->Fill(t10r1x + 0.5); + if(trueP == 1 && trueN== 1) histo->Fill(t11r1x + 0.5); + if(trueP == 1 && trueN > 1) histo->Fill(t1xr1x + 0.5); + if(trueP == 3 ) histo->Fill(t3r1 + 0.5); + } + if(recP == 3 && recN== 0){ + if(trueP == 1 ) histo->Fill(t1r3 + 0.5); + if(trueP == 3 && trueN== 0) histo->Fill(t30r30 + 0.5); + if(trueP == 3 && trueN>= 1) histo->Fill(t3xr30 + 0.5); + } + if(recP == 3 && recN>= 1){ + if(trueP == 1 ) histo->Fill(t1r3 + 0.5); + if(trueP == 3 && trueN== 0) histo->Fill(t30r3x + 0.5); + if(trueP == 3 && trueN>= 1) histo->Fill(t3xr3x + 0.5); + } + return; + } } diff --git a/PhysicsAnalysis/TauID/TauHistUtils/src/NewCorePlots.cxx b/PhysicsAnalysis/TauID/TauHistUtils/src/NewCorePlots.cxx index 2f99d3d22a00dbdca4d76e3961086d5110c89be6..9cc2c23861e66c7012e0c7322370dae907b4c64d 100644 --- a/PhysicsAnalysis/TauID/TauHistUtils/src/NewCorePlots.cxx +++ b/PhysicsAnalysis/TauID/TauHistUtils/src/NewCorePlots.cxx @@ -79,7 +79,7 @@ void NewCorePlots::initializePlots(){ m_innerTrkAvgDist = Book1D("innerTrkAvgDist",m_sTauJetContainerName + "Tau innerTrkAvgDist; innerTrkAvgDist; # of Taus",10,-0.2,.8); m_ptRatioEflowApprox = Book1D("ptRatioEflowApprox",m_sTauJetContainerName + "Tau ptRatioEflowApprox; ptRatioEflowApprox; # of Taus", 10, 0, 10); - m_mEflowApprox = Book1D("mEflowApprox",m_sTauJetContainerName + "Tau mEflowApprox; mEflowApprox; #Taus",30,0.0,3000.0); + m_mEflowApprox = Book1D("mEflowApprox",m_sTauJetContainerName + "Tau mEflowApprox; mEflowApprox; #Taus",30,0,300); } void NewCorePlots::fill(const xAOD::TauJet& tau) { diff --git a/PhysicsAnalysis/TauID/TauHistUtils/src/ParamPlots.cxx b/PhysicsAnalysis/TauID/TauHistUtils/src/ParamPlots.cxx index 5e7b3bc1e4e00c44c41552f0701f8262a5d94d60..aa60d52e2618d11a1f09934810513b85e07f5597 100644 --- a/PhysicsAnalysis/TauID/TauHistUtils/src/ParamPlots.cxx +++ b/PhysicsAnalysis/TauID/TauHistUtils/src/ParamPlots.cxx @@ -6,38 +6,34 @@ namespace Tau{ -ParamPlots::ParamPlots(PlotBase* pParent, std::string sDir, std::string sParticleType) - : PlotBase(pParent, sDir), - eta(nullptr), - phi(nullptr), - pt(nullptr), - eta_phi(nullptr), - eta_pt(nullptr), - m_sParticleType(sParticleType) +ParamPlots::ParamPlots(PlotBase* pParent, std::string sDir, std::string sParticleType):PlotBase(pParent, sDir),m_sParticleType(sParticleType) { -} + eta=NULL; + phi=NULL; + pt=NULL; -ParamPlots::~ParamPlots() -{ + eta_phi=NULL; + eta_pt=NULL; } -void ParamPlots::initializePlots() -{ - pt = Book1D("pt" , m_sParticleType+" pt;" +m_sParticleType+" Transverse Momentum [GeV];Entries / 1 GeV",200,0.,200); - eta = Book1D("eta", m_sParticleType+" eta;"+m_sParticleType+" Pseudo-Rapidity;Entries / 0.05", 32, -3.2, 3.2); - phi = Book1D("phi", m_sParticleType+" phi;"+m_sParticleType+" Azimuthal Angle;Entries / 0.05", 32, -3.2, 3.2); - eta_pt = Book2D("eta_pt",m_sParticleType+" eta vs pt;"+m_sParticleType+" eta;"+m_sParticleType+" pt;Entries.0.05/1 GeV",32,-3.2,3.2,200,0.,200); - eta_phi = Book2D("eta_phi_test",m_sParticleType+" eta vs phi;"+m_sParticleType+" eta;"+m_sParticleType+" phi;Entries.0.05/0.5",32,-3.2,3.2,32,-3.2,3.2); + +void ParamPlots::initializePlots() { + pt = Book1D("pt" , m_sParticleType+" pt;" +m_sParticleType+" Transverse Momentum [GeV];Entries / 1 GeV",200,0.,200); + eta = Book1D("eta", m_sParticleType+" eta;"+m_sParticleType+" Pseudo-Rapidity;Entries / 0.05", 32, -3.2, 3.2); + phi = Book1D("phi", m_sParticleType+" phi;"+m_sParticleType+" Azimuthal Angle;Entries / 0.05", 32, -3.2, 3.2); + + eta_pt = Book2D("eta_pt",m_sParticleType+" eta vs pt;"+m_sParticleType+" eta;"+m_sParticleType+" pt;Entries.0.05/1 GeV",32,-3.2,3.2,200,0.,200); + eta_phi = Book2D("eta_phi_test",m_sParticleType+" eta vs phi;"+m_sParticleType+" eta;"+m_sParticleType+" phi;Entries.0.05/0.5",32,-3.2,3.2,32,-3.2,3.2); } - -void ParamPlots::fill(const xAOD::IParticle& tau) -{ - pt->Fill(tau.pt()*0.001); - eta->Fill(tau.eta()); - phi->Fill(tau.phi()); - eta_pt->Fill(tau.eta(),tau.pt()*0.001); - eta_phi->Fill(tau.eta(),tau.phi()); + +void ParamPlots::fill(const xAOD::IParticle& tau){ + pt->Fill(tau.pt()*0.001); + eta->Fill(tau.eta()); + phi->Fill(tau.phi()); + + eta_pt->Fill(tau.eta(),tau.pt()*0.001); + eta_phi->Fill(tau.eta(),tau.phi()); } } diff --git a/PhysicsAnalysis/TauID/TauHistUtils/src/RecoTauPlots.cxx b/PhysicsAnalysis/TauID/TauHistUtils/src/RecoTauPlots.cxx index 3c52bba569b197f1367a23471f9cd92cf40c49f6..da56580e04ebf2ce3bd2270b21143008ac029927 100644 --- a/PhysicsAnalysis/TauID/TauHistUtils/src/RecoTauPlots.cxx +++ b/PhysicsAnalysis/TauID/TauHistUtils/src/RecoTauPlots.cxx @@ -9,6 +9,15 @@ namespace Tau{ RecoTauPlots::RecoTauPlots(PlotBase* pParent, std::string sDir, std::string sTauJetContainerName): PlotBase(pParent, sDir), m_oParamPlots(this, "", sTauJetContainerName), + m_eflowRec_charPFO_Pt(nullptr), + m_eflowRec_charPFO_Eta(nullptr), + m_eflowRec_charPFO_Phi(nullptr), + m_eflowRec_charPFO_E(nullptr), + m_eflowRec_neuPFO_Pt(nullptr), + m_eflowRec_neuPFO_Eta(nullptr), + m_eflowRec_neuPFO_Phi(nullptr), + m_eflowRec_neuPFO_E(nullptr), + m_eflowRec_neuPFO_bdtPi0Score(nullptr), m_cellBased_charPFO_Pt(nullptr), m_cellBased_charPFO_Eta(nullptr), m_cellBased_charPFO_Phi(nullptr), @@ -33,6 +42,20 @@ RecoTauPlots::RecoTauPlots(PlotBase* pParent, std::string sDir, std::string sTau m_pantau_CellBasedInput_BDTVar_Neutral_Ratio_EtOverEtAllConsts(nullptr), m_pantau_CellBasedInput_BDTVar_Neutral_Shots_NPhotonsInSeed(nullptr), m_pantau_CellBasedInput_BDTVar_Combined_DeltaR1stNeutralTo1stCharged(nullptr), + m_pantau_eflowRecInput_isPanTauCandidate(nullptr), + m_pantau_eflowRecInput_DecayMode(nullptr), + m_pantau_eflowRecInput_BDTValue_1p0n_vs_1p1n(nullptr), + m_pantau_eflowRecInput_BDTValue_1p1n_vs_1pXn(nullptr), + m_pantau_eflowRecInput_BDTValue_3p0n_vs_3pXn(nullptr), + m_pantau_eflowRecInput_BDTVar_Basic_NPi0NeutConsts(nullptr), + m_pantau_eflowRecInput_BDTVar_Basic_NNeutralConsts(nullptr), + m_pantau_eflowRecInput_BDTVar_Charged_Ratio_EtOverEtAllConsts(nullptr), + m_pantau_eflowRecInput_BDTVar_Neutral_HLV_SumM(nullptr), + m_pantau_eflowRecInput_BDTVar_Neutral_PID_BDTValues_EtSort_1(nullptr), + m_pantau_eflowRecInput_BDTVar_Neutral_PID_BDTValues_BDTSort_2(nullptr), + m_pantau_eflowRecInput_BDTVar_Neutral_Ratio_EtOverEtAllConsts(nullptr), + m_pantau_eflowRecInput_BDTVar_Neutral_Mean_DRToLeading_WrtEtAllConsts(nullptr), + m_pantau_eflowRecInput_BDTVar_Combined_DeltaR1stNeutralTo1stCharged(nullptr), m_id_BDTJetScore(nullptr), m_id_BDTEleScore(nullptr), m_sTauJetContainerName(sTauJetContainerName) @@ -48,6 +71,22 @@ void RecoTauPlots::initializePlots(){ // m_oParamPlots.initialize(); + /*+++++++++++++++++++++++++++++++++++++++++++++++++ + +++++++++++++++++++EFLOW_REC+++++++++++++++++++++ + +++++++++++++++++++++++++++++++++++++++++++++++++*/ + + + // m_eflowRec_charPFO_Pt = Book1D("eflowRec_PFO_c_Pt",m_sTauJetContainerName + " Charged PFO pt; pt; # PFO",200,0.,200000.); + // m_eflowRec_charPFO_Eta = Book1D("eflowRec_PFO_c_Eta",m_sTauJetContainerName + " Charged PFO eta; eta; # PFO",128,-3.2,3.2); + // m_eflowRec_charPFO_Phi = Book1D("eflowRec_PFO_c_Phi",m_sTauJetContainerName + " Charged PFO phi; phi; # PFO",128,-3.2,3.2); + // m_eflowRec_charPFO_E = Book1D("eflowRec_PFO_c_E",m_sTauJetContainerName + " Charged PFO E; E; # PFO",200,0.,200000.); + // m_eflowRec_neuPFO_Pt = Book1D("eflowRec_PFO_n_Pt",m_sTauJetContainerName + " Neutral PFO pt; pt; # PFO",200,0.,200000.); + // m_eflowRec_neuPFO_Eta = Book1D("eflowRec_PFO_n_Eta",m_sTauJetContainerName + " Neutral PFO eta; eta; # PFO",128,-3.2,3.2); + // m_eflowRec_neuPFO_Phi = Book1D("eflowRec_PFO_n_Phi",m_sTauJetContainerName + " Neutral PFO phi; phi; # PFO",128,-3.2,3.2); + // m_eflowRec_neuPFO_E = Book1D("eflowRec_PFO_n_E",m_sTauJetContainerName + " Neutral PFO E; E; # PFO",200,0.,200000.); + // m_eflowRec_neuPFO_bdtPi0Score = Book1D("eflowRec_PFO_n_bdtPi0Score",m_sTauJetContainerName + " Neutral PFO BDT Pi0 Score; Score; # PFO",60,-.6,.6); + + /*+++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++CellBased+++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++++++++*/ @@ -58,7 +97,7 @@ void RecoTauPlots::initializePlots(){ m_cellBased_charPFO_E = Book1D("cellBased_PFO_c_E",m_sTauJetContainerName + " Charged PFO E; E; # PFO",200,0.,200000.); m_cellBased_neuPFO_Pt = Book1D("cellBased_PFO_n_Pt",m_sTauJetContainerName + " Neutral PFO pt; pt; # PFO",200,0.,200000.); m_cellBased_neuPFO_Eta = Book1D("cellBased_PFO_n_Eta",m_sTauJetContainerName + " Neutral PFO eta; eta; # PFO",128,-3.2,3.2); - m_cellBased_neuPFO_Phi = Book1D("cellBased_PFO_n_Phi",m_sTauJetContainerName + " Neutral PFO phi; phi; # PFO",64,-3.2,3.2); + m_cellBased_neuPFO_Phi = Book1D("cellBased_PFO_n_Phi",m_sTauJetContainerName + " Neutral PFO phi; phi; # PFO",128,-3.2,3.2); m_cellBased_neuPFO_E = Book1D("cellBased_PFO_n_E",m_sTauJetContainerName + " Neutral PFO E; E; # PFO",200,0.,200000.); m_cellBased_neuPFO_bdtPi0Score = Book1D("cellBased_PFO_n_bdtPi0Score",m_sTauJetContainerName + " Neutral PFO BDT Pi0 Score; Score; # PFO",60,-1.0,1.0); @@ -82,12 +121,57 @@ void RecoTauPlots::initializePlots(){ m_pantau_CellBasedInput_BDTVar_Neutral_Shots_NPhotonsInSeed = Book1D("pantau_CellBasedInput_BDTVar_Neutral_Shots_NPhotonsInSeed",m_sTauJetContainerName + "pantau_CellBasedInput_BDTVar_Neutral_Shots_NPhotonsInSeed",10,-0.5,9.5); m_pantau_CellBasedInput_BDTVar_Combined_DeltaR1stNeutralTo1stCharged = Book1D("pantau_CellBasedInput_BDTVar_Combined_DeltaR1stNeutralTo1stCharged",m_sTauJetContainerName + "pantau_CellBasedInput_BDTVar_Combined_DeltaR1stNeutralTo1stCharged",30,0.,0.6); + m_pantau_eflowRecInput_isPanTauCandidate = Book1D("pantau_eflowRecInput_isPanTauCandidate",m_sTauJetContainerName + "pantau_eflowRecInput_isPanTauCandidate",2,0,2); + m_pantau_eflowRecInput_DecayMode = Book1D("pantau_eflowRecInput_DecayMode",m_sTauJetContainerName + "pantau_eflowRecInput_DecayMode",6,-0.5,5.5); + m_pantau_eflowRecInput_BDTValue_1p0n_vs_1p1n = Book1D("pantau_eflowRecInput_BDTValue_1p0n_vs_1p1n",m_sTauJetContainerName + "pantau_eflowRecInput_BDTValue_1p0n_vs_1p1n",30,-1.,1.); + m_pantau_eflowRecInput_BDTValue_1p1n_vs_1pXn = Book1D("pantau_eflowRecInput_BDTValue_1p1n_vs_1pXn",m_sTauJetContainerName + "pantau_eflowRecInput_BDTValue_1p1n_vs_1pXn",30,-1.,1.); + m_pantau_eflowRecInput_BDTValue_3p0n_vs_3pXn = Book1D("pantau_eflowRecInput_BDTValue_3p0n_vs_3pXn",m_sTauJetContainerName + "pantau_eflowRecInput_BDTValue_3p0n_vs_3pXn",30,-1.,1.); + m_pantau_eflowRecInput_BDTVar_Basic_NPi0NeutConsts = Book1D("pantau_eflowRecInput_BDTVar_Basic_NPi0NeutConsts",m_sTauJetContainerName + "pantau_eflowRecInput_BDTVar_Basic_NPi0NeutConsts",10.,-0.5,9.5); + m_pantau_eflowRecInput_BDTVar_Basic_NNeutralConsts = Book1D("pantau_eflowRecInput_BDTVar_Basic_NNeutralConsts",m_sTauJetContainerName + "pantau_eflowRecInput_BDTVar_Basic_NNeutralConsts",10.,-0.5,9.5); + m_pantau_eflowRecInput_BDTVar_Charged_Ratio_EtOverEtAllConsts = Book1D("pantau_eflowRecInput_BDTVar_Charged_Ratio_EtOverEtAllConsts",m_sTauJetContainerName + "pantau_eflowRecInput_BDTVar_Charged_Ratio_EtOverEtAllConsts",30,0.,1.); + m_pantau_eflowRecInput_BDTVar_Neutral_HLV_SumM = Book1D("pantau_eflowRecInput_BDTVar_Neutral_HLV_SumM",m_sTauJetContainerName + "pantau_eflowRecInput_BDTVar_Neutral_HLV_SumM",30,0.,6.); + m_pantau_eflowRecInput_BDTVar_Neutral_PID_BDTValues_EtSort_1 = Book1D("pantau_eflowRecInput_BDTVar_Neutral_PID_BDTValues_EtSort_1",m_sTauJetContainerName + "pantau_eflowRecInput_BDTVar_Neutral_PID_BDTValues_EtSort_1",30,-1.5,1.5); + m_pantau_eflowRecInput_BDTVar_Neutral_PID_BDTValues_BDTSort_2 = Book1D("pantau_eflowRecInput_BDTVar_Neutral_PID_BDTValues_BDTSort_2",m_sTauJetContainerName + "pantau_eflowRecInput_BDTVar_Neutral_PID_BDTValues_BDTSort_2",30,-1.5,1.5); + m_pantau_eflowRecInput_BDTVar_Neutral_Ratio_EtOverEtAllConsts = Book1D("pantau_eflowRecInput_BDTVar_Neutral_Ratio_EtOverEtAllConsts",m_sTauJetContainerName + "pantau_eflowRecInput_BDTVar_Neutral_Ratio_EtOverEtAllConsts",30,-0.5,1.2); + m_pantau_eflowRecInput_BDTVar_Neutral_Mean_DRToLeading_WrtEtAllConsts = Book1D("pantau_eflowRecInput_BDTVar_Neutral_Mean_DRToLeading_WrtEtAllConsts",m_sTauJetContainerName + "pantau_eflowRecInput_BDTVar_Neutral_Mean_DRToLeading_WrtEtAllConsts",30,-0.5,1.2); + m_pantau_eflowRecInput_BDTVar_Combined_DeltaR1stNeutralTo1stCharged = Book1D("pantau_eflowRecInput_BDTVar_Combined_DeltaR1stNeutralTo1stCharged",m_sTauJetContainerName + "pantau_eflowRecInput_BDTVar_Combined_DeltaR1stNeutralTo1stCharged",30,0.,0.6); } void RecoTauPlots::fill(const xAOD::TauJet& thisTau) { //Access Particle Flow Object + /*+++++++++++++++++++++++++++++++++++++++++++++++++ + +++++++++++++++++++EFLOW_REC+++++++++++++++++++++ + +++++++++++++++++++++++++++++++++++++++++++++++++*/ + + //Charged Pions + // std::vector< ElementLink< xAOD::PFOContainer > > eflowRec_chargedPFO = thisTau.eflowRec_Charged_PFOLinks(); + // std::vector< ElementLink< xAOD::PFOContainer > >::iterator first_eflowRec_chargedPFO = eflowRec_chargedPFO.begin(); + // std::vector< ElementLink< xAOD::PFOContainer > >::iterator last_eflowRec_chargedPFO = eflowRec_chargedPFO.end(); + + // for (; first_eflowRec_chargedPFO != last_eflowRec_chargedPFO; ++first_eflowRec_chargedPFO){ + // ElementLink<xAOD::PFOContainer> thisLink = *first_eflowRec_chargedPFO; + // const xAOD::PFO* thisPFO = *thisLink; + // m_eflowRec_charPFO_Pt->Fill( thisPFO->pt()); + // m_eflowRec_charPFO_Eta->Fill( thisPFO->eta()); + // m_eflowRec_charPFO_Phi->Fill( thisPFO->phi()); + // m_eflowRec_charPFO_E->Fill( thisPFO->e()); + // } + + // //Neutral Pions + // std::vector< ElementLink< xAOD::PFOContainer > > eflowRec_neutralPFO = thisTau.eflowRec_Neutral_PFOLinks(); + // std::vector< ElementLink< xAOD::PFOContainer > >::iterator first_eflowRec_neutralPFO = eflowRec_neutralPFO.begin(); + // std::vector< ElementLink< xAOD::PFOContainer > >::iterator last_eflowRec_neutralPFO = eflowRec_neutralPFO.end(); + // for (; first_eflowRec_neutralPFO != last_eflowRec_neutralPFO; ++first_eflowRec_neutralPFO){ + // ElementLink<xAOD::PFOContainer> thisLink = *first_eflowRec_neutralPFO; + // const xAOD::PFO* thisPFO = *thisLink; + // m_eflowRec_neuPFO_Pt->Fill( thisPFO->pt()); + // m_eflowRec_neuPFO_Eta->Fill( thisPFO->eta()); + // m_eflowRec_neuPFO_Phi->Fill( thisPFO->phi()); + // m_eflowRec_neuPFO_E->Fill( thisPFO->e()); + // m_eflowRec_neuPFO_bdtPi0Score->Fill(thisPFO->bdtPi0Score()); + // } /*+++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++CellBased+++++++++++++++++++++ @@ -161,6 +245,35 @@ void RecoTauPlots::initializePlots(){ m_pantau_CellBasedInput_BDTVar_Neutral_Shots_NPhotonsInSeed->Fill(panTauFloat); thisTau.panTauDetail( xAOD::TauJetParameters::PanTauDetails::PanTau_BDTVar_Combined_DeltaR1stNeutralTo1stCharged,panTauFloat); m_pantau_CellBasedInput_BDTVar_Combined_DeltaR1stNeutralTo1stCharged->Fill(panTauFloat); + // thisTau.panTauDetail( xAOD::TauJetParameters::PanTauDetails::pantau_eflowRecInput_isPanTauCandidate,panTauIntiger); + // m_pantau_eflowRecInput_isPanTauCandidate->Fill(panTauIntiger); + // thisTau.panTauDetail( xAOD::TauJetParameters::PanTauDetails::pantau_eflowRecInput_DecayMode,panTauIntiger); + // m_pantau_eflowRecInput_DecayMode->Fill(panTauIntiger); + // thisTau.panTauDetail( xAOD::TauJetParameters::PanTauDetails::pantau_eflowRecInput_BDTValue_1p0n_vs_1p1n,panTauFloat); + // m_pantau_eflowRecInput_BDTValue_1p0n_vs_1p1n->Fill(panTauFloat); + // thisTau.panTauDetail( xAOD::TauJetParameters::PanTauDetails::pantau_eflowRecInput_BDTValue_1p1n_vs_1pXn,panTauFloat); + // m_pantau_eflowRecInput_BDTValue_1p1n_vs_1pXn->Fill(panTauFloat); + // thisTau.panTauDetail( xAOD::TauJetParameters::PanTauDetails::pantau_eflowRecInput_BDTValue_3p0n_vs_3pXn,panTauFloat); + // m_pantau_eflowRecInput_BDTValue_3p0n_vs_3pXn->Fill(panTauFloat); + // thisTau.panTauDetail( xAOD::TauJetParameters::PanTauDetails::pantau_eflowRecInput_BDTVar_Basic_NPi0NeutConsts,panTauIntiger); + // m_pantau_eflowRecInput_BDTVar_Basic_NPi0NeutConsts->Fill(panTauIntiger); + // thisTau.panTauDetail( xAOD::TauJetParameters::PanTauDetails::pantau_eflowRecInput_BDTVar_Basic_NNeutralConsts,panTauIntiger); + // m_pantau_eflowRecInput_BDTVar_Basic_NNeutralConsts->Fill(panTauIntiger); + // thisTau.panTauDetail( xAOD::TauJetParameters::PanTauDetails::pantau_eflowRecInput_BDTVar_Charged_Ratio_EtOverEtAllConsts,panTauFloat); + // m_pantau_eflowRecInput_BDTVar_Charged_Ratio_EtOverEtAllConsts->Fill(panTauFloat); + // thisTau.panTauDetail( xAOD::TauJetParameters::PanTauDetails::pantau_eflowRecInput_BDTVar_Neutral_HLV_SumM,panTauFloat); + // m_pantau_eflowRecInput_BDTVar_Neutral_HLV_SumM->Fill(panTauFloat); + // thisTau.panTauDetail( xAOD::TauJetParameters::PanTauDetails::pantau_eflowRecInput_BDTVar_Neutral_PID_BDTValues_EtSort_1,panTauFloat); + // m_pantau_eflowRecInput_BDTVar_Neutral_PID_BDTValues_EtSort_1->Fill(panTauFloat); + // thisTau.panTauDetail( xAOD::TauJetParameters::PanTauDetails::pantau_eflowRecInput_BDTVar_Neutral_PID_BDTValues_BDTSort_2,panTauFloat); + // m_pantau_eflowRecInput_BDTVar_Neutral_PID_BDTValues_BDTSort_2->Fill(panTauFloat); + // thisTau.panTauDetail( xAOD::TauJetParameters::PanTauDetails::pantau_eflowRecInput_BDTVar_Neutral_Ratio_EtOverEtAllConsts,panTauFloat); + // m_pantau_eflowRecInput_BDTVar_Neutral_Ratio_EtOverEtAllConsts->Fill(panTauFloat); + // thisTau.panTauDetail( xAOD::TauJetParameters::PanTauDetails::pantau_eflowRecInput_BDTVar_Neutral_Mean_DRToLeading_WrtEtAllConsts,panTauFloat); + // m_pantau_eflowRecInput_BDTVar_Neutral_Mean_DRToLeading_WrtEtAllConsts->Fill(panTauFloat); + // thisTau.panTauDetail( xAOD::TauJetParameters::PanTauDetails::pantau_eflowRecInput_BDTVar_Combined_DeltaR1stNeutralTo1stCharged,panTauFloat); + // m_pantau_eflowRecInput_BDTVar_Combined_DeltaR1stNeutralTo1stCharged->Fill(panTauFloat); + m_oParamPlots.fill(thisTau); } diff --git a/Projects/AthSimulation/package_filters.txt b/Projects/AthSimulation/package_filters.txt index baaffe3165f094db63e4c8cbf65ad19de17ce143..077d00503f8ec09f517e3005b844ed012edcbe88 100644 --- a/Projects/AthSimulation/package_filters.txt +++ b/Projects/AthSimulation/package_filters.txt @@ -350,6 +350,7 @@ + Tracking/TrkEvent/TrkEventPrimitives + Tracking/TrkEvent/TrkNeutralParameters + Tracking/TrkEvent/TrkParametersBase ++ Tracking/TrkEvent/TrkTrackLink # Ignore everything else diff --git a/Simulation/Digitization/python/DigiOutput.py b/Simulation/Digitization/python/DigiOutput.py index a6f8823a038e5153014dea1687e623f2a5ddad6e..6e946e7d4c59fafe5716c4eac36766454c8f7b8d 100644 --- a/Simulation/Digitization/python/DigiOutput.py +++ b/Simulation/Digitization/python/DigiOutput.py @@ -131,9 +131,8 @@ def getStreamRDO_ItemList(log): # Calorimeter Output if DetFlags.digitize.LAr_on(): if DetFlags.writeRDOPool.LAr_on(): - if not digitizationFlags.PileUpPremixing: - StreamRDO_ItemList+=["LArRawChannelContainer#*"] - if 'AddCaloDigi' in digitizationFlags.experimentalDigi() or digitizationFlags.PileUpPremixing: + StreamRDO_ItemList+=["LArRawChannelContainer#*"] + if 'AddCaloDigi' in digitizationFlags.experimentalDigi(): StreamRDO_ItemList+=["LArDigitContainer#*"] else: StreamRDO_ItemList+=["LArDigitContainer#LArDigitContainer_MC_Thinned"] @@ -142,9 +141,8 @@ def getStreamRDO_ItemList(log): StreamRDO_ItemList+=["LArHitContainer#HGTDDigitContainer_MC"] if DetFlags.digitize.Tile_on(): if DetFlags.writeRDOPool.Tile_on(): - if not digitizationFlags.PileUpPremixing: - StreamRDO_ItemList+=["TileRawChannelContainer#*"] - if 'AddCaloDigi' in digitizationFlags.experimentalDigi() or digitizationFlags.PileUpPremixing: + StreamRDO_ItemList+=["TileRawChannelContainer#*"] + if 'AddCaloDigi' in digitizationFlags.experimentalDigi(): StreamRDO_ItemList+=["TileDigitsContainer#*"] else: StreamRDO_ItemList+=["TileDigitsContainer#TileDigitsFlt"] diff --git a/Simulation/FastSimulation/FastChainPileup/test/FastChainPileup_TestConfiguration.xml b/Simulation/FastSimulation/FastChainPileup/test/FastChainPileup_TestConfiguration.xml index 6d425a494174c5261bfd154b18289c4da127bf98..5a95bc50ef1d1a8efcd0ce04214c19e3b30279cb 100644 --- a/Simulation/FastSimulation/FastChainPileup/test/FastChainPileup_TestConfiguration.xml +++ b/Simulation/FastSimulation/FastChainPileup/test/FastChainPileup_TestConfiguration.xml @@ -1,6 +1,4 @@ <?xml version="1.0"?> -<!--Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration--> - <!-- MB: Search for RUNNUMBER to replace the run input collections and setting --> <!-- MB: xml file validation: http://www.hep.ucl.ac.uk/atlas/AtlasTesting/DTD/onlineValidation/validator.html --> <!-- <!DOCTYPE unifiedTestConfiguration SYSTEM "https://test-rtt.web.cern.ch/test-rtt/brinick/Results/unifiedTestConfiguration.dtd"> --> <!-- xmltest @@ -34,9 +32,9 @@ <!-- standard simulation + reco in FastChain --> <!-- full sim job --> <chainElement> - <jobTransform userJobId="ttFC_stdFullSim"> + <jobTransform userJobId="ttbarFastChain_stdFullSim"> <doc>FastChain standard sim</doc> - <jobTransformJobName>ttFC_stdFullSim</jobTransformJobName> + <jobTransformJobName>ttbarFastChain_stdFullSim</jobTransformJobName> <jobTransformCmd> Sim_tf.py --conditionsTag 'default:OFLCOND-RUN12-SDR-19' --physicsList 'FTFP_BERT' --truthStrategy 'MC15aPlus' --simulator 'FullG4' --postInclude 'default:RecJobTransforms/UseFrontier.py,G4AtlasTests/postInclude.DCubeTest.py' --preInclude 'EVNTtoHITS:SimulationJobOptions/preInclude.BeamPipeKill.py,SimulationJobOptions/preInclude.FrozenShowersFCalOnly.py' --DataRunNumber '222525' --geometryVersion 'default:ATLAS-R2-2015-03-01-00_VALIDATION' --inputEVNTFile "/afs/cern.ch/atlas/groups/Simulation/EVNT_files/mc12_valid.110401.PowhegPythia_P2012_ttbar_nonallhad.evgen.EVNT.e3099.01517252._000001.pool.root.1" --outputHITSFile "Hits.pool.root" --maxEvents 10 </jobTransformCmd> @@ -49,9 +47,9 @@ </chainElement> <!-- standard merge job --> <chainElement> - <jobTransform userJobId="ttFC_stdFullSimMerge"> + <jobTransform userJobId="ttbarFastChain_stdFullSimMerge"> <doc>FastChain standard sim</doc> - <jobTransformJobName>ttFC_stdFullSimMerge</jobTransformJobName> + <jobTransformJobName>ttbarFastChain_stdFullSimMerge</jobTransformJobName> <jobTransformCmd> HITSMerge_tf.py --inputHITSFile='Hits.pool.root' --outputHITS_MRGFile='Merge.pool.root' --maxEvents=50 --skipEvents='0' --geometryVersion 'ATLAS-R2-2015-03-01-00' --conditionsTag 'OFLCOND-RUN12-SDR-19' </jobTransformCmd> @@ -73,9 +71,9 @@ </chainElement> <!-- standard digi job --> <chainElement> - <jobTransform userJobId="ttFC_stdFullSimDigi"> + <jobTransform userJobId="ttbarFastChain_stdFullSimDigi"> <doc>FastChain standard sim</doc> - <jobTransformJobName>ttFC_stdFullSimDigi</jobTransformJobName> + <jobTransformJobName>ttbarFastChain_stdFullSimDigi</jobTransformJobName> <jobTransformCmd> Digi_tf.py --inputHITSFile 'Merge.pool.root' --outputRDOFile 'RDO.pool.root' --maxEvents '50' --skipEvents '0' --geometryVersion 'ATLAS-R2-2015-03-01-00' --digiSeedOffset1 '123456' --digiSeedOffset2 '2345678' --postInclude 'PyJobTransforms/UseFrontier.py' --AddCaloDigi 'False' --conditionsTag 'OFLCOND-RUN12-SDR-31' </jobTransformCmd> @@ -96,9 +94,9 @@ </chainfileout> </chainElement> <chainElement> - <jobTransform userJobId="ttFC_reco_noSplit_noPseudoT_stdFullSimDigi"> + <jobTransform userJobId="ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi"> <doc>FastChain reco</doc> - <jobTransformJobName>ttFC_reco_noSplit_noPseudoT_stdFullSimDigi</jobTransformJobName> + <jobTransformJobName>ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi</jobTransformJobName> <jobTransformCmd> FastChain_tf.py --maxEvents 50 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31 --inputRDOFile RDO.pool.root --outputAODFile AOD_Split_stdFullSimDigi.pool.root --preExec "RAWtoESD:rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);from InDetRecExample.InDetJobProperties import InDetFlags;InDetFlags.doStandardPlots.set_Value_and_Lock(True);" </jobTransformCmd> @@ -118,16 +116,114 @@ AOD_Split_stdFullSimDigi.pool.root </chainfileout> </chainElement> +<!-- <chainElement> + <jobTransform userJobId="1reg_20.20.3_vs_mig13_ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi"> + <doc>comparison with reference sample obtained using 20.20.3</doc> + <jobTransformJobName>1reg_20.20.3_vs_mig13_ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi</jobTransformJobName> + <jobTransformCmd>sim_reg_test.py ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi InDetStandardPlots.root</jobTransformCmd> + <group>FastChainPileup</group> + <queue>medium</queue> + <test position="1"> + <modulename>RttLibraryTools</modulename> + <testname>DCubeRunner</testname> + <arg> + <argname>DCubeCfg</argname> + <argvalue>dcube_ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi.xml</argvalue> + </arg> + <arg> + <argname>DCubeRef</argname> + <argvalue>1InDetStandardPlots.root</argvalue> + </arg> + <arg> + <argname>DCubeMon</argname> + <argvalue>today.InDetStandardPlots.root</argvalue> + </arg> + <keepFilePattern>DCube-1InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern> + </test> + <testToRemove> + <jobGroupName>RTT:Top</jobGroupName> + <testidentifier>CheckFileRunner0</testidentifier> + </testToRemove> + </jobTransform> + </chainElement>--> + <chainElement> + <jobTransform userJobId="1reg_20.20.X-VAL_vs_mig13_ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi"> + <doc>Regression test of FastChainPileup job ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi in releases 20.20.X-VAL vs mig13</doc> + <jobTransformJobName>1reg_20.20.X-VAL_vs_mig13_ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi</jobTransformJobName> + <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup 20.20.X-VAL ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi InDetStandardPlots.root FastChainPileup mig13 ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi InDetStandardPlots.root</jobTransformCmd> + <group>FastChainPileup</group> + <queue>medium</queue> + <test position="1"> + <modulename>RttLibraryTools</modulename> + <testname>DCubeRunner</testname> + <arg> + <argname>DCubeCfg</argname> + <argvalue>dcube_ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi.xml</argvalue> + </arg> + <arg> + <argname>DCubeRef</argname> + <argvalue>yesterday.InDetStandardPlots.root</argvalue> + </arg> + <arg> + <argname>localRefFile</argname> + <argvalue>True</argvalue> + </arg> + <arg> + <argname>DCubeMon</argname> + <argvalue>today.InDetStandardPlots.root</argvalue> + </arg> + <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern> + </test> + <testToRemove> + <jobGroupName>RTT:Top</jobGroupName> + <testidentifier>CheckFileRunner0</testidentifier> + </testToRemove> + </jobTransform> + </chainElement> +<!-- <chainElement> + <jobTransform userJobId="reg_20.20.X_vs_mig13_ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi"> + <doc>Regression test of FastChainPileup job ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi in releases 20.20.X vs mig13</doc> + <jobTransformJobName>reg_20.20.X_vs_mig13_ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi</jobTransformJobName> + <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup 20.20.X ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi InDetStandardPlots.root FastChainPileup mig13 ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi InDetStandardPlots.root</jobTransformCmd> + <group>FastChainPileup</group> + <queue>medium</queue> + <test position="1"> + <modulename>RttLibraryTools</modulename> + <testname>DCubeRunner</testname> + <arg> + <argname>DCubeCfg</argname> + <argvalue>dcube_ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi.xml</argvalue> + </arg> + <arg> + <argname>DCubeRef</argname> + <argvalue>yesterday.InDetStandardPlots.root</argvalue> + </arg> + <arg> + <argname>localRefFile</argname> + <argvalue>True</argvalue> + </arg> + <arg> + <argname>DCubeMon</argname> + <argvalue>today.InDetStandardPlots.root</argvalue> + </arg> + <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern> + </test> + <testToRemove> + <jobGroupName>RTT:Top</jobGroupName> + <testidentifier>CheckFileRunner0</testidentifier> + </testToRemove> + </jobTransform> + </chainElement>--> </sequential> <!-- Run FastChain fast sim + full digi, then different reco jobs on its output and tests in parallel --> <sequential> <!-- Run FastChain fast sim + full digi --> <chainElement> - <jobTransform userJobId="ttFC_fastSim_fullDigi"> + <jobTransform userJobId="ttbarFastChain_fastSim_fullDigi"> <doc>FastChain simdigi</doc> - <jobTransformJobName>ttFC_fastSim_fullDigi</jobTransformJobName> + <jobTransformJobName>ttbarFastChain_fastSim_fullDigi</jobTransformJobName> <jobTransformCmd> - FastChain_tf.py --simulator ATLFASTIIF_PileUp --digiSteeringConf "SplitNoMerge" --useISF True --randomSeed 123 --enableLooperKiller True --inputEVNTFile /afs/cern.ch/atlas/offline/ProdData/16.6.X/16.6.7.Y/ttbar_muplusjets-pythia6-7000.evgen.pool.root --outputRDOFile RDO_pileup_fastsim_fulldigi.pool.root --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31 --preSimExec 'from TrkDetDescrSvc.TrkDetDescrJobProperties import TrkDetFlags;TrkDetFlags.TRT_BuildStrawLayers=True' --preSimInclude FastChainPileup/FastPileup.py --postInclude='PyJobTransforms/UseFrontier.py,G4AtlasTests/postInclude.DCubeTest_FCpileup.py,DigitizationTests/postInclude.RDO_Plots.py' --postExec 'from AthenaCommon.ConfigurationShelve import saveToAscii;saveToAscii("config.txt")' --DataRunNumber '284500' --postSimExec='genSeq.Pythia8.NCollPerEvent=10;' + FastChain_tf.py --simulator ATLFASTIIF_PileUp --digiSteeringConf "SplitNoMerge" --useISF True --randomSeed 123 --enableLooperKiller True --inputEVNTFile /afs/cern.ch/atlas/offline/ProdData/16.6.X/16.6.7.Y/ttbar_muplusjets-pythia6-7000.evgen.pool.root --outputRDOFile RDO_pileup_fastsim_fulldigi.pool.root --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31 --preSimExec 'from TrkDetDescrSvc.TrkDetDescrJobProperties import TrkDetFlags;TrkDetFlags.TRT_BuildStrawLayers=True' --preSimInclude FastChainPileup/FastPileup.py --postInclude='PyJobTransforms/UseFrontier.py,G4AtlasTests/postInclude.DCubeTest_FCpileup.py,DigitizationTests/postInclude.RDO_Plots.py' --postExec 'from AthenaCommon.ConfigurationShelve import saveToAscii;saveToAscii("config.txt")' --DataRunNumber '222525' --postSimExec='genSeq.Pythia8.NCollPerEvent=10;' --ignorePatterns='G4TestAlg.Lucid.{5}FATAL.{8}LucidHitsTestTool.cxx:66\ \(StatusCode\ LucidHitsTestTool::processEvent\(\)\):\ code\ 0:\ evtStore\(\)->retrieve\(iter\)','FATAL\ message\ limit\ \(500\)\ reached\ for\ G4TestAlg.LucidHitsTestTool.' </jobTransformCmd> <group>FastChainPileup</group> <queue>medium</queue> @@ -139,10 +235,10 @@ <!-- Run tests & reco jobs in parallel --> <parallel> <chainElement> - <jobTransform userJobId="ttFC_fastSim_fullDigi_Reg"> + <jobTransform userJobId="ttbarFastChain_fastSim_fullDigi_Reg"> <doc>Regression test between releases</doc> - <jobTransformJobName>ttFC_fastSim_fullDigi_Reg</jobTransformJobName> - <jobTransformCmd>sim_reg_test.py ttFC_fastSim_fullDigi RDO_truth.root RDO_pileup_fastsim_fulldigi.pool.root</jobTransformCmd> + <jobTransformJobName>ttbarFastChain_fastSim_fullDigi_Reg</jobTransformJobName> + <jobTransformCmd>sim_reg_test.py ttbarFastChain_fastSim_fullDigi RDO_truth.root RDO_pileup_fastsim_fulldigi.pool.root</jobTransformCmd> <group>FastChainPileup</group> <queue>long</queue> <test position="1"> @@ -166,10 +262,6 @@ <argname>DCubeCfg</argname> <argvalue>dcube_RDO_truth_pileup.xml</argvalue> </arg> - <arg> - <argname>tolerateWARN</argname> - <argvalue>True</argvalue> - </arg> <arg> <argname>DCubeRef</argname> <argvalue>yesterday.RDO_truth.root</argvalue> @@ -186,76 +278,157 @@ </test> </jobTransform> </chainElement> - <sequential> - <chainElement> - <jobTransform userJobId="ttFC_reco_noSplit_PseudoT_fastSim_fullDigi"> - <doc>FastChain reco</doc> - <jobTransformJobName>ttFC_reco_noSplit_PseudoT_fastSim_fullDigi</jobTransformJobName> - <jobTransformCmd> - FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31 --inputRDOFile RDO_pileup_fastsim_fulldigi.pool.root --outputAODFile AOD_noSplit_pseudoTracking_fastSim_fullDigi.pool.root --preExec "RAWtoESD:from InDetRecExample.InDetJobProperties import InDetFlags;InDetFlags.doPseudoTracking.set_Value_and_Lock(True);rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);InDetFlags.doTrackSegmentsTRT.set_Value_and_Lock(True);" "InDetFlags.doStandardPlots.set_Value_and_Lock(True)" - </jobTransformCmd> - <group>FastChainPileup</group> - <chaindataset_info> - <jobTransformData /> - <chaindatasetName>RDO_pileup_fastsim_fulldigi.pool.root</chaindatasetName> - <!-- If the file on the previous line is not in the chain store, then use the following fallback file. --> - <dataset_info> - <jobTransformData /> - <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fastsim_fulldigi.pool.root</datasetName> - </dataset_info> - </chaindataset_info> - <queue>medium</queue> - </jobTransform> - <chainfileout> - AOD_noSplit_PseudoT_fastSim_fullDigi.pool.root - </chainfileout> - </chainElement> - <chainElement> - <jobTransform userJobId="ttFC_reco_noSplit_PseudoT_fastSim_fullDigi_Reg"> - <doc>Regression test between releases</doc> - <jobTransformJobName>ttFC_reco_noSplit_PseudoT_fastSim_fullDigi_Reg</jobTransformJobName> - <jobTransformCmd>sim_reg_test.py ttFC_reco_noSplit_PseudoT_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd> - <group>FastChainPileup</group> - <queue>long</queue> - <test position="1"> - <modulename>RttLibraryTools</modulename> - <testname>DCubeRunner</testname> - <arg> - <argname>DCubeCfg</argname> - <argvalue>dcube_ttFC_reco_noSplit_PseudoT_fastSim_fullDigi_Reg.xml</argvalue> - </arg> - <arg> - <argname>tolerateWARN</argname> - <argvalue>True</argvalue> - </arg> - <arg> - <argname>DCubeRef</argname> - <argvalue>yesterday.InDetStandardPlots.root</argvalue> - </arg> - <arg> - <argname>localRefFile</argname> - <argvalue>True</argvalue> - </arg> - <arg> - <argname>DCubeMon</argname> - <argvalue>today.InDetStandardPlots.root</argvalue> - </arg> - <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern> - </test> - <testToRemove> + <!--<chainElement> + <jobTransform userJobId="5reg_20.20.3_vs_mig13_ttbarFastChain_fastSim_fullDigi"> + <doc>comparison with reference sample obtained using 20.20.3</doc> + <jobTransformJobName>5reg_20.20.3_vs_mig13_ttbarFastChain_fastSim_fullDigi</jobTransformJobName> + <jobTransformCmd>sim_reg_test.py ttbarFastChain_fastSim_fullDigi RDO_truth.root</jobTransformCmd> + <group>FastChainPileup</group> + <queue>medium</queue> + <test position="1"> + <modulename>RttLibraryTools</modulename> + <testname>DCubeRunner</testname> + <arg> + <argname>DCubeCfg</argname> + <argvalue>dcube_RDO_truth_pileup.xml</argvalue> + </arg> + <arg> + <argname>DCubeRef</argname> + <argvalue>5RDO_truth.root</argvalue> + </arg> + <arg> + <argname>DCubeMon</argname> + <argvalue>today.RDO_truth.root</argvalue> + </arg> + <keepFilePattern>DCube-5RDO_truth.root/today.RDO_truth.root.dcube.xml.php</keepFilePattern> + </test> + <testToRemove> <jobGroupName>RTT:Top</jobGroupName> <testidentifier>CheckFileRunner0</testidentifier> - </testToRemove> - </jobTransform> - </chainElement> - </sequential> + </testToRemove> + </jobTransform> + </chainElement>--> + <chainElement> + <jobTransform userJobId="5reg_20.20.X-VAL_vs_mig13_ttbarFastChain_fastSim_fullDigi"> + <doc>Regression test of FastChain sim + digi in releases 20.20.X-VAL vs mig13</doc> + <jobTransformJobName>5reg_20.20.X-VAL_vs_mig13_ttbarFastChain_fastSim_fullDigi</jobTransformJobName> + <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup 20.20.X-VAL ttbarFastChain_fastSim_fullDigi RDO_truth.root FastChainPileup mig13 ttbarFastChain_fastSim_fullDigi RDO_truth.root</jobTransformCmd> + <group>FastChainPileup</group> + <queue>medium</queue> + <test position="1"> + <modulename>RttLibraryTools</modulename> + <testname>DCubeRunner</testname> + <arg> + <argname>DCubeCfg</argname> + <argvalue>dcube_RDO_truth_pileup.xml</argvalue> + </arg> + <arg> + <argname>DCubeRef</argname> + <argvalue>yesterday.RDO_truth.root</argvalue> + </arg> + <arg> + <argname>localRefFile</argname> + <argvalue>True</argvalue> + </arg> + <arg> + <argname>DCubeMon</argname> + <argvalue>today.RDO_truth.root</argvalue> + </arg> + <keepFilePattern>DCube-yesterday.RDO_truth.root/today.RDO_truth.root.dcube.xml.php</keepFilePattern> + </test> + <testToRemove> + <jobGroupName>RTT:Top</jobGroupName> + <testidentifier>CheckFileRunner0</testidentifier> + </testToRemove> + </jobTransform> + </chainElement> + <!--<chainElement> + <jobTransform userJobId="reg_20.20.X_vs_mig13_ttbarFastChain_fastSim_fullDigi"> + <doc>Regression test of FastChain sim + digi in releases 20.20.X vs mig13</doc> + <jobTransformJobName>reg_20.20.X_vs_mig13_ttbarFastChain_fastSim_fullDigi</jobTransformJobName> + <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup 20.20.X ttbarFastChain_fastSim_fullDigi RDO_truth.root FastChainPileup mig13 ttbarFastChain_fastSim_fullDigi RDO_truth.root</jobTransformCmd> + <group>FastChainPileup</group> + <queue>medium</queue> + <test position="1"> + <modulename>RttLibraryTools</modulename> + <testname>DCubeRunner</testname> + <arg> + <argname>DCubeCfg</argname> + <argvalue>dcube_RDO_truth.xml</argvalue> + </arg> + <arg> + <argname>DCubeRef</argname> + <argvalue>yesterday.RDO_truth.root</argvalue> + </arg> + <arg> + <argname>localRefFile</argname> + <argvalue>True</argvalue> + </arg> + <arg> + <argname>DCubeMon</argname> + <argvalue>today.RDO_truth.root</argvalue> + </arg> + <keepFilePattern>DCube-yesterday.RDO_truth.root/today.RDO_truth.root.dcube.xml.php</keepFilePattern> + </test> + <testToRemove> + <jobGroupName>RTT:Top</jobGroupName> + <testidentifier>CheckFileRunner0</testidentifier> + </testToRemove> + </jobTransform> + </chainElement>--> + <chainElement> + <jobTransform userJobId="ttbarFastChain_reco_noSplit_pseudoTracking_fastSim_fullDigi"> + <doc>FastChain reco</doc> + <jobTransformJobName>ttbarFastChain_reco_noSplit_pseudoTracking_fastSim_fullDigi</jobTransformJobName> + <jobTransformCmd> + FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31 --inputRDOFile RDO_pileup_fastsim_fulldigi.pool.root --outputAODFile AOD_noSplit_pseudoTracking_fastSim_fullDigi.pool.root --preExec "RAWtoESD:from InDetRecExample.InDetJobProperties import InDetFlags;InDetFlags.doPseudoTracking.set_Value_and_Lock(True);rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);InDetFlags.doTrackSegmentsTRT.set_Value_and_Lock(True);" "InDetFlags.doStandardPlots.set_Value_and_Lock(True)" + </jobTransformCmd> + <group>FastChainPileup</group> + <chaindataset_info> + <jobTransformData /> + <chaindatasetName>RDO_pileup_fastsim_fulldigi.pool.root</chaindatasetName> + <!-- If the file on the previous line is not in the chain store, then use the following fallback file. --> + <dataset_info> + <jobTransformData /> + <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fastsim_fulldigi.pool.root</datasetName> + </dataset_info> + </chaindataset_info> + <queue>medium</queue> + </jobTransform> + <chainfileout> + AOD_noSplit_pseudoTracking_fastSim_fullDigi.pool.root + </chainfileout> + </chainElement> + <chainElement> + <jobTransform userJobId="ttbarFastChain_reco_noSplit_noPseudoTracking_fastSim_fullDigi"> + <doc>FastChain reco</doc> + <jobTransformJobName>ttbarFastChain_reco_noSplit_noPseudoTracking_fastSim_fullDigi</jobTransformJobName> + <jobTransformCmd> + FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31 --inputRDOFile RDO_pileup_fastsim_fulldigi.pool.root --outputAODFile AOD_noSplit_noPseudoTracking_fastSim_fullDigi.pool.root --preExec "RAWtoESD:rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);" "InDetFlags.doStandardPlots.set_Value_and_Lock(True)" + </jobTransformCmd> + <group>FastChainPileup</group> + <chaindataset_info> + <jobTransformData /> + <chaindatasetName>RDO_pileup_fastsim_fulldigi.pool.root</chaindatasetName> + <!-- If the file on the previous line is not in the chain store, then use the following fallback file. --> + <dataset_info> + <jobTransformData /> + <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fastsim_fulldigi.pool.root</datasetName> + </dataset_info> + </chaindataset_info> + <queue>medium</queue> + </jobTransform> + <chainfileout> + AOD_noSplit_noPseudoTracking_fastSim_fullDigi.pool.root + </chainfileout> + </chainElement> <sequential> <chainElement> - <jobTransform userJobId="ttFC_reco_newTracking_PseudoT_fastSim_fullDigi"> + <jobTransform userJobId="ttbarFastChain_reco_Split_fastSim_fullDigi"> <doc>FastChain reco</doc> - <jobTransformJobName>ttFC_reco_newTracking_PseudoT_fastSim_fullDigi</jobTransformJobName> + <jobTransformJobName>ttbarFastChain_reco_Split_fastSim_fullDigi</jobTransformJobName> <jobTransformCmd> - FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31 --inputRDOFile RDO_pileup_fastsim_fulldigi.pool.root --outputAODFile AOD_newTracking_pseudoTracking_fastSim_fullDigi.pool.root --preExec "RAWtoESD:from InDetRecExample.InDetJobProperties import InDetFlags;InDetFlags.doPseudoTracking.set_Value_and_Lock(True);InDetFlags.doNewTracking.set_Value_and_Lock(True);rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);InDetFlags.doTrackSegmentsTRT.set_Value_and_Lock(True);" "InDetFlags.doStandardPlots.set_Value_and_Lock(True)" + FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31 --inputRDOFile RDO_pileup_fastsim_fulldigi.pool.root --outputAODFile AOD_Split_fastSim_fullDigi.pool.root --preExec "RAWtoESD:from InDetRecExample.InDetJobProperties import InDetFlags;InDetFlags.doSplitReco.set_Value_and_Lock(True);InDetFlags.doTrackSegmentsTRT.set_Value_and_Lock(True);InDetFlags.doStandardPlots.set_Value_and_Lock(True);rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);" </jobTransformCmd> <group>FastChainPileup</group> <chaindataset_info> @@ -270,14 +443,16 @@ <queue>medium</queue> </jobTransform> <chainfileout> - AOD_newTracking_PseudoT_fastSim_fullDigi.pool.root + AOD_Split_fastSim_fullDigi.pool.root </chainfileout> </chainElement> - <chainElement> - <jobTransform userJobId="ttFC_reco_newTracking_PseudoT_fastSim_fullDigi_Reg"> + <!--tests in parallel--> + <parallel> + <chainElement> + <jobTransform userJobId="ttbarFastChain_reco_Split_fastSim_fullDigi_Reg"> <doc>Regression test between releases</doc> - <jobTransformJobName>ttFC_reco_newTracking_PseudoT_fastSim_fullDigi_Reg</jobTransformJobName> - <jobTransformCmd>sim_reg_test.py ttFC_reco_newTracking_PseudoT_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd> + <jobTransformJobName>ttbarFastChain_reco_Split_fastSim_fullDigi_Reg</jobTransformJobName> + <jobTransformCmd>sim_reg_test.py ttbarFastChain_reco_Split_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd> <group>FastChainPileup</group> <queue>long</queue> <test position="1"> @@ -285,11 +460,7 @@ <testname>DCubeRunner</testname> <arg> <argname>DCubeCfg</argname> - <argvalue>dcube_ttFC_reco_newTracking_PseudoT_fastSim_fullDigi_Reg.xml</argvalue> - </arg> - <arg> - <argname>tolerateWARN</argname> - <argvalue>True</argvalue> + <argvalue>dcube_ttbarFastChain_reco_Split_fastSim_fullDigi_Reg.xml</argvalue> </arg> <arg> <argname>DCubeRef</argname> @@ -310,113 +481,85 @@ <testidentifier>CheckFileRunner0</testidentifier> </testToRemove> </jobTransform> - </chainElement> - </sequential> - <sequential> - <chainElement> - <jobTransform userJobId="ttFC_reco_noSplit_noPseudoT_fastSim_fullDigi"> - <doc>FastChain reco</doc> - <jobTransformJobName>ttFC_reco_noSplit_noPseudoT_fastSim_fullDigi</jobTransformJobName> - <jobTransformCmd> - FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31 --inputRDOFile RDO_pileup_fastsim_fulldigi.pool.root --outputAODFile AOD_noSplit_noPseudoT_fastSim_fullDigi.pool.root --preExec "RAWtoESD:rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);" "InDetFlags.doStandardPlots.set_Value_and_Lock(True)" - </jobTransformCmd> - <group>FastChainPileup</group> - <chaindataset_info> - <jobTransformData /> - <chaindatasetName>RDO_pileup_fastsim_fulldigi.pool.root</chaindatasetName> - <!-- If the file on the previous line is not in the chain store, then use the following fallback file. --> - <dataset_info> - <jobTransformData /> - <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fastsim_fulldigi.pool.root</datasetName> - </dataset_info> - </chaindataset_info> - <queue>medium</queue> - </jobTransform> - <chainfileout> - AOD_noSplit_noPseudoT_fastSim_fullDigi.pool.root - </chainfileout> - </chainElement> - <chainElement> - <jobTransform userJobId="ttFC_reco_noSplit_noPseudoT_fastSim_fullDigi_Reg"> - <doc>Regression test between releases</doc> - <jobTransformJobName>ttFC_reco_noSplit_noPseudoT_fastSim_fullDigi_Reg</jobTransformJobName> - <jobTransformCmd>sim_reg_test.py ttFC_reco_noSplit_noPseudoT_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd> - <group>FastChainPileup</group> - <queue>long</queue> + </chainElement> + <!--<chainElement> + <jobTransform userJobId="2reg_20.20.3_vs_mig13_ttbarFastChain_reco_Split_fastSim_fullDigi"> + <doc>comparison with reference sample obtained using 20.20.3</doc> + <jobTransformJobName>2reg_20.20.3_vs_mig13_ttbarFastChain_reco_Split_fastSim_fullDigi</jobTransformJobName> + <jobTransformCmd>sim_reg_test.py ttbarFastChain_reco_Split_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd> + <group>FastChainPileup</group> + <queue>medium</queue> <test position="1"> <modulename>RttLibraryTools</modulename> <testname>DCubeRunner</testname> <arg> <argname>DCubeCfg</argname> - <argvalue>dcube_ttFC_reco_noSplit_noPseudoT_fastSim_fullDigi_Reg.xml</argvalue> - </arg> - <arg> - <argname>tolerateWARN</argname> - <argvalue>True</argvalue> + <argvalue>dcube_ttbarFastChain_reco_Split_fastSim_fullDigi.xml</argvalue> </arg> - <arg> <argname>DCubeRef</argname> - <argvalue>yesterday.InDetStandardPlots.root</argvalue> - </arg> - <arg> - <argname>localRefFile</argname> - <argvalue>True</argvalue> + <argvalue>2InDetStandardPlots.root</argvalue> </arg> <arg> <argname>DCubeMon</argname> <argvalue>today.InDetStandardPlots.root</argvalue> </arg> - <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern> + <keepFilePattern>DCube-2InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern> </test> - <testToRemove> - <jobGroupName>RTT:Top</jobGroupName> - <testidentifier>CheckFileRunner0</testidentifier> - </testToRemove> + <testToRemove> + <jobGroupName>RTT:Top</jobGroupName> + <testidentifier>CheckFileRunner0</testidentifier> + </testToRemove> </jobTransform> - </chainElement> - </sequential> - <sequential> + </chainElement>--> + </parallel> <chainElement> - <jobTransform userJobId="ttFC_reco_Split_fastSim_fullDigi"> - <doc>FastChain reco</doc> - <jobTransformJobName>ttFC_reco_Split_fastSim_fullDigi</jobTransformJobName> - <jobTransformCmd> - FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31 --inputRDOFile RDO_pileup_fastsim_fulldigi.pool.root --outputAODFile AOD_Split_fastSim_fullDigi.pool.root --preExec "RAWtoESD:from InDetRecExample.InDetJobProperties import InDetFlags;InDetFlags.doSplitReco.set_Value_and_Lock(True);InDetFlags.doTrackSegmentsTRT.set_Value_and_Lock(True);InDetFlags.doStandardPlots.set_Value_and_Lock(True);rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);" - </jobTransformCmd> + <jobTransform userJobId="2reg_20.20.X-VAL_vs_mig13_ttbarFastChain_reco_Split_fastSim_fullDigi"> + <doc>Regression test of FastChainPileup job ttbarFastChain_reco_Split_fastSim_fullDigi in releases 20.20.X-VAL vs mig13</doc> + <jobTransformJobName>2reg_20.20.X-VAL_vs_mig13_ttbarFastChain_reco_Split_fastSim_fullDigi</jobTransformJobName> + <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup 20.20.X-VAL ttbarFastChain_reco_Split_fastSim_fullDigi InDetStandardPlots.root FastChainPileup mig13 ttbarFastChain_reco_Split_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd> <group>FastChainPileup</group> - <chaindataset_info> - <jobTransformData /> - <chaindatasetName>RDO_pileup_fastsim_fulldigi.pool.root</chaindatasetName> - <!-- If the file on the previous line is not in the chain store, then use the following fallback file. --> - <dataset_info> - <jobTransformData /> - <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fastsim_fulldigi.pool.root</datasetName> - </dataset_info> - </chaindataset_info> <queue>medium</queue> + <test position="1"> + <modulename>RttLibraryTools</modulename> + <testname>DCubeRunner</testname> + <arg> + <argname>DCubeCfg</argname> + <argvalue>dcube_ttbarFastChain_reco_Split_fastSim_fullDigi.xml</argvalue> + </arg> + <arg> + <argname>DCubeRef</argname> + <argvalue>yesterday.InDetStandardPlots.root</argvalue> + </arg> + <arg> + <argname>localRefFile</argname> + <argvalue>True</argvalue> + </arg> + <arg> + <argname>DCubeMon</argname> + <argvalue>today.InDetStandardPlots.root</argvalue> + </arg> + <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern> + </test> + <testToRemove> + <jobGroupName>RTT:Top</jobGroupName> + <testidentifier>CheckFileRunner0</testidentifier> + </testToRemove> </jobTransform> - <chainfileout> - AOD_Split_fastSim_fullDigi.pool.root - </chainfileout> </chainElement> - <chainElement> - <jobTransform userJobId="ttFC_reco_Split_fastSim_fullDigi_Reg"> - <doc>Regression test between releases</doc> - <jobTransformJobName>ttFC_reco_Split_fastSim_fullDigi_Reg</jobTransformJobName> - <jobTransformCmd>sim_reg_test.py ttFC_reco_Split_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd> +<!-- <chainElement> + <jobTransform userJobId="reg_20.20.X_vs_mig13_ttbarFastChain_reco_Split_fastSim_fullDigi"> + <doc>Regression test of FastChainPileup job ttbarFastChain_reco_Split_fastSim_fullDigi in releases 20.20.X vs mig13</doc> + <jobTransformJobName>reg_20.20.X_vs_mig13_ttbarFastChain_reco_Split_fastSim_fullDigi</jobTransformJobName> + <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup 20.20.X ttbarFastChain_reco_Split_fastSim_fullDigi InDetStandardPlots.root FastChainPileup mig13 ttbarFastChain_reco_Split_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd> <group>FastChainPileup</group> - <queue>long</queue> + <queue>medium</queue> <test position="1"> <modulename>RttLibraryTools</modulename> <testname>DCubeRunner</testname> <arg> <argname>DCubeCfg</argname> - <argvalue>dcube_ttFC_reco_Split_fastSim_fullDigi_Reg.xml</argvalue> - </arg> - <arg> - <argname>tolerateWARN</argname> - <argvalue>True</argvalue> + <argvalue>dcube_ttbarFastChain_reco_Split_fastSim_fullDigi.xml</argvalue> </arg> <arg> <argname>DCubeRef</argname> @@ -432,18 +575,18 @@ </arg> <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern> </test> - <testToRemove> - <jobGroupName>RTT:Top</jobGroupName> - <testidentifier>CheckFileRunner0</testidentifier> - </testToRemove> - </jobTransform> - </chainElement> + <testToRemove> + <jobGroupName>RTT:Top</jobGroupName> + <testidentifier>CheckFileRunner0</testidentifier> + </testToRemove> + </jobTransform> + </chainElement>--> </sequential> <sequential> <chainElement> - <jobTransform userJobId="stdReco_fastSim_fullDigi"> + <jobTransform userJobId="standard_Reco_tf_fastSim_fullDigi"> <doc>standard reco</doc> - <jobTransformJobName>stdReco_fastSim_fullDigi</jobTransformJobName> + <jobTransformJobName>standard_Reco_tf_fastSim_fullDigi</jobTransformJobName> <jobTransformCmd> Reco_tf.py --inputRDOFile=RDO_pileup_fastsim_fulldigi.pool.root --outputAODFile=AOD_fastSim_fullDigi.pool.root --autoConfiguration=everything --maxEvents=500 --preExec "RAWtoESD:rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);InDetFlags.doStandardPlots.set_Value_and_Lock(True)" </jobTransformCmd> @@ -463,132 +606,49 @@ AOD_fastSim_fullDigi.pool.root </chainfileout> </chainElement> - </sequential> - <!-- END run reco jobs & tests in parallel --> - </parallel> - <!-- END Run FastChain fast sim + fast digi + reco and tests chain --> - </sequential> - <!-- Run FastChain full sim + full digi and tests --> - <sequential> - <chainElement> - <jobTransform userJobId="ttFC_fullSim_fullDigi"> - <doc>FastChain simdigi</doc> - <jobTransformJobName>ttFC_fullSim_fullDigi</jobTransformJobName> - <jobTransformCmd> - FastChain_tf.py --simulator ATLFASTII --digiSteeringConf "SplitNoMerge" --useISF True --randomSeed 123 --enableLooperKiller True --inputEVNTFile /afs/cern.ch/atlas/offline/ProdData/16.6.X/16.6.7.Y/ttbar_muplusjets-pythia6-7000.evgen.pool.root --outputRDOFile RDO_pileup_fullsim_fulldigi.pool.root --maxEvents 50 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31 --preSimExec 'from TrkDetDescrSvc.TrkDetDescrJobProperties import TrkDetFlags;TrkDetFlags.TRT_BuildStrawLayers=True' --postInclude='PyJobTransforms/UseFrontier.py,G4AtlasTests/postInclude.DCubeTest.py,DigitizationTests/postInclude.RDO_Plots.py' --postExec 'from AthenaCommon.ConfigurationShelve import saveToAscii;saveToAscii("config.txt")' --DataRunNumber '284500' - </jobTransformCmd> - <group>FastChainPileup</group> - <queue>medium</queue> - </jobTransform> - <chainfileout> - RDO_pileup_fullsim_fulldigi.pool.root - </chainfileout> - </chainElement> - <parallel> - <sequential> - <chainElement> - <jobTransform userJobId="ttFC_reco_noSplit_PseudoT_fullSim_fullDigi"> - <doc>FastChain reco</doc> - <jobTransformJobName>ttFC_reco_noSplit_PseudoT_fullSim_fullDigi</jobTransformJobName> - <jobTransformCmd> - FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31 --inputRDOFile RDO_pileup_fullsim_fulldigi.pool.root --outputAODFile AOD_noSplit_pseudoTracking_fullSim_fullDigi.pool.root --preExec "RAWtoESD:from InDetRecExample.InDetJobProperties import InDetFlags;InDetFlags.doPseudoTracking.set_Value_and_Lock(True);rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);InDetFlags.doTrackSegmentsTRT.set_Value_and_Lock(True);" "InDetFlags.doStandardPlots.set_Value_and_Lock(True)" - </jobTransformCmd> + <!--<chainElement> + <jobTransform userJobId="3reg_20.20.3-VAL_vs_mig13_standard_Reco_tf_fastSim_fullDigi"> + <doc>comparison with reference sample obtained using 20.20.3</doc> + <jobTransformJobName>3reg_20.20.3-VAL_vs_mig13_standard_Reco_tf_fastSim_fullDigi</jobTransformJobName> + <jobTransformCmd>sim_reg_test.py standard_Reco_tf_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd> <group>FastChainPileup</group> - <chaindataset_info> - <jobTransformData /> - <chaindatasetName>RDO_pileup_fullsim_fulldigi.pool.root</chaindatasetName> - <!-- If the file on the previous line is not in the chain store, then use the following fallback file. --> - <dataset_info> - <jobTransformData /> - <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fullsim_fulldigi.pool.root</datasetName> - </dataset_info> - </chaindataset_info> <queue>medium</queue> - </jobTransform> - <chainfileout> - AOD_noSplit_PseudoT_fullSim_fullDigi.pool.root - </chainfileout> - </chainElement> - <chainElement> - <jobTransform userJobId="ttFC_reco_noSplit_PseudoT_fullSim_fullDigi_Reg"> - <doc>Regression test between releases</doc> - <jobTransformJobName>ttFC_reco_noSplit_PseudoT_fullSim_fullDigi_Reg</jobTransformJobName> - <jobTransformCmd>sim_reg_test.py ttFC_reco_noSplit_PseudoT_fullSim_fullDigi InDetStandardPlots.root</jobTransformCmd> - <group>FastChainPileup</group> - <queue>long</queue> - <test position="1"> - <modulename>RttLibraryTools</modulename> - <testname>DCubeRunner</testname> - <arg> - <argname>DCubeCfg</argname> - <argvalue>dcube_ttFC_reco_noSplit_PseudoT_fullSim_fullDigi_Reg.xml</argvalue> - </arg> - <arg> - <argname>tolerateWARN</argname> - <argvalue>True</argvalue> - </arg> - <arg> - <argname>DCubeRef</argname> - <argvalue>yesterday.InDetStandardPlots.root</argvalue> - </arg> - <arg> - <argname>localRefFile</argname> - <argvalue>True</argvalue> - </arg> - <arg> - <argname>DCubeMon</argname> - <argvalue>today.InDetStandardPlots.root</argvalue> - </arg> - <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern> - </test> + <test position="1"> + <modulename>RttLibraryTools</modulename> + <testname>DCubeRunner</testname> + <arg> + <argname>DCubeCfg</argname> + <argvalue>dcube_standard_Reco_tf_fastSim_fullDigi.xml</argvalue> + </arg> + <arg> + <argname>DCubeRef</argname> + <argvalue>3InDetStandardPlots.root</argvalue> + </arg> + <arg> + <argname>DCubeMon</argname> + <argvalue>today.InDetStandardPlots.root</argvalue> + </arg> + <keepFilePattern>DCube-3InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern> + </test> <testToRemove> - <jobGroupName>RTT:Top</jobGroupName> - <testidentifier>CheckFileRunner0</testidentifier> - </testToRemove> - </jobTransform> - </chainElement> - </sequential> - <sequential> - <chainElement> - <jobTransform userJobId="ttFC_reco_newTracking_PseudoT_fullSim_fullDigi"> - <doc>FastChain reco</doc> - <jobTransformJobName>ttFC_reco_newTracking_PseudoT_fullSim_fullDigi</jobTransformJobName> - <jobTransformCmd> - FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31 --inputRDOFile RDO_pileup_fullsim_fulldigi.pool.root --outputAODFile AOD_newTracking_pseudoTracking_fullSim_fullDigi.pool.root --preExec "RAWtoESD:from InDetRecExample.InDetJobProperties import InDetFlags;InDetFlags.doPseudoTracking.set_Value_and_Lock(True);InDetFlags.doNewTracking.set_Value_and_Lock(True);rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);InDetFlags.doTrackSegmentsTRT.set_Value_and_Lock(True);" "InDetFlags.doStandardPlots.set_Value_and_Lock(True)" - </jobTransformCmd> - <group>FastChainPileup</group> - <chaindataset_info> - <jobTransformData /> - <chaindatasetName>RDO_pileup_fullsim_fulldigi.pool.root</chaindatasetName> - <!-- If the file on the previous line is not in the chain store, then use the following fallback file. --> - <dataset_info> - <jobTransformData /> - <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fullsim_fulldigi.pool.root</datasetName> - </dataset_info> - </chaindataset_info> - <queue>medium</queue> - </jobTransform> - <chainfileout> - AOD_newTracking_PseudoT_fullSim_fullDigi.pool.root - </chainfileout> - </chainElement> - <chainElement> - <jobTransform userJobId="ttFC_reco_newTracking_PseudoT_fullSim_fullDigi_Reg"> - <doc>Regression test between releases</doc> - <jobTransformJobName>ttFC_reco_newTracking_PseudoT_fullSim_fullDigi_Reg</jobTransformJobName> - <jobTransformCmd>sim_reg_test.py ttFC_reco_newTracking_PseudoT_fullSim_fullDigi InDetStandardPlots.root</jobTransformCmd> + <jobGroupName>RTT:Top</jobGroupName> + <testidentifier>CheckFileRunner0</testidentifier> + </testToRemove> + </jobTransform> + </chainElement>--> + <chainElement> + <jobTransform userJobId="3reg_20.20.X-VAL_vs_mig13_standard_Reco_tf_fastSim_fullDigi"> + <doc>Regression test of FastChainPileup job standard_Reco_tf_fastSim_fullDigi in releases 20.20.X-VAL vs mig13</doc> + <jobTransformJobName>3reg_20.20.X-VAL_vs_mig13_standard_Reco_tf_fastSim_fullDigi</jobTransformJobName> + <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup 20.20.X-VAL standard_Reco_tf_fastSim_fullDigi InDetStandardPlots.root FastChainPileup mig13 standard_Reco_tf_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd> <group>FastChainPileup</group> - <queue>long</queue> + <queue>medium</queue> <test position="1"> <modulename>RttLibraryTools</modulename> <testname>DCubeRunner</testname> <arg> <argname>DCubeCfg</argname> - <argvalue>dcube_ttFC_reco_newTracking_PseudoT_fullSim_fullDigi_Reg.xml</argvalue> - </arg> - <arg> - <argname>tolerateWARN</argname> - <argvalue>True</argvalue> + <argvalue>dcube_standard_Reco_tf_fastSim_fullDigi.xml</argvalue> </arg> <arg> <argname>DCubeRef</argname> @@ -604,54 +664,25 @@ </arg> <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern> </test> - <testToRemove> - <jobGroupName>RTT:Top</jobGroupName> - <testidentifier>CheckFileRunner0</testidentifier> - </testToRemove> - </jobTransform> - </chainElement> - </sequential> - <sequential> - <chainElement> - <jobTransform userJobId="ttFC_reco_noSplit_noPseudoT_fullSim_fullDigi"> - <doc>FastChain reco</doc> - <jobTransformJobName>ttFC_reco_noSplit_noPseudoT_fullSim_fullDigi</jobTransformJobName> - <jobTransformCmd> - FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31 --inputRDOFile RDO_pileup_fullsim_fulldigi.pool.root --outputAODFile AOD_noSplit_noPseudoT_fullSim_fullDigi.pool.root --preExec "RAWtoESD:rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);" "InDetFlags.doStandardPlots.set_Value_and_Lock(True)" - </jobTransformCmd> - <group>FastChainPileup</group> - <chaindataset_info> - <jobTransformData /> - <chaindatasetName>RDO_pileup_fullsim_fulldigi.pool.root</chaindatasetName> - <!-- If the file on the previous line is not in the chain store, then use the following fallback file. --> - <dataset_info> - <jobTransformData /> - <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fullsim_fulldigi.pool.root</datasetName> - </dataset_info> - </chaindataset_info> - <queue>medium</queue> + <testToRemove> + <jobGroupName>RTT:Top</jobGroupName> + <testidentifier>CheckFileRunner0</testidentifier> + </testToRemove> </jobTransform> - <chainfileout> - AOD_noSplit_noPseudoT_fullSim_fullDigi.pool.root - </chainfileout> </chainElement> - <chainElement> - <jobTransform userJobId="ttFC_reco_noSplit_noPseudoT_fullSim_fullDigi_Reg"> - <doc>Regression test between releases</doc> - <jobTransformJobName>ttFC_reco_noSplit_noPseudoT_fullSim_fullDigi_Reg</jobTransformJobName> - <jobTransformCmd>sim_reg_test.py ttFC_reco_noSplit_noPseudoT_fullSim_fullDigi InDetStandardPlots.root</jobTransformCmd> +<!-- <chainElement> + <jobTransform userJobId="reg_20.20.X_vs_mig13_standard_Reco_tf_fastSim_fullDigi"> + <doc>Regression test of FastChainPileup job standard_Reco_tf_fastSim_fullDigi in releases 20.20.X vs mig13</doc> + <jobTransformJobName>reg_20.20.X_vs_mig13_standard_Reco_tf_fastSim_fullDigi</jobTransformJobName> + <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup 20.20.X standard_Reco_tf_fastSim_fullDigi InDetStandardPlots.root FastChainPileup mig13 standard_Reco_tf_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd> <group>FastChainPileup</group> - <queue>long</queue> + <queue>medium</queue> <test position="1"> <modulename>RttLibraryTools</modulename> <testname>DCubeRunner</testname> <arg> <argname>DCubeCfg</argname> - <argvalue>dcube_ttFC_reco_noSplit_noPseudoT_fullSim_fullDigi_Reg.xml</argvalue> - </arg> - <arg> - <argname>tolerateWARN</argname> - <argvalue>True</argvalue> + <argvalue>dcube_standard_Reco_tf_fastSim_fullDigi.xml</argvalue> </arg> <arg> <argname>DCubeRef</argname> @@ -667,374 +698,338 @@ </arg> <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern> </test> - <testToRemove> - <jobGroupName>RTT:Top</jobGroupName> - <testidentifier>CheckFileRunner0</testidentifier> - </testToRemove> - </jobTransform> - </chainElement> - </sequential> - <chainElement> - <jobTransform userJobId="stdReco_fullSim_fullDigi"> - <doc>standard reco</doc> - <jobTransformJobName>stdReco_fullSim_fullDigi</jobTransformJobName> - <jobTransformCmd> - Reco_tf.py --inputRDOFile=RDO_pileup_fullsim_fulldigi.pool.root --outputAODFile=AOD_fullSim_fullDigi.pool.root --autoConfiguration=everything --maxEvents=500 --preExec "RAWtoESD:rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);InDetFlags.doStandardPlots.set_Value_and_Lock(True)" - </jobTransformCmd> - <group>FastChainPileup</group> - <chaindataset_info> - <jobTransformData /> - <chaindatasetName>RDO_pileup_fullsim_fulldigi.pool.root</chaindatasetName> - <!-- If the file on the previous line is not in the chain store, then use the following fallback file. --> - <dataset_info> - <jobTransformData /> - <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fullsim_fulldigi.pool.root</datasetName> - </dataset_info> - </chaindataset_info> - <queue>medium</queue> - </jobTransform> - <chainfileout> - AOD_fullSim_fullDigi.pool.root - </chainfileout> - </chainElement> - <chainElement> - <jobTransform userJobId="ttFC_fullSim_fullDigi_Reg"> - <doc>Regression test between releases</doc> - <jobTransformJobName>ttFC_fullSim_fullDigi_Reg</jobTransformJobName> - <jobTransformCmd>sim_reg_test.py ttFC_fullSim_fullDigi RDO_truth.root RDO_pileup_fullsim_fulldigi.pool.root</jobTransformCmd> - <group>FastChainPileup</group> - <queue>long</queue> - <test position="1"> - <modulename>RttLibraryTools</modulename> - <testname>DiffPoolFilesRunner</testname> - <testidentifier>HITS_RegressionTestRunner</testidentifier> - <arg> - <argname>fileName</argname> - <argvalue>today.RDO_pileup_fullsim_fulldigi.pool.root</argvalue> - </arg> - <arg> - <argname>refFileName</argname> - <argvalue>yesterday.RDO_pileup_fullsim_fulldigi.pool.root</argvalue> - </arg> - <keepFilePattern>today.RDO_pileup_fullsim_fulldigi.pool.root_yesterday.RDO_pileup_fullsim_fulldigi.pool.root.diffPool</keepFilePattern> - </test> - <test position="2"> - <modulename>RttLibraryTools</modulename> - <testname>ExeRunner</testname> - <arg> - <argname>exeName</argname> - <argvalue>acmd.py</argvalue> - </arg> - <arg> - <argname>exeParamString</argname> - <argvalue>diff-root yesterday.RDO_pileup_fullsim_fulldigi.pool.root today.RDO_pileup_fullsim_fulldigi.pool.root --ignore-leaves RecoTimingObj_p1_EVNTtoHITS_timings RecoTimingObj_p1_HITStoRDO_timings RecoTimingObj_p1_RAWtoESD_timings ESDtoAOD_timings ESDtoAOD_mems RAWtoESD_mems RAWtoESD_timings RecoTimingObj_p1_RAWtoESD_mems</argvalue> - </arg> - <keepFilePattern>RttLibraryTools_ExeRunner.postprocessing.log</keepFilePattern> - </test> - <test position="3"> - <modulename>RttLibraryTools</modulename> - <testname>DCubeRunner</testname> - <arg> - <argname>DCubeCfg</argname> - <argvalue>dcube_RDO_truth_nopileup.xml</argvalue> - </arg> - <arg> - <argname>tolerateWARN</argname> - <argvalue>True</argvalue> - </arg> - <arg> - <argname>DCubeRef</argname> - <argvalue>yesterday.RDO_truth.root</argvalue> - </arg> - <arg> - <argname>localRefFile</argname> - <argvalue>True</argvalue> - </arg> - <arg> - <argname>DCubeMon</argname> - <argvalue>today.RDO_truth.root</argvalue> - </arg> - <keepFilePattern>DCube-yesterday.RDO_truth.root/today.RDO_truth.root.dcube.xml.php</keepFilePattern> - </test> + <testToRemove> + <jobGroupName>RTT:Top</jobGroupName> + <testidentifier>CheckFileRunner0</testidentifier> + </testToRemove> </jobTransform> - </chainElement> + </chainElement>--> + </sequential> + <!-- END run reco jobs & tests in parallel --> </parallel> - <!-- END Run FastChain full sim + full digi and tests --> + <!-- END Run FastChain fast sim + fast digi + reco and tests chain --> </sequential> - <!-- Run FastChain fast sim + fast digi + reco chain and tests --> + <!-- Run FastChain full sim + full digi and tests --> <sequential> <chainElement> - <jobTransform userJobId="ttFC_fastSim_fastDigi"> + <jobTransform userJobId="ttbarFastChain_fullSim_fullDigi"> <doc>FastChain simdigi</doc> - <jobTransformJobName>ttFC_fastSim_fastDigi</jobTransformJobName> + <jobTransformJobName>ttbarFastChain_fullSim_fullDigi</jobTransformJobName> <jobTransformCmd> - FastChain_tf.py --simulator ATLFASTIIF_PileUp --digiSteeringConf "SplitNoMergeFF" --useISF True --randomSeed 123 --enableLooperKiller True --inputEVNTFile /afs/cern.ch/atlas/offline/ProdData/16.6.X/16.6.7.Y/ttbar_muplusjets-pythia6-7000.evgen.pool.root --outputRDOFile RDO_pileup_fastsim_fastdigi.pool.root --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31 --preSimExec 'from TrkDetDescrSvc.TrkDetDescrJobProperties import TrkDetFlags;TrkDetFlags.TRT_BuildStrawLayers=True' --preSimInclude FastChainPileup/FastPileup.py --postInclude='PyJobTransforms/UseFrontier.py,G4AtlasTests/postInclude.DCubeTest_FCpileup.py,DigitizationTests/postInclude.RDO_Plots.py' --postExec 'RAWtoESD:from AthenaCommon.ConfigurationShelve import saveToAscii;saveToAscii("config.txt")' --DataRunNumber '284500' --postSimExec='genSeq.Pythia8.NCollPerEvent=10;' --preDigiInclude="FastTRT_Digitization/preInclude.FastTRT_Digi.Validation.py" + FastChain_tf.py --simulator ATLFASTII --digiSteeringConf "SplitNoMerge" --useISF True --randomSeed 123 --enableLooperKiller True --inputEVNTFile /afs/cern.ch/atlas/offline/ProdData/16.6.X/16.6.7.Y/ttbar_muplusjets-pythia6-7000.evgen.pool.root --outputRDOFile RDO_pileup_fullsim_fulldigi.pool.root --maxEvents 50 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31 --preSimExec 'from TrkDetDescrSvc.TrkDetDescrJobProperties import TrkDetFlags;TrkDetFlags.TRT_BuildStrawLayers=True' --postInclude='PyJobTransforms/UseFrontier.py,G4AtlasTests/postInclude.DCubeTest.py,DigitizationTests/postInclude.RDO_Plots.py' --postExec 'from AthenaCommon.ConfigurationShelve import saveToAscii;saveToAscii("config.txt")' --DataRunNumber '222525' --ignorePatterns='G4TestAlg.Lucid.{5}FATAL.{8}LucidHitsTestTool.cxx:66\ \(StatusCode\ LucidHitsTestTool::processEvent\(\)\):\ code\ 0:\ evtStore\(\)->retrieve\(iter\)','FATAL\ message\ limit\ \(500\)\ reached\ for\ G4TestAlg.LucidHitsTestTool.' </jobTransformCmd> <group>FastChainPileup</group> <queue>medium</queue> </jobTransform> <chainfileout> - RDO_pileup_fastsim_fastdigi.pool.root + RDO_pileup_fullsim_fulldigi.pool.root </chainfileout> </chainElement> <parallel> - <sequential> - <chainElement> - <jobTransform userJobId="ttFC_reco_noSplit_noPseudoT_fastSim_fastDigi"> - <doc>FastChain reco</doc> - <jobTransformJobName>ttFC_reco_noSplit_noPseudoT_fastSim_fastDigi</jobTransformJobName> - <jobTransformCmd> - FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31 --inputRDOFile RDO_pileup_fastsim_fastdigi.pool.root --outputAODFile AOD_noSplit_noPseudoT_fastSim_fastDigi.pool.root --preExec "RAWtoESD:rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);InDetFlags.pixelClusterSplittingType.set_Value_and_Lock(\"AnalogClus\");InDetFlags.doTIDE_Ambi.set_Value_and_Lock(False);InDetFlags.doStandardPlots.set_Value_and_Lock(True)" - </jobTransformCmd> - <group>FastChainPileup</group> - <chaindataset_info> - <jobTransformData /> - <chaindatasetName>RDO_pileup_fastsim_fastdigi.pool.root</chaindatasetName> - <!-- If the file on the previous line is not in the chain store, then use the following fallback file. --> - <dataset_info> - <jobTransformData /> - <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fastsim_fastdigi.pool.root</datasetName> - </dataset_info> - </chaindataset_info> - <queue>medium</queue> - </jobTransform> - <chainfileout> - AOD_noSplit_noPseudoT_fastSim_fastDigi.pool.root - </chainfileout> - </chainElement> - <chainElement> - <jobTransform userJobId="ttFC_reco_noSplit_noPseudoT_fastSim_fastDigi_Reg"> - <doc>Regression test between releases</doc> - <jobTransformJobName>ttFC_reco_noSplit_noPseudoT_fastSim_fastDigi_Reg</jobTransformJobName> - <jobTransformCmd>sim_reg_test.py ttFC_reco_noSplit_noPseudoT_fastSim_fastDigi InDetStandardPlots.root</jobTransformCmd> - <group>FastChainPileup</group> - <queue>long</queue> - <test position="1"> - <modulename>RttLibraryTools</modulename> - <testname>DCubeRunner</testname> - <arg> - <argname>DCubeCfg</argname> - <argvalue>dcube_ttFC_reco_noSplit_noPseudoT_fastSim_fastDigi_Reg.xml</argvalue> - </arg> - <arg> - <argname>tolerateWARN</argname> - <argvalue>True</argvalue> - </arg> - <arg> - <argname>DCubeRef</argname> - <argvalue>yesterday.InDetStandardPlots.root</argvalue> - </arg> - <arg> - <argname>localRefFile</argname> - <argvalue>True</argvalue> - </arg> - <arg> - <argname>DCubeMon</argname> - <argvalue>today.InDetStandardPlots.root</argvalue> - </arg> - <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern> - </test> - <testToRemove> + <!--<chainElement> + <jobTransform userJobId="6reg_20.20.3_vs_mig13_ttbarFastChain_fullSim_fullDigi"> + <doc>comparison with reference sample obtained using 20.20.3</doc> + <jobTransformJobName>6reg_20.20.3_vs_mig13_ttbarFastChain_fullSim_fullDigi</jobTransformJobName> + <jobTransformCmd>sim_reg_test.py ttbarFastChain_fullSim_fullDigi RDO_truth.root</jobTransformCmd> + <group>FastChainPileup</group> + <queue>medium</queue> + <test position="1"> + <modulename>RttLibraryTools</modulename> + <testname>DCubeRunner</testname> + <arg> + <argname>DCubeCfg</argname> + <argvalue>dcube_RDO_truth_nopileup.xml</argvalue> + </arg> + <arg> + <argname>DCubeRef</argname> + <argvalue>6RDO_truth.root</argvalue> + </arg> + <arg> + <argname>DCubeMon</argname> + <argvalue>today.RDO_truth.root</argvalue> + </arg> + <keepFilePattern>DCube-6RDO_truth.root/today.RDO_truth.root.dcube.xml.php</keepFilePattern> + </test> + <testToRemove> <jobGroupName>RTT:Top</jobGroupName> <testidentifier>CheckFileRunner0</testidentifier> - </testToRemove> - </jobTransform> - </chainElement> - </sequential> + </testToRemove> + </jobTransform> + </chainElement>--> + <chainElement> + <jobTransform userJobId="6reg_20.20.X-VAL_vs_mig13_ttbarFastChain_fullSim_fullDigi"> + <doc>comparison with job in 20.20.X-VAL</doc> + <jobTransformJobName>6reg_20.20.X-VAL_vs_mig13_ttbarFastChain_fullSim_fullDigi</jobTransformJobName> + <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup 20.20.X-VAL ttbarFastChain_fullSim_fullDigi RDO_truth.root FastChainPileup mig13 ttbarFastChain_fullSim_fullDigi RDO_truth.root</jobTransformCmd> + <group>FastChainPileup</group> + <queue>medium</queue> + <test position="1"> + <modulename>RttLibraryTools</modulename> + <testname>DCubeRunner</testname> + <arg> + <argname>DCubeCfg</argname> + <argvalue>dcube_RDO_truth_nopileup.xml</argvalue> + </arg> + <arg> + <argname>DCubeRef</argname> + <argvalue>yesterday.RDO_truth.root</argvalue> + </arg> + <arg> + <argname>localRefFile</argname> + <argvalue>True</argvalue> + </arg> + <arg> + <argname>DCubeMon</argname> + <argvalue>today.RDO_truth.root</argvalue> + </arg> + <keepFilePattern>DCube-yesterday.RDO_truth.root/today.RDO_truth.root.dcube.xml.php</keepFilePattern> + </test> + <testToRemove> + <jobGroupName>RTT:Top</jobGroupName> + <testidentifier>CheckFileRunner0</testidentifier> + </testToRemove> + </jobTransform> + </chainElement> <sequential> <chainElement> - <jobTransform userJobId="ttFC_reco_noSplit_PseudoT_fastSim_fastDigi"> + <jobTransform userJobId="ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi"> <doc>FastChain reco</doc> - <jobTransformJobName>ttFC_reco_noSplit_PseudoT_fastSim_fastDigi</jobTransformJobName> + <jobTransformJobName>ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi</jobTransformJobName> <jobTransformCmd> - FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31 --inputRDOFile RDO_pileup_fastsim_fastdigi.pool.root --outputAODFile AOD_noSplit_pseudoTracking_fastSim_fastDigi.pool.root --preExec "RAWtoESD:rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);InDetFlags.pixelClusterSplittingType.set_Value_and_Lock(\"AnalogClus\");InDetFlags.doTIDE_Ambi.set_Value_and_Lock(False);InDetFlags.doStandardPlots.set_Value_and_Lock(True);InDetFlags.doPseudoTracking.set_Value_and_Lock(True);" + FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31 --inputRDOFile RDO_pileup_fullsim_fulldigi.pool.root --outputAODFile AOD_noSplit_pseudoTracking_fullSim_fullDigi.pool.root --preExec "RAWtoESD:from InDetRecExample.InDetJobProperties import InDetFlags;InDetFlags.doPseudoTracking.set_Value_and_Lock(True);rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);InDetFlags.doTrackSegmentsTRT.set_Value_and_Lock(True);" "InDetFlags.doStandardPlots.set_Value_and_Lock(True)" </jobTransformCmd> <group>FastChainPileup</group> <chaindataset_info> <jobTransformData /> - <chaindatasetName>RDO_pileup_fastsim_fastdigi.pool.root</chaindatasetName> + <chaindatasetName>RDO_pileup_fullsim_fulldigi.pool.root</chaindatasetName> <!-- If the file on the previous line is not in the chain store, then use the following fallback file. --> <dataset_info> <jobTransformData /> - <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fastsim_fastdigi.pool.root</datasetName> + <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fullsim_fulldigi.pool.root</datasetName> </dataset_info> </chaindataset_info> <queue>medium</queue> </jobTransform> <chainfileout> - AOD_noSplit_PseudoT_fastSim_fastDigi.pool.root + AOD_noSplit_pseudoTracking_fullSim_fullDigi.pool.root </chainfileout> </chainElement> - <chainElement> - <jobTransform userJobId="ttFC_reco_noSplit_PseudoT_fastSim_fastDigi_Reg"> - <doc>Regression test between releases</doc> - <jobTransformJobName>ttFC_reco_noSplit_PseudoT_fastSim_fastDigi_Reg</jobTransformJobName> - <jobTransformCmd>sim_reg_test.py ttFC_reco_noSplit_PseudoT_fastSim_fastDigi InDetStandardPlots.root</jobTransformCmd> + <!--<chainElement> + <jobTransform userJobId="4reg_20.20.3_vs_mig13_ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi"> + <doc>comparison with reference sample obtained using 20.20.3</doc> + <jobTransformJobName>4reg_20.20.3_vs_mig13_ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi</jobTransformJobName> + <jobTransformCmd>sim_reg_test.py ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi InDetStandardPlots.root</jobTransformCmd> <group>FastChainPileup</group> - <queue>long</queue> - <test position="1"> - <modulename>RttLibraryTools</modulename> - <testname>DCubeRunner</testname> - <arg> - <argname>DCubeCfg</argname> - <argvalue>dcube_ttFC_reco_noSplit_PseudoT_fastSim_fastDigi_Reg.xml</argvalue> - </arg> - <arg> - <argname>tolerateWARN</argname> - <argvalue>True</argvalue> - </arg> - <arg> - <argname>DCubeRef</argname> - <argvalue>yesterday.InDetStandardPlots.root</argvalue> - </arg> - <arg> - <argname>localRefFile</argname> - <argvalue>True</argvalue> - </arg> - <arg> - <argname>DCubeMon</argname> - <argvalue>today.InDetStandardPlots.root</argvalue> - </arg> - <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern> - </test> + <queue>medium</queue> + <test position="1"> + <modulename>RttLibraryTools</modulename> + <testname>DCubeRunner</testname> + <arg> + <argname>DCubeCfg</argname> + <argvalue>dcube_ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi.xml</argvalue> + </arg> + <arg> + <argname>DCubeRef</argname> + <argvalue>4InDetStandardPlots.root</argvalue> + </arg> + <arg> + <argname>DCubeMon</argname> + <argvalue>today.InDetStandardPlots.root</argvalue> + </arg> + <keepFilePattern>DCube-4InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern> + </test> <testToRemove> - <jobGroupName>RTT:Top</jobGroupName> - <testidentifier>CheckFileRunner0</testidentifier> - </testToRemove> + <jobGroupName>RTT:Top</jobGroupName> + <testidentifier>CheckFileRunner0</testidentifier> + </testToRemove> + </jobTransform> + </chainElement>--> + <chainElement> + <jobTransform userJobId="4reg_20.20.X-VAL_vs_mig13_ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi"> + <doc>Regression test of FastChainPileup job ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi in releases 20.20.X-VAL vs mig13</doc> + <jobTransformJobName>4reg_20.20.X-VAL_vs_mig13_ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi</jobTransformJobName> + <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup 20.20.X-VAL ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi InDetStandardPlots.root FastChainPileup mig13 ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi InDetStandardPlots.root</jobTransformCmd> + <group>FastChainPileup</group> + <queue>medium</queue> + <test position="1"> + <modulename>RttLibraryTools</modulename> + <testname>DCubeRunner</testname> + <arg> + <argname>DCubeCfg</argname> + <argvalue>dcube_ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi.xml</argvalue> + </arg> + <arg> + <argname>DCubeRef</argname> + <argvalue>yesterday.InDetStandardPlots.root</argvalue> + </arg> + <arg> + <argname>localRefFile</argname> + <argvalue>True</argvalue> + </arg> + <arg> + <argname>DCubeMon</argname> + <argvalue>today.InDetStandardPlots.root</argvalue> + </arg> + <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern> + </test> + <testToRemove> + <jobGroupName>RTT:Top</jobGroupName> + <testidentifier>CheckFileRunner0</testidentifier> + </testToRemove> + </jobTransform> + </chainElement> +<!-- <chainElement> + <jobTransform userJobId="reg_20.20.X_vs_mig13_ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi"> + <doc>Regression test of FastChainPileup job ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi in releases 20.20.X vs mig13</doc> + <jobTransformJobName>reg_20.20.X_vs_mig13_ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi</jobTransformJobName> + <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup 20.20.X ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi InDetStandardPlots.root FastChainPileup mig13 ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi InDetStandardPlots.root</jobTransformCmd> + <group>FastChainPileup</group> + <queue>medium</queue> + <test position="1"> + <modulename>RttLibraryTools</modulename> + <testname>DCubeRunner</testname> + <arg> + <argname>DCubeCfg</argname> + <argvalue>dcube_ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi.xml</argvalue> + </arg> + <arg> + <argname>DCubeRef</argname> + <argvalue>yesterday.InDetStandardPlots.root</argvalue> + </arg> + <arg> + <argname>localRefFile</argname> + <argvalue>True</argvalue> + </arg> + <arg> + <argname>DCubeMon</argname> + <argvalue>today.InDetStandardPlots.root</argvalue> + </arg> + <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern> + </test> + <testToRemove> + <jobGroupName>RTT:Top</jobGroupName> + <testidentifier>CheckFileRunner0</testidentifier> + </testToRemove> </jobTransform> - </chainElement> - </sequential> - <sequential> - <chainElement> - <jobTransform userJobId="ttFC_reco_newTracking_PseudoT_fastSim_fastDigi"> + </chainElement>--> + </sequential> + <sequential> + <chainElement> + <jobTransform userJobId="ttbarFastChain_reco_noSplit_noPseudoTracking_fullSim_fullDigi"> <doc>FastChain reco</doc> - <jobTransformJobName>ttFC_reco_newTracking_PseudoT_fastSim_fastDigi</jobTransformJobName> + <jobTransformJobName>ttbarFastChain_reco_noSplit_noPseudoTracking_fullSim_fullDigi</jobTransformJobName> <jobTransformCmd> - FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31 --inputRDOFile RDO_pileup_fastsim_fastdigi.pool.root --outputAODFile AOD_newTracking_pseudoTracking_fastSim_fastDigi.pool.root --preExec "RAWtoESD:rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);InDetFlags.pixelClusterSplittingType.set_Value_and_Lock(\"AnalogClus\");InDetFlags.doTIDE_Ambi.set_Value_and_Lock(False);InDetFlags.doStandardPlots.set_Value_and_Lock(True);InDetFlags.doPseudoTracking.set_Value_and_Lock(True);InDetFlags.doNewTracking.set_Value_and_Lock(True);" + FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31 --inputRDOFile RDO_pileup_fullsim_fulldigi.pool.root --outputAODFile AOD_noSplit_noPseudoTracking_fullSim_fullDigi.pool.root --preExec "RAWtoESD:rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);" "InDetFlags.doStandardPlots.set_Value_and_Lock(True)" </jobTransformCmd> <group>FastChainPileup</group> <chaindataset_info> <jobTransformData /> - <chaindatasetName>RDO_pileup_fastsim_fastdigi.pool.root</chaindatasetName> + <chaindatasetName>RDO_pileup_fullsim_fulldigi.pool.root</chaindatasetName> <!-- If the file on the previous line is not in the chain store, then use the following fallback file. --> <dataset_info> <jobTransformData /> - <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fastsim_fastdigi.pool.root</datasetName> + <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fullsim_fulldigi.pool.root</datasetName> </dataset_info> </chaindataset_info> <queue>medium</queue> </jobTransform> <chainfileout> - AOD_newTracking_PseudoT_fastSim_fastDigi.pool.root + AOD_noSplit_noPseudoTracking_fullSim_fullDigi.pool.root </chainfileout> </chainElement> - <chainElement> - <jobTransform userJobId="ttFC_reco_newTracking_PseudoT_fastSim_fastDigi_Reg"> - <doc>Regression test between releases</doc> - <jobTransformJobName>ttFC_reco_newTracking_PseudoT_fastSim_fastDigi_Reg</jobTransformJobName> - <jobTransformCmd>sim_reg_test.py ttFC_reco_newTracking_PseudoT_fastSim_fastDigi InDetStandardPlots.root</jobTransformCmd> - <group>FastChainPileup</group> - <queue>long</queue> - <test position="1"> - <modulename>RttLibraryTools</modulename> - <testname>DCubeRunner</testname> - <arg> - <argname>DCubeCfg</argname> - <argvalue>dcube_ttFC_reco_newTracking_PseudoT_fastSim_fastDigi_Reg.xml</argvalue> - </arg> - <arg> - <argname>tolerateWARN</argname> - <argvalue>True</argvalue> - </arg> - <arg> - <argname>DCubeRef</argname> - <argvalue>yesterday.InDetStandardPlots.root</argvalue> - </arg> - <arg> - <argname>localRefFile</argname> - <argvalue>True</argvalue> - </arg> - <arg> - <argname>DCubeMon</argname> - <argvalue>today.InDetStandardPlots.root</argvalue> - </arg> - <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern> - </test> - <testToRemove> - <jobGroupName>RTT:Top</jobGroupName> - <testidentifier>CheckFileRunner0</testidentifier> - </testToRemove> - </jobTransform> - </chainElement> - </sequential> - <sequential> - <chainElement> - <jobTransform userJobId="ttFC_reco_Split_fastSim_fastDigi"> - <doc>FastChain reco</doc> - <jobTransformJobName>ttFC_reco_Split_fastSim_fastDigi</jobTransformJobName> - <jobTransformCmd> - FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31 --inputRDOFile RDO_pileup_fastsim_fastdigi.pool.root --outputAODFile AOD_Split_fastSim_fastDigi.pool.root --preExec "RAWtoESD:rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);InDetFlags.pixelClusterSplittingType.set_Value_and_Lock(\"AnalogClus\");InDetFlags.doTIDE_Ambi.set_Value_and_Lock(False);InDetFlags.doStandardPlots.set_Value_and_Lock(True);InDetFlags.doSplitReco.set_Value_and_Lock(True);from InDetRecExample.InDetKeys import InDetKeys; InDetKeys.PixelPUClusters.set_Value_and_Lock('PixelFast_PU_Clusters');InDetKeys.PixelPUClustersTruth.set_Value_and_Lock('PRD_MultiTruthPixel_PU');InDetKeys.SCT_PU_ClustersTruth.set_Value_and_Lock('PRD_MultiTruthSCT_PU');InDetKeys.TRT_PU_DriftCirclesTruth.set_Value_and_Lock('PRD_MultiTruthTRT_PU');" - </jobTransformCmd> + <!--<chainElement> + <jobTransform userJobId="8reg_20.20.3_vs_mig13_ttbarFastChain_reco_noSplit_noPseudoTracking_fullSim_fullDigi"> + <doc>comparison with reference sample obtained using 20.20.3</doc> + <jobTransformJobName>8reg_20.20.3_vs_mig13_ttbarFastChain_reco_noSplit_noPseudoTracking_fullSim_fullDigi</jobTransformJobName> + <jobTransformCmd>sim_reg_test.py ttbarFastChain_reco_noSplit_noPseudoTracking_fullSim_fullDigi InDetStandardPlots.root</jobTransformCmd> <group>FastChainPileup</group> - <chaindataset_info> - <jobTransformData /> - <chaindatasetName>RDO_pileup_fastsim_fastdigi.pool.root</chaindatasetName> - <!-- If the file on the previous line is not in the chain store, then use the following fallback file. --> - <dataset_info> - <jobTransformData /> - <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fastsim_fastdigi.pool.root</datasetName> - </dataset_info> - </chaindataset_info> <queue>medium</queue> + <test position="1"> + <modulename>RttLibraryTools</modulename> + <testname>DCubeRunner</testname> + <arg> + <argname>DCubeCfg</argname> + <argvalue>dcube_ttbarFastChain_reco_noSplit_noPseudoTracking_fullSim_fullDigi.xml</argvalue> + </arg> + <arg> + <argname>DCubeRef</argname> + <argvalue>8InDetStandardPlots.root</argvalue> + </arg> + <arg> + <argname>DCubeMon</argname> + <argvalue>today.InDetStandardPlots.root</argvalue> + </arg> + <keepFilePattern>DCube-8InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern> + </test> + <testToRemove> + <jobGroupName>RTT:Top</jobGroupName> + <testidentifier>CheckFileRunner0</testidentifier> + </testToRemove> </jobTransform> - <chainfileout> - AOD_Split_fastSim_fastDigi.pool.root - </chainfileout> - </chainElement> + </chainElement>--> <chainElement> - <jobTransform userJobId="ttFC_reco_Split_fastSim_fastDigi_Reg"> - <doc>Regression test between releases</doc> - <jobTransformJobName>ttFC_reco_Split_fastSim_fastDigi_Reg</jobTransformJobName> - <jobTransformCmd>sim_reg_test.py ttFC_reco_Split_fastSim_fastDigi InDetStandardPlots.root</jobTransformCmd> + <jobTransform userJobId="8reg_20.20.X-VAL_vs_mig13_ttbarFastChain_reco_noSplit_noPseudoTracking_fullSim_fullDigi"> + <doc>comparison with 20.20.X-VAL</doc> + <jobTransformJobName>8reg_20.20.X-VAL_vs_mig13_ttbarFastChain_reco_noSplit_noPseudoTracking_fullSim_fullDigi</jobTransformJobName> + <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup 20.20.X-VAL ttbarFastChain_reco_noSplit_noPseudoTracking_fullSim_fullDigi InDetStandardPlots.root FastChainPileup mig13 ttbarFastChain_reco_noSplit_noPseudoTracking_fullSim_fullDigi InDetStandardPlots.root</jobTransformCmd> <group>FastChainPileup</group> - <queue>long</queue> - <test position="1"> - <modulename>RttLibraryTools</modulename> - <testname>DCubeRunner</testname> - <arg> - <argname>DCubeCfg</argname> - <argvalue>dcube_ttFC_reco_Split_fastSim_fastDigi_Reg.xml</argvalue> - </arg> - <arg> - <argname>tolerateWARN</argname> - <argvalue>True</argvalue> - </arg> - <arg> - <argname>DCubeRef</argname> - <argvalue>yesterday.InDetStandardPlots.root</argvalue> - </arg> - <arg> - <argname>localRefFile</argname> - <argvalue>True</argvalue> - </arg> - <arg> - <argname>DCubeMon</argname> - <argvalue>today.InDetStandardPlots.root</argvalue> - </arg> - <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern> - </test> + <queue>medium</queue> + <test position="1"> + <modulename>RttLibraryTools</modulename> + <testname>DCubeRunner</testname> + <arg> + <argname>DCubeCfg</argname> + <argvalue>dcube_ttbarFastChain_reco_noSplit_noPseudoTracking_fullSim_fullDigi.xml</argvalue> + </arg> + <arg> + <argname>DCubeRef</argname> + <argvalue>yesterday.InDetStandardPlots.root</argvalue> + </arg> + <arg> + <argname>localRefFile</argname> + <argvalue>True</argvalue> + </arg> + <arg> + <argname>DCubeMon</argname> + <argvalue>today.InDetStandardPlots.root</argvalue> + </arg> + <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern> + </test> <testToRemove> - <jobGroupName>RTT:Top</jobGroupName> - <testidentifier>CheckFileRunner0</testidentifier> - </testToRemove> - </jobTransform> + <jobGroupName>RTT:Top</jobGroupName> + <testidentifier>CheckFileRunner0</testidentifier> + </testToRemove> + </jobTransform> </chainElement> </sequential> <chainElement> - <jobTransform userJobId="ttFC_fastSim_fastDigi_Reg"> + <jobTransform userJobId="standard_Reco_tf_fullSim_fullDigi"> + <doc>standard reco</doc> + <jobTransformJobName>standard_Reco_tf_fullSim_fullDigi</jobTransformJobName> + <jobTransformCmd> + Reco_tf.py --inputRDOFile=RDO_pileup_fullsim_fulldigi.pool.root --outputAODFile=AOD_fullSim_fullDigi.pool.root --autoConfiguration=everything --maxEvents=500 --preExec "RAWtoESD:rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);InDetFlags.doStandardPlots.set_Value_and_Lock(True)" + </jobTransformCmd> + <group>FastChainPileup</group> + <chaindataset_info> + <jobTransformData /> + <chaindatasetName>RDO_pileup_fullsim_fulldigi.pool.root</chaindatasetName> + <!-- If the file on the previous line is not in the chain store, then use the following fallback file. --> + <dataset_info> + <jobTransformData /> + <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fullsim_fulldigi.pool.root</datasetName> + </dataset_info> + </chaindataset_info> + <queue>medium</queue> + </jobTransform> + <chainfileout> + AOD_fullSim_fullDigi.pool.root + </chainfileout> + </chainElement> + <chainElement> + <jobTransform userJobId="ttbarFastChain_fullSim_fullDigi_Reg"> <doc>Regression test between releases</doc> - <jobTransformJobName>ttFC_fastSim_fastDigi_Reg</jobTransformJobName> - <jobTransformCmd>sim_reg_test.py ttFC_fastSim_fastDigi RDO_truth.root RDO_pileup_fastsim_fastdigi.pool.root</jobTransformCmd> + <jobTransformJobName>ttbarFastChain_fullSim_fullDigi_Reg</jobTransformJobName> + <jobTransformCmd>sim_reg_test.py ttbarFastChain_fullSim_fullDigi RDO_truth.root RDO_pileup_fullsim_fulldigi.pool.root</jobTransformCmd> <group>FastChainPileup</group> <queue>long</queue> <test position="1"> @@ -1043,13 +1038,13 @@ <testidentifier>HITS_RegressionTestRunner</testidentifier> <arg> <argname>fileName</argname> - <argvalue>today.RDO_pileup_fastsim_fastdigi.pool.root</argvalue> + <argvalue>today.RDO_pileup_fullsim_fulldigi.pool.root</argvalue> </arg> <arg> <argname>refFileName</argname> - <argvalue>yesterday.RDO_pileup_fastsim_fastdigi.pool.root</argvalue> + <argvalue>yesterday.RDO_pileup_fullsim_fulldigi.pool.root</argvalue> </arg> - <keepFilePattern>today.RDO_pileup_fastsim_fastdigi.pool.root_yesterday.RDO_pileup_fastsim_fastdigi.pool.root.diffPool</keepFilePattern> + <keepFilePattern>today.RDO_pileup_fullsim_fulldigi.pool.root_yesterday.RDO_pileup_fullsim_fulldigi.pool.root.diffPool</keepFilePattern> </test> <test position="2"> <modulename>RttLibraryTools</modulename> @@ -1060,7 +1055,7 @@ </arg> <arg> <argname>exeParamString</argname> - <argvalue>diff-root yesterday.RDO_pileup_fastsim_fastdigi.pool.root today.RDO_pileup_fastsim_fastdigi.pool.root --ignore-leaves RecoTimingObj_p1_EVNTtoHITS_timings RecoTimingObj_p1_HITStoRDO_timings RecoTimingObj_p1_RAWtoESD_timings ESDtoAOD_timings ESDtoAOD_mems RAWtoESD_mems RAWtoESD_timings RecoTimingObj_p1_RAWtoESD_mems</argvalue> + <argvalue>diff-root yesterday.RDO_pileup_fullsim_fulldigi.pool.root today.RDO_pileup_fullsim_fulldigi.pool.root --ignore-leaves RecoTimingObj_p1_EVNTtoHITS_timings RecoTimingObj_p1_HITStoRDO_timings RecoTimingObj_p1_RAWtoESD_timings ESDtoAOD_timings ESDtoAOD_mems RAWtoESD_mems RAWtoESD_timings RecoTimingObj_p1_RAWtoESD_mems</argvalue> </arg> <keepFilePattern>RttLibraryTools_ExeRunner.postprocessing.log</keepFilePattern> </test> @@ -1069,11 +1064,7 @@ <testname>DCubeRunner</testname> <arg> <argname>DCubeCfg</argname> - <argvalue>dcube_RDO_truth_fastdigi.xml</argvalue> - </arg> - <arg> - <argname>tolerateWARN</argname> - <argvalue>True</argvalue> + <argvalue>dcube_RDO_truth_nopileup.xml</argvalue> </arg> <arg> <argname>DCubeRef</argname> @@ -1092,92 +1083,117 @@ </jobTransform> </chainElement> </parallel> - <!-- END Run FastChain fast sim + fast digi and tests --> + <!-- END Run FastChain full sim + full digi and tests --> </sequential> - <!-- Run FastChain 'Fast PU, Full HS' and tests: G4HS_FastPileup sim (G4 for HS, Pythia on the fly + FastCaloSim for PU) + fast digi PU/full digi HS + Split reco (truth tracking PU, full HS) --> + <!-- Run FastChain fast sim + fast digi + reco chain and tests --> <sequential> <chainElement> - <jobTransform userJobId="ttFC_fullHS_fastPU_simDigi"> + <jobTransform userJobId="ttbarFastChain_fastSim_fastDigi"> <doc>FastChain simdigi</doc> - <jobTransformJobName>ttFC_fullHS_fastPU_simDigi</jobTransformJobName> + <jobTransformJobName>ttbarFastChain_fastSim_fastDigi</jobTransformJobName> <jobTransformCmd> - FastChain_tf.py --simulator G4HS_FastPileup --digiSteeringConf "SplitNoMergeSF" --useISF True --randomSeed 123 --enableLooperKiller True --inputEVNTFile /afs/cern.ch/atlas/offline/ProdData/16.6.X/16.6.7.Y/ttbar_muplusjets-pythia6-7000.evgen.pool.root --outputRDOFile RDO_fullHS_fastPU_simdigi.pool.root --maxEvents 10 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31 --preSimExec 'from TrkDetDescrSvc.TrkDetDescrJobProperties import TrkDetFlags;TrkDetFlags.TRT_BuildStrawLayers=True' --preSimInclude FastChainPileup/FastPileup.py --postInclude='PyJobTransforms/UseFrontier.py,G4AtlasTests/postInclude.DCubeTest_FCpileup.py,DigitizationTests/postInclude.RDO_Plots.py' --postExec 'RAWtoESD:from AthenaCommon.ConfigurationShelve import saveToAscii;saveToAscii("config.txt")' --DataRunNumber '284500' --postSimExec='genSeq.Pythia8.NCollPerEvent=10;' --preDigiInclude="FastTRT_Digitization/preInclude.FastTRT_Digi.Validation.py" + FastChain_tf.py --simulator ATLFASTIIF_PileUp --digiSteeringConf "SplitNoMergeFF" --useISF True --randomSeed 123 --enableLooperKiller True --inputEVNTFile /afs/cern.ch/atlas/offline/ProdData/16.6.X/16.6.7.Y/ttbar_muplusjets-pythia6-7000.evgen.pool.root --outputRDOFile RDO_pileup_fastsim_fastdigi.pool.root --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31 --preSimExec 'from TrkDetDescrSvc.TrkDetDescrJobProperties import TrkDetFlags;TrkDetFlags.TRT_BuildStrawLayers=True' --preSimInclude FastChainPileup/FastPileup.py --postInclude='PyJobTransforms/UseFrontier.py,G4AtlasTests/postInclude.DCubeTest_FCpileup.py,DigitizationTests/postInclude.RDO_Plots.py' --postExec 'RAWtoESD:import AthenaCommon.AlgSequence as acas;job = acas.AlgSequence();del job.InDetSCT_Clusterization;from AthenaCommon.ConfigurationShelve import saveToAscii;saveToAscii("config.txt")' --DataRunNumber '222525' --postSimExec='genSeq.Pythia8.NCollPerEvent=10;' --ignorePatterns='G4TestAlg.Lucid.{5}FATAL.{8}LucidHitsTestTool.cxx:66\ \(StatusCode\ LucidHitsTestTool::processEvent\(\)\):\ code\ 0:\ evtStore\(\)->retrieve\(iter\)','FATAL\ message\ limit\ \(500\)\ reached\ for\ G4TestAlg.LucidHitsTestTool.' --preDigiInclude="FastTRT_Digitization/preInclude.FastTRT_Digi.Validation.py" </jobTransformCmd> <group>FastChainPileup</group> <queue>medium</queue> </jobTransform> <chainfileout> - RDO_fullHS_fastPU_simdigi.pool.root + RDO_pileup_fastsim_fastdigi.pool.root </chainfileout> </chainElement> <parallel> - <sequential> - <chainElement> - <jobTransform userJobId="ttFC_reco_Split_fullHS_fastPU_simDigi"> - <doc>FastChain reco</doc> - <jobTransformJobName>ttFC_reco_Split_fullHS_fastPU_simDigi</jobTransformJobName> - <jobTransformCmd> - FastChain_tf.py --maxEvents 10 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31 --inputRDOFile RDO_fullHS_fastPU_simdigi.pool.root --outputAODFile AOD_Split_fullHS_fastPU_simDigi.pool.root --preExec "RAWtoESD:rec.doTrigger.set_Value_and_Lock(False);InDetFlags.doStatistics.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);InDetFlags.pixelClusterSplittingType.set_Value_and_Lock(\"AnalogClus\");InDetFlags.doTIDE_Ambi.set_Value_and_Lock(False);InDetFlags.doStandardPlots.set_Value_and_Lock(True);InDetFlags.doSplitReco.set_Value_and_Lock(True);from InDetRecExample.InDetKeys import InDetKeys; InDetKeys.PixelPUClusters.set_Value_and_Lock('PixelFast_PU_Clusters');InDetKeys.PixelPUClustersTruth.set_Value_and_Lock('PRD_MultiTruthPixel_PU');InDetKeys.SCT_PU_ClustersTruth.set_Value_and_Lock('PRD_MultiTruthSCT_PU');InDetKeys.TRT_PU_DriftCirclesTruth.set_Value_and_Lock('PRD_MultiTruthTRT_PU');" --postExec 'RAWtoESD:import AthenaCommon.AlgSequence as acas;job = acas.AlgSequence();del job.InDetSCT_ClusterizationPU;del job.InDetPixelClusterizationPU;del job.InDetPRD_MultiTruthMakerSiPU;del job.InDetPRD_MultiTruthMakerTRTPU;' - </jobTransformCmd> - <group>FastChainPileup</group> - <chaindataset_info> - <jobTransformData /> - <chaindatasetName>RDO_fullHS_fastPU_simdigi.pool.root</chaindatasetName> - <dataset_info> - <jobTransformData /> - <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_fullHS_fastPU_simdigi.pool.root</datasetName> - </dataset_info> - </chaindataset_info> - <queue>medium</queue> - </jobTransform> - <chainfileout> - AOD_Split_fullHS_fastPU_simDigi.pool.root - </chainfileout> - </chainElement> - <chainElement> - <jobTransform userJobId="ttFC_reco_Split_fullHS_fastPU_simDigi_Reg"> - <doc>Regression test between releases</doc> - <jobTransformJobName>ttFC_reco_Split_fullHS_fastPU_simDigi_Reg</jobTransformJobName> - <jobTransformCmd>sim_reg_test.py ttFC_reco_Split_fullHS_fastPU_simDigi InDetStandardPlots.root</jobTransformCmd> - <group>FastChainPileup</group> - <queue>long</queue> - <test position="1"> - <modulename>RttLibraryTools</modulename> - <testname>DCubeRunner</testname> - <arg> - <argname>DCubeCfg</argname> - <argvalue>dcube_ttFC_reco_Split_fullHS_fastPU_simDigi_Reg.xml</argvalue> - </arg> - <arg> - <argname>tolerateWARN</argname> - <argvalue>True</argvalue> - </arg> - <arg> - <argname>DCubeRef</argname> - <argvalue>yesterday.InDetStandardPlots.root</argvalue> - </arg> - <arg> - <argname>localRefFile</argname> - <argvalue>True</argvalue> - </arg> - <arg> - <argname>DCubeMon</argname> - <argvalue>today.InDetStandardPlots.root</argvalue> - </arg> - <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern> - </test> - <testToRemove> - <jobGroupName>RTT:Top</jobGroupName> - <testidentifier>CheckFileRunner0</testidentifier> - </testToRemove> - </jobTransform> - </chainElement> - </sequential> + <!--<chainElement> + <jobTransform userJobId="7reg_20.20.3_vs_mig13_ttbarFastChain_fastSim_fastDigi"> + <doc>comparison with reference sample obtained using 20.20.3</doc> + <jobTransformJobName>7reg_20.20.3_vs_mig13_ttbarFastChain_fastSim_fastDigi</jobTransformJobName> + <jobTransformCmd>sim_reg_test.py ttbarFastChain_fastSim_fastDigi RDO_truth.root</jobTransformCmd> + <group>FastChainPileup</group> + <queue>medium</queue> + <test position="1"> + <modulename>RttLibraryTools</modulename> + <testname>DCubeRunner</testname> + <arg> + <argname>DCubeCfg</argname> + <argvalue>dcube_RDO_truth_fastdigi.xml</argvalue> + </arg> + <arg> + <argname>DCubeRef</argname> + <argvalue>7RDO_truth.root</argvalue> + </arg> + <arg> + <argname>DCubeMon</argname> + <argvalue>today.RDO_truth.root</argvalue> + </arg> + <keepFilePattern>DCube-7RDO_truth.root/today.RDO_truth.root.dcube.xml.php</keepFilePattern> + </test> + <testToRemove> + <jobGroupName>RTT:Top</jobGroupName> + <testidentifier>CheckFileRunner0</testidentifier> + </testToRemove> + </jobTransform> + </chainElement>--> + <chainElement> + <jobTransform userJobId="7reg_20.20.X-VAL_vs_mig13_ttbarFastChain_fastSim_fastDigi"> + <doc>comparison with job in 20.20.X-VAL</doc> + <jobTransformJobName>7reg_20.20.X-VAL_vs_mig13_ttbarFastChain_fastSim_fastDigi</jobTransformJobName> + <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup 20.20.X-VAL ttbarFastChain_fastSim_fastDigi RDO_truth.root FastChainPileup mig13 ttbarFastChain_fastSim_fastDigi RDO_truth.root</jobTransformCmd> + <group>FastChainPileup</group> + <queue>medium</queue> + <test position="1"> + <modulename>RttLibraryTools</modulename> + <testname>DCubeRunner</testname> + <arg> + <argname>DCubeCfg</argname> + <argvalue>dcube_RDO_truth_fastdigi.xml</argvalue> + </arg> + <arg> + <argname>DCubeRef</argname> + <argvalue>yesterday.RDO_truth.root</argvalue> + </arg> + <arg> + <argname>localRefFile</argname> + <argvalue>True</argvalue> + </arg> + <arg> + <argname>DCubeMon</argname> + <argvalue>today.RDO_truth.root</argvalue> + </arg> + <keepFilePattern>DCube-yesterday.RDO_truth.root/today.RDO_truth.root.dcube.xml.php</keepFilePattern> + </test> + <testToRemove> + <jobGroupName>RTT:Top</jobGroupName> + <testidentifier>CheckFileRunner0</testidentifier> + </testToRemove> + </jobTransform> + </chainElement> + <chainElement> + <jobTransform userJobId="ttbarFastChain_reco_noSplit_noPseudoTracking_fastSim_fastDigi"> + <doc>FastChain reco</doc> + <jobTransformJobName>ttbarFastChain_reco_noSplit_noPseudoTracking_fastSim_fastDigi</jobTransformJobName> + <jobTransformCmd> + FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31 --inputRDOFile RDO_pileup_fastsim_fastdigi.pool.root --outputAODFile AOD_noSplit_noPseudoTracking_fastSim_fastDigi.pool.root --preExec "RAWtoESD:rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);InDetFlags.pixelClusterSplittingType.set_Value_and_Lock(\"AnalogClus\");InDetFlags.doTIDE_Ambi.set_Value_and_Lock(False);InDetFlags.doStandardPlots.set_Value_and_Lock(True)" + </jobTransformCmd> + <group>FastChainPileup</group> + <chaindataset_info> + <jobTransformData /> + <chaindatasetName>RDO_pileup_fastsim_fastdigi.pool.root</chaindatasetName> + <!-- If the file on the previous line is not in the chain store, then use the following fallback file. --> + <dataset_info> + <jobTransformData /> + <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fastsim_fastdigi.pool.root</datasetName> + </dataset_info> + </chaindataset_info> + <queue>medium</queue> + </jobTransform> + <chainfileout> + AOD_noSplit_noPseudoTracking_fastSim_fastDigi.pool.root + </chainfileout> + </chainElement> <chainElement> - <jobTransform userJobId="ttFC_fullHS_fastPU_simDigi_Reg"> + <jobTransform userJobId="ttbarFastChain_fastSim_fastDigi_Reg"> <doc>Regression test between releases</doc> - <jobTransformJobName>ttFC_fullHS_fastPU_simDigi_Reg</jobTransformJobName> - <jobTransformCmd>sim_reg_test.py ttFC_fullHS_fastPU_simDigi RDO_truth.root RDO_fullHS_fastPU_simdigi.pool.root</jobTransformCmd> + <jobTransformJobName>ttbarFastChain_fastSim_fastDigi_Reg</jobTransformJobName> + <jobTransformCmd>sim_reg_test.py ttbarFastChain_fastSim_fastDigi RDO_truth.root RDO_pileup_fastsim_fastdigi.pool.root</jobTransformCmd> <group>FastChainPileup</group> <queue>long</queue> <test position="1"> @@ -1186,13 +1202,13 @@ <testidentifier>HITS_RegressionTestRunner</testidentifier> <arg> <argname>fileName</argname> - <argvalue>today.RDO_fullHS_fastPU_simdigi.pool.root</argvalue> + <argvalue>today.RDO_pileup_fastsim_fastdigi.pool.root</argvalue> </arg> <arg> <argname>refFileName</argname> - <argvalue>yesterday.RDO_fullHS_fastPU_simdigi.pool.root</argvalue> + <argvalue>yesterday.RDO_pileup_fastsim_fastdigi.pool.root</argvalue> </arg> - <keepFilePattern>today.RDO_fullHS_fastPU_simdigi.pool.root_yesterday.RDO_fullHS_fastPU_simdigi.pool.root.diffPool</keepFilePattern> + <keepFilePattern>today.RDO_pileup_fastsim_fastdigi.pool.root_yesterday.RDO_pileup_fastsim_fastdigi.pool.root.diffPool</keepFilePattern> </test> <test position="2"> <modulename>RttLibraryTools</modulename> @@ -1203,7 +1219,7 @@ </arg> <arg> <argname>exeParamString</argname> - <argvalue>diff-root yesterday.RDO_fullHS_fastPU_simdigi.pool.root today.RDO_fullHS_fastPU_simdigi.pool.root --ignore-leaves RecoTimingObj_p1_EVNTtoHITS_timings RecoTimingObj_p1_HITStoRDO_timings RecoTimingObj_p1_RAWtoESD_timings ESDtoAOD_timings ESDtoAOD_mems RAWtoESD_mems RAWtoESD_timings RecoTimingObj_p1_RAWtoESD_mems</argvalue> + <argvalue>diff-root yesterday.RDO_pileup_fastsim_fastdigi.pool.root today.RDO_pileup_fastsim_fastdigi.pool.root --ignore-leaves RecoTimingObj_p1_EVNTtoHITS_timings RecoTimingObj_p1_HITStoRDO_timings RecoTimingObj_p1_RAWtoESD_timings ESDtoAOD_timings ESDtoAOD_mems RAWtoESD_mems RAWtoESD_timings RecoTimingObj_p1_RAWtoESD_mems</argvalue> </arg> <keepFilePattern>RttLibraryTools_ExeRunner.postprocessing.log</keepFilePattern> </test> @@ -1212,11 +1228,7 @@ <testname>DCubeRunner</testname> <arg> <argname>DCubeCfg</argname> - <argvalue>dcube_RDO_truth_fullHS_fastPU_simdigi.xml</argvalue> - </arg> - <arg> - <argname>tolerateWARN</argname> - <argvalue>True</argvalue> + <argvalue>dcube_RDO_truth_fastdigi.xml</argvalue> </arg> <arg> <argname>DCubeRef</argname> @@ -1235,15 +1247,50 @@ </jobTransform> </chainElement> </parallel> + <!-- END Run FastChain fast sim + fast digi and tests --> </sequential> <!-- END sim jobs, reco jobs + tests chains --> </parallel> <!-- Run tests dependent on different reco jobs --> <chainElement> - <jobTransform userJobId="0reg_stdReco_fastSim_fullDigi_vs_ttFC_reco_Split_fastSim_fullDigi"> - <doc>Regression test of FastChainPileup job stdReco_fastSim_fullDigi vs ttFC_reco_Split_fastSim_fullDigi</doc> - <jobTransformJobName>0reg_stdReco_fastSim_fullDigi_vs_ttFC_reco_Split_fastSim_fullDigi</jobTransformJobName> - <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup current stdReco_fastSim_fullDigi InDetStandardPlots.root FastChainPileup current ttFC_reco_Split_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd> + <jobTransform userJobId="0reg_standard_Reco_tf_fastSim_fullDigi_vs_ttbarFastChain_reco_Split_fastSim_fullDigi"> + <doc>Regression test of FastChainPileup job standard_Reco_tf_fastSim_fullDigi vs ttbarFastChain_reco_Split_fastSim_fullDigi</doc> + <jobTransformJobName>0reg_standard_Reco_tf_fastSim_fullDigi_vs_ttbarFastChain_reco_Split_fastSim_fullDigi</jobTransformJobName> + <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup current standard_Reco_tf_fastSim_fullDigi InDetStandardPlots.root FastChainPileup current ttbarFastChain_reco_Split_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd> + <group>FastChainPileup</group> + <queue>medium</queue> + <test position="1"> + <modulename>RttLibraryTools</modulename> + <testname>DCubeRunner</testname> + <arg> + <argname>DCubeCfg</argname> + <argvalue>dcube_standard_Reco_tf_fastSim_fullDigi_vs_ttbarFastChain_reco_Split_fastSim_fullDigi.xml</argvalue> + </arg> + <arg> + <argname>DCubeRef</argname> + <argvalue>yesterday.InDetStandardPlots.root</argvalue> + </arg> + <arg> + <argname>localRefFile</argname> + <argvalue>True</argvalue> + </arg> + <arg> + <argname>DCubeMon</argname> + <argvalue>today.InDetStandardPlots.root</argvalue> + </arg> + <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern> + </test> + <testToRemove> + <jobGroupName>RTT:Top</jobGroupName> + <testidentifier>CheckFileRunner0</testidentifier> + </testToRemove> + </jobTransform> + </chainElement> + <chainElement> + <jobTransform userJobId="0reg_standard_Reco_tf_fullSim_fullDigi_vs_ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi"> + <doc>Regression test of FastChainPileup job standard_Reco_tf_fullSim_fullDigi vs ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi</doc> + <jobTransformJobName>0reg_standard_Reco_tf_fullSim_fullDigi_vs_ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi</jobTransformJobName> + <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup current standard_Reco_tf_fullSim_fullDigi InDetStandardPlots.root FastChainPileup current ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi InDetStandardPlots.root</jobTransformCmd> <group>FastChainPileup</group> <queue>medium</queue> <test position="1"> @@ -1251,11 +1298,7 @@ <testname>DCubeRunner</testname> <arg> <argname>DCubeCfg</argname> - <argvalue>dcube_stdReco_fastSim_fullDigi_vs_ttFC_reco_Split_fastSim_fullDigi.xml</argvalue> - </arg> - <arg> - <argname>tolerateWARN</argname> - <argvalue>True</argvalue> + <argvalue>dcube_standard_Reco_tf_fullSim_fullDigi_vs_ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi.xml</argvalue> </arg> <arg> <argname>DCubeRef</argname> @@ -1276,12 +1319,12 @@ <testidentifier>CheckFileRunner0</testidentifier> </testToRemove> </jobTransform> - </chainElement> + </chainElement> <chainElement> - <jobTransform userJobId="0reg_stdReco_fullSim_fullDigi_vs_ttFC_reco_noSplit_PseudoT_fullSim_fullDigi"> - <doc>Regression test of FastChainPileup job stdReco_fullSim_fullDigi vs ttFC_reco_noSplit_PseudoT_fullSim_fullDigi</doc> - <jobTransformJobName>0reg_stdReco_fullSim_fullDigi_vs_ttFC_reco_noSplit_pseudoTracking_fullSim_fullDigi</jobTransformJobName> - <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup current stdReco_fullSim_fullDigi InDetStandardPlots.root FastChainPileup current ttFC_reco_noSplit_PseudoT_fullSim_fullDigi InDetStandardPlots.root</jobTransformCmd> + <jobTransform userJobId="0reg_standard_Reco_tf_fastSim_fullDigi_vs_ttbarFastChain_reco_noSplit_noPseudoTracking_fastSim_fullDigi"> + <doc>Regression test of FastChainPileup job standard_Reco_tf_fastSim_fullDigi vs ttbarFastChain_reco_noSplit_noPseudoTracking_fastSim_fullDigi</doc> + <jobTransformJobName>0reg_standard_Reco_tf_fastSim_fullDigi_vs_ttbarFastChain_reco_noSplit_noPseudoTracking_fastSim_fullDigi</jobTransformJobName> + <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup current standard_Reco_tf_fastSim_fullDigi InDetStandardPlots.root FastChainPileup current ttbarFastChain_reco_noSplit_noPseudoTracking_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd> <group>FastChainPileup</group> <queue>medium</queue> <test position="1"> @@ -1289,11 +1332,7 @@ <testname>DCubeRunner</testname> <arg> <argname>DCubeCfg</argname> - <argvalue>dcube_stdReco_fullSim_fullDigi_vs_ttFC_reco_noSplit_PseudoT_fullSim_fullDigi.xml</argvalue> - </arg> - <arg> - <argname>tolerateWARN</argname> - <argvalue>True</argvalue> + <argvalue>dcube_standard_Reco_tf_fastSim_fullDigi_vs_ttbarFastChain_reco_noSplit_noPseudoTracking_fastSim_fullDigi.xml</argvalue> </arg> <arg> <argname>DCubeRef</argname> @@ -1314,12 +1353,12 @@ <testidentifier>CheckFileRunner0</testidentifier> </testToRemove> </jobTransform> - </chainElement> - <chainElement> - <jobTransform userJobId="0reg_stdReco_fastSim_fullDigi_vs_ttFC_reco_noSplit_noPseudoT_fastSim_fullDigi"> - <doc>Regression test of FastChainPileup job stdReco_fastSim_fullDigi vs ttFC_reco_noSplit_noPseudoT_fastSim_fullDigi</doc> - <jobTransformJobName>0reg_stdReco_fastSim_fullDigi_vs_ttFC_reco_noSplit_noPseudoT_fastSim_fullDigi</jobTransformJobName> - <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup current stdReco_fastSim_fullDigi InDetStandardPlots.root FastChainPileup current ttFC_reco_noSplit_noPseudoT_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd> + </chainElement> + <!--<chainElement> + <jobTransform userJobId="0reg_ttbarFastChain_reco_noSplit_noPseudoTracking_fullSim_fullDigi_vs_ttbarFastChain_reco_noSplit_noPseudoTracking_fastSim_fullDigi"> + <doc>Regression test of FastChainPileup job ttbarFastChain_reco_noSplit_noPseudoTracking_fullSim_fullDigi vs ttbarFastChain_reco_noSplit_noPseudoTracking_fastSim_fullDigi</doc> + <jobTransformJobName>0reg_ttbarFastChain_reco_noSplit_noPseudoTracking_fullSim_fullDigi_vs_ttbarFastChain_reco_noSplit_noPseudoTracking_fastSim_fullDigi</jobTransformJobName> + <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup current ttbarFastChain_reco_noSplit_noPseudoTracking_fullSim_fullDigi InDetStandardPlots.root FastChainPileup current ttbarFastChain_reco_noSplit_noPseudoTracking_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd> <group>FastChainPileup</group> <queue>medium</queue> <test position="1"> @@ -1327,11 +1366,7 @@ <testname>DCubeRunner</testname> <arg> <argname>DCubeCfg</argname> - <argvalue>dcube_stdReco_fastSim_fullDigi_vs_ttFC_reco_noSplit_noPseudoT_fastSim_fullDigi.xml</argvalue> - </arg> - <arg> - <argname>tolerateWARN</argname> - <argvalue>True</argvalue> + <argvalue>dcube_ttbarFastChain_reco_noSplit_noPseudoTracking_fullSim_fullDigi_vs_ttbarFastChain_reco_noSplit_noPseudoTracking_fastSim_fullDigi.xml</argvalue> </arg> <arg> <argname>DCubeRef</argname> @@ -1352,12 +1387,12 @@ <testidentifier>CheckFileRunner0</testidentifier> </testToRemove> </jobTransform> - </chainElement> + </chainElement>--> <chainElement> - <jobTransform userJobId="0reg_stdReco_fastSim_fullDigi_vs_ttFC_reco_noSplit_PseudoT_fastSim_fullDigi"> - <doc>Regression test of FastChainPileup job stdReco_fastSim_fullDigi vs ttFC_reco_noSplit_PseudoT_fastSim_fullDigi</doc> - <jobTransformJobName>0reg_stdReco_fastSim_fullDigi_vs_ttFC_reco_noSplit_PseudoT_fastSim_fullDigi</jobTransformJobName> - <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup current stdReco_fastSim_fullDigi InDetStandardPlots.root FastChainPileup current ttFC_reco_noSplit_PseudoT_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd> + <jobTransform userJobId="0reg_standard_Reco_tf_fastSim_fullDigi_vs_ttbarFastChain_reco_noSplit_pseudoTracking_fastSim_fullDigi"> + <doc>Regression test of FastChainPileup job standard_Reco_tf_fastSim_fullDigi vs ttbarFastChain_reco_noSplit_pseudoTracking_fastSim_fullDigi</doc> + <jobTransformJobName>0reg_standard_Reco_tf_fastSim_fullDigi_vs_ttbarFastChain_reco_noSplit_pseudoTracking_fastSim_fullDigi</jobTransformJobName> + <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup current standard_Reco_tf_fastSim_fullDigi InDetStandardPlots.root FastChainPileup current ttbarFastChain_reco_noSplit_pseudoTracking_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd> <group>FastChainPileup</group> <queue>medium</queue> <test position="1"> @@ -1365,11 +1400,7 @@ <testname>DCubeRunner</testname> <arg> <argname>DCubeCfg</argname> - <argvalue>dcube_stdReco_fastSim_fullDigi_vs_ttFC_reco_noSplit_PseudoT_fastSim_fullDigi.xml</argvalue> - </arg> - <arg> - <argname>tolerateWARN</argname> - <argvalue>True</argvalue> + <argvalue>dcube_standard_Reco_tf_fastSim_fullDigi_vs_ttbarFastChain_reco_noSplit_pseudoTracking_fastSim_fullDigi.xml</argvalue> </arg> <arg> <argname>DCubeRef</argname> @@ -1393,12 +1424,12 @@ </chainElement> <!-- END main job sequence --> </sequential> - <!-- run stdReco_PseudoT_oldHits job and test --> + <!-- run standardReco_pseudoTracking_oldHits job and test --> <sequential> <chainElement> - <jobTransform userJobId="stdReco_PseudoT_oldHits"> + <jobTransform userJobId="standardReco_pseudoTracking_oldHits"> <doc>FastChain reco</doc> - <jobTransformJobName>stdReco_PseudoT_oldHits</jobTransformJobName> + <jobTransformJobName>standardReco_pseudoTracking_oldHits</jobTransformJobName> <jobTransformCmd> Reco_tf.py --inputHITSFile=/afs/cern.ch/user/a/abasalae/work/FastChainRTT/20.20.3_ReferenceProduction/standardReco_pseudoTracking_oldHits/valid1/HITS.06695914._000339.pool.root.1 --outputESDFile=ESD.pool.root --autoConfiguration=everything --maxEvents=500 --preExec "RAWtoESD:rec.doTrigger.set_Value_and_Lock(False);from RecExConfig.RecAlgsFlags import recAlgs;recAlgs.doTrigger.set_Value_and_Lock(False);from InDetRecExample.InDetJobProperties import InDetFlags;InDetFlags.doPseudoTracking.set_Value_and_Lock(True);InDetFlags.doStandardPlots.set_Value_and_Lock(True);" --outputRDOFile=RDO.oldhits.pool.root --postInclude='HITtoRDO:G4AtlasTests/postInclude.DCubeTest.py,DigitizationTests/postInclude.RDO_Plots.py' </jobTransformCmd> @@ -1423,11 +1454,11 @@ </chainElement> <!-- run tests in parallel--> <parallel> - <chainElement> - <jobTransform userJobId="stdReco_PseudoT_oldHits_digi_Reg"> + <chainElement> + <jobTransform userJobId="standardReco_pseudoTracking_oldHits_digi_Reg"> <doc>Regression test between releases</doc> - <jobTransformJobName>stdReco_PseudoT_oldHits_digi_Reg</jobTransformJobName> - <jobTransformCmd>sim_reg_test.py stdReco_PseudoT_oldHits RDO_truth.root RDO.oldhits.pool.root</jobTransformCmd> + <jobTransformJobName>standardReco_pseudoTracking_oldHits_digi_Reg</jobTransformJobName> + <jobTransformCmd>sim_reg_test.py standardReco_pseudoTracking_oldHits RDO_truth.root RDO.pool.root</jobTransformCmd> <group>FastChainPileup</group> <queue>long</queue> <test position="1"> @@ -1454,10 +1485,6 @@ <argname>DCubeCfg</argname> <argvalue>dcube_RDO_truth.xml</argvalue> </arg> - <arg> - <argname>tolerateWARN</argname> - <argvalue>True</argvalue> - </arg> <arg> <argname>DCubeRef</argname> <argvalue>yesterday.RDO_truth.root</argvalue> @@ -1475,10 +1502,10 @@ </jobTransform> </chainElement> <chainElement> - <jobTransform userJobId="stdReco_PseudoT_oldHits_Reg"> + <jobTransform userJobId="standardReco_pseudoTracking_oldHits_Reg"> <doc>Regression test between releases</doc> - <jobTransformJobName>stdReco_PseudoT_oldHits_Reg</jobTransformJobName> - <jobTransformCmd>sim_reg_test.py stdReco_PseudoT_oldHits InDetStandardPlots.root</jobTransformCmd> + <jobTransformJobName>standardReco_pseudoTracking_oldHits_Reg</jobTransformJobName> + <jobTransformCmd>sim_reg_test.py standardReco_pseudoTracking_oldHits InDetStandardPlots.root</jobTransformCmd> <group>FastChainPileup</group> <queue>long</queue> <test position="1"> @@ -1486,11 +1513,7 @@ <testname>DCubeRunner</testname> <arg> <argname>DCubeCfg</argname> - <argvalue>dcube_stdReco_PseudoT_oldHits_Reg.xml</argvalue> - </arg> - <arg> - <argname>tolerateWARN</argname> - <argvalue>True</argvalue> + <argvalue>dcube_standardReco_pseudoTracking_oldHits_Reg.xml</argvalue> </arg> <arg> <argname>DCubeRef</argname> @@ -1512,8 +1535,327 @@ </testToRemove> </jobTransform> </chainElement> + <!--<chainElement> + <jobTransform userJobId="9reg_20.20.3_vs_mig13_standardReco_pseudoTracking_oldHits"> + <doc>comparison with reference sample obtained using 20.20.3</doc> + <jobTransformJobName>9reg_20.20.3_vs_mig13_standardReco_pseudoTracking_oldHits</jobTransformJobName> + <jobTransformCmd>sim_reg_test.py standardReco_pseudoTracking_oldHits InDetStandardPlots.root</jobTransformCmd> + <group>FastChainPileup</group> + <queue>medium</queue> + <test position="1"> + <modulename>RttLibraryTools</modulename> + <testname>DCubeRunner</testname> + <arg> + <argname>DCubeCfg</argname> + <argvalue>dcube_standardReco_pseudoTracking_oldHits.xml</argvalue> + </arg> + <arg> + <argname>DCubeRef</argname> + <argvalue>9InDetStandardPlots.root</argvalue> + </arg> + <arg> + <argname>DCubeMon</argname> + <argvalue>today.InDetStandardPlots.root</argvalue> + </arg> + <keepFilePattern>DCube-9InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern> + </test> + <testToRemove> + <jobGroupName>RTT:Top</jobGroupName> + <testidentifier>CheckFileRunner0</testidentifier> + </testToRemove> + </jobTransform> + </chainElement>--> + <chainElement> + <jobTransform userJobId="9reg_20.20.X-VAL_vs_mig13_standardReco_pseudoTracking_oldHits"> + <doc>comparison with 20.20.X-VAL</doc> + <jobTransformJobName>9reg_20.20.X-VAL_vs_mig13_standardReco_pseudoTracking_oldHits</jobTransformJobName> + <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup 20.20.X-VAL standardReco_pseudoTracking_oldHits InDetStandardPlots.root FastChainPileup mig13 standardReco_pseudoTracking_oldHits InDetStandardPlots.root</jobTransformCmd> + <group>FastChainPileup</group> + <queue>medium</queue> + <test position="1"> + <modulename>RttLibraryTools</modulename> + <testname>DCubeRunner</testname> + <arg> + <argname>DCubeCfg</argname> + <argvalue>dcube_standardReco_pseudoTracking_oldHits.xml</argvalue> + </arg> + <arg> + <argname>DCubeRef</argname> + <argvalue>yesterday.InDetStandardPlots.root</argvalue> + </arg> + <arg> + <argname>localRefFile</argname> + <argvalue>True</argvalue> + </arg> + <arg> + <argname>DCubeMon</argname> + <argvalue>today.InDetStandardPlots.root</argvalue> + </arg> + <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern> + </test> + <testToRemove> + <jobGroupName>RTT:Top</jobGroupName> + <testidentifier>CheckFileRunner0</testidentifier> + </testToRemove> + </jobTransform> + </chainElement> </parallel> </sequential> + <!-- run standardReco_pseudoTracking_oldHits job and test --> + <sequential> + <chainElement> + <jobTransform userJobId="standardReco_pseudoTracking_oldHits_20.20.X-VAL_RDO"> + <doc>FastChain reco</doc> + <jobTransformJobName>standardReco_pseudoTracking_oldHits_20.20.X-VAL_RDO</jobTransformJobName> + <jobTransformCmd> + sim_reg_test_fastchain.py FastChainPileup 20.20.X-VAL standardReco_pseudoTracking_oldHits RDO.oldhits.pool.root FastChainPileup 20.20.X-VAL standardReco_pseudoTracking_oldHits RDO.oldhits.pool.root;Reco_tf.py --inputRDOFile=today.RDO.oldhits.pool.root --outputESDFile=ESD.pool.root --autoConfiguration=everything --maxEvents=500 --preExec "RAWtoESD:rec.doTrigger.set_Value_and_Lock(False);from RecExConfig.RecAlgsFlags import recAlgs;recAlgs.doTrigger.set_Value_and_Lock(False);from InDetRecExample.InDetJobProperties import InDetFlags;InDetFlags.doPseudoTracking.set_Value_and_Lock(True);InDetFlags.doStandardPlots.set_Value_and_Lock(True);" + </jobTransformCmd> + <group>FastChainPileup</group> + <queue>medium</queue> + </jobTransform> + </chainElement> + <chainElement> + <jobTransform userJobId="10reg_20.20.X-VAL_vs_mig13_standardReco_pseudoTracking_oldHits_20.20.X-VAL_RDO"> + <doc>comparison with 20.20.X-VAL</doc> + <jobTransformJobName>10reg_20.20.X-VAL_vs_mig13_standardReco_pseudoTracking_oldHits_20.20.X-VAL_RDO</jobTransformJobName> + <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup 20.20.X-VAL standardReco_pseudoTracking_oldHits InDetStandardPlots.root FastChainPileup mig13 standardReco_pseudoTracking_oldHits_20.20.X-VAL_RDO InDetStandardPlots.root</jobTransformCmd> + <group>FastChainPileup</group> + <queue>medium</queue> + <test position="1"> + <modulename>RttLibraryTools</modulename> + <testname>DCubeRunner</testname> + <arg> + <argname>DCubeCfg</argname> + <argvalue>dcube_standardReco_pseudoTracking_oldHits.xml</argvalue> + </arg> + <arg> + <argname>DCubeRef</argname> + <argvalue>yesterday.InDetStandardPlots.root</argvalue> + </arg> + <arg> + <argname>localRefFile</argname> + <argvalue>True</argvalue> + </arg> + <arg> + <argname>DCubeMon</argname> + <argvalue>today.InDetStandardPlots.root</argvalue> + </arg> + <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern> + </test> + <testToRemove> + <jobGroupName>RTT:Top</jobGroupName> + <testidentifier>CheckFileRunner0</testidentifier> + </testToRemove> + </jobTransform> + </chainElement> + </sequential> + <!-- run independent tests in parallel --> + <!--<parallel> + <chainElement> + <jobTransform userJobId="reg_20.20.X-VAL_vs_mig13_ATLFASTIIF_ttbar_1sim"> + <doc>Regression test of ISF_Validation job ATLFASTIIF_ttbar_1sim in releases 20.20.X-VAL vs mig13</doc> + <jobTransformJobName>reg_20.20.X-VAL_vs_mig13_ATLFASTIIF_ttbar_1sim</jobTransformJobName> + <jobTransformCmd>sim_reg_test_fastchain.py ISF_Validation 20.20.X-VAL ATLFASTIIF_ttbar_1sim truth.root ISF_Validation mig13 ATLFASTIIF_ttbar_1sim truth.root</jobTransformCmd> + <group>FastChainPileup</group> + <queue>medium</queue> + <test position="1"> + <modulename>RttLibraryTools</modulename> + <testname>DCubeRunner</testname> + <arg> + <argname>DCubeCfg</argname> + <argvalue>dcube_truth_ATLFASTII.xml</argvalue> + </arg> + <arg> + <argname>DCubeRef</argname> + <argvalue>yesterday.truth.root</argvalue> + </arg> + <arg> + <argname>localRefFile</argname> + <argvalue>True</argvalue> + </arg> + <arg> + <argname>DCubeMon</argname> + <argvalue>today.truth.root</argvalue> + </arg> + <keepFilePattern>DCube-yesterday.truth.root/today.truth.root.dcube.xml.php</keepFilePattern> + </test> + <testToRemove> + <jobGroupName>RTT:Top</jobGroupName> + <testidentifier>CheckFileRunner0</testidentifier> + </testToRemove> + </jobTransform> + </chainElement> + <chainElement> + <jobTransform userJobId="reg_20.20.X_vs_mig13_ATLFASTIIF_ttbar_1sim"> + <doc>Regression test of ISF_Validation job ATLFASTIIF_ttbar_1sim in releases 20.20.X vs mig13</doc> + <jobTransformJobName>reg_20.20.X_vs_mig13_ATLFASTIIF_ttbar_1sim</jobTransformJobName> + <jobTransformCmd>sim_reg_test_fastchain.py ISF_Validation 20.20.X ATLFASTIIF_ttbar_1sim truth.root ISF_Validation mig13 ATLFASTIIF_ttbar_1sim truth.root</jobTransformCmd> + <group>FastChainPileup</group> + <queue>medium</queue> + <test position="1"> + <modulename>RttLibraryTools</modulename> + <testname>DCubeRunner</testname> + <arg> + <argname>DCubeCfg</argname> + <argvalue>dcube_truth_ATLFASTII.xml</argvalue> + </arg> + <arg> + <argname>DCubeRef</argname> + <argvalue>yesterday.truth.root</argvalue> + </arg> + <arg> + <argname>localRefFile</argname> + <argvalue>True</argvalue> + </arg> + <arg> + <argname>DCubeMon</argname> + <argvalue>today.truth.root</argvalue> + </arg> + <keepFilePattern>DCube-yesterday.truth.root/today.truth.root.dcube.xml.php</keepFilePattern> + </test> + <testToRemove> + <jobGroupName>RTT:Top</jobGroupName> + <testidentifier>CheckFileRunner0</testidentifier> + </testToRemove> + </jobTransform> + </chainElement> + <chainElement> + <jobTransform userJobId="reg_20.20.X-VAL_vs_mig13_ATLFASTII_ttbar_1sim"> + <doc>Regression test of ISF_Validation job ATLFASTII_ttbar_1sim in releases 20.20.X-VAL vs mig13</doc> + <jobTransformJobName>reg_20.20.X-VAL_vs_mig13_ATLFASTII_ttbar_1sim</jobTransformJobName> + <jobTransformCmd>sim_reg_test_fastchain.py ISF_Validation 20.20.X-VAL ATLFASTII_ttbar_1sim truth.root ISF_Validation mig13 ATLFASTII_ttbar_1sim truth.root</jobTransformCmd> + <group>FastChainPileup</group> + <queue>medium</queue> + <test position="1"> + <modulename>RttLibraryTools</modulename> + <testname>DCubeRunner</testname> + <arg> + <argname>DCubeCfg</argname> + <argvalue>dcube_truth_ATLFASTII.xml</argvalue> + </arg> + <arg> + <argname>DCubeRef</argname> + <argvalue>yesterday.truth.root</argvalue> + </arg> + <arg> + <argname>localRefFile</argname> + <argvalue>True</argvalue> + </arg> + <arg> + <argname>DCubeMon</argname> + <argvalue>today.truth.root</argvalue> + </arg> + <keepFilePattern>DCube-yesterday.truth.root/today.truth.root.dcube.xml.php</keepFilePattern> + </test> + <testToRemove> + <jobGroupName>RTT:Top</jobGroupName> + <testidentifier>CheckFileRunner0</testidentifier> + </testToRemove> + </jobTransform> + </chainElement> + <chainElement> + <jobTransform userJobId="reg_20.20.X_vs_mig13_ATLFASTII_ttbar_1sim"> + <doc>Regression test of ISF_Validation job ATLFASTII_ttbar_1sim in releases 20.20.X vs mig13</doc> + <jobTransformJobName>reg_20.20.X_vs_mig13_ATLFASTII_ttbar_1sim</jobTransformJobName> + <jobTransformCmd>sim_reg_test_fastchain.py ISF_Validation 20.20.X ATLFASTII_ttbar_1sim truth.root ISF_Validation mig13 ATLFASTII_ttbar_1sim truth.root</jobTransformCmd> + <group>FastChainPileup</group> + <queue>medium</queue> + <test position="1"> + <modulename>RttLibraryTools</modulename> + <testname>DCubeRunner</testname> + <arg> + <argname>DCubeCfg</argname> + <argvalue>dcube_truth_ATLFASTII.xml</argvalue> + </arg> + <arg> + <argname>DCubeRef</argname> + <argvalue>yesterday.truth.root</argvalue> + </arg> + <arg> + <argname>localRefFile</argname> + <argvalue>True</argvalue> + </arg> + <arg> + <argname>DCubeMon</argname> + <argvalue>today.truth.root</argvalue> + </arg> + <keepFilePattern>DCube-yesterday.truth.root/today.truth.root.dcube.xml.php</keepFilePattern> + </test> + <testToRemove> + <jobGroupName>RTT:Top</jobGroupName> + <testidentifier>CheckFileRunner0</testidentifier> + </testToRemove> + </jobTransform> + </chainElement> + <chainElement> + <jobTransform userJobId="reg_20.20.X-VAL_vs_mig13_FullG4_ttbar_1sim"> + <doc>Regression test of ISF_Validation job FullG4_ttbar_1sim in releases 20.20.X-VAL vs mig13</doc> + <jobTransformJobName>reg_20.20.X-VAL_vs_mig13_FullG4_ttbar_1sim</jobTransformJobName> + <jobTransformCmd>sim_reg_test_fastchain.py ISF_Validation 20.20.X-VAL FullG4_ttbar_1sim truth.root ISF_Validation mig13 FullG4_ttbar_1sim truth.root</jobTransformCmd> + <group>FastChainPileup</group> + <queue>medium</queue> + <test position="1"> + <modulename>RttLibraryTools</modulename> + <testname>DCubeRunner</testname> + <arg> + <argname>DCubeCfg</argname> + <argvalue>dcube-G4_ttbar_1sim.xml</argvalue> + </arg> + <arg> + <argname>DCubeRef</argname> + <argvalue>yesterday.truth.root</argvalue> + </arg> + <arg> + <argname>localRefFile</argname> + <argvalue>True</argvalue> + </arg> + <arg> + <argname>DCubeMon</argname> + <argvalue>today.truth.root</argvalue> + </arg> + <keepFilePattern>DCube-yesterday.truth.root/today.truth.root.dcube.xml.php</keepFilePattern> + </test> + <testToRemove> + <jobGroupName>RTT:Top</jobGroupName> + <testidentifier>CheckFileRunner0</testidentifier> + </testToRemove> + </jobTransform> + </chainElement> + <chainElement> + <jobTransform userJobId="reg_20.20.X_vs_mig13_FullG4_ttbar_1sim"> + <doc>Regression test of ISF_Validation job FullG4_ttbar_1sim in releases 20.20.X vs mig13</doc> + <jobTransformJobName>reg_20.20.X_vs_mig13_FullG4_ttbar_1sim</jobTransformJobName> + <jobTransformCmd>sim_reg_test_fastchain.py ISF_Validation 20.20.X FullG4_ttbar_1sim truth.root ISF_Validation mig13 FullG4_ttbar_1sim truth.root</jobTransformCmd> + <group>FastChainPileup</group> + <queue>medium</queue> + <test position="1"> + <modulename>RttLibraryTools</modulename> + <testname>DCubeRunner</testname> + <arg> + <argname>DCubeCfg</argname> + <argvalue>dcube-G4_ttbar_1sim.xml</argvalue> + </arg> + <arg> + <argname>DCubeRef</argname> + <argvalue>yesterday.truth.root</argvalue> + </arg> + <arg> + <argname>localRefFile</argname> + <argvalue>True</argvalue> + </arg> + <arg> + <argname>DCubeMon</argname> + <argvalue>today.truth.root</argvalue> + </arg> + <keepFilePattern>DCube-yesterday.truth.root/today.truth.root.dcube.xml.php</keepFilePattern> + </test> + <testToRemove> + <jobGroupName>RTT:Top</jobGroupName> + <testidentifier>CheckFileRunner0</testidentifier> + </testToRemove> + </jobTransform> + </chainElement> + </parallel>--> <!-- END --> </parallel> </chain> diff --git a/Simulation/G4Atlas/G4AtlasApps/python/SimFlags.py b/Simulation/G4Atlas/G4AtlasApps/python/SimFlags.py index 46d7a160d2e51f5a301c99670ab7825a692e186c..f5f64f01e046d222381ddb6b81206ed09724dd29 100644 --- a/Simulation/G4Atlas/G4AtlasApps/python/SimFlags.py +++ b/Simulation/G4Atlas/G4AtlasApps/python/SimFlags.py @@ -639,14 +639,6 @@ class ParticleID(JobProperty): allowedTypes = ['bool'] StoredValue = False -class RecordStepInfo(JobProperty): - """ - Should FCS_StepInfoCollections be recorded - """ - statusOn = True - allowedTypes = ['bool'] - StoredValue = False - class RecordFlux(JobProperty): """ Record flux through the entirety of the detector diff --git a/Simulation/G4Atlas/G4AtlasTools/python/G4AtlasToolsConfig.py b/Simulation/G4Atlas/G4AtlasTools/python/G4AtlasToolsConfig.py index 337d297ff1929c3332063162c132e453d84b4f2f..5d5439468b791ec8d18afbff8169994db23c84c4 100644 --- a/Simulation/G4Atlas/G4AtlasTools/python/G4AtlasToolsConfig.py +++ b/Simulation/G4Atlas/G4AtlasTools/python/G4AtlasToolsConfig.py @@ -112,9 +112,6 @@ def generateCaloSensitiveDetectorList(): SensitiveDetectorList += [ 'TileGeoG4CalibSD' ] # mode 1 : With CaloCalibrationHits else: SensitiveDetectorList += [ 'TileGeoG4SD' ] # mode 0 : No CaloCalibrationHits - from G4AtlasApps.SimFlags import simFlags - if simFlags.RecordStepInfo.get_Value(): - SensitiveDetectorList += [ 'FCS_StepInfoSensitiveDetector' ] return SensitiveDetectorList def generateMuonSensitiveDetectorList(): diff --git a/Simulation/ISF/ISF_Example/python/ISF_Output.py b/Simulation/ISF/ISF_Example/python/ISF_Output.py index 74c397b07b39583c4d4f13a1c48cbfa9c0b9b855..fcb2bc118614cd3047c515a197939ddf9c07a462 100644 --- a/Simulation/ISF/ISF_Example/python/ISF_Output.py +++ b/Simulation/ISF/ISF_Example/python/ISF_Output.py @@ -70,7 +70,7 @@ def getHITSStreamItemList(): ## TimingAlg hitsItemList +=["RecoTimingObj#EVNTtoHITS_timings"] - if simFlags.RecordStepInfo.get_Value(): + if 'G4UA::FastCaloSimParamActionTool' in simFlags.OptionalUserActionList.get_Value()['Step']: hitsItemList +=["ISF_FCS_Parametrization::FCS_StepInfoCollection#MergedEventSteps"] ## add xAOD::TrackParticles output collection Parametric Simulation diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/share/ISF_FastCaloSimParametrization_SimPostInclude.py b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/share/ISF_FastCaloSimParametrization_SimPostInclude.py index a59ee537a7a600deaaf28d45472527c2b91fb6cd..67017a344bb85806b0cb4485b6529dbf93939eee 100644 --- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/share/ISF_FastCaloSimParametrization_SimPostInclude.py +++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/share/ISF_FastCaloSimParametrization_SimPostInclude.py @@ -1,23 +1,3 @@ from ISF_FastCaloSimParametrization.ISF_FastCaloSimParametrizationConf import FastCaloSimParamAlg topSeq += FastCaloSimParamAlg() ISF_HITSStream.stream1.ItemList += ["ISF_FCS_Parametrization::FCS_StepInfoCollection#MergedEventSteps"] -from AthenaCommon.CfgGetter import getPublicTool -stepInfoSDTool = getPublicTool("SensitiveDetectorMasterTool").SensitiveDetectors['FCS_StepInfoSensitiveDetector'] -stepInfoSDTool.shift_lar_subhit=True -stepInfoSDTool.shorten_lar_step=True - -stepInfoSDTool.maxEtaPS=1 -stepInfoSDTool.maxPhiPS=5 -stepInfoSDTool.maxrPS=0 - -stepInfoSDTool.maxEtaEM1=1 -stepInfoSDTool.maxPhiEM1=5 -stepInfoSDTool.maxrEM1=15 - -stepInfoSDTool.maxEtaEM2=1 -stepInfoSDTool.maxPhiEM2=5 -stepInfoSDTool.maxrEM2=60 - -stepInfoSDTool.maxEtaEM3=1 -stepInfoSDTool.maxPhiEM3=5 -stepInfoSDTool.maxrEM3=8 diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/share/ISF_FastCaloSimParametrization_SimPostInclude_1mm.py b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/share/ISF_FastCaloSimParametrization_SimPostInclude_1mm.py deleted file mode 100644 index b42cd82a47bed2666c9ae87fcf77a95df3a2c4e1..0000000000000000000000000000000000000000 --- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/share/ISF_FastCaloSimParametrization_SimPostInclude_1mm.py +++ /dev/null @@ -1,8 +0,0 @@ -from ISF_FastCaloSimParametrization.ISF_FastCaloSimParametrizationConf import FastCaloSimParamAlg -topSeq += FastCaloSimParamAlg() -ISF_HITSStream.stream1.ItemList += ["ISF_FCS_Parametrization::FCS_StepInfoCollection#MergedEventSteps"] -from AthenaCommon.CfgGetter import getPublicTool -stepInfoSDTool = getPublicTool("SensitiveDetectorMasterTool").SensitiveDetectors['FCS_StepInfoSensitiveDetector'] -stepInfoSDTool.shift_lar_subhit=True -stepInfoSDTool.shorten_lar_step=True -stepInfoSDTool.maxRadiusLAr=1 diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/share/ISF_FastCaloSimParametrization_SimPreInclude.py b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/share/ISF_FastCaloSimParametrization_SimPreInclude.py index ed3a162c17b790a20a87e26b63ba21df04bb1f51..b10f924dd25a540cad352e7af86af1869323773b 100644 --- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/share/ISF_FastCaloSimParametrization_SimPreInclude.py +++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/share/ISF_FastCaloSimParametrization_SimPreInclude.py @@ -1,2 +1,20 @@ from G4AtlasApps.SimFlags import simFlags -simFlags.RecordStepInfo=True +simFlags.OptionalUserActionList.addAction('G4UA::FastCaloSimParamActionTool',['BeginOfEvent','EndOfEvent','BeginOfRun','EndOfRun','Step']) +simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"shift_lar_subhit",True) +simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"shorten_lar_step",True) +# optimised merging scheme parameters +simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"maxEtaPS",1) +simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"maxPhiPS",5) +simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"maxrPS",0) + +simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"maxEtaEM1",1) +simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"maxPhiEM1",5) +simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"maxrEM1",15) + +simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"maxEtaEM2",1) +simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"maxPhiEM2",5) +simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"maxrEM2",60) + +simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"maxEtaEM3",1) +simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"maxPhiEM3",5) +simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"maxrEM3",8) diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/share/ISF_FastCaloSimParametrization_SimPreInclude_1mm.py b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/share/ISF_FastCaloSimParametrization_SimPreInclude_1mm.py new file mode 100644 index 0000000000000000000000000000000000000000..d4c0a586f46d8c4cba3ff89c2e1e4c717bcc832c --- /dev/null +++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/share/ISF_FastCaloSimParametrization_SimPreInclude_1mm.py @@ -0,0 +1,6 @@ +from G4AtlasApps.SimFlags import simFlags +simFlags.OptionalUserActionList.addAction('G4UA::FastCaloSimParamActionTool',['BeginOfEvent','EndOfEvent','BeginOfRun','EndOfRun','Step']) +simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"shift_lar_subhit",True) +simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"shorten_lar_step",True) +simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"maxRadiusLAr",1) +# optimised merging scheme parameters are not required for 1mm merging diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/CMakeLists.txt b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/CMakeLists.txt deleted file mode 100644 index 4c03c106111bed7f6a8b90f37a0839758b36b8ca..0000000000000000000000000000000000000000 --- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/CMakeLists.txt +++ /dev/null @@ -1,41 +0,0 @@ -################################################################################ -# Package: ISF_FastCaloSimSD -################################################################################ - -# Declare the package name: -atlas_subdir( ISF_FastCaloSimSD ) - -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/StoreGate - GaudiKernel - Simulation/G4Atlas/G4AtlasInterfaces - Simulation/G4Atlas/G4AtlasTools - TileCalorimeter/TileG4/TileG4Interfaces - PRIVATE - Calorimeter/CaloDetDescr - Calorimeter/CaloIdentifier - Control/CxxUtils - Control/AthenaBaseComps - Generators/GeneratorObjects - LArCalorimeter/LArG4/LArG4Code - Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent - DetectorDescription/Identifier ) - -# External dependencies: -find_package( CLHEP ) -find_package( Geant4 ) -find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) -find_package( XercesC ) - -# Component(s) in the package: -atlas_add_component( ISF_FastCaloSimSD - src/*.cxx - src/components/*.cxx - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${GEANT4_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${XERCESC_LIBRARIES} ${GEANT4_LIBRARIES} ${CLHEP_LIBRARIES} StoreGateLib SGtests GaudiKernel G4AtlasInterfaces G4AtlasToolsLib CaloDetDescrLib CaloIdentifier CxxUtils GeneratorObjects LArG4Code ISF_FastCaloSimEvent Identifier ) - -# Install files from the package: -atlas_install_headers( ISF_FastCaloSimSD ) -atlas_install_python_modules( python/*.py ) - diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/python/ISF_FastCaloSimSDConfig.py b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/python/ISF_FastCaloSimSDConfig.py deleted file mode 100644 index a8dc3f98ead00a0b408104c3b30aa00fcf3dc39f..0000000000000000000000000000000000000000 --- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/python/ISF_FastCaloSimSDConfig.py +++ /dev/null @@ -1,31 +0,0 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration - -from AthenaCommon import CfgMgr - -def getFCS_StepInfoSensitiveDetector(name="FCS_StepInfoSensitiveDetector", **kwargs): - ## Main configuration - kwargs.setdefault("StacVolumes",["LArMgr::LAr::EMB::STAC"]) - kwargs.setdefault("PresamplerVolumes",["LArMgr::LAr::Barrel::Presampler::Module"]) - kwargs.setdefault("NegIWVolumes",["LArMgr::LAr::EMEC::Neg::InnerWheel"]) - kwargs.setdefault("NegOWVolumes",["LArMgr::LAr::EMEC::Neg::OuterWheel"]) - kwargs.setdefault("BOBarretteVolumes",["LArMgr::LAr::EMEC::BackOuterBarrette::Module::Phidiv"]) - kwargs.setdefault("MiniVolumes",["LArMgr::MiniFCAL::Wafer"]) - kwargs.setdefault("PosIWVolumes",["LArMgr::LAr::EMEC::Pos::InnerWheel"]) - kwargs.setdefault("PosOWVolumes",["LArMgr::LAr::EMEC::Pos::OuterWheel"]) - kwargs.setdefault("PresVolumes", ["LArMgr::LAr::Endcap::Presampler::LiquidArgon"]) - kwargs.setdefault("SliceVolumes",["LArMgr::LAr::HEC::Module::Depth::Slice"]) - kwargs.setdefault("FCAL1Volumes",["LArMgr::LAr::FCAL::Module1::Gap"]) - kwargs.setdefault("FCAL2Volumes",["LArMgr::LAr::FCAL::Module2::Gap"]) - kwargs.setdefault("FCAL3Volumes",["LArMgr::LAr::FCAL::Module3::Gap"]) - kwargs.setdefault("TileVolumes",["Tile::Scintillator"]) - kwargs.setdefault("OutputCollectionNames", ["EventSteps"]) - # TODO Add extra configuration here!! - return CfgMgr.FCS_Param__FCS_StepInfoSDTool(name, **kwargs) - -##def getFastCaloSimParamActionTool(name='G4UA::FastCaloSimParamActionTool', **kwargs): -## from G4AtlasApps.SimFlags import simFlags -## # example custom configuration -## if name in simFlags.UserActionConfig.get_Value().keys(): -## for prop,value in simFlags.UserActionConfig.get_Value()[name].iteritems(): -## kwargs.setdefault(prop,value) -## return CfgMgr.G4UA__FastCaloSimParamActionTool(name,**kwargs) diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/python/ISF_FastCaloSimSDConfigDb.py b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/python/ISF_FastCaloSimSDConfigDb.py deleted file mode 100644 index 4c205253ba04f0718f153a112c49c46d2cce888d..0000000000000000000000000000000000000000 --- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/python/ISF_FastCaloSimSDConfigDb.py +++ /dev/null @@ -1,5 +0,0 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration - -from AthenaCommon.CfgGetter import addTool - -addTool("ISF_FastCaloSimSD.ISF_FastCaloSimSDConfig.getFCS_StepInfoSensitiveDetector", "FCS_StepInfoSensitiveDetector") diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/FCS_StepInfoSD.cxx b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/FCS_StepInfoSD.cxx deleted file mode 100644 index 9e46bd508c0182f256f3c02e31ce168746bb4068..0000000000000000000000000000000000000000 --- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/FCS_StepInfoSD.cxx +++ /dev/null @@ -1,227 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "FCS_StepInfoSD.h" - -#include "CaloIdentifier/CaloIdManager.h" -#include "CaloIdentifier/LArID_Exception.h" -#include "CaloIdentifier/LArEM_ID.h" -#include "CaloIdentifier/LArFCAL_ID.h" -#include "CaloIdentifier/LArHEC_ID.h" -#include "CaloIdentifier/LArMiniFCAL_ID.h" -#include "CaloDetDescr/CaloDetDescrManager.h" -#include "CaloDetDescr/CaloDetDescrElement.h" - -#include "G4Step.hh" -#include "G4ThreeVector.hh" - -FCS_StepInfoSD::FCS_StepInfoSD(G4String a_name, const FCS_Param::Config& config) - : G4VSensitiveDetector(a_name) - , m_config(config) - , m_larEmID(nullptr) - , m_larFcalID(nullptr) - , m_larHecID(nullptr) - , m_larMiniFcalID(nullptr) - , m_calo_dd_man(nullptr) -{ - m_calo_dd_man = CaloDetDescrManager::instance(); //FIXME Move somewhere else!! -} - -FCS_StepInfoSD::~FCS_StepInfoSD() -{ -} - -G4bool FCS_StepInfoSD::ProcessHits(G4Step*,G4TouchableHistory*) -{ - G4ExceptionDescription description; - description << "ProcessHits: Base class method should not be called!!!"; - G4Exception("FCS_StepInfoSD", "FCSBadCall", FatalException, description); - abort(); - return false; -} - -inline double FCS_StepInfoSD::getMaxTime(const CaloCell_ID::CaloSample& layer) const -{ - /// NB The result of this function should actually be constant for each SD - if (layer >= CaloCell_ID::PreSamplerB && layer <= CaloCell_ID::EME3) { - return m_config.m_maxTimeLAr; - } - if (layer >= CaloCell_ID::HEC0 && layer <= CaloCell_ID::HEC3) { - return m_config.m_maxTimeHEC; - } - if (layer >=CaloCell_ID::FCAL0 && layer <= CaloCell_ID::FCAL2) { - return m_config.m_maxTimeFCAL; - } - return m_config.m_maxTime; -} - -inline double FCS_StepInfoSD::getMaxRadius(const CaloCell_ID::CaloSample& layer) const -{ - /// NB The result of this function should actually be constant for each SD - if (layer >= CaloCell_ID::PreSamplerB && layer <= CaloCell_ID::EME3) { - return m_config.m_maxRadiusLAr; - } - if (layer >= CaloCell_ID::HEC0 && layer <= CaloCell_ID::HEC3) { - return m_config.m_maxRadiusHEC; - } - if (layer >=CaloCell_ID::FCAL0 && layer <= CaloCell_ID::FCAL2) { - return m_config.m_maxRadiusFCAL; - } - return m_config.m_maxRadius; -} - -inline double FCS_StepInfoSD::getMaxDeltaR(const CaloCell_ID::CaloSample& layer) const -{ - /// NB The result of this function should actually be constant for each SD - if(m_config.m_maxRadiusLAr != 25) return 999.; - if (layer >= CaloCell_ID::PreSamplerB && layer <= CaloCell_ID::EME3) { - if (layer==CaloCell_ID::PreSamplerB || layer==CaloCell_ID::PreSamplerE) { - // PS default is 1mm in eta, 5mm in phi, no cut in r - return m_config.m_maxrPS; - } - else if (layer==CaloCell_ID::EMB1 || layer==CaloCell_ID::EME1) { - // EM1 default is 1mm in eta, 5mm in phi, 15mm in r - return m_config.m_maxrEM1; - } - else if (layer==CaloCell_ID::EMB2 || layer==CaloCell_ID::EME2) { - // EM2 default is 1mm in eta, 5mm in phi, 60mm in r - return m_config.m_maxrEM2; - } - else if (layer==CaloCell_ID::EMB3 || layer==CaloCell_ID::EME3) { - // EM3 default is 1mm in eta, 5mm in phi, 8mm in r - return m_config.m_maxrEM3; - } - } - return 999.; -} - -inline double FCS_StepInfoSD::getMaxDeltaEta(const CaloCell_ID::CaloSample& layer) const -{ - /// NB The result of this function should actually be constant for each SD - if(m_config.m_maxRadiusLAr != 25) return 999.; - if (layer >= CaloCell_ID::PreSamplerB && layer <= CaloCell_ID::EME3) { - if (layer==CaloCell_ID::PreSamplerB || layer==CaloCell_ID::PreSamplerE) { - // PS default is 1mm in eta, 5mm in phi, no cut in r - return m_config.m_maxEtaPS; - } - else if (layer==CaloCell_ID::EMB1 || layer==CaloCell_ID::EME1) { - // EM1 default is 1mm in eta, 5mm in phi, 15mm in r - return m_config.m_maxEtaEM1; - } - else if (layer==CaloCell_ID::EMB2 || layer==CaloCell_ID::EME2) { - // EM2 default is 1mm in eta, 5mm in phi, 60mm in r - return m_config.m_maxEtaEM2; - } - else if (layer==CaloCell_ID::EMB3 || layer==CaloCell_ID::EME3) { - // EM3 default is 1mm in eta, 5mm in phi, 8mm in r - return m_config.m_maxEtaEM3; - } - } - return 999.; -} - -inline double FCS_StepInfoSD::getMaxDeltaPhi(const CaloCell_ID::CaloSample& layer) const -{ - /// NB The result of this function should actually be constant for each SD - if(m_config.m_maxRadiusLAr != 25) return 999.; - if (layer >= CaloCell_ID::PreSamplerB && layer <= CaloCell_ID::EME3) { - if (layer==CaloCell_ID::PreSamplerB || layer==CaloCell_ID::PreSamplerE) { - // PS default is 1mm in eta, 5mm in phi, no cut in r - return m_config.m_maxPhiPS; - } - else if (layer==CaloCell_ID::EMB1 || layer==CaloCell_ID::EME1) { - // EM1 default is 1mm in eta, 5mm in phi, 15mm in r - return m_config.m_maxPhiEM1; - } - else if (layer==CaloCell_ID::EMB2 || layer==CaloCell_ID::EME2) { - // EM2 default is 1mm in eta, 5mm in phi, 60mm in r - return m_config.m_maxPhiEM2; - } - else if (layer==CaloCell_ID::EMB3 || layer==CaloCell_ID::EME3) { - // EM3 default is 1mm in eta, 5mm in phi, 8mm in r - return m_config.m_maxPhiEM3; - } - } - return 999.; -} - -void FCS_StepInfoSD::update_map(const CLHEP::Hep3Vector & l_vec, const Identifier & l_cell, double l_energy, double l_time, bool l_valid, int l_detector) -{ - // Drop any hits that don't have a good identifier attached - if (!m_calo_dd_man->get_element(l_cell)) { return; } - - auto map_item = m_hit_map.find( l_cell ); - if (map_item==m_hit_map.end()) { - m_hit_map[l_cell] = new std::vector< ISF_FCS_Parametrization::FCS_StepInfo* >; - m_hit_map[l_cell]->reserve(200); - m_hit_map[l_cell]->push_back( new ISF_FCS_Parametrization::FCS_StepInfo( l_vec , l_cell , l_energy , l_time , l_valid , l_detector ) ); - } - else { - - // Get the appropriate merging limits - const CaloCell_ID::CaloSample& layer = m_calo_dd_man->get_element(l_cell)->getSampling(); - const double tsame(this->getMaxTime(layer)); - const double maxRadius(this->getMaxRadius(layer)); - const double maxDeltaR(this->getMaxDeltaR(layer)); - const double maxDeltaEta(this->getMaxDeltaEta(layer)); - const double maxDeltaPhi(this->getMaxDeltaPhi(layer)); - bool match = false; - for (auto map_it : * map_item->second) { - // Time check is straightforward - const double delta_t = std::fabs(map_it->time()-l_time); - if ( delta_t >= tsame ) { continue; } - - // Distance check is less straightforward - const CLHEP::Hep3Vector & currentPosition = map_it->position(); - const double hit_diff2 = currentPosition.diff2( l_vec ); - - // Overall merging scheme - if (layer >= CaloCell_ID::PreSamplerB && layer <= CaloCell_ID::EME3) { - // Customized merging scheme for LAr barrel and endcap, use only if we're not changing maxRadiusLAr value - if(m_config.m_maxRadiusLAr == 25) { - const CLHEP::Hep3Vector a_diff = l_vec - currentPosition; - const double a_diffmag(a_diff.mag()); - const double a_inv_length = 1./a_diffmag; - const double delta_r = std::fabs(a_diff.dot( l_vec ) * a_inv_length); - if (delta_r >= maxDeltaR) { continue; } - const double delta_eta = std::fabs(std::sin(l_vec.theta()-currentPosition.theta())*a_diffmag); - if (delta_eta >= maxDeltaEta) { continue; } - const double delta_phi = std::fabs(std::sin(l_vec.phi()-currentPosition.phi())*a_diffmag); - if (delta_phi >= maxDeltaPhi) { continue; } - } - else { - if ( hit_diff2 >= maxRadius ) { continue; } - } - } - else if ( hit_diff2 >= maxRadius ) { continue; } - // Found a match. Make a temporary that will be deleted! - const ISF_FCS_Parametrization::FCS_StepInfo my_info( l_vec , l_cell , l_energy , l_time , l_valid , l_detector ); - *map_it += my_info; - match = true; - break; - } // End of search for match in time and space - if (!match) { - map_item->second->push_back( new ISF_FCS_Parametrization::FCS_StepInfo( l_vec , l_cell , l_energy , l_time , l_valid , l_detector ) ); - } // Didn't match - } // ID already in the map - return; -} // That's it for updating the map! - -void FCS_StepInfoSD::EndOfAthenaEvent( ISF_FCS_Parametrization::FCS_StepInfoCollection* hitContainer ) -{ - // Unpack map into vector - for (auto it : m_hit_map) { - for (auto a_s : * it.second) { - // Giving away ownership of the objects! - hitContainer->push_back( a_s ); - } - it.second->clear(); - delete it.second; - } // Vector of IDs in the map - m_hit_map.clear(); - if (m_config.verboseLevel > 4) { - G4cout <<this->GetName()<< " DEBUG EndOfAthenaEvent: After initial cleanup, N=" << hitContainer->size() << G4endl; - } - return; -} diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/FCS_StepInfoSD.h b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/FCS_StepInfoSD.h deleted file mode 100644 index 1a4c3410976fc92b0ea63abb5afeec716db9e01d..0000000000000000000000000000000000000000 --- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/FCS_StepInfoSD.h +++ /dev/null @@ -1,143 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef ISF_FASTCALOSIM_FCS_STEPINFOSD_H -#define ISF_FASTCALOSIM_FCS_STEPINFOSD_H - -#include "G4VSensitiveDetector.hh" - -#include "CaloIdentifier/CaloCell_ID.h" // For CaloCell_ID::CaloSample -#include "LArG4Code/LArG4Identifier.h" - -#include "LArSimEvent/LArHit.h" -#include "CLHEP/Units/SystemOfUnits.h" - -#include "ISF_FastCaloSimEvent/FCS_StepInfoCollection.h" - -#include <map> -#include <vector> - -// Forward declarations -class G4Step; -class G4TouchableHistory; - -class LArEM_ID; -class LArFCAL_ID; -class LArHEC_ID; -class LArMiniFCAL_ID; -class CaloDetDescrManager; - -class ILArCalculatorSvc; -class ITileCalculator; -class LArHitContainer; - -class StoreGateSvc; - -namespace FCS_Param { - - struct Config - { - /** Helper to keep the same verbosity everywhere */ - int verboseLevel=0; - bool shift_lar_subhit=true; - bool shorten_lar_step=false; - - // Merging properties - double m_maxRadius=25.; //!< property, see @link LArG4GenShowerLib::LArG4GenShowerLib @endlink - double m_maxRadiusLAr=25.; //!< property, see @link LArG4GenShowerLib::LArG4GenShowerLib @endlink - double m_maxRadiusHEC=100.; //!< property, see @link LArG4GenShowerLib::LArG4GenShowerLib @endlink - double m_maxRadiusFCAL=100.; //!< property, see @link LArG4GenShowerLib::LArG4GenShowerLib @endlink - double m_maxRadiusTile=100.; //!< property, see @link LArG4GenShowerLib::LArG4GenShowerLib @endlink - - double m_maxTime=25.; - double m_maxTimeLAr=25.; - double m_maxTimeHEC=25.; - double m_maxTimeFCAL=25.; - double m_maxTimeTile=25.; - - // Optimised merging scheme - double m_maxEtaPS=1.; - double m_maxPhiPS=5.; - double m_maxrPS=0.; - - double m_maxEtaEM1=1.; - double m_maxPhiEM1=5.; - double m_maxrEM1=15.; - - double m_maxEtaEM2=1.; - double m_maxPhiEM2=5.; - double m_maxrEM2=60.; - - double m_maxEtaEM3=1.; - double m_maxPhiEM3=5.; - double m_maxrEM3=8.; - - ILArCalculatorSvc *m_LArCalculator=nullptr; - ITileCalculator *m_TileCalculator=nullptr; - }; - -} - -/// @class FCS_StepInfoSD -/// @brief Common sensitive detector class for LAr systems. -/// -/// This SD implementation saves the standard LArHits. -/// See LArG4CalibSD for an SD that handles calibration hits. -/// -class FCS_StepInfoSD : public G4VSensitiveDetector -{ -public: - - /// Constructor - FCS_StepInfoSD(G4String a_name, const FCS_Param::Config& config); - - /// Destructor - virtual ~FCS_StepInfoSD(); - - /// Main processing method - G4bool ProcessHits(G4Step* a_step, G4TouchableHistory*) override; - - /// End of athena event processing - void EndOfAthenaEvent( ISF_FCS_Parametrization::FCS_StepInfoCollection* hitContnainer ); - - /// Sets the ID helper pointers - void setupHelpers( const LArEM_ID* EM , - const LArFCAL_ID* FCAL , - const LArHEC_ID* HEC , - const LArMiniFCAL_ID* mini ) { - m_larEmID = EM; - m_larFcalID = FCAL; - m_larHecID = HEC; - m_larMiniFcalID = mini; - } - -protected: - /// Keep a map instead of trying to keep the full vector. - /// At the end of the event we'll push the map back into the - /// FCS_StepInfoCollection in StoreGate. - virtual void update_map(const CLHEP::Hep3Vector & l_vec, const Identifier & l_cell, double l_energy, double l_time, bool l_valid, int l_detector); - FCS_Param::Config m_config; - /// Pointers to the identifier helpers - const LArEM_ID* m_larEmID; - const LArFCAL_ID* m_larFcalID; - const LArHEC_ID* m_larHecID; - const LArMiniFCAL_ID* m_larMiniFcalID; - const CaloDetDescrManager *m_calo_dd_man; - std::map< Identifier , std::vector< ISF_FCS_Parametrization::FCS_StepInfo* >* > m_hit_map; - -private: - /// - double getMaxTime(const CaloCell_ID::CaloSample& layer) const; - /// - double getMaxRadius(const CaloCell_ID::CaloSample& layer) const; - /// - double getMaxDeltaR(const CaloCell_ID::CaloSample& layer) const; - /// - double getMaxDeltaEta(const CaloCell_ID::CaloSample& layer) const; - /// - double getMaxDeltaPhi(const CaloCell_ID::CaloSample& layer) const; - -}; - -#endif // ISF_FASTCALOSIM_FCS_STEPINFOSD_H diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/FCS_StepInfoSDTool.cxx b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/FCS_StepInfoSDTool.cxx deleted file mode 100644 index a4e4660568e51214be86dc03cd1bf0185446c2e9..0000000000000000000000000000000000000000 --- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/FCS_StepInfoSDTool.cxx +++ /dev/null @@ -1,290 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "FCS_StepInfoSDTool.h" - -#include <memory> - -// External includes -#include "CLHEP/Units/SystemOfUnits.h" - -// Athena includes -#include "CaloIdentifier/CaloIdManager.h" -#include "CaloIdentifier/LArEM_ID.h" -#include "CaloIdentifier/LArFCAL_ID.h" -#include "CaloIdentifier/LArHEC_ID.h" -#include "CaloIdentifier/LArMiniFCAL_ID.h" -#include "LArG4Code/ILArCalculatorSvc.h" -#include "LArG4Code/VolumeUtils.h" -#include "TileG4Interfaces/ITileCalculator.h" - -// Local includes -#include "LArFCS_StepInfoSD.h" -#include "TileFCS_StepInfoSD.h" -#include "SDWrapper.h" - -/// Template instantiation for FCS_StepInfoSD -using FCS_StepInfoSDWrapper = FCS_Param::detail::SDWrapper<FCS_StepInfoSD, ISF_FCS_Parametrization::FCS_StepInfoCollection>; - -namespace FCS_Param -{ - - //--------------------------------------------------------------------------- - // Tool constructor - //--------------------------------------------------------------------------- - FCS_StepInfoSDTool::FCS_StepInfoSDTool(const std::string& type, const std::string& name, - const IInterface* parent) - : SensitiveDetectorBase(type, name, parent) - , m_hitCollName("EventSteps") - , m_bpsmodcalc("EMBPresamplerCalculator", name) - , m_embcalc("EMBCalculator", name) - , m_emepiwcalc("EMECPosInnerWheelCalculator", name) - , m_emeniwcalc("EMECNegInnerWheelCalculator", name) - , m_emepowcalc("EMECPosOuterWheelCalculator", name) - , m_emenowcalc("EMECNegOuterWheelCalculator", name) - , m_emepscalc("EMECPresamplerCalculator", name) - , m_emeobarcalc("EMECBackOuterBarretteCalculator", name) - , m_heccalc("HECWheelCalculator", name) - , m_fcal1calc("FCAL1Calculator", name) - , m_fcal2calc("FCAL2Calculator", name) - , m_fcal3calc("FCAL3Calculator", name) - , m_minfcalcalc("MiniFCALCalculator", name) - , m_tileCalculator("TileGeoG4SDCalc", name) - , m_larEmID(nullptr) - , m_larFcalID(nullptr) - , m_larHecID(nullptr) - , m_larMiniFcalID(nullptr) - , m_config() - { - declareProperty("HitCollectionName", m_hitCollName); - declareProperty("StacVolumes", m_stacVolumes); - declareProperty("PresamplerVolumes", m_presBarVolumes); - declareProperty("PosIWVolumes", m_posIWVolumes); - declareProperty("NegIWVolumes", m_negIWVolumes); - declareProperty("PosOWVolumes", m_posOWVolumes); - declareProperty("NegOWVolumes", m_negOWVolumes); - declareProperty("PresVolumes", m_presECVolumes); - declareProperty("BOBarretteVolumes", m_bobVolumes); - declareProperty("FCAL1Volumes", m_fcal1Volumes); - declareProperty("FCAL2Volumes", m_fcal2Volumes); - declareProperty("FCAL3Volumes", m_fcal3Volumes); - declareProperty("SliceVolumes", m_sliceVolumes); - declareProperty("MiniVolumes", m_miniVolumes); - declareProperty("TileVolumes", m_tileVolumes); - - declareProperty("EMBPSCalibrationCalculator",m_bpsmodcalc); - declareProperty("EMBCalibrationCalculator",m_embcalc); - declareProperty("EMECPosIWCalibrationCalculator",m_emepiwcalc); - declareProperty("EMECNegIWCalibrationCalculator",m_emeniwcalc); - declareProperty("EMECPosOWCalibrationCalculator",m_emepowcalc); - declareProperty("EMECNegOWCalibrationCalculator",m_emenowcalc); - declareProperty("EMECPSCalibrationCalculator",m_emepscalc); - declareProperty("EMECBOBCalibrationCalculator",m_emeobarcalc); - declareProperty("HECWActiveCalculator",m_heccalc); - declareProperty("FCAL1CalibCalculator",m_fcal1calc); - declareProperty("FCAL2CalibCalculator",m_fcal2calc); - declareProperty("FCAL3CalibCalculator",m_fcal3calc); - declareProperty("MiniFCALActiveCalibrationCalculator",m_minfcalcalc); - declareProperty("TileCalculator", m_tileCalculator); - - declareProperty("shift_lar_subhit",m_config.shift_lar_subhit, ""); - declareProperty("shorten_lar_step",m_config.shorten_lar_step, ""); - - declareProperty("maxRadius",m_config.m_maxRadius, ""); - declareProperty("maxRadiusLAr",m_config.m_maxRadiusLAr, ""); - declareProperty("maxRadiusHEC",m_config.m_maxRadiusHEC, ""); - declareProperty("maxRadiusFCAL",m_config.m_maxRadiusFCAL, ""); - declareProperty("maxRadiusTile",m_config.m_maxRadiusTile, ""); - - declareProperty("maxTime",m_config.m_maxTime, ""); - declareProperty("maxTimeLAr",m_config.m_maxTimeLAr, ""); - declareProperty("maxTimeHEC",m_config.m_maxTimeHEC, ""); - declareProperty("maxTimeFCAL",m_config.m_maxTimeFCAL, ""); - declareProperty("maxTimeTile",m_config.m_maxTimeTile, ""); - - declareProperty("maxEtaPS", m_config.m_maxEtaPS, ""); - declareProperty("maxPhiPS", m_config.m_maxPhiPS, ""); - declareProperty("maxrPS", m_config.m_maxrPS, ""); - - declareProperty("maxEtaEM1", m_config.m_maxEtaEM1, ""); - declareProperty("maxPhiEM1", m_config.m_maxPhiEM1, ""); - declareProperty("maxrEM1", m_config.m_maxrEM1, ""); - - declareProperty("maxEtaEM2", m_config.m_maxEtaEM2, ""); - declareProperty("maxPhiEM2", m_config.m_maxPhiEM2, ""); - declareProperty("maxrEM2", m_config.m_maxrEM2, ""); - - declareProperty("maxEtaEM3", m_config.m_maxEtaEM3, ""); - declareProperty("maxPhiEM3", m_config.m_maxPhiEM3, ""); - declareProperty("maxrEM3", m_config.m_maxrEM3, ""); - } - - //--------------------------------------------------------------------------- - // Initialize the tool - //--------------------------------------------------------------------------- - StatusCode FCS_StepInfoSDTool::initialize() - { - ATH_MSG_DEBUG( "Initializing " << name() ); - - const CaloIdManager* idMgr = nullptr; - CHECK( detStore()->retrieve(idMgr) ); - if( (m_larEmID = idMgr->getEM_ID()) == nullptr) { - ATH_MSG_ERROR("Invalid LAr EM ID helper"); - return StatusCode::FAILURE; - } - if( (m_larFcalID = idMgr->getFCAL_ID()) == nullptr) { - ATH_MSG_ERROR("Invalid LAr FCAL ID helper"); - return StatusCode::FAILURE; - } - if( (m_larHecID = idMgr->getHEC_ID()) == nullptr) { - ATH_MSG_ERROR("Invalid LAr HEC ID helper"); - return StatusCode::FAILURE; - } - if( (m_larMiniFcalID = idMgr->getMiniFCAL_ID()) == nullptr) { - ATH_MSG_ERROR("Invalid LAr Mini FCAL ID helper"); - return StatusCode::FAILURE; - } - - // No general volume list for SensitiveDetectorBase - m_noVolumes = true; - - ATH_CHECK(this->initializeCalculators()); - - return StatusCode::SUCCESS; - } - - //--------------------------------------------------------------------------- - // Initialization of Athena-components - //--------------------------------------------------------------------------- - StatusCode FCS_StepInfoSDTool::initializeCalculators() - { - // Lots of calculators !!! - ATH_CHECK(m_bpsmodcalc.retrieve()); - ATH_CHECK(m_embcalc.retrieve()); - ATH_CHECK(m_emepiwcalc.retrieve()); - ATH_CHECK(m_emeniwcalc.retrieve()); - ATH_CHECK(m_emepowcalc.retrieve()); - ATH_CHECK(m_emenowcalc.retrieve()); - ATH_CHECK(m_emepscalc.retrieve()); - ATH_CHECK(m_emeobarcalc.retrieve()); - ATH_CHECK(m_heccalc.retrieve()); - ATH_CHECK(m_fcal1calc.retrieve()); - ATH_CHECK(m_fcal2calc.retrieve()); - ATH_CHECK(m_fcal3calc.retrieve()); - ATH_CHECK(m_minfcalcalc.retrieve()); - ATH_CHECK(m_tileCalculator.retrieve()); - - return StatusCode::SUCCESS; - } - - //--------------------------------------------------------------------------- - // Collect hits for this event - //--------------------------------------------------------------------------- - StatusCode FCS_StepInfoSDTool::Gather() - { - ATH_MSG_DEBUG("Gathering hits to write out in " << name()); - auto sdWrapper = dynamic_cast<FCS_StepInfoSDWrapper*>( getSD() ); - if(!sdWrapper) { - ATH_MSG_ERROR("Failed to cast SD to FCS_StepInfoSDWrapper"); - return StatusCode::FAILURE; - } - sdWrapper->EndOfAthenaEvent(); - return StatusCode::SUCCESS; - } - - //--------------------------------------------------------------------------- - // Create SD wrapper for current thread - //--------------------------------------------------------------------------- - G4VSensitiveDetector* FCS_StepInfoSDTool::makeSD() - { - // Create the wrapper - auto sdWrapper = new FCS_StepInfoSDWrapper("FCS_StepInfoSDWrapper", m_hitCollName); - - // Create the SDs. - sdWrapper->addSD( makeOneLArSD( "Barrel::Presampler::Module::StepInfo", &*m_bpsmodcalc, m_presBarVolumes ) ); - sdWrapper->addSD( makeOneLArSD( "EMB::STAC::StepInfo", &*m_embcalc, m_stacVolumes ) ); - sdWrapper->addSD( makeOneLArSD( "EMEC::Pos::InnerWheel::StepInfo", &*m_emepiwcalc, m_posIWVolumes ) ); - sdWrapper->addSD( makeOneLArSD( "EMEC::Neg::InnerWheel::StepInfo", &*m_emeniwcalc, m_negIWVolumes ) ); - sdWrapper->addSD( makeOneLArSD( "EMEC::Pos::OuterWheel::StepInfo", &*m_emepowcalc, m_posOWVolumes ) ); - sdWrapper->addSD( makeOneLArSD( "EMEC::Neg::OuterWheel::StepInfo", &*m_emenowcalc, m_negOWVolumes ) ); - sdWrapper->addSD( makeOneLArSD( "Endcap::Presampler::LiquidArgon::StepInfo", &*m_emepscalc, m_presECVolumes ) ); - sdWrapper->addSD( makeOneLArSD( "EMEC::BackOuterBarrette::StepInfo", &*m_emeobarcalc, m_bobVolumes ) ); - sdWrapper->addSD( makeOneLArSD( "FCAL::Module1::Gap::StepInfo", &*m_fcal1calc, m_fcal1Volumes ) ); - sdWrapper->addSD( makeOneLArSD( "FCAL::Module2::Gap::StepInfo", &*m_fcal2calc, m_fcal2Volumes ) ); - sdWrapper->addSD( makeOneLArSD( "FCAL::Module3::Gap::StepInfo", &*m_fcal3calc, m_fcal3Volumes ) ); - sdWrapper->addSD( makeOneLArSD( "HEC::Module::Depth::Slice::Wheel::StepInfo", &*m_heccalc, m_sliceVolumes ) ); - sdWrapper->addSD( makeOneLArSD( "MiniFCAL::Wafer::StepInfo", &*m_minfcalcalc, m_miniVolumes ) ); - sdWrapper->addSD( makeOneTileSD( "Tile::Scintillator::StepInfo", &*m_tileCalculator, m_tileVolumes ) ); - - return sdWrapper; - } - - //--------------------------------------------------------------------------- - // Create one LAr SD - //--------------------------------------------------------------------------- - std::unique_ptr<FCS_StepInfoSD> - FCS_StepInfoSDTool::makeOneLArSD(const std::string& sdName, ILArCalculatorSvc* calc, - const std::vector<std::string>& volumes) const - { - ATH_MSG_VERBOSE( name() << " makeOneSD" ); - - // Parse the wildcard patterns for existing volume names - auto parsedVolumes = LArG4::findLogicalVolumes(volumes, msg()); // from LArG4Code/VolumeUtils.h - - // Inject the Calculator into m_config - FCS_Param::Config config(m_config); - config.m_LArCalculator = calc; - if(!calc) { - throw GaudiException("nullptr for ILArCalculatorSvc provided to constructor for: " + sdName, - name(), StatusCode::FAILURE); - } - if(msgLvl(MSG::VERBOSE)) { config.verboseLevel = 10; } - else if(msgLvl(MSG::DEBUG)) { config.verboseLevel = 5; } - // Create the simple SD - std::unique_ptr<FCS_StepInfoSD> sd = - std::make_unique<LArFCS_StepInfoSD>(sdName, config); - sd->setupHelpers(m_larEmID, m_larFcalID, m_larHecID, m_larMiniFcalID); - - // Assign the volumes to the SD - if( this->assignSD( sd.get(), parsedVolumes ).isFailure() ) { - // TODO: can I just return NULL here? - throw GaudiException("Failed to assign sd: " + sdName, - name(), StatusCode::FAILURE); - } - return std::move(sd); - } - - //--------------------------------------------------------------------------- - // Create one Tile SD - //--------------------------------------------------------------------------- - std::unique_ptr<FCS_StepInfoSD> - FCS_StepInfoSDTool::makeOneTileSD(const std::string& sdName, ITileCalculator* calc, - const std::vector<std::string>& volumes) const - { - ATH_MSG_VERBOSE( name() << " makeOneSD" ); - - // Inject the Calculator into m_config - FCS_Param::Config config(m_config); - config.m_TileCalculator = calc; - if(!calc) { - throw GaudiException("nullptr for ITileCalculator provided to constructor for: " + sdName, - name(), StatusCode::FAILURE); - } - if(msgLvl(MSG::VERBOSE)) { config.verboseLevel = 10; } - else if(msgLvl(MSG::DEBUG)) { config.verboseLevel = 5; } - // Create the simple SD - std::unique_ptr<FCS_StepInfoSD> sd = - std::make_unique<TileFCS_StepInfoSD>(sdName, config); - sd->setupHelpers(m_larEmID, m_larFcalID, m_larHecID, m_larMiniFcalID); - - // Assign the volumes to the SD - if( this->assignSD( sd.get(), volumes ).isFailure() ) { - // TODO: can I just return NULL here? - throw GaudiException("Failed to assign sd: " + sdName, - name(), StatusCode::FAILURE); - } - return std::move(sd); - } - -} // namespace FCS_Param diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/FCS_StepInfoSDTool.h b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/FCS_StepInfoSDTool.h deleted file mode 100644 index 1bd88ab1e4b149129fa1b54b503e4cb2f74c467f..0000000000000000000000000000000000000000 --- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/FCS_StepInfoSDTool.h +++ /dev/null @@ -1,123 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef ISF_FASTCALOSIMSD_FCS_STEPINFOSDTOOL_H -#define ISF_FASTCALOSIMSD_FCS_STEPINFOSDTOOL_H - -/// @file FCS_StepInfoSDTool.h -/// @brief Defines the FCS_StepInfoSDTool class -/// @author Steve Farrell <Steven.Farrell@cern.ch> -/// @date 2016-03-26 - -// System includes -#include <string> -#include <vector> - -// G4Atlas includes -#include "G4AtlasTools/SensitiveDetectorBase.h" - -// Local includes -#include "FCS_StepInfoSD.h" - -// Forward declarations -class ILArCalculatorSvc; -class LArEM_ID; -class LArFCAL_ID; -class LArHEC_ID; -class LArMiniFCAL_ID; -class ITileCalculator; - -namespace FCS_Param -{ - - /// @class FCS_StepInfoSDTool - /// @brief A base class for tools that manage FCS_StepInfoSDs. - /// - /// @todo Add more details. - /// - /// @author Steve Farrell <Steven.Farrell@cern.ch> - /// - class FCS_StepInfoSDTool : public SensitiveDetectorBase - { - - public: - - /// Constructor - FCS_StepInfoSDTool(const std::string& type, const std::string& name, - const IInterface* parent); - - /// Initialize the tool - StatusCode initialize() override final; - - /// Calls down to all the SDs to pack their hits into one collection - StatusCode Gather() override final; - - private: - - /// Create the SD wrapper for current worker thread - G4VSensitiveDetector* makeSD() override final; - - /// Initialize Calculator Services - virtual StatusCode initializeCalculators(); - - /// Helper method to create one SD - std::unique_ptr<FCS_StepInfoSD> - makeOneLArSD(const std::string& name, ILArCalculatorSvc* calc, - const std::vector<std::string>& volumes) const; - - /// Helper method to create one SD - std::unique_ptr<FCS_StepInfoSD> - makeOneTileSD(const std::string& name, ITileCalculator* calc, - const std::vector<std::string>& volumes) const; - - /// Hit collection name - std::string m_hitCollName; - - /// @name SD volumes - /// @{ - std::vector<std::string> m_stacVolumes; - std::vector<std::string> m_presBarVolumes; - std::vector<std::string> m_posIWVolumes; - std::vector<std::string> m_negIWVolumes; - std::vector<std::string> m_posOWVolumes; - std::vector<std::string> m_negOWVolumes; - std::vector<std::string> m_presECVolumes; - std::vector<std::string> m_bobVolumes; - std::vector<std::string> m_fcal1Volumes; - std::vector<std::string> m_fcal2Volumes; - std::vector<std::string> m_fcal3Volumes; - std::vector<std::string> m_sliceVolumes; - std::vector<std::string> m_miniVolumes; - std::vector<std::string> m_tileVolumes; - /// @} - - ServiceHandle<ILArCalculatorSvc> m_bpsmodcalc; //LArG4::BarrelPresampler::CalibrationCalculator - ServiceHandle<ILArCalculatorSvc> m_embcalc; //LArG4::Barrel::CalibrationCalculator - ServiceHandle<ILArCalculatorSvc> m_emepiwcalc; //LArG4::EC::CalibrationCalculator(LArWheelCalculator::InnerAbsorberWheel, 1) - ServiceHandle<ILArCalculatorSvc> m_emeniwcalc; //LArG4::EC::CalibrationCalculator(LArWheelCalculator::InnerAbsorberWheel, -1) - ServiceHandle<ILArCalculatorSvc> m_emepowcalc; //LArG4::EC::CalibrationCalculator(LArWheelCalculator::OuterAbsorberWheel, 1) - ServiceHandle<ILArCalculatorSvc> m_emenowcalc; //LArG4::EC::CalibrationCalculator(LArWheelCalculator::OuterAbsorberWheel, -1) - ServiceHandle<ILArCalculatorSvc> m_emepscalc; //LArG4::EC::PresamplerCalibrationCalculator - ServiceHandle<ILArCalculatorSvc> m_emeobarcalc; //LArG4::EC::CalibrationCalculator(LArWheelCalculator::BackOuterBarretteWheelCalib, 1) - ServiceHandle<ILArCalculatorSvc> m_heccalc; //LArG4::HEC::LArHECCalibrationWheelCalculator(LArG4::HEC::kWheelActive) - ServiceHandle<ILArCalculatorSvc> m_fcal1calc; - ServiceHandle<ILArCalculatorSvc> m_fcal2calc; - ServiceHandle<ILArCalculatorSvc> m_fcal3calc; - ServiceHandle<ILArCalculatorSvc> m_minfcalcalc; //LArG4::MiniFCAL::MiniFCALCalibrationCalculator(LArG4::MiniFCAL::kActive) - ServiceHandle<ITileCalculator> m_tileCalculator; - - /// @name Calo identifier helpers - /// @{ - const LArEM_ID* m_larEmID; - const LArFCAL_ID* m_larFcalID; - const LArHEC_ID* m_larHecID; - const LArMiniFCAL_ID* m_larMiniFcalID; - /// @} - FCS_Param::Config m_config; - - }; // class FCS_StepInfoSDTool - -} // namespace FCS_Param - -#endif diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/LArFCS_StepInfoSD.cxx b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/LArFCS_StepInfoSD.cxx deleted file mode 100644 index db10072268276ec8cfabae3cab0a751ca6abfa93..0000000000000000000000000000000000000000 --- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/LArFCS_StepInfoSD.cxx +++ /dev/null @@ -1,274 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -// class header -#include "LArFCS_StepInfoSD.h" -/// Geant4 headers -#include "G4Step.hh" -#include "G4ThreeVector.hh" -#include "G4TouchableHistory.hh" - -/// Athena headers -#include "CaloDetDescr/CaloDetDescrManager.h" -#include "CaloDetDescr/CaloDetDescrElement.h" -#include "LArG4Code/ILArCalculatorSvc.h" - -LArFCS_StepInfoSD::LArFCS_StepInfoSD(G4String a_name, const FCS_Param::Config& config) - : FCS_StepInfoSD(a_name, config) - , m_calculator(m_config.m_LArCalculator) -{ -} - -LArFCS_StepInfoSD::~LArFCS_StepInfoSD() -{ -} - -G4bool LArFCS_StepInfoSD::ProcessHits(G4Step* a_step,G4TouchableHistory*) -{ - G4bool result(false); - // If there's no energy, there's no hit. (Aside: Isn't this energy - // the same as the energy from the calculator? Not necessarily. - // The calculator may include detector effects such as - // charge-collection which are not modeled by Geant4.) - if(a_step->GetTotalEnergyDeposit() <= 0.) { return result; } - - if (m_calculator) { - const double StepLength = a_step->GetStepLength()/ CLHEP::mm; - const G4ThreeVector preStepPosition = a_step->GetPreStepPoint()->GetPosition(); //pre step is the position we're interested in - const G4ThreeVector postStepPosition = a_step->GetPostStepPoint()->GetPosition(); - double et(0.); // Total collected charge - std::vector<const G4Step*> steps; - bool madeSubSteps(false); - if (m_config.shorten_lar_step && StepLength>0.2) { - //create smaller substeps instead - G4int nsub_step=(int) (StepLength/0.2) + 1; - G4double delta=1./((double) nsub_step); - //G4cout <<"Orig prestep: "<<preStepPosition<<std::endl; - for (G4int i=0;i<nsub_step;i++) { - G4double fraction1 = ((G4double) i)*delta; - G4double fraction2 = (((G4double) i) + 1.)*delta; - G4ThreeVector subpoint1=preStepPosition*(1-fraction1) + postStepPosition*fraction1; - G4ThreeVector subpoint2=preStepPosition*(1-fraction2) + postStepPosition*fraction2; - G4StepPoint *startpoint = new G4StepPoint(*(a_step->GetPreStepPoint())); - G4StepPoint *endpoint = new G4StepPoint(*(a_step->GetPostStepPoint())); - startpoint->SetPosition(subpoint1); - endpoint->SetPosition(subpoint2); - - G4Step* newstep = new G4Step(*a_step); - newstep->SetPreStepPoint(startpoint); - newstep->SetPostStepPoint(endpoint); - newstep->SetStepLength( (subpoint1-subpoint2).mag()); - newstep->SetTotalEnergyDeposit(a_step->GetTotalEnergyDeposit()/nsub_step); - steps.push_back(newstep); - madeSubSteps=true; - } - } - else { - steps.push_back(a_step); - } - - for (const G4Step* substep : steps) { - G4ThreeVector stepPosition = 0.5*(substep->GetPreStepPoint()->GetPosition()+substep->GetPostStepPoint()->GetPosition()); - std::vector<LArHitData> processedHits; - if (m_calculator->Process(substep, processedHits)) { - for (const auto& larhit: processedHits) { - et += larhit.energy; - } - } - else { - if (m_config.verboseLevel > 4) { - //Maybe 0 hits or something like that... - G4cout << this->GetName()<<" WARNING ProcessHits: Call to ILArCalculatorSvc::Process failed! Details:" << G4endl - << " " << "Volume: "<< a_step->GetPreStepPoint()->GetPhysicalVolume()->GetName()<<" "<<m_calculator<< " position: "<<stepPosition<<" SL: "<<StepLength<<G4endl - << " " << "Orig position: "<<substep->GetPreStepPoint()->GetPosition()<<" / "<<substep->GetPostStepPoint()->GetPosition()<<G4endl - << " " << "StepLength: "<<StepLength<<" step: "<<preStepPosition<<" / "<<postStepPosition<<G4endl; - } - return result; - } - - // drop hits with zero deposited energy (could still happen with negative corrections from calculator) - //Or if total energy is <0 - if (et <= 0.) { - if (m_config.verboseLevel > 4) { - G4cout << this->GetName()<<" WARNING ProcessHits: Total negative energy: " << et << " not processing..." << G4endl; - } - return result; - } - - const size_t numberOfProcessedHits = processedHits.size(); - const G4ThreeVector originalStepPosition = stepPosition; - double maxSubHitEnergy = -999.; - int maxSubHitEnergyindex =-1; - if (numberOfProcessedHits>0) { - maxSubHitEnergy = processedHits[0].energy; - maxSubHitEnergyindex = 0; - } - //Figure out the subhit with most energy - for (size_t i=1; i<numberOfProcessedHits; ++i) { - if (maxSubHitEnergy<processedHits[i].energy) { - maxSubHitEnergy = processedHits[i].energy; - maxSubHitEnergyindex = i; - } - } - //Identifier for the subhit with max energy - Identifier maxEnergyIdentifier = this->ConvertID(processedHits[maxSubHitEnergyindex].id); - CaloDetDescrElement *maxEnergyCell = m_calo_dd_man->get_element(maxEnergyIdentifier); - - Identifier invalidIdentifier; - //for (size_t i=0; i<numberOfProcessedHits; ++i) { - for (const auto& larhit: processedHits) { - Identifier id = this->ConvertID(larhit.id); - if (id == invalidIdentifier) { - G4cout << this->GetName()<<" WARNING ProcessHits: Something wrong with LArG4Identifier: "<<(std::string) larhit.id<<G4endl - <<" "<<id<<G4endl - <<" "<<id.getString()<<G4endl - <<" "<< a_step->GetPreStepPoint()->GetPhysicalVolume()->GetLogicalVolume()->GetName()<<G4endl - <<" numberOfProcessedHits: "<<numberOfProcessedHits<<G4endl; - G4cout <<" "<<invalidIdentifier<<G4endl; - } - //need to get the cell information - if (numberOfProcessedHits>1) { - if (!m_larEmID->is_em_barrel(id)) { - //It didn't seem to happen outside em_barrel, so flag up if it does: - G4cout << this->GetName()<<" WARNING ProcessHits: Outside LAr barrel, but numberOfProcessedHits="<<numberOfProcessedHits - <<", LArG4Identifier: "<<(std::string) larhit.id<<G4endl; - } - else { - if (m_config.shift_lar_subhit) { - //find subhit with largest energy - if (maxSubHitEnergyindex == -1) { - G4cout << this->GetName()<<" WARNING ProcessHits: no subhit index with e>-999??? "<<G4endl; - return result; - } - if(m_config.verboseLevel > 9) { - G4cout << this->GetName()<<" VERBOSE ProcessHits: shifting subhits: largest energy subhit index is "<<maxSubHitEnergyindex<<" E: "<<maxSubHitEnergy<<" identifier: "<<maxEnergyIdentifier.getString()<<G4endl; - } - //from identifier - CaloDetDescrElement *thiscell = m_calo_dd_man->get_element(id); - if (!maxEnergyCell) { - //How often does this happen? Do not shift. - G4cout << this->GetName()<<" WARNING ProcessHits: maxEnergyCell failed: "<<maxEnergyIdentifier.getString()<<G4endl - <<" "<<m_calo_dd_man->get_element(id)->getSampling()<<G4endl - <<" "<<originalStepPosition.eta()<<G4endl - <<" "<< originalStepPosition.phi()<<G4endl; - stepPosition = originalStepPosition; - } - else if (maxEnergyCell == thiscell) { - //The cells match, so do not shift this hit. - if(m_config.verboseLevel > 9) { - G4cout << this->GetName()<<" VERBOSE ProcessHits: Original step position: "<<originalStepPosition.x()<<" "<<originalStepPosition.y()<<" "<<originalStepPosition.z()<<G4endl - <<" "<<"This cell: "<<thiscell->x()<<" "<<thiscell->y()<<" "<<thiscell->z()<<G4endl - <<" "<<"No shift"<<G4endl; - } - stepPosition = originalStepPosition; - } - else { - //the two cells do not match => shift - G4ThreeVector diff(thiscell->x()-maxEnergyCell->x(), thiscell->y()-maxEnergyCell->y(), thiscell->z()-maxEnergyCell->z()); - stepPosition = originalStepPosition+diff; - if(m_config.verboseLevel > 9) { - CaloDetDescrElement *bestcell = m_calo_dd_man->get_element(m_calo_dd_man->get_element(id)->getSampling(),originalStepPosition.eta(), originalStepPosition.phi()); - G4cout << this->GetName()<<" VERBOSE ProcessHits: Original step position: "<<originalStepPosition.x()<<" "<<originalStepPosition.y()<<" "<<originalStepPosition.z()<<G4endl - <<" "<<"This cell: "<<thiscell->x()<<" "<<thiscell->y()<<" "<<thiscell->z()<<G4endl - <<" "<<"Highest E cell: "<<maxEnergyCell->x()<<" "<<maxEnergyCell->y()<<" "<<maxEnergyCell->z()<<G4endl - <<" "<<"(Best cell: "<<bestcell->x()<<" "<<bestcell->y()<<" "<<bestcell->z()<<")"<<G4endl - <<" "<<"Shifted step position: "<<stepPosition.x()<<" "<<stepPosition.y()<<" "<<stepPosition.z()<<G4endl; - } - } - } - } - } - //Finalize time for LAr hits?: NO - //double time = larhit.energy)==0 ? 0. : (double) larhit.time/larhit.energy/CLHEP::ns; - double time = larhit.time; - double energy = larhit.energy/CLHEP::MeV; - this->update_map(stepPosition, id, energy, time, true, numberOfProcessedHits); //store numberOfProcessedHits as info - }//numberOfProcessedHits - } //istep - if (madeSubSteps) { - //only delete steps when doing substeps. Do not delete the original G4Step! - while(!steps.empty()) { delete steps.back(); steps.pop_back(); } - } - } - return result; -} - -Identifier LArFCS_StepInfoSD::ConvertID(const LArG4Identifier& a_ident) const -{ - Identifier id; - if(a_ident[0]==4) { - // is LAr - if(a_ident[1]==1) { - //is LAr EM - try { - id = m_larEmID->channel_id(a_ident[2], // barrel_ec - a_ident[3], // sampling - a_ident[4], // region - a_ident[5], // eta - a_ident[6]); // phi - } - catch (LArID_Exception& e) { - G4ExceptionDescription description; - description << "ConvertID: LArEM_ID error code " << e.code() << " " - << (std::string) e; - G4Exception("LArFCS_StepInfoSD", "ConvertIDEM", FatalException, description); - abort(); - } - } - else if(a_ident[1]==2) { - //is EM HEC - try { - id = m_larHecID->channel_id(a_ident[2], // zSide - a_ident[3], // sampling - a_ident[4], // region - a_ident[5], // eta - a_ident[6]); // phi - } - catch(LArID_Exception& e) { - G4ExceptionDescription description; - description << "ConvertID: LArHEC_ID error code " << e.code() << " " - << (std::string) e; - G4Exception("LArFCS_StepInfoSD", "ConvertIDHEC", FatalException, description); - abort(); - } - } - else if(a_ident[1]==3) { - // FCAL - if(a_ident[3]>0) { - //is EM FCAL - try { - id = m_larFcalID->channel_id(a_ident[2], // zSide - a_ident[3], // sampling - a_ident[4], // eta - a_ident[5]); // phi - } - catch(LArID_Exception& e) { - G4ExceptionDescription description; - description << "ConvertID: LArFCAL_ID error code " << e.code() << " " - << (std::string) e; - G4Exception("LArFCS_StepInfoSD", "ConvertIDFCAL", FatalException, description); - abort(); - } - } - else { - //is Mini FCAL - try { - id = m_larMiniFcalID->channel_id(a_ident[2], // zSide - a_ident[3], // module - a_ident[4], // depth - a_ident[5], // eta - a_ident[6]); // phi - } - catch(LArID_Exception& e) { - G4ExceptionDescription description; - description << "ConvertID: LArMiniFCAL_ID error code " << e.code() << " " - << (std::string) e; - G4Exception("LArFCS_StepInfoSD", "ConvertIDMiniFCAL", FatalException, description); - abort(); - } - } - } - } - return id; -} diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/LArFCS_StepInfoSD.h b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/LArFCS_StepInfoSD.h deleted file mode 100644 index e5756d43a11aecd4e249103047392535d9ba3bcb..0000000000000000000000000000000000000000 --- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/LArFCS_StepInfoSD.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef ISF_FASTCALOSIM_LARFCS_STEPINFOSD_H -#define ISF_FASTCALOSIM_LARFCS_STEPINFOSD_H - -// Base class header -#include "FCS_StepInfoSD.h" - -#include "LArG4Code/LArG4Identifier.h" - -// Forward declarations -class LArEM_ID; -class LArFCAL_ID; -class LArHEC_ID; -class LArMiniFCAL_ID; -class CaloDetDescrManager; - -class G4Step; -class G4TouchableHistory; -class ILArCalculatorSvc; - -/// @class FCS_StepInfoSD -/// @brief Common sensitive detector class for LAr systems. -/// -/// This SD implementation saves the standard LArHits. -/// See LArG4CalibSD for an SD that handles calibration hits. -/// -class LArFCS_StepInfoSD : public FCS_StepInfoSD -{ -public: - - /// Constructor - LArFCS_StepInfoSD(G4String a_name, const FCS_Param::Config& config); - - /// Destructor - virtual ~LArFCS_StepInfoSD(); - - /// Main processing method - G4bool ProcessHits(G4Step* a_step, G4TouchableHistory*) override; - -private: - /// Helper function for making "real" identifiers from LArG4Identifiers - Identifier ConvertID(const LArG4Identifier& a_ident) const; - - /// Member variable - the calculator we'll use - ILArCalculatorSvc * m_calculator; -}; - -#endif // ISF_FASTCALOSIM_LARFCS_STEPINFOSD_H diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/SDWrapper.cxx b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/SDWrapper.cxx deleted file mode 100644 index 7df4b9c974dae8a427ff028af4465e9fbae0085c..0000000000000000000000000000000000000000 --- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/SDWrapper.cxx +++ /dev/null @@ -1,101 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "SDWrapper.h" - -// Geant4 includes -#include "G4SDManager.hh" - -// Framework utilities -#include "CxxUtils/make_unique.h" - -// Project includes -#include "ISF_FastCaloSimEvent/FCS_StepInfoCollection.h" - -// Local includes -#include "FCS_StepInfoSD.h" - -namespace FCS_Param -{ - - namespace detail - { - - //------------------------------------------------------------------------- - // Construct with a hit collection name - //------------------------------------------------------------------------- - template<class SDType, class HitContainerType> - SDWrapper<SDType, HitContainerType>:: - SDWrapper(const std::string& name, const std::string& hitCollectionName) - : G4VSensitiveDetector(name), - m_hitCollName(hitCollectionName), - m_hitColl(hitCollectionName) - {} - - //------------------------------------------------------------------------- - // Add a unique SD to the list - //------------------------------------------------------------------------- - template<class SDType, class HitContainerType> - void SDWrapper<SDType, HitContainerType>:: - addSD(std::unique_ptr<SDType> sd) - { - m_sdList.push_back( std::move(sd) ); - } - - //------------------------------------------------------------------------- - // Initialize the hit collection at the beginning of the G4 event - //------------------------------------------------------------------------- - template<class SDType, class HitContainerType> - void SDWrapper<SDType, HitContainerType>:: - Initialize(G4HCofThisEvent*) - { - if(!m_hitColl.isValid()) { - if(verboseLevel >= 5) { - G4cout << GetName() << " \tDEBUG\t" << "Initializing hit container: " - << m_hitCollName << G4endl; - } - m_hitColl = CxxUtils::make_unique<HitContainerType>(); - } - } - - //------------------------------------------------------------------------- - // This should not be called - //------------------------------------------------------------------------- - template<class SDType, class HitContainerType> - bool SDWrapper<SDType, HitContainerType>:: - ProcessHits(G4Step*, G4TouchableHistory*) - { - G4ExceptionDescription description; - description << "ProcessHits: this SD shouldn't be assigned to volumes!"; - G4Exception(GetName(), "SDError", FatalException, description); - return false; - } - - //------------------------------------------------------------------------- - // Gather the hits into the WriteHandle from all the SDs - //------------------------------------------------------------------------- - template<class SDType, class HitContainerType> - void SDWrapper<SDType, HitContainerType>:: - EndOfAthenaEvent() - { - if(!m_hitColl.isValid()) { - G4cerr << GetName() << " \tERROR\t" << "Hit collection WriteHandle is " - << "invalid!" << G4endl; - throw std::runtime_error("Invalid hit container WriteHandle: " + - m_hitColl.name()); - } - // Loop over each SD and fill the container - for(auto& sd : m_sdList) { - sd->EndOfAthenaEvent( &*m_hitColl ); - } - } - - //------------------------------------------------------------------------- - // Explit template instantiations - //------------------------------------------------------------------------- - template class SDWrapper<FCS_StepInfoSD, ISF_FCS_Parametrization::FCS_StepInfoCollection>; - - } // namespace detail - -} // namespace FCS_Param diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/SDWrapper.h b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/SDWrapper.h deleted file mode 100644 index ef3a248cf715e95334a6e6befe294f3b84f5c72e..0000000000000000000000000000000000000000 --- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/SDWrapper.h +++ /dev/null @@ -1,94 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef ISF_FASTCALOSIMSD_SDWRAPPER_H -#define ISF_FASTCALOSIMSD_SDWRAPPER_H - -// System includes -#include <string> -#include <vector> -#include <memory> - -// External includes -#include "G4VSensitiveDetector.hh" - -// Framework includes -#include "StoreGate/WriteHandle.h" - - -// Forward declarations -class FCS_StepInfoSD; -namespace ISF_FCS_Parametrization { - class FCS_StepInfoCollection; -} -namespace FCS_Param -{ - - namespace detail - { - - /// @class SDWrapper - /// @brief A template class which wraps multiple sensitive detectors. - /// - /// Allows for SD tools to manage several SDs which collaborate to fill one - /// hit container in a multi-threading-friendly way. The wrapper owns the - /// WriteHandle for the hit container and gathers hits from each SD at the - /// end of an event. - /// - /// The inheritance from G4VSensitiveDetector is merely a trick so the SD - /// tool can save this object in the SensitiveDetectorBase thread-local - /// container. It also allows to create the hit container at the right time - /// via the SD Initialize method invoked by Geant4. - /// - /// Clients shouldn't use this generic template directly, but should use - /// the explicitly allowed specializations given below. - /// - /// @author Steve Farrell <Steven.Farrell@cern.ch> - /// - template<class SDType, class HitContainerType> - class SDWrapper : public G4VSensitiveDetector - { - - public: - - /// Alias to the SD list type - using SDList_t = std::vector< std::unique_ptr<SDType> >; - - /// Construct the wrapper from the output collection name - SDWrapper(const std::string& name, const std::string& hitCollectionName); - - /// Add an SD to this wrapper - void addSD(std::unique_ptr<SDType> sd); - - /// Beginning of G4 event; initialize the hit collection. - virtual void Initialize(G4HCofThisEvent*) override final; - - /// This method should not be called. It will throw. - virtual bool ProcessHits(G4Step*, G4TouchableHistory*) override final; - - /// Gather the hits into the WriteHandle from all the SDs - void EndOfAthenaEvent(); - - private: - - /// The hit container name - std::string m_hitCollName; - - /// The hit container handle - SG::WriteHandle<HitContainerType> m_hitColl; - - /// The list of sensitive detectors that I own and manage - SDList_t m_sdList; - - }; // class SDWrapper - - } // namespace detail - - - /// Template instantiation for LArG4SimpleSD - using FCS_StepInfoSDWrapper = detail::SDWrapper<FCS_StepInfoSD, ISF_FCS_Parametrization::FCS_StepInfoCollection>; - -} // namespace FCS_Param - -#endif diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/TileFCS_StepInfoSD.cxx b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/TileFCS_StepInfoSD.cxx deleted file mode 100644 index 41ca1bd2cbc1ae42d71150395b899620c0ae4668..0000000000000000000000000000000000000000 --- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/TileFCS_StepInfoSD.cxx +++ /dev/null @@ -1,100 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -//************************************************************ -// -// Class TileFCS_StepInfoSD -// Sensitive detector for TileCal G4 simulations with TileGeoModel -// -// Author: Vakho Tsulaia <Vakhtang.Tsulaia@cern.ch> -// -// Major updates: July, 2013 (Sergey) -// -//************************************************************ - -// class header -#include "TileFCS_StepInfoSD.h" -/// Geant4 headers -#include "G4Step.hh" -#include "G4ThreeVector.hh" -#include "G4TouchableHistory.hh" - -/// Athena headers -#include "CaloDetDescr/CaloDetDescrManager.h" -#include "TileG4Interfaces/ITileCalculator.h" - -TileFCS_StepInfoSD::TileFCS_StepInfoSD(G4String name, const FCS_Param::Config & config) - : FCS_StepInfoSD(name, config) - , m_calculator(config.m_TileCalculator) -{ -} - -TileFCS_StepInfoSD::~TileFCS_StepInfoSD() { -} - -G4bool TileFCS_StepInfoSD::ProcessHits(G4Step* a_step, G4TouchableHistory* /*ROhist*/) { - G4bool result(false); - // If there's no energy, there's no hit. (Aside: Isn't this energy - // the same as the energy from the calculator? Not necessarily. - // The calculator may include detector effects such as - // charge-collection which are not modeled by Geant4.) - if(a_step->GetTotalEnergyDeposit() <= 0.) { return result; } - - if (m_calculator) { - //calculation of MicroHit with a_step - TileHitData hitData; - TileMicroHit micHit = m_calculator->GetTileMicroHit(a_step, hitData); - Identifier m_invalid_id; - - //Check if MicroHit is not in scintillator - if ((micHit.pmt_up == m_invalid_id) && (micHit.pmt_down == m_invalid_id)) { - G4cout <<this->GetName()<<" WARNING ProcessHits: Invalid hit in Tile??"<<G4endl; - return result; - } - else { - // Store TileHits Information - if ((micHit.pmt_up == m_invalid_id) || (micHit.pmt_down == m_invalid_id)) { - G4cout <<this->GetName()<<" WARNING ProcessHits: Something wrong in identifier: One tile pmt: "<<micHit.pmt_up<<" "<<micHit.pmt_down<<std::endl; - G4cout <<this->GetName()<<" WARNING ProcessHits: E up: "<<micHit.e_up<<" E down: "<<micHit.e_down<<" T up: "<<micHit.time_up<<" T down: "<<micHit.time_down<<std::endl; - } - const G4ThreeVector pos = 0.5*(a_step->GetPreStepPoint()->GetPosition()+a_step->GetPostStepPoint()->GetPosition()); - - this->update_map(pos, micHit.pmt_up, micHit.e_up, micHit.time_up, true,1); - this->update_map(pos, micHit.pmt_down, micHit.e_down,micHit.time_down , true,1); - } - } - return true; -} - -void TileFCS_StepInfoSD::update_map(const CLHEP::Hep3Vector & l_vec, const Identifier & l_cell, double l_energy, double l_time, bool l_valid, int l_detector) -{ - // Drop any hits that don't have a good identifier attached - if (!m_calo_dd_man->get_element(l_cell)) { return; } - - auto map_item = m_hit_map.find( l_cell ); - if (map_item==m_hit_map.end()) { - m_hit_map[l_cell] = new std::vector< ISF_FCS_Parametrization::FCS_StepInfo* >; - m_hit_map[l_cell]->push_back( new ISF_FCS_Parametrization::FCS_StepInfo( l_vec , l_cell , l_energy , l_time , l_valid , l_detector ) ); - } - else { - bool match = false; - for (auto map_it : * map_item->second) { - // Time check - const double delta_t = std::fabs(map_it->time()-l_time); - if ( delta_t >= m_config.m_maxTimeTile ) { continue; } - // Distance check - const double hit_diff2 = map_it->position().diff2( l_vec ); - if ( hit_diff2 >= m_config.m_maxRadiusTile ) { continue; } - // Found a match. Make a temporary that will be deleted! - const ISF_FCS_Parametrization::FCS_StepInfo my_info( l_vec , l_cell , l_energy , l_time , l_valid , l_detector ); - *map_it += my_info; - match = true; - break; - } // End of search for match in time and space - if (!match) { - map_item->second->push_back( new ISF_FCS_Parametrization::FCS_StepInfo( l_vec , l_cell , l_energy , l_time , l_valid , l_detector ) ); - } // Didn't match - } // ID already in the map - -} // That's it for updating the map! diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/TileFCS_StepInfoSD.h b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/TileFCS_StepInfoSD.h deleted file mode 100644 index 7664e789390f3e49f8965800974f3357fb5a5fac..0000000000000000000000000000000000000000 --- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/TileFCS_StepInfoSD.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -//************************************************************ -// -// Class TileFCS_StepInfoSD -// Sensitive detector for TileCal G4 simulations using TileGeoModel -// -// Author: Vakho Tsulaia <Vakhtang.Tsulaia@cern.ch> -// -// Major updates: July, 2013 (Sergey) -// -//************************************************************ - -#ifndef ISF_FASTCALOSIMSD_TILEFCS_STEPINFOSD_H -#define ISF_FASTCALOSIMSD_TILEFCS_STEPINFOSD_H - -// Base class header -#include "FCS_StepInfoSD.h" - -class G4Step; -class G4TouchableHistory; -class ITileCalculator; - -class TileFCS_StepInfoSD: public FCS_StepInfoSD { -public: - TileFCS_StepInfoSD(G4String name, const FCS_Param::Config& config); - ~TileFCS_StepInfoSD(); - - G4bool ProcessHits(G4Step*, G4TouchableHistory*) override final; - - // Don't leave copy constructors or assignment operators around - TileFCS_StepInfoSD(const TileFCS_StepInfoSD&) = delete; - TileFCS_StepInfoSD& operator=(const TileFCS_StepInfoSD&) = delete; - -protected: - /// Keep a map instead of trying to keep the full vector. - /// At the end of the event we'll push the map back into the - /// FCS_StepInfoCollection in StoreGate. - virtual void update_map(const CLHEP::Hep3Vector & l_vec, const Identifier & l_cell, double l_energy, double l_time, bool l_valid, int l_detector) override final; - -private: - ITileCalculator* m_calculator; -}; - -#endif // ISF_FASTCALOSIMSD_TILEFCS_STEPINFOSD_H - diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/components/ISF_FastCaloSimSD_entries.cxx b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/components/ISF_FastCaloSimSD_entries.cxx deleted file mode 100644 index 0da3aea99724c9970f7a4c6e3a5d20c0e996439a..0000000000000000000000000000000000000000 --- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/components/ISF_FastCaloSimSD_entries.cxx +++ /dev/null @@ -1,5 +0,0 @@ -#include "GaudiKernel/DeclareFactoryEntries.h" - -#include "../FCS_StepInfoSDTool.h" - -DECLARE_TOOL_FACTORY( FCS_Param::FCS_StepInfoSDTool ) diff --git a/Tools/PROCTools/python/RunTier0Tests.py b/Tools/PROCTools/python/RunTier0Tests.py index 8106dcbc70e145c94cb8a2554c7cdc585ff7ef8f..69787fcd17e9588066d945e71d3ee4a6ea3815c5 100755 --- a/Tools/PROCTools/python/RunTier0Tests.py +++ b/Tools/PROCTools/python/RunTier0Tests.py @@ -25,48 +25,6 @@ formatter = logging.Formatter('%(levelname)-8s %(message)s') console.setFormatter(formatter) logging.getLogger('').addHandler(console) -def RunCleanSTest(stest,input_file,pwd,release,extraArg,CleanRunHeadDir,UniqID): - s=stest - logging.info("Running clean in rel "+release+" \"Sim_tf.py --AMIConfig "+s+" --inputEVNTFile "+ input_file + " --outputHITSFile myHITS.pool.root " + extraArg+"\"") - - CleanDirName="clean_run_"+s+"_"+UniqID - - cmd = ( " mkdir -p " + CleanRunHeadDir +" ;" + - " cd " + CleanRunHeadDir +" ;" + - " mkdir -p " + CleanDirName +" ;" + - " cd " + CleanDirName +" ;" + - " source $AtlasSetup/scripts/asetup.sh "+release+" >& /dev/null ;" + - " Sim_tf.py --AMIConfig="+s+" --inputEVNTFile "+input_file + " --outputHITSFile myHITS.pool.root " +extraArg+" > "+s+".log 2>&1" - ) - subprocess.call(cmd,shell=True) - - logging.info("Finished clean in rel "+release+" \"Sim_tf.py --AMIConfig "+s+" --inputEVNTFile "+ input_file + " --outputHITSFile myHITS.pool.root " + extraArg+"\"") - pass - -def RunPatchedSTest(stest,input_file,pwd,release,extraArg): - s=stest - logging.info("Running patched in rel "+release+" \"Sim_tf.py --AMIConfig "+s+" --inputEVNTFile "+ input_file + " --outputHITSFile myHITS.pool.root " + extraArg+"\"") - - if 'WorkDir_DIR' in os.environ: - cmake_build_dir = (os.environ['WorkDir_DIR']) - cmd = ( " cd "+pwd+" ;" + - " source $AtlasSetup/scripts/asetup.sh "+release+" >& /dev/null;" + - " source "+cmake_build_dir+"/setup.sh ;" + - " mkdir -p run_"+s+"; cd run_"+s+";" + - " Sim_tf.py --AMIConfig="+s+" --inputEVNTFile "+input_file + " --outputHITSFile myHITS.pool.root " +extraArg+" > "+s+".log 2>&1" - ) - subprocess.call(cmd,shell=True) - else : - cmd = ( " cd "+pwd+" ;" + - " source $AtlasSetup/scripts/asetup.sh "+release+" >& /dev/null;" + - " mkdir -p run_"+s+"; cd run_"+s+";" + - " Sim_tf.py --AMIConfig="+s+" --inputEVNTFile "+input_file + " --outputHITSFile myHITS.pool.root " +extraArg+" > "+s+".log 2>&1" - ) - subprocess.call(cmd,shell=True) - - logging.info("Finished patched in rel "+release+" \"Sim_tf.py --AMIConfig "+s+" --inputEVNTFile "+ input_file + " --outputHITSFile myHITS.pool.root " + extraArg+"\"") - pass - def RunCleanQTest(qtest,pwd,release,extraArg,CleanRunHeadDir,UniqID, doR2A=False, trigConfig="2017"): q=qtest if q == 'q431' and doR2A: @@ -214,7 +172,7 @@ def RunFrozenTier0PolicyTest(q,inputFormat,maxEvents,CleanRunHeadDir,UniqID,RunP if RunPatchedOnly: #overwrite clean_dir = '/afs/cern.ch/work/g/gencomm/public/referenceFiles/'+q - comparison_command = "acmd.py diff-root "+clean_dir+"/my"+inputFormat+".pool.root run_"+q+"/my"+inputFormat+".pool.root --error-mode resilient --ignore-leaves RecoTimingObj_p1_EVNTtoHITS_timings RecoTimingObj_p1_HITStoRDO_timings RecoTimingObj_p1_RAWtoESD_mems RecoTimingObj_p1_RAWtoESD_timings RAWtoESD_mems RAWtoESD_timings ESDtoAOD_mems ESDtoAOD_timings HITStoRDO_mems HITStoRDO_timings --entries "+str(maxEvents)+" > run_"+q+"/diff-root-"+q+"."+inputFormat+".log 2>&1" + comparison_command = "acmd.py diff-root "+clean_dir+"/my"+inputFormat+".pool.root run_"+q+"/my"+inputFormat+".pool.root --error-mode resilient --ignore-leaves RecoTimingObj_p1_HITStoRDO_timings RecoTimingObj_p1_RAWtoESD_mems RecoTimingObj_p1_RAWtoESD_timings RAWtoESD_mems RAWtoESD_timings ESDtoAOD_mems ESDtoAOD_timings HITStoRDO_mems HITStoRDO_timings --entries "+str(maxEvents)+" > run_"+q+"/diff-root-"+q+"."+inputFormat+".log 2>&1" output,error = subprocess.Popen(['/bin/bash', '-c', comparison_command], stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate() # We want to catch/print both container additions/subtractions as well as @@ -417,7 +375,7 @@ def main(): parser.add_option("-r","--ref" ,type="string" ,dest="ref" ,default=None ,help="define a particular reference release") parser.add_option("-v","--val" ,type="string" ,dest="val" ,default=None ,help="define a particular validation release") parser.add_option("-t","--trigRun2Config", type="string", dest="trigRun2Config_flag", default="2017" ,help="specify the value of run2Config variable used by trigger. Allowed values are \"2016\" and \"2017\" (default)") - parser.add_option("-s","--sim", action="store_true", dest="sim_flag", default=False, help="sim will run the Sim_tf.py test") + parser.add_option("-p","--patched" ,action="store_true" ,dest="patched_flag" ,default=False ,help="patched option will run q-tests just on your patched version of packages. Be warned! File output comparisons will only be performed against pre-defined reference files stored in the directory /afs/cern.ch/work/g/gencomm/public/referenceFiles and performance comparison tests will not be run.") @@ -429,7 +387,6 @@ def main(): else: extraArg = options.extraArgs - RunSim = options.sim_flag RunFast = options.fast_flag RunPatchedOnly = options.patched_flag CleanRunHeadDir=options.cleanDir @@ -484,11 +441,7 @@ def main(): ########### Define which q-tests to run qTestsToRun = {} - if RunSim: - qTestsToRun = { - 's3126':[ 'EVNTtoHITS' ] - } - elif r2aMode: + if r2aMode: qTestsToRun = { 'q221':[ 'HITtoRDO','RAWtoESD','ESDtoAOD','AODtoTAG'], 'q431':[ 'RAWtoALL'] @@ -522,24 +475,16 @@ def main(): # mysetup=mysetup+",builds" logging.info("------------------ Run Athena q-test jobs---------------" ) - sim_input_file = "/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/CommonInputs/ttbar_muplusjets-pythia6-7000.evgen.pool.root" # For sim test - if RunFast: for qtest in qTestsToRun: q=str(qtest) def mycleanqtest(): - if RunSim: - RunCleanSTest(q,sim_input_file,mypwd,cleanSetup,extraArg,CleanRunHeadDir,UniqName) - else: - RunCleanQTest(q,mypwd,cleanSetup,extraArg,CleanRunHeadDir,UniqName, doR2A=r2aMode, trigConfig=trigRun2Config) + RunCleanQTest(q,mypwd,cleanSetup,extraArg,CleanRunHeadDir,UniqName, doR2A=r2aMode, trigConfig=trigRun2Config) pass def mypatchedqtest(): - if RunSim: - RunPatchedSTest(q,sim_input_file,mypwd,cleanSetup,extraArg) - else: - RunPatchedQTest(q,mypwd,mysetup,extraArg, doR2A=r2aMode, trigConfig=trigRun2Config) + RunPatchedQTest(q,mypwd,mysetup,extraArg, doR2A=r2aMode, trigConfig=trigRun2Config) pass mythreads[q+"_clean"] = threading.Thread(target=mycleanqtest) @@ -555,11 +500,9 @@ def main(): for qtest in qTestsToRun: q=str(qtest) + def mypatchedqtest(): - if RunSim: - RunPatchedSTest(q,sim_input_file,mypwd,cleanSetup,extraArg) - else: - RunPatchedQTest(q,mypwd,mysetup,extraArg, doR2A=r2aMode, trigConfig=trigRun2Config) + RunPatchedQTest(q,mypwd,mysetup,extraArg, doR2A=r2aMode, trigConfig=trigRun2Config) pass mythreads[q+"_patched"] = threading.Thread(target=mypatchedqtest) @@ -575,17 +518,11 @@ def main(): q=str(qtest) def mycleanqtest(): - if RunSim: - RunCleanSTest(q,sim_input_file,mypwd,cleanSetup,extraArg,CleanRunHeadDir,UniqName) - else: - RunCleanQTest(q,mypwd,cleanSetup,extraArg,CleanRunHeadDir,UniqName,trigConfig=trigRun2Config) + RunCleanQTest(q,mypwd,cleanSetup,extraArg,CleanRunHeadDir,UniqName,trigConfig=trigRun2Config) pass def mypatchedqtest(): - if RunSim: - RunPatchedSTest(q,sim_input_file,mypwd,cleanSetup,extraArg) - else: - RunPatchedQTest(q,mypwd,mysetup,extraArg,trigConfig=trigRun2Config) + RunPatchedQTest(q,mypwd,mysetup,extraArg,trigConfig=trigRun2Config) pass mythreads[q+"_clean"] = threading.Thread(target=mycleanqtest) @@ -598,6 +535,7 @@ def main(): #Run post-processing tests + All_Tests_Passed = True for qtest in qTestsToRun: @@ -611,15 +549,11 @@ def main(): All_Tests_Passed = False continue - if RunSim: - if not RunFrozenTier0PolicyTest(q,"HITS",10,CleanRunHeadDir,UniqName,RunPatchedOnly): - All_Tests_Passed = False - else: - if not RunFrozenTier0PolicyTest(q,"ESD",10,CleanRunHeadDir,UniqName,RunPatchedOnly): - All_Tests_Passed = False + if not RunFrozenTier0PolicyTest(q,"ESD",10,CleanRunHeadDir,UniqName,RunPatchedOnly): + All_Tests_Passed = False - if not RunFrozenTier0PolicyTest(q,"AOD",20,CleanRunHeadDir,UniqName,RunPatchedOnly): - All_Tests_Passed = False + if not RunFrozenTier0PolicyTest(q,"AOD",20,CleanRunHeadDir,UniqName,RunPatchedOnly): + All_Tests_Passed = False if RunPatchedOnly: continue # Performance checks against static references not possible @@ -656,3 +590,4 @@ def main(): if __name__ == '__main__': main() + diff --git a/Tools/PyJobTransforms/python/trfExe.py b/Tools/PyJobTransforms/python/trfExe.py index 43a9df2838f6ba133e90c5461976db4a84e2443d..45080afca4585173ef7df2fcb680850860e4c582 100755 --- a/Tools/PyJobTransforms/python/trfExe.py +++ b/Tools/PyJobTransforms/python/trfExe.py @@ -1078,9 +1078,8 @@ class athenaExecutor(scriptExecutor): ignorePatterns = trfValidation.ignorePatterns(files = athenaExecutor._defaultIgnorePatternFile, extraSearch=igPat) # Now actually scan my logfile - msg.info('Scanning logfile {0} for errors in substep {1}'.format(self._logFileName, self._substep)) - self._logScan = trfValidation.athenaLogFileReport(logfile=self._logFileName, substepName=self._substep, - ignoreList=ignorePatterns) + msg.info('Scanning logfile {0} for errors'.format(self._logFileName)) + self._logScan = trfValidation.athenaLogFileReport(logfile = self._logFileName, ignoreList = ignorePatterns) worstError = self._logScan.worstError() self._dbMonitor = self._logScan.dbMonitor() diff --git a/Tools/PyJobTransforms/python/trfUtils.py b/Tools/PyJobTransforms/python/trfUtils.py index 9b9f0a5ce2b65815f736a9c480cf30a706d87a67..c4bfac7aa464cea3694b9db58bf91f67f8b0f265 100644 --- a/Tools/PyJobTransforms/python/trfUtils.py +++ b/Tools/PyJobTransforms/python/trfUtils.py @@ -302,19 +302,14 @@ def shQuoteStrings(strArray = sys.argv): ## @brief Generator to return lines and line count from a file # @param filename: Filename to open and deliver lines from # @param strip: If lines get stripped before being returned (default @c True) -# @param removeTimestamp: Removes timestamp from left.(default @c True) Since strings are removed only from left, -# this option requires explicit removal of substepName. -# @param substepName: Removes substepName from left, if it's value is provided. (default @c None) # @note This is useful so that multiple parts of code can co-operatively take lines from the file -def lineByLine(filename, strip=True, removeTimestamp=True, substepName=None): +def lineByLine(filename, strip = True, removeTimestamp = True): linecounter = 0 f = open(filename, 'r') for line in f: linecounter += 1 - if substepName and isinstance(substepName, str): # Remove substepName only if caller provides that string. - line = line.lstrip(substepName) if removeTimestamp: - line = line.lstrip('0123456789:-, ') # Remove timestamps in both serial and MP mode. + line = line.lstrip('0123456789:-, ') # Remove timestamps in both serial and MP mode. if strip: line = line.strip() yield line, linecounter diff --git a/Tools/PyJobTransforms/python/trfValidation.py b/Tools/PyJobTransforms/python/trfValidation.py index 06e87ce9e96612e53f2b3bd6f803dad7c8315716..36131827fa7f805e690ee397f5b0307aef41f62a 100644 --- a/Tools/PyJobTransforms/python/trfValidation.py +++ b/Tools/PyJobTransforms/python/trfValidation.py @@ -213,9 +213,8 @@ class logFileReport(object): class athenaLogFileReport(logFileReport): ## @brief Class constructor # @param logfile Logfile (or list of logfiles) to scan - # @param substepName Name of the substep executor, that has requested this log scan # @param msgLimit The number of messages in each category on which a - def __init__(self, logfile, substepName=None, msgLimit=10, msgDetailLevel=stdLogLevels['ERROR'], ignoreList=None): + def __init__(self, logfile, msgLimit=10, msgDetailLevel=stdLogLevels['ERROR'], ignoreList=None): if ignoreList: self._ignoreList = ignoreList else: @@ -230,7 +229,6 @@ class athenaLogFileReport(logFileReport): self._metaPat = re.compile(r"MetaData:\s+(.*?)\s*=\s*(.*)$") self._metaData = {} - self._substepName = substepName self._msgLimit = msgLimit self.resetReport() @@ -263,6 +261,7 @@ class athenaLogFileReport(logFileReport): self._dbbytes = 0 self._dbtime = 0.0 + def scanLogFile(self, resetReport=False): if resetReport: self.resetReport() @@ -271,7 +270,7 @@ class athenaLogFileReport(logFileReport): msg.debug('Now scanning logfile {0}'.format(log)) # N.B. Use the generator so that lines can be grabbed by subroutines, e.g., core dump svc reporter try: - myGen = trfUtils.lineByLine(log, substepName=self._substepName) + myGen = trfUtils.lineByLine(log) except IOError, e: msg.error('Failed to open transform logfile {0}: {1:s}'.format(log, e)) # Return this as a small report @@ -383,7 +382,6 @@ class athenaLogFileReport(logFileReport): self._dbbytes += int(a.group('bytes')) self._dbtime += float(a.group('time')) - ## Return data volume and time spend to retrieve information from the database def dbMonitor(self): return {'bytes' : self._dbbytes, 'time' : self._dbtime} if self._dbbytes > 0 or self._dbtime > 0 else None diff --git a/Tools/PyJobTransforms/test/test_trfValidation.py b/Tools/PyJobTransforms/test/test_trfValidation.py index 76364aad5546f6bc76d8b7adbef82fe3bd1597e2..7581d488322ad19965497b2b80dca6bd3332d7b9 100755 --- a/Tools/PyJobTransforms/test/test_trfValidation.py +++ b/Tools/PyJobTransforms/test/test_trfValidation.py @@ -178,7 +178,7 @@ class eventCheckTests(unittest.TestCase): 'maxEvents': None, 'evAccEff': 0.99}) self.assertRaises(trfExceptions.TransformValidationException, evmatch.decide) - + def test_inputGlobWithFail(self): evmatch = eventMatch(executor=None) evmatch.configureCheck(override={'inEventDict': {'NTUP_ZEE': 100}, @@ -540,8 +540,7 @@ class athenaLogFileReportTests(unittest.TestCase): self.myFileReport10 = athenaLogFileReport('file10') def tearDown(self): - for f in 'file1', 'file2', 'file3', 'file4', 'file5', 'file6', 'file7', 'file8', 'file9', 'file10',\ - 'logWithSubstepNameSerial', 'logWithSubstepNameMP': + for f in 'file1', 'file2', 'file3', 'file4', 'file5', 'file6', 'file7', 'file8', 'file9', 'file10': try: os.unlink(f) except OSError: @@ -570,44 +569,6 @@ class athenaLogFileReportTests(unittest.TestCase): 'firstError': {'count': 1, 'firstLine': 9, 'message': 'DRAW_TOPSLMUKernel ERROR Incompatible vectors - different length'},}) - def test_logscanErrorWithSubstepNameSerial(self): - testLogERRORwithSubstepNameSerial = ''' -RAWtoALL 22:21:40 ToolSvc.TileROD_Decoder INFO ROD 540007 has unexpected data size -RAWtoALL 22:21:40 ToolSvc.TileROD_Decoder WARNING Frag has unexpected size ignoring 6 words to end of ROD frag -RAWtoALL 22:21:40 ToolSvc.TileROD_Decoder ERROR ROB 540007 ROD 540007 has unexpected data size -RAWtoALL 22:21:40 AlgErrorAuditor ERROR Illegal Return Code: Algorithm ManagedAthenaTileMon reported an \ -ERROR, but returned a StatusCode "SUCCESS"''' - - logFileName = 'logWithSubstepNameSerial' - with open(logFileName, 'w') as logFile: - print >> logFile, testLogERRORwithSubstepNameSerial - - logFileReportSerial = athenaLogFileReport(logfile=logFileName, substepName='RAWtoALL') - expectedError = dict(level='ERROR', nLevel=logging.ERROR, - firstError=dict(count=1, firstLine=4, message='ToolSvc.TileROD_Decoder ERROR ROB 54' - '0007 ROD 540007 has unexpected data size')) - self.assertEqual(logFileReportSerial.worstError(), expectedError) - - def test_logscanErrorWithSubstepNameMP(self): - testLogERRORwithSubstepNameMP = ''' -RAWtoALL 22:21:40 2017-07-13 19:23:38,171 ToolSvc.TileROD_Decoder INFO ROD 540007 has unexpected data size -RAWtoALL 22:21:40 2017-07-13 19:23:38,171 ToolSvc.TileROD_Decoder WARNING Frag 0x40f has unexpected size ignoring \ -6 words till the end of ROD frag -RAWtoALL 22:21:40 2017-07-13 19:23:38,171 ToolSvc.TileROD_Decoder ERROR ROB 540007 ROD 540007 has unexpected \ -data size -RAWtoALL 22:21:40 2017-07-13 19:23:38,184 AlgErrorAuditor ERROR Illegal Return Code: Algorithm \ -ManagedAthenaTileMon reported an ERROR, but returned a StatusCode "SUCCESS"''' - - logFileName = 'logWithSubstepNameMP' - with open(logFileName, 'w') as logFile: - print >> logFile, testLogERRORwithSubstepNameMP - - logFileReportMP = athenaLogFileReport(logfile=logFileName, substepName='RAWtoALL') - expectedError = dict(level='ERROR', nLevel=logging.ERROR, - firstError=dict(count=1, firstLine=4, message='ToolSvc.TileROD_Decoder ERROR ROB ' - '540007 ROD 540007 has unexpected data size')) - self.assertEqual(logFileReportMP.worstError(), expectedError) - def test_badAlloc(self): self.assertEqual(self.myFileReport4.worstError(), {'level': 'CATASTROPHE', 'nLevel': stdLogLevels['CATASTROPHE'], 'firstError': {'count': 1, 'firstLine': 11, diff --git a/Trigger/TrigMonitoring/TrigMuonMonitoring/python/TrigMuonMonitCategory.py b/Trigger/TrigMonitoring/TrigMuonMonitoring/python/TrigMuonMonitCategory.py index 7bb3c9a1b322d06b21e5b4b3aef4640a371ac74e..1e00d57b424ec2776bb24b631571da83e0a5fc78 100644 --- a/Trigger/TrigMonitoring/TrigMuonMonitoring/python/TrigMuonMonitCategory.py +++ b/Trigger/TrigMonitoring/TrigMuonMonitoring/python/TrigMuonMonitCategory.py @@ -7,9 +7,9 @@ monitoring_muonNonIso_HI = ['HLT_mu15_L1MU10','HLT_mu14']#8TeV monitoring_muonNonIso_pp = ['HLT_mu60'] #monitoring_muonNonIso_pp = ['HLT_mu50'] -monitoring_muonIso = ['HLT_mu26_ivarmedium'] +monitoring_muonIso = ['HLT_mu26_ivarmedium','HLT_mu26_imedium'] monitoring_muonIso_HI = [''] -monitoring_muonIso_pp = ['HLT_mu26_ivarmedium'] +monitoring_muonIso_pp = ['HLT_mu26_ivarmedium','HLT_mu26_imedium'] monitoring_MSonly = ['HLT_mu60_0eta105_msonly'] monitoring_MSonly_HI = ['HLT_mu15_msonly'] diff --git a/Trigger/TrigMonitoring/TrigMuonMonitoring/src/MuZTPMon.cxx b/Trigger/TrigMonitoring/TrigMuonMonitoring/src/MuZTPMon.cxx index 77444cd3d4f7ec5bce659ff5eec07c81a578b1e1..fa711772789854ec2597a590b359997aefb5e57f 100644 --- a/Trigger/TrigMonitoring/TrigMuonMonitoring/src/MuZTPMon.cxx +++ b/Trigger/TrigMonitoring/TrigMuonMonitoring/src/MuZTPMon.cxx @@ -361,7 +361,7 @@ StatusCode HLTMuonMonTool::fillMuZTPDQA() //LOOP OVER ALL TRIGGER CHAINS for(std::map<std::string, std::string>::iterator itmap=m_ztpmap.begin();itmap!=m_ztpmap.end();++itmap){ - ATH_MSG_DEBUG("Starting chain " << itmap->first << " => " << itmap->second); + ATH_MSG_DEBUG("Starting chain " << itmap->first); std::string histdirmuztp="HLT/MuonMon/MuZTP/"+itmap->second; double ptcut=999999.;