ATLAS Offline Software
Loading...
Searching...
No Matches
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
3from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4from AthenaConfiguration.ComponentFactory import CompFactory
5
6def 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
18def 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
39def 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
void print(char *figname, TCanvas *c1)
#define min(a, b)
Definition cfImp.cxx:40
InDetBeamSpotRooFitCfg(flags, jobConfig={}, name="InDetBeamSpotRooFit", **kwargs)
InDetBeamSpotFinderCfg(flags, jobConfig={}, name="InDetBeamSpotFinder", **kwargs)
InDetBeamSpotVertexCfg(flags, jobConfig={}, name="InDetBeamSpotVertex", **kwargs)