ATLAS Offline Software
InDetBeamSpotFinderConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2 # Configuration of InDetBeamSpotFinder algorithms
3 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4 from AthenaConfiguration.ComponentFactory import CompFactory
5 
6 def InDetBeamSpotRooFitCfg(flags, jobConfig={}, name="InDetBeamSpotRooFit", **kwargs):
7  result = ComponentAccumulator()
8 
9  kwargs.setdefault("OutputLevel",min(3,jobConfig['outputlevel']))
10  if 'InitialKFactor' in jobConfig: kwargs.setdefault("InitialKFactor",jobConfig['InitialKFactor'])
11  if 'ConstantKFactor' in jobConfig: kwargs.setdefault("ConstantKFactor",jobConfig['ConstantKFactor'])
12  if 'RooFitMaxTransverseErr' in jobConfig: kwargs.setdefault("vtxResCut",jobConfig['RooFitMaxTransverseErr'])
13 
14  result.setPrivateTools(
15  CompFactory.InDet.InDetBeamSpotRooFit(name, **kwargs))
16  return result
17 
18 def InDetBeamSpotVertexCfg(flags, jobConfig={}, name="InDetBeamSpotVertex", **kwargs):
19  result = ComponentAccumulator()
20 
21  kwargs.setdefault("OutputLevel",min(3,jobConfig['outputlevel']))
22  if 'MaxSigmaTr' in jobConfig: kwargs.setdefault("MaxSigmaTr",jobConfig['MaxSigmaTr'])
23  if 'OutlierChi2Tr' in jobConfig: kwargs.setdefault("OutlierChi2Tr",jobConfig['OutlierChi2Tr'])
24  if 'InitialKFactor' in jobConfig: kwargs.setdefault("InitParK",jobConfig['InitialKFactor'])
25  if 'ConstantKFactor' in jobConfig: kwargs.setdefault("FixParK",jobConfig['ConstantKFactor'])
26  if 'FixWidth' in jobConfig: kwargs.setdefault("FixWidth",jobConfig['FixWidth'])
27  if 'TruncatedRMS' in jobConfig: kwargs.setdefault("TruncatedRMS",jobConfig['TruncatedRMS'])
28  if 'SetInitialRMS' in jobConfig: kwargs.setdefault("SetInitialRMS",jobConfig['SetInitialRMS'])
29  if 'MaxSigmaVtx' in jobConfig: kwargs.setdefault("InitParMaxSigmaX",jobConfig['MaxSigmaVtx'])
30  if 'MaxSigmaVtx' in jobConfig: kwargs.setdefault("InitParMaxSigmaY",jobConfig['MaxSigmaVtx'])
31 
32  result.setPrivateTools(
33  CompFactory.InDet.InDetBeamSpotVertex(name, **kwargs))
34  return result
35 
36 def InDetBeamSpotFinderCfg(flags, jobConfig={}, name="InDetBeamSpotFinder", **kwargs):
37  result = ComponentAccumulator()
38  if 'UseFilledBCIDsOnly' in jobConfig:
39  if jobConfig['UseFilledBCIDsOnly']:
40  # Add BunchCrossingCondData
41  print("Set bunch crossing")
42  from LumiBlockComps.BunchCrossingCondAlgConfig import BunchCrossingCondAlgCfg
43  result = BunchCrossingCondAlgCfg(flags)
44 
45  if "BeamSpotToolList" not in kwargs:
46  kwargs.setdefault("BeamSpotToolList", [
47  result.addPublicTool(result.popToolsAndMerge(
48  InDetBeamSpotRooFitCfg(flags,jobConfig))),
49  result.addPublicTool(result.popToolsAndMerge(
50  InDetBeamSpotVertexCfg(flags,jobConfig))) ])
51 
52  # Job configuration
53  kwargs.setdefault("OutputLevel",min(3,jobConfig['outputlevel']))
54  if 'VertexNtuple' in jobConfig: kwargs.setdefault("VertexNtuple",jobConfig['VertexNtuple'])
55  if 'WriteAllVertices' in jobConfig: kwargs.setdefault("WriteAllVertices",jobConfig['WriteAllVertices'])
56  if 'VertexTreeName' in jobConfig: kwargs.setdefault("VertexTreeName",jobConfig['VertexTreeName'])
57  #Event selection options
58  if 'UseBCID' in jobConfig: kwargs.setdefault("UseBCID",jobConfig['UseBCID'])
59  if 'UseFilledBCIDsOnly' in jobConfig: kwargs.setdefault("UseFilledBCIDsOnly",jobConfig['UseFilledBCIDsOnly'])
60  #Vertex Selection options
61  if 'VertexContainer' in jobConfig: kwargs.setdefault("VertexContainer",jobConfig['VertexContainer'])
62  if 'MinTracksPerVtx' in jobConfig: kwargs.setdefault("MinTracksPerVtx",jobConfig['MinTracksPerVtx'])
63  if 'MaxTracksPerVtx' in jobConfig: kwargs.setdefault("MaxTracksPerVtx",jobConfig['MaxTracksPerVtx'])
64  if 'MaxVtxNum' in jobConfig: kwargs.setdefault("MaxVtxNum",jobConfig['MaxVtxNum'])
65  if 'MaxVtxChi2' in jobConfig: kwargs.setdefault("MaxVtxChi2",jobConfig['MaxVtxChi2'])
66  if 'MaxTransverseErr' in jobConfig: kwargs.setdefault("MaxTransverseErr",jobConfig['MaxTransverseErr'])
67  if 'MaxAbsCorrelXY' in jobConfig: kwargs.setdefault("MaxAbsCorrelXY",jobConfig['MaxAbsCorrelXY'])
68 
69  if 'VertexTypes' in jobConfig:
70  kwargs.setdefault("VertexTypes",jobConfig['VertexTypes'])
71  else:
72  kwargs.setdefault("VertexTypes", ["PriVtx"])
73 
74  if 'MinVtxProb' in jobConfig: kwargs.setdefault("MinVtxProb",jobConfig['MinVtxProb'])
75  #Beamspot Sorting options
76  if 'LumiRange' in jobConfig: kwargs.setdefault("LumiRange",jobConfig['LumiRange'])
77  if 'RunRange' in jobConfig: kwargs.setdefault("RunRange",jobConfig['RunRange'])
78  if 'EventRange' in jobConfig: kwargs.setdefault("EventRange",jobConfig['EventRange'])
79  if 'GroupFitsBy' in jobConfig: kwargs.setdefault("GroupFitsBy",jobConfig['GroupFitsBy'])
80 
81  result.addEventAlgo(CompFactory.InDet.InDetBeamSpotFinder(name, **kwargs))
82  return result
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
InDetBeamSpotFinderConfig.InDetBeamSpotFinderCfg
def InDetBeamSpotFinderCfg(flags, jobConfig={}, name="InDetBeamSpotFinder", **kwargs)
Definition: InDetBeamSpotFinderConfig.py:36
InDetBeamSpotFinderConfig.InDetBeamSpotVertexCfg
def InDetBeamSpotVertexCfg(flags, jobConfig={}, name="InDetBeamSpotVertex", **kwargs)
Definition: InDetBeamSpotFinderConfig.py:18
python.BunchCrossingCondAlgConfig.BunchCrossingCondAlgCfg
def BunchCrossingCondAlgCfg(flags)
Definition: BunchCrossingCondAlgConfig.py:8
min
#define min(a, b)
Definition: cfImp.cxx:40
InDetBeamSpotFinderConfig.InDetBeamSpotRooFitCfg
def InDetBeamSpotRooFitCfg(flags, jobConfig={}, name="InDetBeamSpotRooFit", **kwargs)
Definition: InDetBeamSpotFinderConfig.py:6
dbg::print
void print(std::FILE *stream, std::format_string< Args... > fmt, Args &&... args)
Definition: SGImplSvc.cxx:70