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 'InitialSigmaX' in jobConfig: kwargs.setdefault("InitParSigmaX",jobConfig['InitialSigmaX'])
26  if 'InitialSigmaY' in jobConfig: kwargs.setdefault("InitParSigmaY",jobConfig['InitialSigmaY'])
27  if 'InitialSigmaZ' in jobConfig: kwargs.setdefault("InitParSigmaZ",jobConfig['InitialSigmaZ'])
28  if 'ConstantKFactor' in jobConfig: kwargs.setdefault("FixParK",jobConfig['ConstantKFactor'])
29  if 'FixWidth' in jobConfig: kwargs.setdefault("FixWidth",jobConfig['FixWidth'])
30  if 'TruncatedRMS' in jobConfig: kwargs.setdefault("TruncatedRMS",jobConfig['TruncatedRMS'])
31  if 'SetInitialRMS' in jobConfig: kwargs.setdefault("SetInitialRMS",jobConfig['SetInitialRMS'])
32  if 'MaxSigmaVtx' in jobConfig: kwargs.setdefault("InitParMaxSigmaX",jobConfig['MaxSigmaVtx'])
33  if 'MaxSigmaVtx' in jobConfig: kwargs.setdefault("InitParMaxSigmaY",jobConfig['MaxSigmaVtx'])
34 
35  result.setPrivateTools(
36  CompFactory.InDet.InDetBeamSpotVertex(name, **kwargs))
37  return result
38 
39 def InDetBeamSpotFinderCfg(flags, jobConfig={}, name="InDetBeamSpotFinder", **kwargs):
40  result = ComponentAccumulator()
41  if 'UseFilledBCIDsOnly' in jobConfig:
42  if jobConfig['UseFilledBCIDsOnly']:
43  # Add BunchCrossingCondData
44  print("Set bunch crossing")
45  from LumiBlockComps.BunchCrossingCondAlgConfig import BunchCrossingCondAlgCfg
46  result = BunchCrossingCondAlgCfg(flags)
47 
48  if "BeamSpotToolList" not in kwargs:
49  kwargs.setdefault("BeamSpotToolList", [
50  result.addPublicTool(result.popToolsAndMerge(
51  InDetBeamSpotRooFitCfg(flags,jobConfig))),
52  result.addPublicTool(result.popToolsAndMerge(
53  InDetBeamSpotVertexCfg(flags,jobConfig))) ])
54 
55  # Job configuration
56  kwargs.setdefault("OutputLevel",min(3,jobConfig['outputlevel']))
57  if 'VertexNtuple' in jobConfig: kwargs.setdefault("VertexNtuple",jobConfig['VertexNtuple'])
58  if 'WriteAllVertices' in jobConfig: kwargs.setdefault("WriteAllVertices",jobConfig['WriteAllVertices'])
59  if 'VertexTreeName' in jobConfig: kwargs.setdefault("VertexTreeName",jobConfig['VertexTreeName'])
60  #Event selection options
61  if 'UseBCID' in jobConfig: kwargs.setdefault("UseBCID",jobConfig['UseBCID'])
62  if 'UseFilledBCIDsOnly' in jobConfig: kwargs.setdefault("UseFilledBCIDsOnly",jobConfig['UseFilledBCIDsOnly'])
63  #Vertex Selection options
64  if 'VertexContainer' in jobConfig: kwargs.setdefault("VertexContainer",jobConfig['VertexContainer'])
65  if 'MinTracksPerVtx' in jobConfig: kwargs.setdefault("MinTracksPerVtx",jobConfig['MinTracksPerVtx'])
66  if 'MaxTracksPerVtx' in jobConfig: kwargs.setdefault("MaxTracksPerVtx",jobConfig['MaxTracksPerVtx'])
67  if 'MaxVtxNum' in jobConfig: kwargs.setdefault("MaxVtxNum",jobConfig['MaxVtxNum'])
68  if 'MaxVtxChi2' in jobConfig: kwargs.setdefault("MaxVtxChi2",jobConfig['MaxVtxChi2'])
69  if 'MaxTransverseErr' in jobConfig: kwargs.setdefault("MaxTransverseErr",jobConfig['MaxTransverseErr'])
70  if 'MaxAbsCorrelXY' in jobConfig: kwargs.setdefault("MaxAbsCorrelXY",jobConfig['MaxAbsCorrelXY'])
71 
72  if 'VertexTypes' in jobConfig:
73  kwargs.setdefault("VertexTypes",jobConfig['VertexTypes'])
74  else:
75  kwargs.setdefault("VertexTypes", ["PriVtx"])
76 
77  if 'MinVtxProb' in jobConfig: kwargs.setdefault("MinVtxProb",jobConfig['MinVtxProb'])
78  #Beamspot Sorting options
79  if 'LumiRange' in jobConfig: kwargs.setdefault("LumiRange",jobConfig['LumiRange'])
80  if 'RunRange' in jobConfig: kwargs.setdefault("RunRange",jobConfig['RunRange'])
81  if 'EventRange' in jobConfig: kwargs.setdefault("EventRange",jobConfig['EventRange'])
82  if 'GroupFitsBy' in jobConfig: kwargs.setdefault("GroupFitsBy",jobConfig['GroupFitsBy'])
83 
84  result.addEventAlgo(CompFactory.InDet.InDetBeamSpotFinder(name, **kwargs))
85  return result
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
min
constexpr double min()
Definition: ap_fixedTest.cxx:26
InDetBeamSpotFinderConfig.InDetBeamSpotFinderCfg
def InDetBeamSpotFinderCfg(flags, jobConfig={}, name="InDetBeamSpotFinder", **kwargs)
Definition: InDetBeamSpotFinderConfig.py:39
InDetBeamSpotFinderConfig.InDetBeamSpotVertexCfg
def InDetBeamSpotVertexCfg(flags, jobConfig={}, name="InDetBeamSpotVertex", **kwargs)
Definition: InDetBeamSpotFinderConfig.py:18
python.BunchCrossingCondAlgConfig.BunchCrossingCondAlgCfg
def BunchCrossingCondAlgCfg(flags)
Definition: BunchCrossingCondAlgConfig.py:8
print
void print(char *figname, TCanvas *c1)
Definition: TRTCalib_StrawStatusPlots.cxx:25
InDetBeamSpotFinderConfig.InDetBeamSpotRooFitCfg
def InDetBeamSpotRooFitCfg(flags, jobConfig={}, name="InDetBeamSpotRooFit", **kwargs)
Definition: InDetBeamSpotFinderConfig.py:6