From 6b5dac04646cc669737960098e7e8688dc88a6eb Mon Sep 17 00:00:00 2001 From: Sylvester Joosten <sjoosten@anl.gov> Date: Wed, 17 Nov 2021 19:37:34 +0000 Subject: [PATCH] also update feature reconstructions --- options/reconstruction.ecal.py | 33 ++++++++++++++------ options/reconstruction.hcal.py | 33 ++++++++++++++------ options/reconstruction.raw.py | 57 +++++++++++++--------------------- 3 files changed, 68 insertions(+), 55 deletions(-) diff --git a/options/reconstruction.ecal.py b/options/reconstruction.ecal.py index 9407fae8..3229614d 100644 --- a/options/reconstruction.ecal.py +++ b/options/reconstruction.ecal.py @@ -14,12 +14,33 @@ detector_path = "" if "DETECTOR_PATH" in os.environ : detector_path = str(os.environ["DETECTOR_PATH"]) +detector_version = 'default' +if "JUGGLER_DETECTOR_VERSION" in os.environ: + env_version = str(os.environ["JUGGLER_DETECTOR_VERSION"]) + if 'acadia' in env_version: + detector_version = 'acadia' compact_path = os.path.join(detector_path, detector_name) + # CAL reconstruction # get sampling fractions from system environment variable ci_ecal_sf = float(os.environ.get("CI_ECAL_SAMP_FRAC", 0.253)) +# input calorimeter DAQ info +calo_daq = {} +with open('{}/calibrations/calo_digi_{}.json'.format(detector_path, detector_version)) as f: + calo_config = json.load(f) + ## add proper ADC capacity based on bit depth + for sys in calo_config: + cfg = calo_config[sys] + calo_daq[sys] = { + 'dynamicRangeADC': eval(cfg['dynamicRange']), + 'capacityADC': 2**int(cfg['capacityBitsADC']), + 'pedestalMean': int(cfg['pedestalMean']), + 'pedestalSigma': float(cfg['pedestalSigma']) + } +print(calo_daq) + # input and output input_sims = [f.strip() for f in str.split(os.environ["JUGGLER_SIM_FILE"], ",") if f.strip()] output_rec = str(os.environ["JUGGLER_REC_FILE"]) @@ -55,11 +76,7 @@ podin = PodioInput("PodioReader", collections=sim_coll) algorithms.append(podin) # Crystal Endcap Ecal -ce_ecal_daq = dict( - dynamicRangeADC=5.*units.GeV, - capacityADC=32768, - pedestalMean=400, - pedestalSigma=3) +ce_calo_daq = calo_daq['ecal_neg_endcap'] ce_ecal_digi = CalHitDigi("ce_ecal_digi", inputHitCollection="EcalEndcapNHits", @@ -97,11 +114,7 @@ ce_ecal_clreco = RecoCoG("ce_ecal_clreco", algorithms.append(ce_ecal_clreco) # Endcap Sampling Ecal -ci_ecal_daq = dict( - dynamicRangeADC=50.*units.MeV, - capacityADC=32768, - pedestalMean=400, - pedestalSigma=10) +ci_calo_daq = calo_daq['ecal_pos_endcap'] ci_ecal_digi = CalHitDigi("ci_ecal_digi", inputHitCollection="EcalEndcapPHits", diff --git a/options/reconstruction.hcal.py b/options/reconstruction.hcal.py index 0bf946c6..3f9152da 100644 --- a/options/reconstruction.hcal.py +++ b/options/reconstruction.hcal.py @@ -14,6 +14,12 @@ detector_path = "" if "DETECTOR_PATH" in os.environ : detector_path = str(os.environ["DETECTOR_PATH"]) +detector_version = 'default' +if "JUGGLER_DETECTOR_VERSION" in os.environ: + env_version = str(os.environ["JUGGLER_DETECTOR_VERSION"]) + if 'acadia' in env_version: + detector_version = 'acadia' + compact_path = os.path.join(detector_path, detector_name) # CAL reconstruction @@ -22,6 +28,21 @@ cb_hcal_sf = float(os.environ.get("CB_HCAL_SAMP_FRAC", 0.038)) ci_hcal_sf = float(os.environ.get("CI_HCAL_SAMP_FRAC", 0.025)) ce_hcal_sf = float(os.environ.get("CE_HCAL_SAMP_FRAC", 0.025)) +# input calorimeter DAQ info +calo_daq = {} +with open('{}/calibrations/calo_digi_{}.json'.format(detector_path, detector_version)) as f: + calo_config = json.load(f) + ## add proper ADC capacity based on bit depth + for sys in calo_config: + cfg = calo_config[sys] + calo_daq[sys] = { + 'dynamicRangeADC': eval(cfg['dynamicRange']), + 'capacityADC': 2**int(cfg['capacityBitsADC']), + 'pedestalMean': int(cfg['pedestalMean']), + 'pedestalSigma': float(cfg['pedestalSigma']) + } +print(calo_daq) + # input and output input_sims = [f.strip() for f in str.split(os.environ["JUGGLER_SIM_FILE"], ",") if f.strip()] output_rec = str(os.environ["JUGGLER_REC_FILE"]) @@ -57,11 +78,7 @@ podin = PodioInput("PodioReader", collections=sim_coll) algorithms.append(podin) # Hcal Hadron Endcap -ci_hcal_daq = dict( - dynamicRangeADC=50.*units.MeV, - capacityADC=32768, - pedestalMean=400, - pedestalSigma=10) +ci_hcal_daq = calo_daq['hcal_pos_endcap'] ci_hcal_digi = CalHitDigi("ci_hcal_digi", inputHitCollection="HcalEndcapPHits", @@ -102,11 +119,7 @@ ci_hcal_clreco = RecoCoG("ci_hcal_clreco", algorithms.append(ci_hcal_clreco) # Hcal Electron Endcap -ce_hcal_daq = dict( - dynamicRangeADC=50.*units.MeV, - capacityADC=32768, - pedestalMean=400, - pedestalSigma=10) +ce_hcal_daq = calo_daq['hcal_neg_endcap'] ce_hcal_digi = CalHitDigi("ce_hcal_digi", inputHitCollection="HcalEndcapNHits", diff --git a/options/reconstruction.raw.py b/options/reconstruction.raw.py index a605e012..a655501d 100644 --- a/options/reconstruction.raw.py +++ b/options/reconstruction.raw.py @@ -25,6 +25,21 @@ compact_path = os.path.join(detector_path, detector_name) # RICH reconstruction qe_data = [(1.0, 0.25), (7.5, 0.25),] +# input calorimeter DAQ info +calo_daq = {} +with open('{}/calibrations/calo_digi_{}.json'.format(detector_path, detector_version)) as f: + calo_config = json.load(f) + ## add proper ADC capacity based on bit depth + for sys in calo_config: + cfg = calo_config[sys] + calo_daq[sys] = { + 'dynamicRangeADC': eval(cfg['dynamicRange']), + 'capacityADC': 2**int(cfg['capacityBitsADC']), + 'pedestalMean': int(cfg['pedestalMean']), + 'pedestalSigma': float(cfg['pedestalSigma']) + } +print(calo_daq) + # input and output input_sims = [f.strip() for f in str.split(os.environ["JUGGLER_SIM_FILE"], ",") if f.strip()] output_rec = str(os.environ["JUGGLER_REC_FILE"]) @@ -100,11 +115,7 @@ trk_b0_digi = TrackerDigi("trk_b0_digi", algorithms.append(trk_b0_digi) # Crystal Endcap Ecal -ce_ecal_daq = dict( - dynamicRangeADC=5.*units.GeV, - capacityADC=32768, - pedestalMean=400, - pedestalSigma=3) +ce_calo_daq = calo_daq['ecal_neg_endcap'] ce_ecal_digi = CalHitDigi("ce_ecal_digi", inputHitCollection="EcalEndcapNHits", @@ -114,11 +125,7 @@ ce_ecal_digi = CalHitDigi("ce_ecal_digi", algorithms.append(ce_ecal_digi) # Endcap Sampling Ecal -ci_ecal_daq = dict( - dynamicRangeADC=50.*units.MeV, - capacityADC=32768, - pedestalMean=400, - pedestalSigma=10) +ci_calo_daq = calo_daq['ecal_pos_endcap'] ci_ecal_digi = CalHitDigi("ci_ecal_digi", inputHitCollection="EcalEndcapPHits", @@ -127,11 +134,7 @@ ci_ecal_digi = CalHitDigi("ci_ecal_digi", algorithms.append(ci_ecal_digi) # Central Barrel Ecal (Imaging Cal.) -img_barrel_daq = dict( - dynamicRangeADC=3*units.MeV, - capacityADC=8192, - pedestalMean=400, - pedestalSigma=20) # about 6 keV +img_barrel_daq = calo_daq['ecal_barrel_imaging'] img_barrel_digi = CalHitDigi("img_barrel_digi", inputHitCollection="EcalBarrelHits", @@ -141,11 +144,7 @@ img_barrel_digi = CalHitDigi("img_barrel_digi", algorithms.append(img_barrel_digi) # Central ECAL SciFi -scfi_barrel_daq = dict( - dynamicRangeADC=50.*MeV, - capacityADC=32768, - pedestalMean=400, - pedestalSigma=10) +scfi_barrel_daq = calo_daq['ecal_barrel_scfi'] scfi_barrel_digi = CalHitDigi("scfi_barrel_digi", inputHitCollection="EcalBarrelScFiHits", @@ -154,11 +153,7 @@ scfi_barrel_digi = CalHitDigi("scfi_barrel_digi", algorithms.append(scfi_barrel_digi) # Central Barrel Hcal -cb_hcal_daq = dict( - dynamicRangeADC=50.*units.MeV, - capacityADC=32768, - pedestalMean=400, - pedestalSigma=10) +cb_hcal_daq = calo_daq['hcal_barrel'] cb_hcal_digi = CalHitDigi("cb_hcal_digi", inputHitCollection="HcalBarrelHits", @@ -167,11 +162,7 @@ cb_hcal_digi = CalHitDigi("cb_hcal_digi", algorithms.append(cb_hcal_digi) # Hcal Hadron Endcap -ci_hcal_daq = dict( - dynamicRangeADC=50.*units.MeV, - capacityADC=32768, - pedestalMean=400, - pedestalSigma=10) +ci_hcal_daq = calo_daq['hcal_pos_endcap'] ci_hcal_digi = CalHitDigi("ci_hcal_digi", inputHitCollection="HcalEndcapPHits", @@ -180,11 +171,7 @@ ci_hcal_digi = CalHitDigi("ci_hcal_digi", algorithms.append(ci_hcal_digi) # Hcal Electron Endcap -ce_hcal_daq = dict( - dynamicRangeADC=50.*units.MeV, - capacityADC=32768, - pedestalMean=400, - pedestalSigma=10) +ce_hcal_daq = calo_daq['hcal_neg_endcap'] ce_hcal_digi = CalHitDigi("ce_hcal_digi", inputHitCollection="HcalEndcapNHits", -- GitLab