ATLAS Offline Software
RunPrintSiDetElements.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 """Run PrintSiDetectorElements
3 
4 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
5 """
6 import sys
7 from argparse import ArgumentParser
8 
9 from AthenaConfiguration.AllConfigFlags import initConfigFlags
10 
11 # Argument parsing
12 parser = ArgumentParser("PrintSiDetectorElements.py")
13 parser.add_argument("detectors", metavar="detectors", type=str, nargs="*",
14  help="Specify the list of detectors")
15 parser.add_argument("--localgeo", default=False, action="store_true",
16  help="Use local geometry XML files")
17 parser.add_argument("--geometrytag",default="ATLAS-P2-RUN4-03-00-00", type=str,
18  help="The geometry tag to use")
19 parser.add_argument("--sqlitefile",default="", type=str,
20  help="SQLite input file to use")
21 args = parser.parse_args()
22 
23 
24 # Some info about the job
25 print("----PrintSiDetectorElements----")
26 print()
27 if args.localgeo:
28  print("Using local Geometry XML files")
29 if not args.detectors:
30  print("Running complete detector")
31 else:
32  print("Running with: {}".format(", ".join(args.detectors)))
33 print()
34 
35 # Configure
36 flags = initConfigFlags()
37 flags.Concurrency.NumThreads = 1
38 if flags.Concurrency.NumThreads > 0:
39  flags.Scheduler.ShowDataDeps = True
40  flags.Scheduler.ShowDataFlow = True
41  flags.Scheduler.ShowControlFlow = True
42 
43 flags.GeoModel.Align.Dynamic = False
44 flags.GeoModel.AtlasVersion = args.geometrytag
45 flags.Input.isMC = True
46 flags.IOVDb.GlobalTag = "OFLCOND-MC15c-SDR-14-05"
47 flags.Input.Files = []
48 
49 if args.localgeo:
50  flags.ITk.Geometry.AllLocal = True
51 
52 elif args.sqlitefile:
53  print("Using SQLite input")
54  flags.GeoModel.SQLiteDB = True
55  from AtlasGeoModel import CommonGeoDB
56  CommonGeoDB.SetupLocalSqliteGeometryDb(args.sqlitefile,args.geometrytag)
57 
58 from AthenaConfiguration.DetectorConfigFlags import setupDetectorFlags
59 setupDetectorFlags(flags, args.detectors, toggle_geometry=True)
60 
61 flags.lock()
62 
63 # Construct our accumulator to run
64 from AthenaConfiguration.MainServicesConfig import MainServicesCfg
65 acc = MainServicesCfg(flags)
66 from AthenaConfiguration.ComponentFactory import CompFactory
67 
68 # ITk Pixel
69 if flags.Detector.EnableITkPixel:
70  from PixelGeoModelXml.ITkPixelGeoModelConfig import ITkPixelReadoutGeometryCfg
71  acc.merge(ITkPixelReadoutGeometryCfg(flags))
72 
73  ReadPixelDetElements = CompFactory.ReadSiDetectorElements('ReadPixelDetElements')
74  ReadPixelDetElements.ManagerName = "ITkPixel"
75  ReadPixelDetElements.DetEleCollKey = "ITkPixelDetectorElementCollection"
76  ReadPixelDetElements.UseConditionsTools = False
77  acc.addEventAlgo(ReadPixelDetElements)
78 
79  PrintPixelDetElements = CompFactory.PrintSiElements('PrintPixelDetElements')
80  PrintPixelDetElements.OutputLevel = 5
81  PrintPixelDetElements.DetectorManagerNames = ["ITkPixel"]
82  acc.addEventAlgo(PrintPixelDetElements)
83 
84 # ITk Strip
85 if flags.Detector.EnableITkStrip:
86  from StripGeoModelXml.ITkStripGeoModelConfig import ITkStripReadoutGeometryCfg
87  acc.merge(ITkStripReadoutGeometryCfg(flags))
88 
89  ReadStripDetElements = CompFactory.ReadSiDetectorElements('ReadStripDetElements')
90  ReadStripDetElements.ManagerName = "ITkStrip"
91  ReadStripDetElements.DetEleCollKey = "ITkStripDetectorElementCollection"
92  ReadStripDetElements.UseConditionsTools = False
93  acc.addEventAlgo(ReadStripDetElements)
94 
95  PrintStripDetElements = CompFactory.PrintSiElements('PrintStripDetElements')
96  PrintStripDetElements.OutputLevel = 5
97  PrintStripDetElements.DetectorManagerNames = ["ITkStrip"]
98  acc.addEventAlgo(PrintStripDetElements)
99 
100 # Execute and finish
101 sc = acc.run(maxEvents=1)
102 
103 # Success should be 0
104 sys.exit(not sc.isSuccess())
vtune_athena.format
format
Definition: vtune_athena.py:14
python.MainServicesConfig.MainServicesCfg
def MainServicesCfg(flags, LoopMgr='AthenaEventLoopMgr')
Definition: MainServicesConfig.py:252
TCS::join
std::string join(const std::vector< std::string > &v, const char c=',')
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/Root/StringUtils.cxx:10
python.DetectorConfigFlags.setupDetectorFlags
def setupDetectorFlags(flags, custom_list=None, use_metadata=False, toggle_geometry=False, validate_only=False, keep_beampipe=False)
Definition: DetectorConfigFlags.py:286
ITkPixelGeoModelConfig.ITkPixelReadoutGeometryCfg
def ITkPixelReadoutGeometryCfg(flags, setGeometryAlignable=False, setAlignmentFolderName="/Indet/Align")
Definition: ITkPixelGeoModelConfig.py:39
ITkStripGeoModelConfig.ITkStripReadoutGeometryCfg
def ITkStripReadoutGeometryCfg(flags, setGeometryAlignable=False, setAlignmentFolderName="/Indet/Align")
Definition: ITkStripGeoModelConfig.py:39
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
Muon::print
std::string print(const MuPatSegment &)
Definition: MuonTrackSteering.cxx:28