Draft: adapt for use of velo hit efficiencies
Goes with Rec!3907 Adaptations to make use of VELO hit efficiencies. In principle NOT FOR MERGE.
usage:
from ROOT import TFile
def hitMapMaker():
dataFile = TFile.Open("/eos/lhcb/user/m/mwaterla/ftHitEfficiencyFiles/combinedEfficiencies.root")
mcFile = TFile.Open("/eos/lhcb/user/m/mwaterla/ftHitEfficiencyFiles/combinedFTMC.root")
vals = [0]*4096
for layer in range(0,12):
hmc = mcFile.Get("FTHitEfficiencyLayer"+str(layer)+"/EfficiencyVsSipm")
hdata = dataFile.Get("FTHitEfficiencyLayer"+str(layer)+"/EfficiencyVsSipm")
for iBin in range(1,4097):
if(hmc.GetBinContent(iBin) > 0):
content = hdata.GetBinContent(iBin)/hmc.GetBinContent(iBin)
else:
content = hdata.GetBinContent(iBin)
#content = hdata.GetBinContent(iBin)/targetEff
vals[iBin-1] = max(vals[iBin-1],content)
mcFile.Close()
dataFile.Close()
return vals
def VELOhitMapMaker():
nstations = 26
nmodules_per_station = 2
nsensors_per_module = 4
File = TFile.Open("/eos/lhcb/user/t/tmombach/hitEfficiencies2023_withMCRatio.root")
vals = [0]*208*16*16*3
for station in range(nstations):
for module in range(nmodules_per_station):
global_module_id = station * nmodules_per_station + module
for sensor in range(nsensors_per_module):
global_sensor_id = global_module_id * nsensors_per_module + sensor
hratio = File.Get("ratio_hiteff_sensor"+str(global_sensor_id)+"_module"+str(global_module_id)+"_station"+str(station))
for iBinx in range(1,49):
for iBiny in range(1,17):
content = hratio.GetBinContent(iBinx,iBiny)
pixelindex = ((global_sensor_id * 48 + (iBinx-1)) * 16) + (iBiny-1)
vals[pixelindex] = max(vals[pixelindex],content)
# print(pixelindex,":",vals[pixelindex])
return vals
# import json
# eff_file = open("efficienciesTitus.json")
# eff_dict = json.load(eff_file)
# eff_list = []
# for i in range(624):
# eff_list.append(eff_dict[str(i)]["eff"])
with reconstruction.bind(from_file=False),\
make_VeloClusterTrackingSIMD.bind(algorithm=VeloRetinaClusterTrackingSIMD, SkipForward=4, rowcolumn_efficiencies=VELOhitMapMaker()),\
PrStoreSciFiHits.bind(AdditionalHitEfficiencyMap=hitMapMaker()), PrHybridSeeding.bind(nCasesUsed=4),\
[...]
Edited by Titus Mombaecher