def getFatrasSimHitCreatorMS(name="ISF_FatrasSimHitCreatorMS", **kwargs): mergeable_collection_suffix = "_Fatras" mdt_bare_collection_name = "MDT_Hits" mdt_merger_input_property = "MDTHits" mdt_hits_collection_name = generate_mergeable_collection_name(mdt_bare_collection_name, mergeable_collection_suffix, mdt_merger_input_property) rpc_bare_collection_name = "RPC_Hits" rpc_merger_input_property = "RPCHits" rpc_hits_collection_name = generate_mergeable_collection_name(rpc_bare_collection_name, mergeable_collection_suffix, rpc_merger_input_property) tgc_bare_collection_name = "TGC_Hits" tgc_merger_input_property = "TGCHits" tgc_hits_collection_name = generate_mergeable_collection_name(tgc_bare_collection_name, mergeable_collection_suffix, tgc_merger_input_property) csc_bare_collection_name = "CSC_Hits" csc_merger_input_property = "CSCHits" csc_hits_collection_name = generate_mergeable_collection_name(csc_bare_collection_name, mergeable_collection_suffix, csc_merger_input_property) from G4AtlasApps.SimFlags import simFlags kwargs.setdefault("RandomNumberService" , simFlags.RandomSvc() ) kwargs.setdefault("RandomStreamName" , ISF_FatrasFlags.RandomStreamName()) kwargs.setdefault("Extrapolator" , getPublicTool('ISF_FatrasExtrapolator')) kwargs.setdefault("MDTCollectionName", mdt_hits_collection_name) kwargs.setdefault("RPCCollectionName", rpc_hits_collection_name) kwargs.setdefault("TGCCollectionName", tgc_hits_collection_name) kwargs.setdefault("CSCCollectionName", csc_hits_collection_name) from ISF_FatrasToolsMS.ISF_FatrasToolsMSConf import iFatras__SimHitCreatorMS return iFatras__SimHitCreatorMS(name, **kwargs )
def fatrasSimHitCreatorMSCfg(flags, name="ISF_FatrasSimHitCreatorMS", **kwargs): """Return ISF_FatrasSimHitCreatorMS configured with ComponentAccumulator""" mlog = logging.getLogger(name) mlog.debug('Start configuration') result = ComponentAccumulator() mergeable_collection_suffix = "_Fatras" mdt_hits_collection_name = generate_mergeable_collection_name( bare_collection_name="MDT_Hits", mergeable_collection_suffix=mergeable_collection_suffix, merger_input_property="MDTHits") rpc_hits_collection_name = generate_mergeable_collection_name( bare_collection_name="RPC_Hits", mergeable_collection_suffix=mergeable_collection_suffix, merger_input_property="RPCHits") tgc_hits_collection_name = generate_mergeable_collection_name( bare_collection_name="TGC_Hits", mergeable_collection_suffix=mergeable_collection_suffix, merger_input_property="TGCHits") csc_hits_collection_name = generate_mergeable_collection_name( bare_collection_name="CSC_Hits", mergeable_collection_suffix=mergeable_collection_suffix, merger_input_property="CSCHits") result.merge(RNG(flags.Random.Engine)) kwargs.setdefault("RandomNumberService", result.getService("AthRNGSvc")) kwargs.setdefault("RandomStreamName", flags.Sim.Fatras.RandomStreamName) ##### # Extrapolator from ACTS to be added TODO # kwargs.setdefault("Extrapolator" , getPublicTool('ISF_FatrasExtrapolator')) ##### kwargs.setdefault("MDTCollectionName", mdt_hits_collection_name) kwargs.setdefault("RPCCollectionName", rpc_hits_collection_name) kwargs.setdefault("TGCCollectionName", tgc_hits_collection_name) kwargs.setdefault("CSCCollectionName", csc_hits_collection_name) Muon__MuonTGMeasurementTool = CompFactory.Muon.MuonTGMeasurementTool muon_tgmeasurement_tool = Muon__MuonTGMeasurementTool( name='MuonTGMeasurementTool', UseDSManager=True) result.addPublicTool(muon_tgmeasurement_tool) kwargs.setdefault("MeasurementTool", muon_tgmeasurement_tool) iFatras__SimHitCreatorMS = CompFactory.iFatras.SimHitCreatorMS result.addPublicTool(iFatras__SimHitCreatorMS(name=name, **kwargs)) return result
def fatrasHitCreatorPixelCfg(flags, name="ISF_FatrasHitCreatorPixel", **kwargs): """Return ISF_FatrasHitCreatorPixel configured with ComponentAccumulator""" mlog = logging.getLogger(name) mlog.debug('Start configuration') result = ComponentAccumulator() hits_collection_name = generate_mergeable_collection_name( bare_collection_name="PixelHits", mergeable_collection_suffix="_Fatras", merger_input_property="PixelHits") result.merge(RNG(flags.Random.Engine)) kwargs.setdefault("RandomNumberService", result.getService("AthRNGSvc")) kwargs.setdefault("RandomStreamName", flags.Sim.Fatras.RandomStreamName) kwargs.setdefault("IdHelperName", 'PixelID') kwargs.setdefault("CollectionName", hits_collection_name) # NOTE why it is here ? # FastHitConvertTool = CompFactory.FastHitConvertTool kwargs.setdefault("UseConditionsTool", False) iFatras__HitCreatorSilicon = CompFactory.iFatras.HitCreatorSilicon result.addPublicTool(iFatras__HitCreatorSilicon(name=name, **kwargs)) return result
def getFatrasSimHitCreatorMS(name="ISF_FatrasSimHitCreatorMS", **kwargs): mergeable_collection_suffix = "_Fatras" region = 'MUON' mdt_bare_collection_name = "MDT_Hits" mdt_merger_input_property = "MDTHits" mdt_hits_collection_name = generate_mergeable_collection_name(mdt_bare_collection_name, mergeable_collection_suffix, mdt_merger_input_property, region) rpc_bare_collection_name = "RPC_Hits" rpc_merger_input_property = "RPCHits" rpc_hits_collection_name = generate_mergeable_collection_name(rpc_bare_collection_name, mergeable_collection_suffix, rpc_merger_input_property, region) tgc_bare_collection_name = "TGC_Hits" tgc_merger_input_property = "TGCHits" tgc_hits_collection_name = generate_mergeable_collection_name(tgc_bare_collection_name, mergeable_collection_suffix, tgc_merger_input_property, region) csc_bare_collection_name = "CSC_Hits" csc_merger_input_property = "CSCHits" csc_hits_collection_name = generate_mergeable_collection_name(csc_bare_collection_name, mergeable_collection_suffix, csc_merger_input_property, region) from G4AtlasApps.SimFlags import simFlags kwargs.setdefault("RandomNumberService" , simFlags.RandomSvc() ) kwargs.setdefault("RandomStreamName" , ISF_FatrasFlags.RandomStreamName()) kwargs.setdefault("Extrapolator" , getPublicTool('ISF_FatrasExtrapolator')) kwargs.setdefault("MDTCollectionName", mdt_hits_collection_name) kwargs.setdefault("RPCCollectionName", rpc_hits_collection_name) kwargs.setdefault("TGCCollectionName", tgc_hits_collection_name) kwargs.setdefault("CSCCollectionName", csc_hits_collection_name) from MuonTGRecTools.MuonTGRecToolsConf import Muon__MuonTGMeasurementTool MuonTGMeasurementTool = Muon__MuonTGMeasurementTool( name = 'MuonTGMeasurementTool', UseDSManager = True ) from AthenaCommon.AppMgr import ToolSvc ToolSvc += MuonTGMeasurementTool kwargs.setdefault("MeasurementTool", MuonTGMeasurementTool) from ISF_FatrasToolsMS.ISF_FatrasToolsMSConf import iFatras__SimHitCreatorMS return iFatras__SimHitCreatorMS(name, **kwargs )
def getBLMSensorSD(name="BLMSensorSD", **kwargs): bare_collection_name = "BLMHits" mergeable_collection_suffix = "_G4" merger_input_property = "BLMHits" hits_collection_name = generate_mergeable_collection_name(bare_collection_name, mergeable_collection_suffix, merger_input_property) kwargs.setdefault("LogicalVolumeNames", ["Pixel::blmDiamondLog"]) kwargs.setdefault("OutputCollectionNames", [hits_collection_name]) return CfgMgr.BLMSensorSDTool(name, **kwargs)
def getRPCSensitiveDetector(name="RPCSensitiveDetector", **kwargs): bare_collection_name = "RPC_Hits" mergeable_collection_suffix = "_G4" merger_input_property = "RPCHits" hits_collection_name = generate_mergeable_collection_name( bare_collection_name, mergeable_collection_suffix, merger_input_property) kwargs.setdefault("LogicalVolumeNames", ["Muon::gazGap"]) kwargs.setdefault("OutputCollectionNames", [hits_collection_name]) return CfgMgr.RPCSensitiveDetectorTool(name, **kwargs)
def getTGCSensitiveDetectorCosmics(name="TGCSensitiveDetectorCosmics", **kwargs): bare_collection_name = "TGC_Hits" mergeable_collection_suffix = "_G4" merger_input_property = "TGCHits" hits_collection_name = generate_mergeable_collection_name( bare_collection_name, mergeable_collection_suffix, merger_input_property) kwargs.setdefault("LogicalVolumeNames", ["Muon::muo::TGCGas"]) kwargs.setdefault("OutputCollectionNames", [hits_collection_name]) return CfgMgr.TGCSensitiveDetectorCosmicsTool(name, **kwargs)
def getMDTSensitiveDetector(name="MDTSensitiveDetector", **kwargs): bare_collection_name = "MDT_Hits" mergeable_collection_suffix = "_G4" merger_input_property = "MDTHits" region = "MUON" hits_collection_name = generate_mergeable_collection_name( bare_collection_name, mergeable_collection_suffix, merger_input_property, region) kwargs.setdefault("LogicalVolumeNames", ["Muon::SensitiveGas"]) kwargs.setdefault("OutputCollectionNames", [hits_collection_name]) return CfgMgr.MDTSensitiveDetectorTool(name, **kwargs)
def getTileGeoG4SD(name="TileGeoG4SD", **kwargs): bare_collection_name = "TileHitVec" mergeable_collection_suffix = "_G4" merger_input_property = "TileHits" region = "CALO" hits_collection_name = generate_mergeable_collection_name( bare_collection_name, mergeable_collection_suffix, merger_input_property, region) kwargs.setdefault("LogicalVolumeNames", ["Tile::Scintillator"]) kwargs.setdefault("OutputCollectionNames", [hits_collection_name]) return CfgMgr.TileGeoG4SDTool(name, **kwargs)
def getCSCSensitiveDetectorCosmics(name="CSCSensitiveDetectorCosmics", **kwargs): bare_collection_name = "CSC_Hits" mergeable_collection_suffix = "_G4" merger_input_property = "CSCHits" region = "MUON" hits_collection_name = generate_mergeable_collection_name( bare_collection_name, mergeable_collection_suffix, merger_input_property, region) kwargs.setdefault("LogicalVolumeNames", ["Muon::CscArCO2"]) kwargs.setdefault("OutputCollectionNames", [hits_collection_name]) return CfgMgr.CSCSensitiveDetectorCosmicsTool(name, **kwargs)
def getSctSensorSD(name="SctSensorSD", **kwargs): bare_collection_name = "SCT_Hits" mergeable_collection_suffix = "_G4" merger_input_property = "SCTHits" region = "ID" hits_collection_name = generate_mergeable_collection_name(bare_collection_name, mergeable_collection_suffix, merger_input_property, region) kwargs.setdefault("LogicalVolumeNames", ["SCT::BRLSensor","SCT::ECSensor0","SCT::ECSensor1", "SCT::ECSensor2","SCT::ECSensor3"]) kwargs.setdefault("OutputCollectionNames", [hits_collection_name]) return CfgMgr.SctSensorSDTool(name, **kwargs)
def getPixelSensorSD(name="PixelSensorSD", **kwargs): bare_collection_name = "PixelHits" mergeable_collection_suffix = "_G4" merger_input_property = "PixelHits" region = "ID" hits_collection_name = generate_mergeable_collection_name(bare_collection_name, mergeable_collection_suffix, merger_input_property, region) kwargs.setdefault("LogicalVolumeNames", ["Pixel::siBLayLog","Pixel::siLog","Pixel::dbmDiamondLog"]) #kwargs.setdefault("LogicalVolumeNames", ["Pixel::siBLayLog","Pixel::siLog"]) kwargs.setdefault("OutputCollectionNames", [hits_collection_name]) return CfgMgr.PixelSensorSDTool(name, **kwargs)
def test_isNotISFRunAndHITSMergingRequired_expectBareCollectioNameReturned( self): simFlags.ISFRun.set_Value(False) ISF_Flags.HITSMergingRequired.set_Value(True) bare_collection_name = 'aTestCollection' collection_suffix = '_TESTSUFFIX' merger_input_property = 'PixelHits' actual_collection_name = generate_mergeable_collection_name( bare_collection_name, collection_suffix, merger_input_property) expected_collection_name = 'aTestCollection' self.assertEqual(expected_collection_name, actual_collection_name)
def getFatrasHitCreatorTRT(name="ISF_FatrasHitCreatorTRT", **kwargs): bare_collection_name = "TRTUncompressedHits" mergeable_collection_suffix = "_Fatras" merger_input_property = "TRTUncompressedHits" hits_collection_name = generate_mergeable_collection_name(bare_collection_name, mergeable_collection_suffix, merger_input_property) from G4AtlasApps.SimFlags import simFlags kwargs.setdefault("RandomNumberService" , simFlags.RandomSvc() ) kwargs.setdefault("RandomStreamName" , ISF_FatrasFlags.RandomStreamName()) kwargs.setdefault("CollectionName" , hits_collection_name) from ISF_FatrasToolsID.ISF_FatrasToolsIDConf import iFatras__HitCreatorTRT return iFatras__HitCreatorTRT(name, **kwargs )
def getMinBiasScintillatorSD(name="MinBiasScintillatorSD", **kwargs): bare_collection_name = "MBTSHits" mergeable_collection_suffix = "_G4" merger_input_property = "MBTSHits" hits_collection_name = generate_mergeable_collection_name( bare_collection_name, mergeable_collection_suffix, merger_input_property) kwargs.setdefault("LogicalVolumeNames", ["LArMgr::MBTS1", "LArMgr::MBTS2"]) kwargs.setdefault("OutputCollectionNames", [hits_collection_name]) from G4AtlasApps.SimFlags import simFlags from AthenaCommon.BeamFlags import jobproperties if jobproperties.Beam.beamType() == 'cosmics' or (hasattr( simFlags, "ReadTR") and simFlags.ReadTR.statusOn): kwargs.setdefault("DeltaTHit", [1]) kwargs.setdefault("DoTOFCorrection", False) return CfgMgr.MinBiasScintillatorSDTool(name, **kwargs)
def getFatrasHitCreatorSCT(name="ISF_FatrasHitCreatorSCT", **kwargs): bare_collection_name = "SCT_Hits" mergeable_collection_suffix = "_Fatras" merger_input_property = "SCTHits" hits_collection_name = generate_mergeable_collection_name(bare_collection_name, mergeable_collection_suffix, merger_input_property) from G4AtlasApps.SimFlags import simFlags kwargs.setdefault("RandomNumberService" , simFlags.RandomSvc() ) kwargs.setdefault("RandomStreamName" , ISF_FatrasFlags.RandomStreamName()) kwargs.setdefault("IdHelperName" , 'SCT_ID') kwargs.setdefault("CollectionName" , hits_collection_name) kwargs.setdefault("UseConditionsSvc", False) from ISF_FatrasToolsID.ISF_FatrasToolsIDConf import iFatras__HitCreatorSilicon return iFatras__HitCreatorSilicon(name, **kwargs )
def test_isNotISFRunAndNoHITSMergingRequired_expectBareCollectioNameReturned(self): simFlags.ISFRun.set_Value(False) mergeDict = {'ID':False, 'CALO':True, 'MUON':False} ISF_Flags.HITSMergingRequired.get_Value().update(mergeDict) bare_collection_name = 'aTestCollection' collection_suffix = '_TESTSUFFIX' merger_input_property = 'PixelHits' region = 'ID' actual_collection_name = generate_mergeable_collection_name(bare_collection_name, collection_suffix, merger_input_property, region) expected_collection_name = 'aTestCollection' self.assertEqual(expected_collection_name, actual_collection_name)
def getLArHECSensitiveDetector(name="LArHECSensitiveDetector", **kwargs): bare_collection_name = "LArHitHEC" mergeable_collection_suffix = "_G4" merger_input_property = "LArHECHits" region = "CALO" hits_collection_name = generate_mergeable_collection_name(bare_collection_name, mergeable_collection_suffix, merger_input_property, region) #kwargs.setdefault("SliceVolumes",["LAr::HEC::Module::Depth::Slice"]) #kwargs.setdefault("LocalVolumes",["LAr::HEC::Module::Depth::Slice::Local"]) kwargs.setdefault("WheelVolumes",["LArMgr::LAr::HEC::Module::Depth::Slice"]) # You might think this should go here, but we don't think so! LAr::HEC::Module::Depth::Slice::Wheel"]) # No effect currently kwargs.setdefault("OutputCollectionNames", [hits_collection_name]) return CfgMgr.LArG4__HECSDTool(name, **kwargs)
def test_isISFRunAndNoHITSMergingRequiredWithEmptyCollectionMergerAlgorithm_expectCollectionMergerAlgorithmUntouched( self): simFlags.ISFRun.set_Value(True) ISF_Flags.HITSMergingRequired.set_Value(False) bare_collection_name = 'aTestCollection' collection_suffix = '_TESTSUFFIX' merger_input_property = 'PixelHits' actual_collection_name = generate_mergeable_collection_name( bare_collection_name, collection_suffix, merger_input_property) collection_merger = getAlgorithm('ISF_CollectionMerger') actual_collection_merger_input = collection_merger.InputPixelHits expected_collection_merger_input = list() self.assertEqual(expected_collection_merger_input, actual_collection_merger_input)
def getLArFCALSensitiveDetector(name="LArFCALSensitiveDetector", **kwargs): bare_collection_name = "LArHitFCAL" mergeable_collection_suffix = "_G4" merger_input_property = "LArFCALHits" region = "CALO" hits_collection_name = generate_mergeable_collection_name(bare_collection_name, mergeable_collection_suffix, merger_input_property, region) kwargs.setdefault("FCAL1Volumes",["LArMgr::LAr::FCAL::Module1::Gap"]) kwargs.setdefault("FCAL2Volumes",["LArMgr::LAr::FCAL::Module2::Gap"]) kwargs.setdefault("FCAL3Volumes",["LArMgr::LAr::FCAL::Module3::Gap"]) # No effect currently kwargs.setdefault("OutputCollectionNames", [hits_collection_name]) # Hook for fast simulation from G4AtlasApps.SimFlags import simFlags kwargs.setdefault("UseFrozenShowers", simFlags.LArParameterization()>0) return CfgMgr.LArG4__FCALSDTool(name, **kwargs)
def getLArEMBSensitiveDetector(name="LArEMBSensitiveDetector", **kwargs): bare_collection_name = "LArHitEMB" mergeable_collection_suffix = "_G4" merger_input_property = "LArEMBHits" region = "CALO" hits_collection_name = generate_mergeable_collection_name(bare_collection_name, mergeable_collection_suffix, merger_input_property, region) ## Main configuration kwargs.setdefault("StacVolumes",["LArMgr::LAr::EMB::STAC"]) kwargs.setdefault("PresamplerVolumes",["LArMgr::LAr::Barrel::Presampler::Module"]) # No effect currently kwargs.setdefault("OutputCollectionNames", [hits_collection_name]) # Hook for fast simulation from G4AtlasApps.SimFlags import simFlags kwargs.setdefault("UseFrozenShowers", simFlags.LArParameterization()>0) return CfgMgr.LArG4__EMBSDTool(name, **kwargs)
def getTRTSensitiveDetector(name="TRTSensitiveDetector", **kwargs): bare_collection_name = "TRTUncompressedHits" mergeable_collection_suffix = "_G4" merger_input_property = "TRTUncompressedHits" hits_collection_name = generate_mergeable_collection_name( bare_collection_name, mergeable_collection_suffix, merger_input_property) logicalVolumeNames = ["TRT::Gas", "TRT::GasMA"] from AtlasGeoModel.InDetGMJobProperties import GeometryFlags as geoFlags if geoFlags.Run() == "RUN2": ## RUN2 configuration logicalVolumeNames += [ "TRT::Gas_Ar", "TRT::GasMA_Ar", "TRT::Gas_Kr", "TRT::GasMA_Kr" ] kwargs.setdefault("LogicalVolumeNames", logicalVolumeNames) kwargs.setdefault("OutputCollectionNames", [hits_collection_name]) return CfgMgr.TRTSensitiveDetectorTool(name, **kwargs)
def fatrasHitCreatorTRTCfg(flags, name="ISF_FatrasHitCreatorTRT", **kwargs): """Return ISF_FatrasHitCreatorTRT configured with ComponentAccumulator""" mlog = logging.getLogger(name) mlog.debug('Start configuration') result = ComponentAccumulator() hits_collection_name = generate_mergeable_collection_name( bare_collection_name="TRTUncompressedHits", mergeable_collection_suffix="_Fatras", merger_input_property="TRTUncompressedHits") result.merge(RNG(flags.Random.Engine)) kwargs.setdefault("RandomNumberService", result.getService("AthRNGSvc")) kwargs.setdefault("RandomStreamName", flags.Sim.Fatras.RandomStreamName) kwargs.setdefault("CollectionName", hits_collection_name) iFatras__HitCreatorTRT = CompFactory.iFatras.HitCreatorTRT result.addPublicTool(iFatras__HitCreatorTRT(name=name, **kwargs)) return result
def test_isISFRunAndNoHITSMergingRequiredWithEmptyCollectionMergerAlgorithm_expectCollectionMergerAlgorithmUntouched(self): simFlags.ISFRun.set_Value(True) mergeDict = {'ID':False, 'CALO':True, 'MUON':False} ISF_Flags.HITSMergingRequired.get_Value().update(mergeDict) bare_collection_name = 'aTestCollection' collection_suffix = '_TESTSUFFIX' merger_input_property = 'PixelHits' region = 'ID' actual_collection_name = generate_mergeable_collection_name(bare_collection_name, collection_suffix, merger_input_property, region) collection_merger = getAlgorithm('ISF_CollectionMerger') actual_collection_merger_input = collection_merger.InputPixelHits expected_collection_merger_input = list() self.assertEqual(expected_collection_merger_input, actual_collection_merger_input)
def getLArEMECSensitiveDetector(name="LArEMECSensitiveDetector", **kwargs): bare_collection_name = "LArHitEMEC" mergeable_collection_suffix = "_G4" merger_input_property = "LArEMECHits" region = "CALO" hits_collection_name = generate_mergeable_collection_name(bare_collection_name, mergeable_collection_suffix, merger_input_property, region) from G4AtlasApps.SimFlags import simFlags if simFlags.SimLayout.get_Value() not in ["tb_LArH6_2002","tb_LArH6EC_2002"]: kwargs.setdefault("NegIWVolumes",["LArMgr::LAr::EMEC::Neg::InnerWheel"]) kwargs.setdefault("NegOWVolumes",["LArMgr::LAr::EMEC::Neg::OuterWheel"]) kwargs.setdefault("NegBOBarretteVolumes",["LArMgr::LAr::EMEC::Neg::BackOuterBarrette::Module::Phidiv"]) if simFlags.SimLayout.get_Value()!="tb_LArH6EC_2002": kwargs.setdefault("PosIWVolumes",["LArMgr::LAr::EMEC::Pos::InnerWheel"]) kwargs.setdefault("PosOWVolumes",["LArMgr::LAr::EMEC::Pos::OuterWheel"]) kwargs.setdefault("PosBOBarretteVolumes",["LArMgr::LAr::EMEC::Pos::BackOuterBarrette::Module::Phidiv"]) kwargs.setdefault("PresVolumes", ["LArMgr::LAr::Endcap::Presampler::LiquidArgon"]) # No effect currently kwargs.setdefault("OutputCollectionNames", [hits_collection_name]) # Hook for fast simulation kwargs.setdefault("UseFrozenShowers", simFlags.LArParameterization()>0) return CfgMgr.LArG4__EMECSDTool(name, **kwargs)