Skip to content
Snippets Groups Projects

add NeutrinoRecAlgs

Merged Tomohiro Inada requested to merge toinada/calypso:MR_NuRecAlgs into master
6 files
+ 743
0
Compare changes
  • Side-by-side
  • Inline
Files
6
 
# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS and FASER collaborations
 
 
#!/usr/bin/env python
 
import sys
 
from AthenaCommon.Constants import VERBOSE, INFO
 
from AthenaConfiguration.ComponentFactory import CompFactory
 
 
def NeutrinoRecAlgsCfg(flags, name="NeutrinoRecAlgs", **kwargs):
 
 
# Initialize GeoModel
 
from FaserGeoModel.FaserGeoModelConfig import FaserGeometryCfg
 
a = FaserGeometryCfg(flags)
 
 
# Configure the algorithm itself
 
NeutrinoRecAlgs = CompFactory.NeutrinoRecAlgs
 
a.addEventAlgo(NeutrinoRecAlgs(name, **kwargs))
 
 
# Set up histogramming
 
thistSvc = CompFactory.THistSvc()
 
thistSvc.Output += ["HIST DATAFILE='myHistoFile.root' OPT='RECREATE'"]
 
a.addService(thistSvc)
 
 
return a
 
 
if __name__ == "__main__":
 
from AthenaCommon.Logging import log#, logging
 
from AthenaCommon.Configurable import Configurable
 
from CalypsoConfiguration.AllConfigFlags import ConfigFlags
 
 
Configurable.configurableRun3Behavior = True
 
 
# Flags for this job
 
ConfigFlags.Input.Files = ["my.HITS.pool.root"] # input file(s)
 
ConfigFlags.Input.isMC = True # Needed to bypass autoconfig
 
ConfigFlags.IOVDb.GlobalTag = "OFLCOND-FASER-02" # Always needed; must match FaserVersion
 
ConfigFlags.GeoModel.FaserVersion = "FASERNU-03" # Default FASER geometry
 
ConfigFlags.Detector.GeometryEmulsion = True
 
ConfigFlags.Detector.GeometryTrench = True
 
ConfigFlags.lock()
 
 
# Configure components
 
# Core framework
 
from CalypsoConfiguration.MainServicesConfig import MainServicesCfg
 
acc = MainServicesCfg(ConfigFlags)
 
 
# Data input
 
from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
 
acc.merge(PoolReadCfg(ConfigFlags))
 
 
# Algorithm
 
acc.merge(NeutrinoRecAlgsCfg(ConfigFlags, McEventCollection = "TruthEvent"))
 
 
# Configure verbosity
 
msgSvc = acc.getService("MessageSvc")
 
msgSvc.Format = "% F%30W%S%7W%R%T %0W%M"
 
# ConfigFlags.dump()
 
# logging.getLogger('forcomps').setLevel(VERBOSE)
 
#acc.foreach_component("*").OutputLevel = VERBOSE
 
#acc.foreach_component("*ClassID*").OutputLevel = INFO
 
#log.setLevel(VERBOSE)
 
 
# Execute and finish
 
sys.exit(int(acc.run(maxEvents=-1).isFailure()))
Loading