Geometry sorter having PMT channels follow the same order as TPC. More...
#include <GeoObjectSorterPMTasTPC.h>
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... | |
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:
In addition to the parameters for the standard sorter (geo::GeoObjectSorterStandard
), this sorter supports the following parameters:
OpDetSorter
(configuration table; default: empty): configures the PMT sorter object (see icarus::PMTsorter
for details) Definition at line 76 of file GeoObjectSorterPMTasTPC.h.
The sorting algorithm we use.
Definition at line 79 of file GeoObjectSorterPMTasTPC.h.
|
private |
Definition at line 81 of file GeoObjectSorterPMTasTPC.h.
|
inline |
Constructor: passes the configuration to the base class.
Definition at line 86 of file GeoObjectSorterPMTasTPC.h.
|
overridevirtual |
Custom ICARUS sorting of CRT.
Implements geo::GeoObjectSorter.
Definition at line 21 of file GeoObjectSorterPMTasTPC.cxx.
|
overridevirtual |
Custom ICARUS sorting of CRT submodules.
Implements geo::GeoObjectSorter.
Definition at line 28 of file GeoObjectSorterPMTasTPC.cxx.
|
inlineoverridevirtual |
Sorts the specified optical detectors.
opDets | collection 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.
Reimplemented from geo::GeoObjectSorter.
Definition at line 107 of file GeoObjectSorterPMTasTPC.h.
|
private |
PMT sorting algorithm.
Definition at line 120 of file GeoObjectSorterPMTasTPC.h.