Go Back to: C++ Manual General Site
LDMX.Hcal package¶
Submodules¶
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:
ConditionsObjectProviderThe 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.detector_map module¶
Detector map for translations between EIDs and det IDs
- class LDMX.Hcal.detector_map.HcalDetectorMap(connections_table, want_d2e=False)¶
Bases:
ConditionsObjectProviderProvider 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.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.n_pe_per_mip¶
Number of photo-electrons (PEs) created for each MIP
- Type:
float
- LDMX.Hcal.digi.mip_energy¶
Energy [MeV] of a single MIP
- Type:
float
- class LDMX.Hcal.digi.ConstantSpread(value)¶
Bases:
DigiTimeSpread
- class LDMX.Hcal.digi.DigiTimeSpread(kind, parameters)¶
Bases:
objectType representing possible time smearing/shifting that can be applied during the digitization stage, either per event/spill or per hit
- class LDMX.Hcal.digi.GaussianSpread(mean, sigma)¶
Bases:
DigiTimeSpread
- class LDMX.Hcal.digi.HcalDigiProducer(instance_name='hcal_digis')¶
Bases:
ProducerConfiguration for HcalDigiProducer
- hgcroc¶
Configuration for the chip emulator
- Type:
- MeV¶
Conversion between energy [MeV] and voltage [mV]
- Type:
float
- input_coll_name¶
Name of input collection
- Type:
str
- input_pass_name¶
Name of input pass
- Type:
str
- digi_coll_name¶
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:
ProducerConfiguration for the double ended Hcal Rec Producer
- - mip_energy
Copied from module-wide mip_energy [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:
HgcrocEmulatorGet 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:
ProducerConfiguration for the HcalRecProducer
- voltage_per_mip¶
Conversion from voltage [mV] to number of MIPs
- Type:
float
- mip_energy¶
Copied from module-wide mip_energy [MeV]
- Type:
float
- clock_cycle¶
Time for one DAQ clock cycle to pass [ns]
- Type:
float
- input_coll_name¶
Name of digi collection
- Type:
str
- input_pass_name¶
Name of digi pass
- Type:
str
- sim_hit_coll_name¶
Name of simHit collection
- Type:
str
- sim_hit_pass_name¶
Name of simHit pass
- Type:
str
- rec_hit_coll_name¶
Name of rec_hit collection
- Type:
str
- class LDMX.Hcal.digi.HcalSimpleDigiAndRecProducer(name='hcalSimpleDigiAndRec')¶
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() )
- class LDMX.Hcal.digi.HcalSingleEndRecProducer(instance_name='hcalRecon', pass_name='', coll_name='HcalDigis', rec_coll_name='HcalRecHits', rec_pass_name='')¶
Bases:
ProducerConfiguration for the single ended Hcal Rec Producer
- - mip_energy
Copied from module-wide mip_energy [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.NoSpread¶
Bases:
DigiTimeSpread
- class LDMX.Hcal.digi.UniformSpread(min_value, max_value)¶
Bases:
DigiTimeSpread
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_no_tot=True, filter_no_toa=True, low_cutoff=10, high_cutoff=300, comments='')¶
Bases:
AnalyzerConstructs 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_no_toa¶
Ignore any event for a channel where the TOA fired in any sample (default=true)
- Type:
bool
- filter_no_tot¶
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_geometry module¶
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.hgcroc_format module¶
Decoding and Encoding HCal Digis out of and into raw buffers
- class LDMX.Hcal.hgcroc_format.HcalAlignPolarfires(output_name, input_names, input_pass='', max_tick_diff=10, drop_lonely_events=False, keep_inputs=False)¶
Bases:
ProducerAlign 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
LDMX.Hcal.visibles module¶
Configuration for Visibles veto
Examples
from LDMX.Hcal.visibles import VisiblesVetoProcessor p.sequence.append( VisiblesVetoProcessor)
- class LDMX.Hcal.visibles.VisiblesVetoProcessor(name='visiblesVeto')¶
Bases:
ProducerConfiguration for visibles veto
- LDMX.Hcal.visibles.makeBDTPath(bdt_name)¶
Get the full path to the installed BDT files Exits entire python script if the file does not exist.
- Parameters:
bdt_name (str) – Name of BDT file (no extension)
- Returns:
full path to installed BDT file
- Return type:
str
Examples
visiblesVeto.bdt_file = makeBDTPath(‘visibles_v1’)