Go Back to: C++ Manual General Site
LDMX.Hcal package¶
Submodules¶
LDMX.Hcal.DetectorMap module¶
Detector map for translations between EIDs and det IDs
- class LDMX.Hcal.DetectorMap.HcalDetectorMap(connections_table, want_d2e=False)¶
Bases:
ConditionsObjectProvider
Provider of the Hcal detector map allowing translations between electronics IDs and detector IDs.
- Parameters:
connections_table (str) – Path to table of connections in Hcal
want_d2e (bool) – Flag determining if we should spend the time to create a detID->EID LUT
LDMX.Hcal.HcalGeometry module¶
LDMX.Hcal.conditions module¶
HCal conditions configuration classes
NOTE: This module is NOT a full set of conditions, it is just here to share the configuration classes helpful for conditions between the multiple condition sets
- class LDMX.Hcal.conditions.HcalReconConditionsProvider(adc_ped, adc_gain, tot_calib, toa_calib)¶
Bases:
ConditionsObjectProvider
The HcalReconConditions object packages the reconstructing conditions tables together
This makes the processor using the recon conditions less dependent on the underlying structure.
- Parameters:
adc_ped (framework::ConditionsObjectProvider) – provider for the HCal ADC pedestals
adc_gain (framework::ConditionsObjectProvider) – provider for the HCal ADC gains
tot_calib (framework::ConditionsObjectProvider) – provider for the HCal TOT calibrations
toa_calib (framework::ConditionsObjectProvider) – provider for the HCal TOA calibrations
Examples
The hcal_hardcoded_conditions.py file provides a working example where each condition wrapped here are constant for all runs and all channels.
LDMX.Hcal.digi module¶
Package to configure the HCal digitization pipeline
All classes are derived versions of LDMX.Framework.ldmxcfg.Producer with helpful member functions.
Two module-wide parameters are defined.
- LDMX.Hcal.digi.nPEPerMIP¶
Number of photo-electrons (PEs) created for each MIP
- Type:
float
- LDMX.Hcal.digi.mipEnergy¶
Energy [MeV] of a single MIP
- Type:
float
- class LDMX.Hcal.digi.HcalDigiProducer(instance_name='hcalDigis')¶
Bases:
Producer
Configuration for HcalDigiProducer
- hgcroc¶
Configuration for the chip emulator
- Type:
- MeV¶
Conversion between energy [MeV] and voltage [mV]
- Type:
float
- inputCollName¶
Name of input collection
- Type:
str
- inputPassName¶
Name of input pass
- Type:
str
- digiCollName¶
Name of digi collection
- Type:
str
- class LDMX.Hcal.digi.HcalDoubleEndRecProducer(instance_name='hcalDoubleRecon', pass_name='', coll_name='HcalRecHits', rec_coll_name='HcalDoubleEndRecHits', rec_pass_name='')¶
Bases:
Producer
Configuration for the double ended Hcal Rec Producer
- - mip_energy
Copied from module-wide mipEnergy [MeV]
- Type:
float
- - clock_cycle
Time for one DAQ clock cycle to pass [ns]
- Type:
float
- - pe_per_mip
number of photo-electrons per MIP
- Type:
float
- - pass_name
Name of digi pass
- Type:
str
- - coll_name
Name of digi collection
- Type:
str
- - rec_coll_name
Name of rechit collection
- Type:
str
- class LDMX.Hcal.digi.HcalHgcrocEmulator¶
Bases:
HgcrocEmulator
Get an HGCROC emulator and configure for the HCal specifically This sets the pulse shape parameters to the ones from a fit to a test readout of an HCal module and then thresholds to the default construction. Noise RMS is calculated using the voltage of 0.02 PEs.
- calculateVoltageHcal(PE)¶
Calculate the voltage signal [mV] of the input number of photo-electrons (PEs) Assuming that 1 PE ~ 5mV This translates to (68/4.66)*5 = 73 PE/MeV :param PE: Number of photo electrons :type PE: int
- class LDMX.Hcal.digi.HcalRecProducer(instance_name='hcalRecon')¶
Bases:
Producer
Configuration for the HcalRecProducer
- voltage_per_mip¶
Conversion from voltage [mV] to number of MIPs
- Type:
float
- mip_energy¶
Copied from module-wide mipEnergy [MeV]
- Type:
float
- clock_cycle¶
Time for one DAQ clock cycle to pass [ns]
- Type:
float
- digiCollName¶
Name of digi collection
- Type:
str
- digiPassName¶
Name of digi pass
- Type:
str
- simHitCollName¶
Name of simHit collection
- Type:
str
- simHitPassName¶
Name of simHit pass
- Type:
str
- recHitCollName¶
Name of recHit collection
- Type:
str
- class LDMX.Hcal.digi.HcalSingleEndRecProducer(instance_name='hcalRecon', pass_name='', coll_name='HcalDigis', rec_coll_name='HcalRecHits', rec_pass_name='')¶
Bases:
Producer
Configuration for the single ended Hcal Rec Producer
- - mip_energy
Copied from module-wide mipEnergy [MeV]
- Type:
float
- - clock_cycle
Time for one DAQ clock cycle to pass [ns]
- Type:
float
- - pe_per_mip
number of photo-electrons per MIP
- Type:
float
- - pass_name
Name of digi pass
- Type:
str
- - coll_name
Name of digi collection
- Type:
str
- - rec_coll_name
Name of rechit collection
- Type:
str
LDMX.Hcal.hcal module¶
Configuration for Hcal pipeline
- class LDMX.Hcal.hcal.HcalClusterProducer(name='hcalClusters')¶
Bases:
Producer
- Configuration forcluster producer in the HCal
Sets all parameters to reasonable defaults.
Examples
from LDMX.EventProc.hcal import HcalClusterProducer p.sequence.append( HcalClusterProducer() )
- class LDMX.Hcal.hcal.HcalOldDigiProducer(name='hcalOldDigis')¶
Bases:
Producer
- Configuration for Digitization producer in the HCal
Sets all parameters to reasonable defaults.
Examples
from LDMX.EventProc.hcal import HcalDigiProducer p.sequence.append( HcalDigiProducer() )
LDMX.Hcal.hcal_ana module¶
Configuration for standard Hcal analysis scripts
- class LDMX.Hcal.hcal_ana.HcalPedestalAnalyzer(name='hcal_ped_ana', input_name='', input_pass='', output_file='', make_histos=False, filter_noTOT=True, filter_noTOA=True, low_cutoff=10, high_cutoff=300, comments='')¶
Bases:
Analyzer
Constructs standard pedestal text files and optionally produces histograms for each channel.
- input_name¶
Name of the input collection
- Type:
str
- input_pass¶
Name of the input pass (or empty for default)
- Type:
str
- output_file¶
Filename for output calibration file
- Type:
str
- make_histos¶
Make individual channel histograms (default = false)
- Type:
bool
- filter_noTOA¶
Ignore any event for a channel where the TOA fired in any sample (default=true)
- Type:
bool
- filter_noTOT¶
Ignore any event for a channel where the TOT fired in any sample (default=true)
- Type:
bool
- low_cutoff¶
Ignore any event for a channel where any sample was below this level (default=10)
- Type:
int
- high_cutoff¶
Ignore any event for a channel where any sample was above this level (default=300)
- Type:
int
- comments¶
Comments to put into the output CSV file for logging purposes
- Type:
str
Examples
from LDMX.EventProc.hcal import HcalPedestalAnalyzer p.sequence.append( HcalPedestalAnalyzer() )
LDMX.Hcal.hcal_hardcoded_conditions module¶
LDMX.Hcal.hcal_testbeam0422_conditions module¶
LDMX.Hcal.hcal_testbeamsim_conditions module¶
LDMX.Hcal.hcal_trig_digi module¶
Package to configure the Hcal trigger digitization All classes are derived versions of LDMX.Framework.ldmxcfg.Producer with helpful member functions.
LDMX.Hcal.hgcrocFormat module¶
Decoding and Encoding HCal Digis out of and into raw buffers
- class LDMX.Hcal.hgcrocFormat.HcalAlignPolarfires(output_name, input_names, input_pass='', max_tick_diff=10, drop_lonely_events=False, keep_inputs=False)¶
Bases:
Producer
Align the two polarfires from testbeam into singular events
- Parameters:
output_name (str) – Name of event object with aligned digis
input_names (list[str]) – The event objects of the decoded digis from the two polarfires
input_pass (str) – pass generating decoded digis
max_tick_diff (int) – Maximum number of ticks to consider the two polarfires on the same event
drop_lonely_events (bool) – True if you want to drop events that only have data from one polarfire
keep_inputs (bool) – True if you want to keep both copies of the decoded data, effectively doubles the size of the output file, only use in debugging/developing