LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
detinfo Namespace Reference

General LArSoft Utilities. More...

Namespaces

 details
 
 timescales
 Namespace including different time scales as defined in LArSoft.
 

Classes

class  DetectorClocks
 Class used for the conversion of times between different formats and references. More...
 
class  DetectorClocksData
 Contains all timing reference information for the detector. More...
 
class  DetectorClocksException
 
class  DetectorClocksService
 
class  DetectorClocksServiceStandard
 art service managing detinfo::DetectorClocksStandard. More...
 
class  DetectorClocksStandard
 Implementation of detinfo::DetectorClocks interface with fixed settings from configuration. More...
 
class  DetectorClocksWithUnits
 A partial detinfo::DetectorClocksData supporting units. More...
 
class  DetectorProperties
 
class  DetectorPropertiesData
 
class  DetectorPropertiesService
 
class  DetectorPropertiesServiceStandard
 
class  DetectorPropertiesStandard
 
class  DetectorTimings
 A class exposing an upgraded interface of detinfo::DetectorClocksData. More...
 
class  ElecClock
 Class representing the time measured by an electronics clock. More...
 
class  LArProperties
 
class  LArPropertiesService
 
class  LArPropertiesServiceStandard
 
class  LArPropertiesStandard
 Properties related to liquid argon environment in the detector. More...
 
class  RunHistory
 
class  RunHistoryStandard
 
class  SubRun
 
class  SubRunStandard
 

Enumerations

enum  ConfigType_t {
  kG4RefTime = 0, kTriggerOffsetTPC, kFramePeriod, kClockSpeedTPC,
  kClockSpeedOptical, kClockSpeedTrigger, kClockSpeedExternal, kDefaultTrigTime,
  kDefaultBeamTime, kConfigTypeMax
}
 
enum  RunType_t {
  kUnknownRunType = 0, kProductionRun, kCommissioningRun, kTestRun,
  kPedestalRun, kCalibrationRun, kNRunType
}
 

Functions

int trigger_offset (DetectorClocksData const &data)
 
double sampling_rate (DetectorClocksData const &data)
 Returns the period of the TPC readout electronics clock. More...
 
template<typename Event >
detinfo::DetectorClocksData detectorClocksStandardDataFor (detinfo::DetectorClocksStandard const &detClocks, Event const &event)
 Returns DetectorClocksData tuned on the specified event. More...
 
template<typename Event >
std::optional< std::pair< double, double > > trigger_times_for_event (art::InputTag const &triggerTag, Event const &event)
 Loads DetectorClocksStandard trigger times. More...
 
template<typename Event >
std::optional< double > g4ref_time_for_event (art::InputTag const &triggerTag, Event const &event)
 Loads DetectorClocksStandard G4Ref correction times. More...
 
detinfo::DetectorClocksWithUnits makeDetectorClocksWithUnits (detinfo::DetectorClocksData const &clockData)
 
detinfo::DetectorTimings makeDetectorTimings (detinfo::DetectorClocksData const &detClocks)
 
detinfo::DetectorTimings makeDetectorTimings (detinfo::DetectorClocksData const *detClocks)
 
detinfo::DetectorTimings makeDetectorTimings (detinfo::DetectorClocksWithUnits const &detClocksWU)
 

Variables

constexpr double kTIME_MAX = std::numeric_limits<double>::max()
 Maximum time in microseconds. More...
 
constexpr double kDEFAULT_FREQUENCY = 1.e-6
 Default Frequency in MHz. More...
 
constexpr double kDEFAULT_FRAME_PERIOD = 1.6e3
 Default Frame period in micro-second. More...
 
constexpr double kDEFAULT_FREQUENCY_OPTICAL = 64.
 Default Optical clock speed in MHz. More...
 
constexpr double kDEFAULT_FREQUENCY_TPC = 2.
 Default TPC clock speed in MHz. More...
 
constexpr double kDEFAULT_FREQUENCY_TRIGGER = 16.
 Default Trigger clock speed in MHz. More...
 
constexpr double kDEFAULT_FREQUENCY_EXTERNAL = 31.25
 Default External clock speed in MHz. More...
 
constexpr double kDEFAULT_MC_CLOCK_T0 = 0
 Default G4 reference time in micro-second. More...
 
constexpr double kDEFAULT_TRIG_OFFSET_TPC = -1600.
 Default TPC readout start time offset from trigger in micro-second. More...
 
constexpr double kDEFAULT_TRIG_TIME = 0.0
 Default TriggerTime in micro-second. More...
 
constexpr double kDEFAULT_BEAM_TIME = 0.0
 Default BeamGateTime in micro-second. More...
 

Detailed Description

General LArSoft Utilities.

Title: FlashHypothesis Creator Class Author: Wes Ketchum (wketc.nosp@m.hum@.nosp@m.lanl..nosp@m.gov)

Description: class that produces a flash hypothesis for a trajectory. Input: Trajectory (std::vector<TVector3> objects) Output: FlashHypotheses

Title: OpFlash Algorithims Author: Ben Jones, MIT (Edited by wketc.nosp@m.hum@.nosp@m.lanl..nosp@m.gov and gleb..nosp@m.sine.nosp@m.v@duk.nosp@m.e.ed.nosp@m.u)

Description: These are the algorithms used by OpFlashFinder to produce flashes.

ClusterMatchTQ class

tjyan.nosp@m.g@fn.nosp@m.al.go.nosp@m.v

Algorithm for matching clusters between different views based on time and charge information

Input: a list of clusters and all hits associated with clusters Output: a vector of index vectors. Each group of indices represent a particle candidate

Title: SpacePointAlg_TimeSort class Author: wketc.nosp@m.hum@.nosp@m.lanl..nosp@m.gov Inputs: std::vector<recob::Hit> (one for each plane) Outputs: std::vector<recob::SpacePoint>

Description: This space point algorithm tries to improve speed by (1) keeping hit collections distinct among planes; (2) sorting hit collections by time; and, (3) having a lookup table for (y,z) coordinate positions. The original use case for this code was with the TTHitFinder, which produces an incredibly large number of hits per plane, making some sorted space point alg more attractive.

This code is totally microboone specific, btw.

Enumeration Type Documentation

Enumerator
kG4RefTime 
kTriggerOffsetTPC 
kFramePeriod 
kClockSpeedTPC 
kClockSpeedOptical 
kClockSpeedTrigger 
kClockSpeedExternal 
kDefaultTrigTime 
kDefaultBeamTime 
kConfigTypeMax 

Definition at line 21 of file DetectorClocks.h.

Enumerator
kUnknownRunType 
kProductionRun 
kCommissioningRun 
kTestRun 
kPedestalRun 
kCalibrationRun 
kNRunType 

Definition at line 15 of file RunHistory.h.

Function Documentation

template<typename Event >
detinfo::DetectorClocksData detinfo::detectorClocksStandardDataFor ( detinfo::DetectorClocksStandard const &  detClocks,
Event const &  event 
)

Returns DetectorClocksData tuned on the specified event.

Template Parameters
Eventtype of framework event
Parameters
detClocksservice provider generating the data
eventevent to read information from
Returns
DetectorClocksData tuned on the specified event

This function takes care to extract all what is needed by DetectorClocksStandard service provider in order to provide data for the event.

Example:

{ config.get<fhicl::ParameterSet>("services.DetectorClocksService") };
for (gallery::Event event(inputFiles); !event.atEnd(); event.next()) {
auto const triggerTime = clockData.TriggerTime();
// etc...
} // for

Requirements

The implementation is effectively dependent on the framework managing the event, but it is not formally dependent on any implementation. Assumptions include everything that is required by other helper functions like detinfo::trigger_times_for_event() and detinfo::g4ref_time_for_event() (mostly, support for a call like Event::getByLabel(art::InputTag, Event::HandleT<T>)).

Definition at line 67 of file DetectorClocksStandardDataFor.h.

References detinfo::DetectorClocksStandard::ConfigValues(), detinfo::DetectorClocksStandard::DataFor(), g4ref_time_for_event(), detinfo::DetectorClocksStandard::G4RefCorrTrigModuleName(), kDefaultBeamTime, kDefaultTrigTime, kG4RefTime, trigger_times_for_event(), and detinfo::DetectorClocksStandard::TrigModuleName().

Referenced by detinfo::DetectorClocksServiceStandard::DataFor().

70  {
71 
72  auto const& config_values = detClocks.ConfigValues();
73  // Trigger times
74  double trig_time{config_values[kDefaultTrigTime]};
75  double beam_time{config_values[kDefaultBeamTime]};
76  if (auto times = trigger_times_for_event(detClocks.TrigModuleName(), event)) {
77  std::tie(trig_time, beam_time) = *times;
78  }
79 
80  double g4_ref_time{config_values[kG4RefTime]};
81  if (auto sim_trig_time = g4ref_time_for_event(detClocks.G4RefCorrTrigModuleName(), event)) {
82  g4_ref_time -= trig_time;
83  g4_ref_time += *sim_trig_time;
84  }
85  return detClocks.DataFor(g4_ref_time, trig_time, beam_time);
86  } // detinfo::detectorClocksStandardDataFor()
std::optional< double > g4ref_time_for_event(art::InputTag const &triggerTag, Event const &event)
Loads DetectorClocksStandard G4Ref correction times.
std::optional< std::pair< double, double > > trigger_times_for_event(art::InputTag const &triggerTag, Event const &event)
Loads DetectorClocksStandard trigger times.
Event finding and building.
template<typename Event >
std::optional<double> detinfo::g4ref_time_for_event ( art::InputTag const &  triggerTag,
Event const &  event 
)

Loads DetectorClocksStandard G4Ref correction times.

Template Parameters
Eventtype of event where trigger data might be stored
Parameters
triggerTagtag of the raw::Trigger collection data product to read
eventthe event the trigger objects are stored into
Returns
optional G4 reference time value, empty if not found
Exceptions
cet::exception(category "setDetectorClocksStandardTrigger") if trigger data product has more than one trigger

This function returns the simulation (G4) reference time from an event. It is assumed to match the trigger time (or, it is assumed that the trigger fired at the time the event was generated). The function attempts to read the information from a raw::Trigger collection data product with tag triggerTag in the event. The time is expected to be in microseconds on the electronics time scale. In case that data product does not exist, or it exists but empty, an empty result is quietly returned. If instead there are multiple trigger objects in the collection, no choice is made, and an exception is thrown.

Definition at line 104 of file DetectorClocksStandardTriggerLoader.h.

References art::InputTag::encode().

Referenced by detectorClocksStandardDataFor().

105  {
106  // fetch the trigger data product
107  using TriggerHandle_t = typename Event::template HandleT<std::vector<raw::Trigger>>;
108 
109  TriggerHandle_t triggerHandle;
110  if (!event.template getByLabel(triggerTag, triggerHandle)) return std::nullopt;
111 
112  // check that we do have a trigger
113  // (we have already checked whether the handle is valid above)
114  auto const& triggers = *triggerHandle;
115  if (triggers.empty()) return std::nullopt;
116 
117  // select which trigger to set (i.e., the only one!)
118  if (triggers.size() != 1) {
119  throw cet::exception("setDetectorClocksStandardTrigger")
120  << "Found " << triggers.size() << " trigger objects in '" << triggerTag.encode()
121  << "' (only one trigger per event is supported)\n";
122  }
123 
124  return std::make_optional(triggers.front().TriggerTime());
125  }
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
Event finding and building.
detinfo::DetectorClocksWithUnits detinfo::makeDetectorClocksWithUnits ( detinfo::DetectorClocksData const &  clockData)
inline

Transforms a detinfo::DetectorClocksData into a detinfo::DetectorClocksWithUnits.

Definition at line 115 of file DetectorTimings.h.

117  {
118  return detinfo::DetectorClocksWithUnits{clockData};
119  }
A partial detinfo::DetectorClocksData supporting units.
detinfo::DetectorTimings detinfo::makeDetectorTimings ( detinfo::DetectorClocksData const &  detClocks)
inline

Returns DetectorTimings object from specified detinfo::DetectorClocksData.

Definition at line 642 of file DetectorTimings.h.

Referenced by evgen::RadioGen::defaulttimewindow(), makeDetectorTimings(), and detinfo::DetectorTimings::toOpticalTickD().

643  {
644  return detinfo::DetectorTimings{detClocks};
645  }
A class exposing an upgraded interface of detinfo::DetectorClocksData.
detinfo::DetectorTimings detinfo::makeDetectorTimings ( detinfo::DetectorClocksData const *  detClocks)
inline

Returns DetectorTimings object from specified detinfo::DetectorClocksData.

Definition at line 649 of file DetectorTimings.h.

References makeDetectorTimings().

650  {
651  return makeDetectorTimings(*detClocks);
652  }
detinfo::DetectorTimings makeDetectorTimings(detinfo::DetectorClocksWithUnits const &detClocksWU)
detinfo::DetectorTimings detinfo::makeDetectorTimings ( detinfo::DetectorClocksWithUnits const &  detClocksWU)
inline

Returns DetectorTimings object from specified detinfo::DetectorClocksWithUnits.

Definition at line 656 of file DetectorTimings.h.

658  {
659  return static_cast<detinfo::DetectorTimings const&>(detClocksWU);
660  }
A class exposing an upgraded interface of detinfo::DetectorClocksData.
double detinfo::sampling_rate ( DetectorClocksData const &  data)
inline

Returns the period of the TPC readout electronics clock.

Returns
the period of the TPC readout electronics clock [µs]
See also
detinfo::DetectorClocks::TPCClock()

Definition at line 575 of file DetectorClocksData.h.

References detinfo::ElecClock::TickPeriod(), and detinfo::DetectorClocksData::TPCClock().

Referenced by vertex::FeatureVertexFinderAna::analyze(), hit::GausHitFinderAna::analyze(), detsim::WienerFilterAna::beginJob(), CRHitRemoval::beginJob(), shwf::ShowerReco::beginJob(), shwf::ShowerReco::beginRun(), lar_pandora::LArPandoraOutput::BuildT0(), ShowerRecoTools::ShowerLinearEnergy::CalculateEnergy(), ShowerRecoTools::ShowerPCADirection::CalculateShowerPCA(), evd::RecoBaseDrawer::Cluster2D(), cosmic::CosmicClusterTagger::CosmicClusterTagger(), cosmic::CosmicPCAxisTagger::CosmicPCAxisTagger(), cosmic::CosmicPFParticleTagger::CosmicPFParticleTagger(), cosmic::CosmicTrackTagger::CosmicTrackTagger(), detinfo::DetectorPropertiesStandard::DataFor(), cluster::DBCluster3D::DBCluster3D(), noisefilteralg::WireCellNoiseFilter::DoNoiseFilter(), evdb_tool::OpFlash3DDrawer::Draw(), evd::RecoBaseDrawer::DrawTrack2D(), cluster::EndPointAlg::EndPoint(), cluster::HoughBaseAlg::FastTransform(), tca::FillWireHitRange(), filter::MuonFilter::filter(), evd::TWQMultiTPCProjectionView::FindEndPoint(), evd::TWQMultiTPCProjectionView::FindLineLength(), evd::TWQProjectionView::FindLineLength(), cluster::SmallClusterFinderAlg::FindSmallClusters(), util::GeometryUtilities::GeometryUtilities(), sim::SimListUtils::GetLArVoxelList(), shower::TCShowerElectronLikelihood::getShowerProfile(), shower::TCShowerAlg::goodHit(), hit::HitCheater::HitCheater(), cluster::HoughBaseAlg::HoughBaseAlg(), cluster::DBScanAlg::InitScan(), calo::CalorimetryAlg::LifetimeCorrection(), trkf::CosmicTrackerAlg::MakeSPT(), evd::RecoBaseDrawer::OpFlash2D(), evd::RecoBaseDrawer::OpFlashOrtho(), shwf::ShowerReco::produce(), vertex::VertexFinder2D::produce(), calo::Calorimetry::produce(), cluster::ClusterCrawlerAlg::RunCrawler(), shower::LArPandoraShowerAlg::ShowerCentre(), shower::ShowerEnergyAlg::ShowerEnergy(), ShowerRecoTools::ShowerTrackPCADirection::ShowerPCAVector(), ShowerRecoTools::ShowerIncrementalTrackHitFinder::ShowerPCAVector(), shower::TCShowerTemplateMaker::showerProfile(), shower::TCShowerTemplateMaker::showerProfileTrue(), detsim::SimWire::SimWire(), and trkf::CosmicTrackerAlg::Track3D().

576  {
577  return data.TPCClock().TickPeriod() * 1.e3;
578  }
template<typename Event >
std::optional<std::pair<double, double> > detinfo::trigger_times_for_event ( art::InputTag const &  triggerTag,
Event const &  event 
)

Loads DetectorClocksStandard trigger times.

Template Parameters
Eventtype of event where trigger data might be stored
Parameters
triggerTagtag of the raw::Trigger collection data product to read
eventthe event the trigger objects are stored into
Returns
optional pair of trigger and beam gate time, empty if not found
Exceptions
cet::exception(category "setDetectorClocksStandardTrigger") if trigger data product has more than one trigger

This function returns the relative trigger and beam gate times read from an event. It attempts to read the information from a raw::Trigger collection data product with tag triggerTag in the event. Times are expected to be in microseconds on the electronics time scale. In case that data product does not exist, or it exists but empty, an empty result is quietly returned. If instead there are multiple trigger objects in the collection, no choice is made, and an exception is thrown.

Definition at line 57 of file DetectorClocksStandardTriggerLoader.h.

References art::InputTag::encode().

Referenced by detectorClocksStandardDataFor().

59  {
60  // try to read the trigger from the event
61  // fetch the trigger data product
62  using TriggerHandle_t = typename Event::template HandleT<std::vector<raw::Trigger>>;
63 
64  TriggerHandle_t triggerHandle;
65  if (!event.template getByLabel(triggerTag, triggerHandle)) { return std::nullopt; }
66 
67  // check that we do have a trigger
68  // (we have already checked whether the handle is valid above)
69  auto const& triggers = *triggerHandle;
70  if (triggers.empty()) { return std::nullopt; }
71 
72  // select which trigger to set (i.e., the only one!)
73  if (triggers.size() != 1) {
74  throw cet::exception("setDetectorClocksStandardTrigger")
75  << "Found " << triggers.size() << " trigger objects in '" << triggerTag.encode()
76  << "' (only one trigger per event is supported)\n";
77  }
78 
79  auto const& trigger = triggers.front();
80  return std::make_optional(std::make_pair(trigger.TriggerTime(), trigger.BeamGateTime()));
81  }
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
Event finding and building.

Variable Documentation

constexpr double detinfo::kDEFAULT_BEAM_TIME = 0.0

Default BeamGateTime in micro-second.

Definition at line 39 of file ClockConstants.h.

constexpr double detinfo::kDEFAULT_FRAME_PERIOD = 1.6e3

Default Frame period in micro-second.

Definition at line 15 of file ClockConstants.h.

Referenced by detinfo::DetectorClocksStandard::DataFor(), and detinfo::DetectorClocksStandard::DataForJob().

constexpr double detinfo::kDEFAULT_FREQUENCY = 1.e-6

Default Frequency in MHz.

Definition at line 12 of file ClockConstants.h.

constexpr double detinfo::kDEFAULT_FREQUENCY_EXTERNAL = 31.25

Default External clock speed in MHz.

Definition at line 27 of file ClockConstants.h.

Referenced by detinfo::DetectorClocksStandard::DataFor(), and detinfo::DetectorClocksStandard::DataForJob().

constexpr double detinfo::kDEFAULT_FREQUENCY_OPTICAL = 64.

Default Optical clock speed in MHz.

Definition at line 18 of file ClockConstants.h.

constexpr double detinfo::kDEFAULT_FREQUENCY_TPC = 2.

Default TPC clock speed in MHz.

Definition at line 21 of file ClockConstants.h.

constexpr double detinfo::kDEFAULT_FREQUENCY_TRIGGER = 16.

Default Trigger clock speed in MHz.

Definition at line 24 of file ClockConstants.h.

constexpr double detinfo::kDEFAULT_MC_CLOCK_T0 = 0

Default G4 reference time in micro-second.

Definition at line 30 of file ClockConstants.h.

constexpr double detinfo::kDEFAULT_TRIG_OFFSET_TPC = -1600.

Default TPC readout start time offset from trigger in micro-second.

Definition at line 33 of file ClockConstants.h.

constexpr double detinfo::kDEFAULT_TRIG_TIME = 0.0

Default TriggerTime in micro-second.

Definition at line 36 of file ClockConstants.h.

constexpr double detinfo::kTIME_MAX = std::numeric_limits<double>::max()

Maximum time in microseconds.

Definition at line 9 of file ClockConstants.h.