All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Types | Private Attributes | List of all members
icarus::GeoObjectSorterPMTasTPC Class Reference

Geometry sorter having PMT channels follow the same order as TPC. More...

#include <GeoObjectSorterPMTasTPC.h>

Inheritance diagram for icarus::GeoObjectSorterPMTasTPC:
geo::GeoObjectSorterStandard geo::GeoObjectSorter

Public Member Functions

 GeoObjectSorterPMTasTPC (fhicl::ParameterSet const &pset)
 Constructor: passes the configuration to the base class. More...
 
virtual void SortOpDets (std::vector< geo::OpDetGeo > &opDets) const override
 Sorts the specified optical detectors. More...
 
virtual void SortAuxDets (std::vector< geo::AuxDetGeo > &adgeo) const override
 Custom ICARUS sorting of CRT. More...
 
virtual void SortAuxDetSensitive (std::vector< geo::AuxDetSensitiveGeo > &adsgeo) const override
 Custom ICARUS sorting of CRT submodules. More...
 
- Public Member Functions inherited from geo::GeoObjectSorterStandard
 GeoObjectSorterStandard (fhicl::ParameterSet const &p)
 
void SortAuxDets (std::vector< geo::AuxDetGeo > &adgeo) const override
 
void SortAuxDetSensitive (std::vector< geo::AuxDetSensitiveGeo > &adsgeo) const override
 
void SortCryostats (std::vector< geo::CryostatGeo > &cgeo) const override
 
void SortTPCs (std::vector< geo::TPCGeo > &tgeo) const override
 
void SortPlanes (std::vector< geo::PlaneGeo > &pgeo, geo::DriftDirection_t driftDir) const override
 
void SortWires (std::vector< geo::WireGeo > &wgeo) const override
 
- Public Member Functions inherited from geo::GeoObjectSorter
virtual ~GeoObjectSorter ()=default
 

Private Types

using PMTsorter_t = icarus::PMTsorterStandard
 The sorting algorithm we use. More...
 
using PMTsorterConfigTable = fhicl::Table< PMTsorter_t::Config >
 

Private Attributes

PMTsorter_t fPMTsorter
 PMT sorting algorithm. More...
 

Detailed Description

Geometry sorter having PMT channels follow the same order as TPC.

This class sorts the elements of the LArSoft detector description. The TPC elements are sorted according to the "standard" algorithm (geo::GeoObjectSorterStandard). The PMT are arranged so that their channels mimic the order of the TPC channels (delegated to icarus::PMTsorter algorithm).

The algorithm for assigning channels to the wires follows the criteria:

PMT channels are assigned by a fixed LArSoft algorithm, cryostat by cryostat with increasing cryostat number (first C:0, then C:1, ...). Each cryostat has its set of optical detectors, sorted by a customizable geometric sorting algorithm, and the channel number assignment follows the sequence of optical detectors as sorted by that algorithm.

This class reimplements the geometric sorting algorithm following criteria similar to the TPC wires:

Configuration parameters

In addition to the parameters for the standard sorter (geo::GeoObjectSorterStandard), this sorter supports the following parameters:

Definition at line 76 of file GeoObjectSorterPMTasTPC.h.

Member Typedef Documentation

The sorting algorithm we use.

Definition at line 79 of file GeoObjectSorterPMTasTPC.h.

Definition at line 81 of file GeoObjectSorterPMTasTPC.h.

Constructor & Destructor Documentation

icarus::GeoObjectSorterPMTasTPC::GeoObjectSorterPMTasTPC ( fhicl::ParameterSet const &  pset)
inline

Constructor: passes the configuration to the base class.

Definition at line 86 of file GeoObjectSorterPMTasTPC.h.

88  , fPMTsorter
89  (PMTsorterConfigTable{ pset.get("OpDetSorter", fhicl::ParameterSet{}) }())
90  {}
fhicl::Table< PMTsorter_t::Config > PMTsorterConfigTable
PMTsorter_t fPMTsorter
PMT sorting algorithm.

Member Function Documentation

void icarus::GeoObjectSorterPMTasTPC::SortAuxDets ( std::vector< geo::AuxDetGeo > &  adgeo) const
overridevirtual

Custom ICARUS sorting of CRT.

Implements geo::GeoObjectSorter.

Definition at line 21 of file GeoObjectSorterPMTasTPC.cxx.

22 {
24 }
void SortAuxDetsStandard(std::vector< geo::AuxDetGeo > &adgeo)
Sorts ICARUS CRT modules in standard configuration.
void icarus::GeoObjectSorterPMTasTPC::SortAuxDetSensitive ( std::vector< geo::AuxDetSensitiveGeo > &  adsgeo) const
overridevirtual

Custom ICARUS sorting of CRT submodules.

Implements geo::GeoObjectSorter.

Definition at line 28 of file GeoObjectSorterPMTasTPC.cxx.

29 {
31 }
void SortAuxDetSensitiveStandard(std::vector< geo::AuxDetSensitiveGeo > &adsgeo)
Sorts ICARUS CRT submodules in standard configuration.
virtual void icarus::GeoObjectSorterPMTasTPC::SortOpDets ( std::vector< geo::OpDetGeo > &  opDets) const
inlineoverridevirtual

Sorts the specified optical detectors.

Parameters
opDetscollection of pointers to all optical detectors in a cryostat

The collection opDets of optical detectors is sorted in place. Sorting criteria are documented in icarus::GeoObjectSorterPMTasTPC class documentation.

This algorithm requires all optical detectors to have their center defined (geo::OpDetGeo::GetCenter()). No other information is used.

Note
The current implementation is very sensitive to rounding errors!

Reimplemented from geo::GeoObjectSorter.

Definition at line 107 of file GeoObjectSorterPMTasTPC.h.

108  { fPMTsorter.sort(opDets); }
PMTsorter_t fPMTsorter
PMT sorting algorithm.
void sort(std::vector< geo::OpDetGeo > &opDets) const
Sorts the specified optical detectors.
Definition: PMTsorting.cxx:24

Member Data Documentation

PMTsorter_t icarus::GeoObjectSorterPMTasTPC::fPMTsorter
private

PMT sorting algorithm.

Definition at line 120 of file GeoObjectSorterPMTasTPC.h.


The documentation for this class was generated from the following files: