diff --git a/LArCalorimeter/LArG4/LArG4SD/python/LArG4SDToolConfig.py b/LArCalorimeter/LArG4/LArG4SD/python/LArG4SDToolConfig.py index 125467b1d6c1456d49cf899198edd6ecb2a5c5cd..361aa1600d42a025b9dc3a10d892e6b360612d83 100644 --- a/LArCalorimeter/LArG4/LArG4SD/python/LArG4SDToolConfig.py +++ b/LArCalorimeter/LArG4/LArG4SD/python/LArG4SDToolConfig.py @@ -6,6 +6,9 @@ from ISF_Algorithms.collection_merger_helpersNew import CollectionMergerCfg from LArG4SD.LArG4SDConf import LArG4__EMBSDTool from LArG4SD.LArG4SDConf import LArG4__EMECSDTool from LArG4SD.LArG4SDConf import LArG4__FCALSDTool +from LArG4SD.LArG4SDConf import LArG4__HECSDTool +from LArG4SD.LArG4SDConf import LArG4__MiniFCALSDTool +from LArG4SD.LArG4SDConf import LArG4__DeadSDTool def getLArActiveSensitiveDetector(name="LArActiveSensitiveDetector", **kwargs): ## Main configuration @@ -32,7 +35,7 @@ def getLArActiveSensitiveDetector(name="LArActiveSensitiveDetector", **kwargs): kwargs.setdefault("OutputCollectionNames", ["LArCalibrationHitActive"]) return CfgMgr.LArG4__ActiveSDTool(name, **kwargs) -def getLArDeadSensitiveDetector(name="LArDeadSensitiveDetector", **kwargs): +def LArDeadSensitiveDetectorToolCfg(ConfigFlags, name="LArDeadSensitiveDetector", **kwargs): ## Main configuration kwargs.setdefault("BarrelCryVolumes", ["LArMgr::LAr::Barrel::Cryostat::InnerWall::Vis", "LArMgr::LAr::Barrel::Cryostat::Sector::*", @@ -113,16 +116,14 @@ def getLArDeadSensitiveDetector(name="LArDeadSensitiveDetector", **kwargs): "LArMgr::LAr::HEC::Module::Depth::FirstAbsorber", "LArMgr::LAr::HEC::Module::Depth::FirstAbsorber::TieRod"]) # Running PID calibration hits? - from G4AtlasApps.SimFlags import simFlags - kwargs.setdefault("ParticleID",simFlags.ParticleID()) - kwargs.setdefault("doEscapedEnergy",simFlags.CalibrationRun.get_Value()!='DeadLAr') + kwargs.setdefault("ParticleID", ConfigFlags.Sim.ParticleID) + kwargs.setdefault("doEscapedEnergy",ConfigFlags.Sim.CalibrationRun !='DeadLAr') # No effect currently - outputCollectionName = "LArCalibrationHitDeadMaterial" - from G4AtlasApps.SimFlags import simFlags - if simFlags.CalibrationRun.get_Value() in ['LAr', 'LAr+Tile']: + outputCollectionName = "LArCalibrationHitDeadMaterial" + if ConfigFlags.Sim.CalibrationRun in ['LAr', 'LAr+Tile']: outputCollectionName = "LArCalibrationHitDeadMaterial_DEAD" kwargs.setdefault("HitCollectionName", outputCollectionName) - return CfgMgr.LArG4__DeadSDTool(name, **kwargs) + return LArG4__DeadSDTool(name, **kwargs) def LArEMBSensitiveDetectorCfg(ConfigFlags,name="LArEMBSensitiveDetector", **kwargs): @@ -197,20 +198,25 @@ def LArFCALSensitiveDetectorCfg(ConfigFlags, name="LArFCALSensitiveDetector", ** result.merge(acc) return result, LArG4__FCALSDTool(name, **kwargs) -def getLArHECSensitiveDetector(name="LArHECSensitiveDetector", **kwargs): +def LArHECSensitiveDetectorCfg(ConfigFlags, name="LArHECSensitiveDetector", **kwargs): + result = ComponentAccumulator() bare_collection_name = "LArHitHEC" mergeable_collection_suffix = "_G4" merger_input_property = "LArHECHits" - hits_collection_name = generate_mergeable_collection_name(bare_collection_name, + acc, hits_collection_name = CollectionMergerCfg(ConfigFlags, bare_collection_name, mergeable_collection_suffix, merger_input_property) + + + kwargs.setdefault("WheelVolumes",["LArMgr::LAr::HEC::Module::Depth::Slice"]) #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) + + result.merge(acc) + return result, LArG4__HECSDTool(name, **kwargs) def getLArInactiveSensitiveDetector(name="LArInactiveSensitiveDetector", **kwargs): ## Main configuration @@ -273,11 +279,12 @@ def getLArInactiveSensitiveDetector(name="LArInactiveSensitiveDetector", **kwarg kwargs.setdefault("OutputCollectionNames", ["LArCalibrationHitInactive"]) return CfgMgr.LArG4__InactiveSDTool(name, **kwargs) -def getLArMiniFCALSensitiveDetector(name="LArMiniFCALSensitiveDetector", **kwargs): +def LArMiniFCALSensitiveDetectorToolCfg(ConfigFlags, name="LArMiniFCALSensitiveDetector", **kwargs): kwargs.setdefault("MiniVolumes",["LArMgr::MiniFCAL::Wafer"]) # No effect currently kwargs.setdefault("OutputCollectionNames", ["LArHitMiniFCAL"]) - return CfgMgr.LArG4__MiniFCALSDTool(name, **kwargs) + + return LArG4__MiniFCALSDTool(name, **kwargs) def getCalibrationDefaultCalculator(name="CalibrationDefaultCalculator", **kwargs): return CfgMgr.LArG4__CalibrationDefaultCalculator(name, **kwargs) diff --git a/LArCalorimeter/LArG4/LArG4SD/test/LArG4SDToolConfig_test.py b/LArCalorimeter/LArG4/LArG4SD/test/LArG4SDToolConfig_test.py index 389a87e86016132f56e11a1248fa40e1cb1f48e9..c5f3a7f3ceb437a3fbfff88459fda8b72268d6ab 100755 --- a/LArCalorimeter/LArG4/LArG4SD/test/LArG4SDToolConfig_test.py +++ b/LArCalorimeter/LArG4/LArG4SD/test/LArG4SDToolConfig_test.py @@ -37,8 +37,10 @@ if __name__ == '__main__': from LArG4SD.LArG4SDToolConfig import LArEMBSensitiveDetectorCfg from LArG4SD.LArG4SDToolConfig import LArEMECSensitiveDetectorCfg from LArG4SD.LArG4SDToolConfig import LArFCALSensitiveDetectorCfg + from LArG4SD.LArG4SDToolConfig import LArHECSensitiveDetectorCfg + from LArG4SD.LArG4SDToolConfig import LArMiniFCALSensitiveDetectorToolCfg + from LArG4SD.LArG4SDToolConfig import LArDeadSensitiveDetectorToolCfg - #TODO CHECK IF THESE ARE ALL PUBLIC TOOLS! acc1, tool1 = LArEMBSensitiveDetectorCfg(ConfigFlags) acc1.addPublicTool(tool1) cfg.merge(acc1) @@ -52,6 +54,17 @@ if __name__ == '__main__': acc3.addPublicTool(tool3) cfg.merge(acc3) + acc4, tool4 = LArHECSensitiveDetectorCfg(ConfigFlags) + acc4.addPublicTool(tool4) + cfg.merge(acc4) + + toolMiniFCAL = LArMiniFCALSensitiveDetectorToolCfg(ConfigFlags) + cfg.addPublicTool(toolMiniFCAL) + + toolDeadSensitiveDetector = LArDeadSensitiveDetectorToolCfg(ConfigFlags) + cfg.addPublicTool(toolDeadSensitiveDetector) + + cfg.printConfig(withDetails=True, summariseProps = True) ConfigFlags.dump() diff --git a/Simulation/G4Atlas/G4AtlasApps/python/SimConfigFlags.py b/Simulation/G4Atlas/G4AtlasApps/python/SimConfigFlags.py index c0dfdfa04e29758d7fa684c47963462364ef301d..f909c266ead5a50782f5edc92b3bcdc81dc4fbbe 100644 --- a/Simulation/G4Atlas/G4AtlasApps/python/SimConfigFlags.py +++ b/Simulation/G4Atlas/G4AtlasApps/python/SimConfigFlags.py @@ -8,5 +8,8 @@ def createSimConfigFlags(): scf.addFlag("Sim.ISF.Run",False) scf.addFlag("Sim.ISF.HITSMergingRequired", True) + scf.addFlag('Sim.ParticleID',False) + scf.addFlag("Sim.CalibrationRun", "DeadLAr") # 'LAr', 'Tile', 'LAr+Tile', 'DeadLAr' + return scf