58def gscStep(flags, **configDict):
59
61
62
63 defaultHistTools = dict(
64 histTool_EM3 = [dict(varX = "pt", varY = "EM3", histName=f"AntiKt4EMPFlow_EM3_interpolation_resp_eta_{j}", inputFile=defaultFileGSC) for j in range(35)],
65 histTool_CharFrac = [dict(varX = "pt", varY = "ChargedFraction", histName = f"AntiKt4EMPFlow_chargedFraction_interpolation_resp_eta_{j}", inputFile=defaultFileGSC) for j in range(25)],
66 histTool_Tile0 = [dict(varX = "pt", varY = "Tile0", histName=f"AntiKt4EMPFlow_Tile0_interpolation_resp_eta_{j}", inputFile=defaultFileGSC) for j in range(18)],
67 histTool_nTrk=[dict(varX = "pt", varY = dict(Name="nTrk", Type="int",), histName=f"AntiKt4EMPFlow_nTrk_interpolation_resp_eta_{j}", inputFile=defaultFileGSC) for j in range(25)],
68 histTool_trackWIDTH=[dict(varX = "pt", varY = "trackWIDTH", histName=f"AntiKt4EMPFlow_trackWIDTH_interpolation_resp_eta_{j}", inputFile=defaultFileGSC) for j in range(25)],
69 histTool_PunchThrough=[dict(varX = "e", varY = dict(Name="Nsegments", Type="int",), histName=f"AntiKt4EMPFlow_PunchThrough_interpolation_resp_eta_{j}", inputFile=defaultFileGSC) for j in range(2)],
70 )
71
72 gsc_steps = ['histTool_EM3', 'histTool_CharFrac', 'histTool_Tile0', 'histTool_nTrk', 'histTool_trackWIDTH']
73 if configDict.get('applyPunchThrough',False):
74 gsc_steps.append('histTool_PunchThrough')
75
76
77 for key in gsc_steps:
78
79 if key not in configDict:
80 toolArray = defaultHistTools[key]
81
82
83
84 elif isinstance(configDict[key],list):
85 toolArray = configDict[key]
86 for subDict in toolArray:
87 subDict.setdefault('inputFile',defaultFileGSC)
88
89
90
91 else:
92 baseDict = dict(configDict[key])
93 N_hist = baseDict.pop('N_hist')
94 histNameBase = baseDict.pop('histNameBase')
95 inputFile = baseDict.pop('inputFile', defaultFileGSC)
96 varX = baseDict.pop('varX',defaultHistTools[key][0]['varX'])
97 varY = baseDict.pop('varY', defaultHistTools[key][0]['varY'])
98 toolArray = [dict(varX = varX, varY = varY, histName=f'{histNameBase}_{j}', inputFile = inputFile) for j in range(N_hist)]
99
100
101 configDict[key] = [HistoInputCfg(flags, Tname=f"{key.split('_')[1]}_{j}", **toolConfig) for j, toolConfig in enumerate(toolArray)]
102
103 GSCstep = CompFactory.GSCCalibStep("gsccalibstep", **configDict)
104
105 return [GSCstep]
106
static std::string FindCalibFile(const std::string &logical_file_name)