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")
31parser.add_argument(
"--geometrytag",default=
"ATLAS-P2-RUN4-03-00-00", type=str,
32 help=
"The geometry tag to use")
33parser.add_argument(
"--inputevntfile",
34 default=
"/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/PhaseIIUpgrade/EVNT/mc15_14TeV.singlegeantino_E10GeV_etaFlatnp0_6.5M.evgen.EVNT.pool.root",
35 help=
"The input EVNT file to use")
36parser.add_argument(
"--outputhitsfile",default=
"myHITS.pool.root", type=str,
37 help=
"The output HITS filename")
38args = parser.parse_args()
42print(
"----GeantinoStepRecording for ITk geometry----")
44print(
"Using Geometry Tag: "+args.geometrytag)
46 print(
"...overridden by local Geometry Xml files")
47print(
"Input EVNT File:"+args.inputevntfile)
49 print(
"Running complete detector")
51 print(
"Running with: {}".format(
", ".join(args.detectors)))
55flags = initConfigFlags()
57 flags.ITk.Geometry.AllLocal =
True
59flags.Input.Files = [args.inputevntfile]
60flags.Output.HITSFileName = args.outputhitsfile
62flags.GeoModel.AtlasVersion = args.geometrytag
63flags.IOVDb.GlobalTag =
"OFLCOND-SIM-00-00-00"
64flags.GeoModel.Align.Dynamic =
False
66flags.Exec.SkipEvents = args.skipEvents
68from AthenaConfiguration.DetectorConfigFlags
import setupDetectorFlags
69detectors = args.detectors
if 'detectors' in args
and args.detectors
else [
'ITkPixel',
'ITkStrip',
'HGTD']
70detectors.append(
'Bpipe')
71setupDetectorFlags(flags, detectors, toggle_geometry=
True)
73log.debug(
'Lock config flags now.')
77acc = MainServicesCfg(flags)
80if args.verboseAccumulators:
81 acc.printConfig(withDetails=
True)
82if args.verboseStoreGate:
83 acc.getService(
"StoreGateSvc").Dump =
True
85log.debug(
'Dumping of ConfigFlags now.')
88from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
89acc.merge(PoolReadCfg(flags))
92from BeamEffects.BeamEffectsAlgConfig
import BeamEffectsAlgCfg
93acc.merge(BeamEffectsAlgCfg(flags))
95beamcond = acc.getCondAlgo(
"BeamSpotCondAlg")
109svcName =
"G4UA::MaterialStepRecorderUserActionSvc"
110from TrkG4UserActions.TrkG4UserActionsConfig
import MaterialStepRecorderUserActionSvcCfg
111acc.merge(MaterialStepRecorderUserActionSvcCfg(flags,svcName,**kwargs))
112kwargs.update(UserActionSvc=svcName)
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']) )
122AthenaOutputStream=CompFactory.AthenaOutputStream
123AthenaOutputStreamTool=CompFactory.AthenaOutputStreamTool
127 WritingTool = writingTool,
128 ItemList=[
'EventInfo#*',
'Trk::MaterialStepCollection#*'],
129 MetadataItemList = [
"EventStreamInfo#MaterialStepCollectionStream",
"IOVMetaDataContainer#*" ],
130 OutputFile =
"MaterialStepCollection.root")
132StoreGateSvc=CompFactory.StoreGateSvc
134outputStream.MetadataStore = acc.getService(
"MetaDataStore")
136MakeEventStreamInfo=CompFactory.MakeEventStreamInfo
138streamInfoTool.Key =
"MaterialStepCollectionStream"
139streamInfoTool.EventInfoKey =
"EventInfo"
140outputStream.HelperTools.append(streamInfoTool)
142acc.addEventAlgo(outputStream)
144acc.printConfig(withDetails =
True, summariseProps =
True)
146acc.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.