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: 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.detector_map module

Detector map for translations between EIDs and det IDs

class LDMX.Hcal.detector_map.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.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: object

Type 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: Producer

Configuration for HcalDigiProducer

hgcroc

Configuration for the chip emulator

Type:

HgcrocEmulator

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: Producer

Configuration 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: 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 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: Producer

Configuration 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() )

class LDMX.Hcal.hcal.HcalVetoProcessor(name='hcalVeto')

Bases: Producer

Configuration for veto in HCal

Sets all parameters to reasonable defaults.

Examples

from LDMX.EventProc.hcal import HcalVetoProcessor p.sequence.append( HcalVetoProcessor() )

class LDMX.Hcal.hcal.HcalWABVetoProcessor(name='hcalWABVeto')

Bases: Producer

Configuration for WAB veto in HCal

Sets all parameters to reasonable defaults.

Examples

from LDMX.EventProc.hcal import HcalWABVetoProcessor p.sequence.append( HcalWABVetoProcessor() )

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: 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_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.

class LDMX.Hcal.hcal_trig_digi.HcalTrigPrimDigiProducer(instance_name='hcalTrigPrimDigis')

Bases: Producer

Configuration for HcalTrigPrimDigiProducer

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: 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

class LDMX.Hcal.hgcroc_format.HcalRawDecoder(output_name, roc_version=2, input_names=None, input_pass='', input_file=None, connections_table=None, detector_name='ldmx-hcal-prototype-v1.0')

Bases: Producer

Decode a raw buffer into HCal Digis

Parameters

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: Producer

Configuration 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’)

Module contents