4Run geantino processing for material step creation
7from argparse
import ArgumentParser
8from AthenaCommon.Logging
import log
9from AthenaConfiguration.AllConfigFlags
import initConfigFlags
10from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
11from AthenaConfiguration.ComponentFactory
import CompFactory
14parser = ArgumentParser(
"RunGeantinoStepRecordingITk.py")
15parser.add_argument(
"detectors", metavar=
"detectors", type=str, nargs=
"*",
16 help=
"Specify the list of detectors")
17parser.add_argument(
"--simulate", default=
True, action=
"store_true",
18 help=
"Run Simulation")
19parser.add_argument(
"--localgeo", default=
False, action=
"store_true",
20 help=
"Use local geometry Xml files")
21parser.add_argument(
"-V",
"--verboseAccumulators", default=
False,
23 help=
"Print full details of the AlgSequence")
24parser.add_argument(
"-S",
"--verboseStoreGate", default=
False,
26 help=
"Dump the StoreGate(s) each event iteration")
27parser.add_argument(
"--maxEvents",default=10, type=int,
28 help=
"The number of events to run. 0 skips execution")
29parser.add_argument(
"--skipEvents",default=0, type=int,
30 help=
"The number of events to skip")
31from AthenaConfiguration.TestDefaults
import defaultGeometryTags
32parser.add_argument(
"--geometrytag",default=defaultGeometryTags.RUN4, type=str,
33 help=
"The geometry tag to use")
34parser.add_argument(
"--inputevntfile",
35 default=
"/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/PhaseIIUpgrade/EVNT/mc15_14TeV.singlegeantino_E10GeV_etaFlatnp0_6.5M.evgen.EVNT.pool.root",
36 help=
"The input EVNT file to use")
37parser.add_argument(
"--outputhitsfile",default=
"myHITS.pool.root", type=str,
38 help=
"The output HITS filename")
39args = parser.parse_args()
43print(
"----GeantinoStepRecording for ITk geometry----")
45print(
"Using Geometry Tag: "+args.geometrytag)
47 print(
"...overridden by local Geometry Xml files")
48print(
"Input EVNT File:"+args.inputevntfile)
50 print(
"Running complete detector")
52 print(
"Running with: {}".format(
", ".join(args.detectors)))
56flags = initConfigFlags()
58 flags.ITk.Geometry.AllLocal =
True
60flags.Input.Files = [args.inputevntfile]
61flags.Output.HITSFileName = args.outputhitsfile
63flags.GeoModel.AtlasVersion = args.geometrytag
64flags.IOVDb.GlobalTag =
"OFLCOND-SIM-00-00-00"
65flags.GeoModel.Align.Dynamic =
False
67flags.Exec.SkipEvents = args.skipEvents
69from AthenaConfiguration.DetectorConfigFlags
import setupDetectorFlags
70detectors = args.detectors
if 'detectors' in args
and args.detectors
else [
'ITkPixel',
'ITkStrip',
'HGTD']
71detectors.append(
'Bpipe')
72setupDetectorFlags(flags, detectors, toggle_geometry=
True)
74log.debug(
'Lock config flags now.')
78acc = MainServicesCfg(flags)
81if args.verboseAccumulators:
82 acc.printConfig(withDetails=
True)
83if args.verboseStoreGate:
84 acc.getService(
"StoreGateSvc").Dump =
True
86log.debug(
'Dumping of ConfigFlags now.')
89from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
90acc.merge(PoolReadCfg(flags))
93from BeamEffects.BeamEffectsAlgConfig
import BeamEffectsAlgCfg
94acc.merge(BeamEffectsAlgCfg(flags))
96beamcond = acc.getCondAlgo(
"BeamSpotCondAlg")
109svcName =
"G4UA::MaterialStepRecorderUserActionSvc"
110from TrkG4UserActions.TrkG4UserActionsConfig
import MaterialStepRecorderUserActionSvcCfg
111userAction = acc.getPrimaryAndMerge(MaterialStepRecorderUserActionSvcCfg(flags,svcName,**kwargs))
112kwargs.update(UserActionSvc=userAction)
115 from G4AtlasAlg.G4AtlasAlgConfig
import G4AtlasAlgCfg
116 acc.merge(G4AtlasAlgCfg(flags,
"ITkG4AtlasAlg", **kwargs))
117 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
118 from SimuJobTransforms.SimOutputConfig
import getStreamHITS_ItemList
119 acc.merge( OutputStreamCfg(flags,
"HITS", ItemList=getStreamHITS_ItemList(flags), disableEventTag=
True, AcceptAlgs=[
'ITkG4AtlasAlg']) )
121from xAODEventInfoCnv.xAODEventInfoCnvConfig
import EventInfoCnvAlgCfg
122acc.merge(EventInfoCnvAlgCfg(flags))
124AthenaOutputStream=CompFactory.AthenaOutputStream
125AthenaOutputStreamTool=CompFactory.AthenaOutputStreamTool
127 TopLevelContainerName =
"",
128 SubLevelBranchName =
"<type>/<key>" )
131 WritingTool = writingTool,
132 ItemList=[
'EventInfo#*',
'Trk::MaterialStepCollection#*'],
133 MetadataItemList = [
"EventStreamInfo#MaterialStepCollectionStream",
"IOVMetaDataContainer#*" ],
134 OutputFile =
"MaterialStepCollection.root")
136StoreGateSvc=CompFactory.StoreGateSvc
138outputStream.MetadataStore = acc.getService(
"MetaDataStore")
140MakeEventStreamInfo=CompFactory.MakeEventStreamInfo
142streamInfoTool.Key =
"MaterialStepCollectionStream"
143streamInfoTool.EventInfoKey =
"EventInfo"
144outputStream.HelperTools.append(streamInfoTool)
146acc.addEventAlgo(outputStream)
148acc.printConfig(withDetails =
True, summariseProps =
True)
150acc.run(maxEvents=args.maxEvents)
void print(char *figname, TCanvas *c1)
algorithm that marks for write data objects in SG
This class provides an algorithm to make the EventStreamInfo object and update it.
The Athena Transient Store API.