#include <ChannelMap35Alg.h>
Classes | |
struct | PlaneData_t |
all data we need for each APA More... | |
Public Member Functions | |
ChannelMap35Alg (fhicl::ParameterSet const &p) | |
void | Initialize (GeometryData_t const &geodata) override |
Geometry initialisation. More... | |
void | Uninitialize () override |
Deconfiguration: prepare for a following call of Initialize() More... | |
std::vector< WireID > | ChannelToWire (raw::ChannelID_t channel) const override |
unsigned int | Nchannels () const override |
Returns the total number of channels present (not necessarily contiguous) More... | |
virtual unsigned int | Nchannels (readout::ROPID const &ropid) const override |
Returns the number of channels in the specified ROP. More... | |
View_t | View (raw::ChannelID_t const channel) const |
SigType_t | SignalTypeForChannelImpl (raw::ChannelID_t const channel) const override |
Return the signal type of the specified channel. More... | |
std::set< View_t > const & | Views () const |
std::set< PlaneID > const & | PlaneIDs () const override |
Returns a list of the plane IDs in the whole detector. More... | |
virtual geo::GeoObjectSorter const & | Sorter () const override |
Returns the object to sort geometry with. More... | |
unsigned int | NOpChannels (unsigned int NOpDets) const override |
Returns the number of optical channels contained in some detectors. More... | |
unsigned int | NOpHardwareChannels (unsigned int opDet) const override |
Returns the number of channels in the specified optical detectors. More... | |
unsigned int | OpChannel (unsigned int detNum, unsigned int channel=0) const override |
Returns the channel ID of the specified hardware channel. More... | |
unsigned int | OpDetFromOpChannel (unsigned int opChannel) const override |
Returns the optical detector the specified optical channel belongs. More... | |
unsigned int | HardwareChannelFromOpChannel (unsigned int opChannel) const override |
Returns the hardware channel number of specified optical channel. More... | |
virtual double | WireCoordinate (double YPos, double ZPos, unsigned int PlaneNo, unsigned int TPCNo, unsigned int cstat) const override |
Returns the index of the wire nearest to the specified position. More... | |
virtual double | WireCoordinate (double YPos, double ZPos, geo::PlaneID const &planeID) const override |
Returns the index of the wire nearest to the specified position. More... | |
virtual WireID | NearestWireID (const TVector3 &worldPos, unsigned int PlaneNo, unsigned int TPCNo, unsigned int cstat) const override |
Returns the ID of the wire nearest to the specified position. More... | |
virtual WireID | NearestWireID (const TVector3 &worldPos, geo::PlaneID const &planeID) const override |
Returns the ID of the wire nearest to the specified position. More... | |
virtual raw::ChannelID_t | PlaneWireToChannel (unsigned int plane, unsigned int wire, unsigned int tpc, unsigned int cstat) const override |
Returns the channel ID a wire is connected to. More... | |
virtual raw::ChannelID_t | PlaneWireToChannel (geo::WireID const &wireID) const override |
Returns the channel ID a wire is connected to. More... | |
TPC set mapping | |
virtual unsigned int | NTPCsets (readout::CryostatID const &cryoid) const override |
Returns the total number of TPC sets in the specified cryostat. More... | |
virtual unsigned int | MaxTPCsets () const override |
virtual bool | HasTPCset (readout::TPCsetID const &tpcsetid) const override |
virtual readout::TPCsetID | TPCtoTPCset (geo::TPCID const &tpcid) const override |
Returns the ID of the TPC set the specified TPC belongs to. More... | |
virtual std::vector< geo::TPCID > | TPCsetToTPCs (readout::TPCsetID const &tpcsetid) const override |
Returns a list of ID of TPCs belonging to the specified TPC set. More... | |
virtual geo::TPCID | FirstTPCinTPCset (readout::TPCsetID const &tpcsetid) const override |
Readout plane mapping | |
virtual unsigned int | NROPs (readout::TPCsetID const &tpcsetid) const override |
Returns the total number of ROP in the specified TPC set. More... | |
virtual unsigned int | MaxROPs () const override |
virtual bool | HasROP (readout::ROPID const &ropid) const override |
virtual readout::ROPID | WirePlaneToROP (geo::PlaneID const &planeid) const override |
Returns the ID of the ROP planeid belongs to, or invalid if none. More... | |
virtual std::vector< geo::PlaneID > | ROPtoWirePlanes (readout::ROPID const &ropid) const override |
Returns a list of ID of wire planes belonging to the specified ROP. More... | |
virtual std::vector< geo::TPCID > | ROPtoTPCs (readout::ROPID const &ropid) const override |
Returns a list of ID of TPCs the specified ROP spans. More... | |
virtual readout::ROPID | ChannelToROP (raw::ChannelID_t channel) const override |
virtual raw::ChannelID_t | FirstChannelInROP (readout::ROPID const &ropid) const override |
Returns the ID of the first channel in the specified readout plane. More... | |
virtual geo::PlaneID | FirstWirePlaneInROP (readout::ROPID const &ropid) const override |
Returns the ID of the first plane belonging to the specified ROP. More... | |
Public Member Functions inherited from geo::ChannelMapAlg | |
virtual | ~ChannelMapAlg ()=default |
Virtual destructor. More... | |
virtual unsigned int | MaxOpChannel (unsigned int NOpDets) const |
Returns the number of optical channels contained in some detectors. More... | |
virtual bool | IsValidOpChannel (unsigned int opChannel, unsigned int NOpDets) const |
Returns whether the ID identifies a valid optical detector channel. More... | |
unsigned int | NearestWire (const TVector3 &worldPos, geo::PlaneID const &planeID) const |
Returns the index of the wire nearest to the specified position. More... | |
unsigned int | NearestWire (const TVector3 &worldPos, unsigned int PlaneNo, unsigned int TPCNo, unsigned int cstat) const |
Returns the index of the wire nearest to the specified position. More... | |
virtual size_t | NearestAuxDet (const double *point, std::vector< geo::AuxDetGeo > const &auxDets, double tolerance=0) const |
Returns the auxiliary detector closest to the specified point. More... | |
virtual size_t | NearestSensitiveAuxDet (const double *point, std::vector< geo::AuxDetGeo > const &auxDets, double tolerance=0) const |
Returns sensitive auxiliary detector closest to specified point. More... | |
virtual size_t | ChannelToAuxDet (std::vector< geo::AuxDetGeo > const &auxDets, std::string const &detName, uint32_t const &channel) const |
Returns the index of the detector containing the specified channel. More... | |
virtual std::pair< size_t, size_t > | ChannelToSensitiveAuxDet (std::vector< geo::AuxDetGeo > const &auxDets, std::string const &detName, uint32_t const &channel) const |
Returns the index of the sensitive detector containing the channel. More... | |
const std::vector< std::vector< std::vector< raw::ChannelID_t > > > | FirstChannelInNextPlane () const |
Retrieve the private fFirstChannelInNextPlane vector for testing. More... | |
const std::vector< std::vector< std::vector< raw::ChannelID_t > > > | FirstChannelInThisPlane () const |
Retrieve the private fFirstChannelInThisPlane vector for testing. More... | |
virtual bool | HasChannel (raw::ChannelID_t channel) const |
Returns whether the specified channel is valid This default implementation assumes all channels up to Nchannels() valid. More... | |
geo::SigType_t | SignalTypeForChannel (raw::ChannelID_t const channel) const |
Return the signal type of the specified channel. More... | |
geo::SigType_t | SignalTypeForROPID (readout::ROPID const &ropid) const |
Return the signal type on the specified readout plane. More... | |
Private Member Functions | |
template<typename T > | |
T const & | AccessAPAelement (PlaneInfoMap_t< T > const &data, geo::PlaneID planeid) const |
unsigned int | WiresPerPlane (geo::PlaneID const &planeid) const |
unsigned int | AnchoredWires (geo::PlaneID const &planeid) const |
Private Attributes | |
unsigned int | fNcryostat |
number of cryostats in the detector More... | |
unsigned int | fNchannels |
number of channels in the detector More... | |
raw::ChannelID_t | fTopChannel |
book keeping highest channel # More... | |
std::vector< unsigned int > | fNTPC |
number of TPCs in each cryostat More... | |
std::set< View_t > | fViews |
vector of the views present in the detector More... | |
std::set< PlaneID > | fPlaneIDs |
vector of the PlaneIDs present in the detector More... | |
unsigned int | fPlanesPerAPA |
raw::ChannelID_t | fChannelsPerAPA |
PlaneInfoMap_t< unsigned int > | nAnchoredWires |
PlaneInfoMap_t< unsigned int > | fWiresPerPlane |
geo::GeoObjectSorter35 | fSorter |
sorts geo::XXXGeo objects More... | |
PlaneInfoMap_t< PlaneData_t > | fPlaneData |
std::vector< double > | fWirePitch |
std::vector< double > | fOrientation |
std::vector< double > | fSinOrientation |
std::vector< double > | fCosOrientation |
Additional Inherited Members | |
Protected Types inherited from geo::ChannelMapAlg | |
template<typename T > | |
using | TPCInfoMap_t = std::vector< std::vector< T >> |
Data type for per-TPC information. More... | |
template<typename T > | |
using | PlaneInfoMap_t = TPCInfoMap_t< std::vector< T >> |
Data type for per-plane information. More... | |
Protected Member Functions inherited from geo::ChannelMapAlg | |
template<typename T > | |
T const & | AccessElement (PlaneInfoMap_t< T > const &map, geo::PlaneID const &id) const |
Returns the specified element of the plane map. More... | |
template<typename T > | |
size_t | AccessElementSize (PlaneInfoMap_t< T > const &map, geo::TPCID const &id) const |
Returns the number of elements in the specified TPC of the plane map. More... | |
template<typename T > | |
T const * | GetElementPtr (PlaneInfoMap_t< T > const &map, geo::PlaneID const &id) const |
Returns a pointer to the specified element, or nullptr if invalid. More... | |
template<typename T > | |
T const & | AccessElement (TPCInfoMap_t< T > const &map, geo::TPCID const &id) const |
Returns the specified element of the TPC map. More... | |
template<typename T > | |
size_t | AccessElementSize (TPCInfoMap_t< T > const &map, geo::CryostatID const &id) const |
Returns the number of elements in the specified cryostat of the TPC map. More... | |
template<typename T > | |
bool | isValidElement (TPCInfoMap_t< T > const &map, geo::CryostatID const &id) const |
Returns whether the ID specifies a valid entry. More... | |
template<typename T > | |
bool | isValidElement (TPCInfoMap_t< T > const &map, geo::TPCID const &id) const |
template<typename T > | |
bool | isValidElement (PlaneInfoMap_t< T > const &map, geo::CryostatID const &id) const |
Returns whether the ID specifies a valid entry. More... | |
template<typename T > | |
bool | isValidElement (PlaneInfoMap_t< T > const &map, geo::TPCID const &id) const |
template<typename T > | |
bool | isValidElement (PlaneInfoMap_t< T > const &map, geo::PlaneID const &id) const |
virtual geo::SigType_t | SignalTypeForROPIDImpl (readout::ROPID const &ropid) const |
Return the signal type on the specified readout plane. More... | |
Protected Attributes inherited from geo::ChannelMapAlg | |
PlaneInfoMap_t< raw::ChannelID_t > | fFirstChannelInThisPlane |
PlaneInfoMap_t< raw::ChannelID_t > | fFirstChannelInNextPlane |
std::map< std::string, size_t > | fADNameToGeo |
map the names of the dets to the AuxDetGeo objects More... | |
std::map< size_t, std::vector< size_t > > | fADChannelToSensitiveGeo |
Definition at line 28 of file ChannelMap35Alg.h.
geo::ChannelMap35Alg::ChannelMap35Alg | ( | fhicl::ParameterSet const & | p | ) |
Definition at line 28 of file ChannelMap35Alg.cxx.
|
inlineprivate |
Definition at line 304 of file ChannelMap35Alg.h.
|
inlineprivate |
Definition at line 308 of file ChannelMap35Alg.h.
|
overridevirtual |
Returns the ID of the ROP the channel belongs to (invalid if none)
cet::exception | (category: "Geometry") if non-existent channel |
Implements geo::ChannelMapAlg.
Definition at line 588 of file ChannelMap35Alg.cxx.
|
overridevirtual |
Returns a list of TPC wires connected to the specified readout channel ID
cet::exception | (category: "Geometry") if non-existent channel |
Implements geo::ChannelMapAlg.
Definition at line 216 of file ChannelMap35Alg.cxx.
|
overridevirtual |
Returns the ID of the first channel in the specified readout plane.
ropid | ID of the readout plane |
Note that this check is performed on the validity of the readout plane ID, that does not necessarily imply that the readout plane specified by the ID actually exists. Check if the ROP exists with HasROP(). The behaviour for non-existing readout planes is undefined.
Implements geo::ChannelMapAlg.
Definition at line 596 of file ChannelMap35Alg.cxx.
|
overridevirtual |
Returns the ID of the first TPC belonging to the specified TPC set
Implements geo::ChannelMapAlg.
Definition at line 536 of file ChannelMap35Alg.cxx.
|
overridevirtual |
Returns the ID of the first plane belonging to the specified ROP.
ropid | ID of the readout plane |
Note that this check is performed on the validity of the readout plane ID, that does not necessarily imply that the readout plane specified by the ID actually exists. Check if the ROP exists with HasROP(). The behaviour for non-existing readout planes is undefined.
Implements geo::ChannelMapAlg.
Definition at line 604 of file ChannelMap35Alg.cxx.
|
overridevirtual |
Returns the hardware channel number of specified optical channel.
opChannel | the optical detector channel being queried |
If the specified optical channel is invalid, behaviour is undefined.
Reimplemented from geo::ChannelMapAlg.
Definition at line 490 of file ChannelMap35Alg.cxx.
|
overridevirtual |
Returns whether we have the specified ROP
Implements geo::ChannelMapAlg.
Definition at line 557 of file ChannelMap35Alg.cxx.
|
overridevirtual |
Returns whether we have the specified TPC set
Implements geo::ChannelMapAlg.
Definition at line 512 of file ChannelMap35Alg.cxx.
|
overridevirtual |
Geometry initialisation.
Implements geo::ChannelMapAlg.
Definition at line 34 of file ChannelMap35Alg.cxx.
|
overridevirtual |
Returns the largest number of ROPs a TPC set in the detector has
Implements geo::ChannelMapAlg.
Definition at line 551 of file ChannelMap35Alg.cxx.
|
overridevirtual |
Returns the largest number of TPC sets any cryostat in the detector has
Implements geo::ChannelMapAlg.
Definition at line 505 of file ChannelMap35Alg.cxx.
|
overridevirtual |
Returns the total number of channels present (not necessarily contiguous)
Implements geo::ChannelMapAlg.
Definition at line 297 of file ChannelMap35Alg.cxx.
|
overridevirtual |
Returns the number of channels in the specified ROP.
Implements geo::ChannelMapAlg.
Definition at line 305 of file ChannelMap35Alg.cxx.
|
inlineoverridevirtual |
Returns the ID of the wire nearest to the specified position.
worldPos | position to be tested |
PlaneNo | number of plane containing the wire |
TPCNo | number of TPC containing the wire |
cstat | number of cryostat containing the wire |
geo::PlaneID
instead Implements geo::ChannelMapAlg.
Definition at line 61 of file ChannelMap35Alg.h.
|
overridevirtual |
Returns the ID of the wire nearest to the specified position.
worldPos | position to be tested |
planeID | plane containing the wire |
InvalidWireIDError | the ID found is not present in the detector |
The plane is required to be valid and exist in the detector. Otherwise, the behaviour is undefined. An exception is thrown if the wire that would be the closest is actually not present; but no check is performed whether the specified position is outside the wire plane: wires are extrapolated to be infinitely long. In other words, the result can be trusted only as long as the position is within the specified wire plane.
Reimplemented from geo::ChannelMapAlg.
Definition at line 347 of file ChannelMap35Alg.cxx.
|
overridevirtual |
Returns the number of optical channels contained in some detectors.
NOpDets | number of optical detectors |
This function returns how many channels can be expected to be present in a detector with NOpDets optical detectors. This is an upper limit, as not all channels have necessarily to be present.
For example: if a detector has four channels per optical detector, the returned value will be four times the argument NOpDets. If there is a single channel on each optical detector, the return value will be the value NOpDets (this is in fact the fallback implementation). If each optical detector can have anywhere between 2 and 12 channels, the returned value is 12 times NOpDets, and it will be an overestimation of the number of channels.
Reimplemented from geo::ChannelMapAlg.
Definition at line 455 of file ChannelMap35Alg.cxx.
|
overridevirtual |
Returns the number of channels in the specified optical detectors.
opDet | ID of the chosen optical detector |
This function returns how many channels are actually present in the optical detector with the specified ID.
For example: if a detector has four channels per optical detector, the returned value will be four, regardless opDet, and . If there is a single channel on each optical detector, the return value will be 1, again ignoring opDet (this is in fact the fallback implementation). If each optical detector can have anywhere between 2 and 12 channels, the returned value will be 2, 12, etc., that is the exact number of channels in opDet.
Although implementations are encouraged to return 0 on invalid optical detectors, the actual return value in that case is undefined.
Reimplemented from geo::ChannelMapAlg.
Definition at line 461 of file ChannelMap35Alg.cxx.
|
overridevirtual |
Returns the total number of ROP in the specified TPC set.
tpcsetid | TPC set ID |
Note that this methods explicitly check the existence of the TPC set.
Implements geo::ChannelMapAlg.
Definition at line 544 of file ChannelMap35Alg.cxx.
|
overridevirtual |
Returns the total number of TPC sets in the specified cryostat.
cryoid | cryostat ID |
Implements geo::ChannelMapAlg.
Definition at line 498 of file ChannelMap35Alg.cxx.
|
overridevirtual |
Returns the channel ID of the specified hardware channel.
detNum | optical detector ID |
hwchannel | hardware channel within the specified optical detector |
If the input IDs identify a non-existing channel, the result is undefined.
Reimplemented from geo::ChannelMapAlg.
Definition at line 476 of file ChannelMap35Alg.cxx.
|
overridevirtual |
Returns the optical detector the specified optical channel belongs.
opChannel | the optical detector channel being queried |
If the specified optical channel is invalid, behaviour is undefined.
Reimplemented from geo::ChannelMapAlg.
Definition at line 483 of file ChannelMap35Alg.cxx.
|
overridevirtual |
Returns a list of the plane IDs in the whole detector.
Implements geo::ChannelMapAlg.
Definition at line 449 of file ChannelMap35Alg.cxx.
|
inlineoverridevirtual |
Returns the channel ID a wire is connected to.
plane | number of plane |
wire | number of wire |
tpc | number of TPC |
cstat | number of cryostat |
geo::WireID
Implements geo::ChannelMapAlg.
Definition at line 70 of file ChannelMap35Alg.h.
|
overridevirtual |
Returns the channel ID a wire is connected to.
wireID | ID of the wire |
Behaviour on an invalid or not present wires is undefined.
geo::WireID
Reimplemented from geo::ChannelMapAlg.
Definition at line 388 of file ChannelMap35Alg.cxx.
|
overridevirtual |
Returns a list of ID of TPCs the specified ROP spans.
ropid | ID of the readout plane |
Note that this check is performed on the validity of the readout plane ID, that does not necessarily imply that the readout plane specified by the ID actually exists. Check if the ROP exists with HasROP(). The behaviour on non-existing readout planes is undefined.
Implements geo::ChannelMapAlg.
Definition at line 580 of file ChannelMap35Alg.cxx.
|
overridevirtual |
Returns a list of ID of wire planes belonging to the specified ROP.
ropid | ID of the readout plane to convert into wire planes |
Note that this check is performed on the validity of the readout plane ID, that does not necessarily imply that the readout plane specified by the ID actually exists. Check if the ROP exists with HasROP(). The behaviour on non-existing readout planes is undefined.
Implements geo::ChannelMapAlg.
Definition at line 572 of file ChannelMap35Alg.cxx.
|
overridevirtual |
Return the signal type of the specified channel.
channel | ID of the channel |
On any type of error (e.g., invalid or unknown channel ID), geo::kMysteryType is returned.
Implements geo::ChannelMapAlg.
Definition at line 411 of file ChannelMap35Alg.cxx.
|
inlineoverridevirtual |
Returns the object to sort geometry with.
Implements geo::ChannelMapAlg.
Definition at line 255 of file ChannelMap35Alg.h.
|
overridevirtual |
Returns a list of ID of TPCs belonging to the specified TPC set.
tpcsetid | ID of the TPC set to convert into TPC IDs |
Note that the check is performed on the validity of the TPC set ID, that does not necessarily imply that the TPC set specified by the ID actually exists. Check the existence of the TPC set first (HasTPCset()). Behaviour on valid, non-existent TPC set IDs is undefined.
Implements geo::ChannelMapAlg.
Definition at line 528 of file ChannelMap35Alg.cxx.
|
overridevirtual |
Returns the ID of the TPC set the specified TPC belongs to.
tpcid | ID of the TPC |
Note that the check is performed on the validity of the TPC set ID, that does not necessarily imply that the TPC set specified by the ID actually exists. Check the existence of the TPC set first (HasTPCset()). Behaviour on valid, non-existent TPC set IDs is undefined.
Implements geo::ChannelMapAlg.
Definition at line 520 of file ChannelMap35Alg.cxx.
|
overridevirtual |
Deconfiguration: prepare for a following call of Initialize()
Implements geo::ChannelMapAlg.
Definition at line 207 of file ChannelMap35Alg.cxx.
View_t geo::ChannelMap35Alg::View | ( | raw::ChannelID_t const | channel | ) | const |
Definition at line 426 of file ChannelMap35Alg.cxx.
std::set< View_t > const & geo::ChannelMap35Alg::Views | ( | ) | const |
Definition at line 443 of file ChannelMap35Alg.cxx.
|
inlineoverridevirtual |
Returns the index of the wire nearest to the specified position.
YPos | y coordinate on the wire plane |
ZPos | z coordinate on the wire plane |
PlaneNo | number of plane |
TPCNo | number of TPC |
cstat | number of cryostat |
geo::PlaneID
instead Implements geo::ChannelMapAlg.
Definition at line 49 of file ChannelMap35Alg.h.
|
overridevirtual |
Returns the index of the wire nearest to the specified position.
YPos | y coordinate on the wire plane |
ZPos | z coordinate on the wire plane |
planeID | ID of the plane |
Respect to NearestWireID(), this method returns a real number, representing a continuous coordinate in the wire axis, with the round values corresponding to the actual wires.
The plane is required to be valid and exist in the detector. Otherwise, the behaviour is undefined.
Reimplemented from geo::ChannelMapAlg.
Definition at line 313 of file ChannelMap35Alg.cxx.
|
overridevirtual |
Returns the ID of the ROP planeid belongs to, or invalid if none.
planeid | ID of the wire plane |
Note that this check is performed on the validity of the wire plane ID, that does not necessarily imply that the wire plane specified by the ID actually exists. Check if the wire plane exists with HasPlane(). The behaviour on non-existing wire planes is undefined.
Implements geo::ChannelMapAlg.
Definition at line 564 of file ChannelMap35Alg.cxx.
|
inlineprivate |
Definition at line 306 of file ChannelMap35Alg.h.
|
private |
Definition at line 275 of file ChannelMap35Alg.h.
|
private |
Definition at line 300 of file ChannelMap35Alg.h.
|
private |
number of channels in the detector
Definition at line 268 of file ChannelMap35Alg.h.
|
private |
number of cryostats in the detector
Definition at line 267 of file ChannelMap35Alg.h.
|
private |
number of TPCs in each cryostat
Definition at line 270 of file ChannelMap35Alg.h.
|
private |
Definition at line 298 of file ChannelMap35Alg.h.
|
private |
Definition at line 295 of file ChannelMap35Alg.h.
|
private |
vector of the PlaneIDs present in the detector
Definition at line 272 of file ChannelMap35Alg.h.
|
private |
Definition at line 274 of file ChannelMap35Alg.h.
|
private |
Definition at line 299 of file ChannelMap35Alg.h.
|
private |
sorts geo::XXXGeo objects
Definition at line 280 of file ChannelMap35Alg.h.
|
private |
book keeping highest channel #
Definition at line 269 of file ChannelMap35Alg.h.
|
private |
vector of the views present in the detector
Definition at line 271 of file ChannelMap35Alg.h.
|
private |
Definition at line 297 of file ChannelMap35Alg.h.
|
private |
The number of wires in this plane in the heirachy
Definition at line 278 of file ChannelMap35Alg.h.
|
private |
Definition at line 276 of file ChannelMap35Alg.h.