Algorithm clustering PMT according to their position. More...
#include <PMTverticalSlicingAlg.h>
Public Types | |
using | PMTlist_t = std::vector< geo::OpDetGeo const * > |
Type of optical detector list. More... | |
using | PMTtower_t = PMTlist_t |
Type of optical detector list in a PMT tower. More... | |
using | PMTtowerOnPlane_t = std::vector< PMTtower_t > |
Type of list of PMT towers on a single optical detector plane. More... | |
using | Slices_t = std::vector< PMTtowerOnPlane_t > |
Type of PMT towers, per plane. More... | |
Public Member Functions | |
PMTverticalSlicingAlg (std::string logCategory="PMTverticalSlicingAlg") | |
Constructor: no configuration parameters so far. More... | |
void | appendCryoSlices (Slices_t &slices, geo::CryostatGeo const &cryo) const |
Computes slices from all PMT in cryo and appends them to slices . More... | |
std::vector< std::pair< double, PMTlist_t > > | PMTwalls (geo::CryostatGeo const &cryo) const |
Groups optical detectors under the specified cryostat into walls. More... | |
std::vector< std::pair< double, PMTlist_t > > | PMTwalls (geo::GeometryCore const &geom) const |
Groups optical detectors in all the detector into walls. More... | |
Private Member Functions | |
void | appendSlices (Slices_t &slices, PMTlist_t const &PMTs, geo::Vector_t const &planeNorm, geo::Vector_t const &clusterDir) const |
Computes slices and appends them to an existing list. More... | |
std::vector< std::pair< double, PMTlist_t > > | PMTwalls (PMTlist_t const &PMTs, geo::Vector_t const &dir) const |
Groups the specifies optical detectors into walls. More... | |
Static Private Member Functions | |
static double | PMTwallPosition (PMTlist_t const &PMTs, geo::Vector_t const &dir) |
Returns an (arbitrary) coordinate along dir representing the PMT list. More... | |
template<typename TPCCont > | |
static geo::Vector_t | determineDriftDir (TPCCont const &TPCcont) |
template<typename TPCCont > | |
static geo::Vector_t | determineLengthDir (TPCCont const &TPCcont) |
static std::vector< PMTlist_t > | clusterPMTby (PMTlist_t const &PMTs, geo::Vector_t const &dir) |
Clusters the PMTs along the specified direction. More... | |
static PMTlist_t | getCryoPMTs (geo::CryostatGeo const &cryo) |
Returns a list of all geo::OpDetGeo in cryostat cryo . More... | |
static PMTlist_t | getPMTs (geo::GeometryCore const &geom) |
Returns a list of all geo::OpDetGeo in the whole geometry. More... | |
static bool | areParallel (geo::Vector_t const &a, geo::Vector_t const &b) |
Returns whether a and b are parallel. More... | |
Private Attributes | |
std::string | fLogCategory |
Category for message streaming. More... | |
Algorithm clustering PMT according to their position.
The algorithm groups the provided PMT by plane (determined from the drift direction of the TPC) and by the beam-like direction (the one that is not the vertical, i.e. TPC "width" direction).
Definition at line 45 of file PMTverticalSlicingAlg.h.
using icarus::trigger::PMTverticalSlicingAlg::PMTlist_t = std::vector<geo::OpDetGeo const*> |
Type of optical detector list.
Definition at line 50 of file PMTverticalSlicingAlg.h.
Type of optical detector list in a PMT tower.
Definition at line 53 of file PMTverticalSlicingAlg.h.
using icarus::trigger::PMTverticalSlicingAlg::PMTtowerOnPlane_t = std::vector<PMTtower_t> |
Type of list of PMT towers on a single optical detector plane.
Definition at line 56 of file PMTverticalSlicingAlg.h.
using icarus::trigger::PMTverticalSlicingAlg::Slices_t = std::vector<PMTtowerOnPlane_t> |
Type of PMT towers, per plane.
Definition at line 59 of file PMTverticalSlicingAlg.h.
icarus::trigger::PMTverticalSlicingAlg::PMTverticalSlicingAlg | ( | std::string | logCategory = "PMTverticalSlicingAlg" | ) |
Constructor: no configuration parameters so far.
Definition at line 75 of file PMTverticalSlicingAlg.cxx.
void icarus::trigger::PMTverticalSlicingAlg::appendCryoSlices | ( | Slices_t & | slices, |
geo::CryostatGeo const & | cryo | ||
) | const |
Computes slices from all PMT in cryo
and appends them to slices
.
Definition at line 82 of file PMTverticalSlicingAlg.cxx.
|
private |
Computes slices and appends them to an existing list.
Definition at line 109 of file PMTverticalSlicingAlg.cxx.
|
staticprivate |
|
staticprivate |
Clusters the PMTs along the specified direction.
Definition at line 203 of file PMTverticalSlicingAlg.cxx.
|
staticprivate |
Definition at line 153 of file PMTverticalSlicingAlg.h.
|
staticprivate |
Definition at line 181 of file PMTverticalSlicingAlg.h.
|
staticprivate |
Returns a list of all geo::OpDetGeo
in cryostat cryo
.
Definition at line 226 of file PMTverticalSlicingAlg.cxx.
|
staticprivate |
Returns a list of all geo::OpDetGeo
in the whole geometry.
Definition at line 237 of file PMTverticalSlicingAlg.cxx.
|
staticprivate |
Returns an (arbitrary) coordinate along dir
representing the PMT list.
Definition at line 189 of file PMTverticalSlicingAlg.cxx.
auto icarus::trigger::PMTverticalSlicingAlg::PMTwalls | ( | geo::CryostatGeo const & | cryo | ) | const |
Groups optical detectors under the specified cryostat into walls.
cryo | the cryostat containing the optical detectors |
The algorithm returns a list of walls, with as first element a coordinate representing the wall (drift coordinate) and the second the list of optical detectors in that wall, in no particular order. The walls are sorted by increasing drift coordinate.
Definition at line 92 of file PMTverticalSlicingAlg.cxx.
auto icarus::trigger::PMTverticalSlicingAlg::PMTwalls | ( | geo::GeometryCore const & | geom | ) | const |
Groups optical detectors in all the detector into walls.
geom | the geometry description of the detector |
PMT walls are extracted for each of the cryostats in the detector, and the result is merged into a single collection.
Definition at line 101 of file PMTverticalSlicingAlg.cxx.
|
private |
Groups the specifies optical detectors into walls.
PMTs | the list of PMT to be grouped |
dir | the direction normal to the walls |
The algorithm returns a list of walls, with as first element a coordinate representing the wall and the second the list of optical detectors in that wall, in no particular order. The walls are sorted by increasing coordinate.
Definition at line 167 of file PMTverticalSlicingAlg.cxx.
|
private |
Category for message streaming.
Definition at line 97 of file PMTverticalSlicingAlg.h.