ATLAS Offline Software
Loading...
Searching...
No Matches
runegammaMonitoring.py
Go to the documentation of this file.
1#!/usr/bin/env python
2#
3# Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration.
4
5# Cut-and-paste from RunHitAnalysis.py
6
7import sys
8import os
9
10from argparse import ArgumentParser
11
12# Argument parsing
13parser = ArgumentParser("egammaMonitoring")
14parser.add_argument("-m", "--maxEvents", default=60000, type=int,
15 help="The number of events to run. -1 runs all events.")
16parser.add_argument("-p", "--particleType", default='electron', type=str,
17 help="The particle type. electron or gamma")
18parser.add_argument("-fwd", "--addFwd", default='False', type=str,
19 help="Also run on fwd electrons")
20parser.add_argument("-i", "--inputFiles", default='Nightly_AOD.pool.root',
21 help='Comma separated list of input AOD files')
22parser.add_argument("-o", "--outputFileName", default='Nightly-monitoring.hist', type=str,
23 help="The output file name")
24
25args = parser.parse_args()
26
27addFwd = True if args.addFwd == 'True' else False
28if args.particleType == 'gamma' and addFwd:
29 print('Fwd electrons can only be read in an electron run')
30 addFwd = False
31
32# Configure
33from AthenaConfiguration.AllConfigFlags import initConfigFlags
34from AthenaConfiguration.Enums import ProductionStep
35flags = initConfigFlags()
36flags.Common.ProductionStep = ProductionStep.Simulation
37isDir = os.path.isdir(args.inputFiles)
38if isDir:
39 flags.Input.Files = [ args.inputFiles + '/' + f for f in os.listdir(args.inputFiles) ]
40else:
41 flags.Input.Files = [ f for f in args.inputFiles.split(',') ]
42from AthenaConfiguration.DetectorConfigFlags import setupDetectorFlags
43setupDetectorFlags(flags, ['LAr','Tile'], use_metadata=True, toggle_geometry=True)
44# to be checked. Without this, I got
45#DataProxy WARNING accessData: conversion failed for data object 254546453//LAR/Align
46# Returning NULL DataObject pointer
47#GeoModelSvc.LAr... ERROR Could not retrieve LAr DetCondKeyTrans
48flags.LAr.doAlign = False
49flags.GeoModel.Align.LegacyConditionsAccess = False
50flags.lock()
51
52# Construct our accumulator to run
53from AthenaConfiguration.MainServicesConfig import MainServicesCfg
54acc = MainServicesCfg(flags)
55from LArGeoAlgsNV.LArGMConfig import LArGMCfg
56acc.merge(LArGMCfg(flags))
57from TileGeoModel.TileGMConfig import TileGMCfg
58acc.merge(TileGMCfg(flags))
59from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
60acc.merge(PoolReadCfg(flags))
61from egammaValidation.egammaMonitoringConfig import egammaMonitoringCfg
62acc.merge(egammaMonitoringCfg(flags,\
63 particleType = args.particleType, \
64 outputFileName = args.outputFileName, \
65 addFwd = addFwd))
66
67# Execute and finish
68sc = acc.run(maxEvents=args.maxEvents)
69
70# Success should be 0
71sys.exit(not sc.isSuccess())
72
void print(char *figname, TCanvas *c1)