Channel mapping for ICARUS detector with split wires. More...
#include <ICARUSChannelMapAlg.h>
Classes | |
struct | Config |
struct | PlaneInfo_t |
Collection of information on one plane. More... | |
struct | ReadoutMappingInfo_t |
Collected information about TPC sets and readout planes in the geometry. More... | |
Public Types | |
using | Parameters = fhicl::Table< Config > |
Type of FHiCL configuration table for this object. More... | |
Public Member Functions | |
ICARUSChannelMapAlg (Config const &config) | |
Constructor: taked a configuration object. More... | |
ICARUSChannelMapAlg (Parameters const &config) | |
Constructor: takes a FHiCL table object. More... | |
virtual void | Initialize (geo::GeometryData_t const &geodata) override |
Prepares the algorithm extracting information from the geometry. More... | |
virtual void | Uninitialize () override |
Frees the resources of this algorithm. More... | |
virtual std::set< geo::PlaneID > const & | PlaneIDs () const override |
Returns a list of the plane IDs in the whole detector. More... | |
virtual geo::GeoObjectSorter const & | Sorter () const override |
Return the sorter. More... | |
Channel mapping | |
virtual std::vector< geo::WireID > | ChannelToWire (raw::ChannelID_t channel) const override |
Returns a collection of ID of wires connected to the channel . More... | |
virtual unsigned int | Nchannels () const override |
Returns the number of readout channels (ID's go 0 to Nchannels() ). More... | |
virtual unsigned int | Nchannels (readout::ROPID const &ropid) const override |
Returns the number of channels in the specified ROP. More... | |
virtual raw::ChannelID_t | PlaneWireToChannel (geo::WireID const &wireID) const override |
Returns the channel ID a wire is connected to. 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... | |
Deprecated functions. | |
These methods are legacy and might be replaced by | |
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 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 geo::WireID | NearestWireID (const TVector3 &worldPos, geo::PlaneID const &planeID) const override |
Returns the ID of the wire nearest to the specified position. More... | |
virtual geo::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... | |
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 |
Returns the largest number of TPC sets any cryostat in the detector has. More... | |
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 |
Returns the ID of the first TPC belonging to the specified TPC set. More... | |
Readout plane mapping | |
virtual unsigned int | NROPs (readout::TPCsetID const &tpcsetid) const override |
Returns the total number of readout planes in the specified TPC set. More... | |
virtual unsigned int | MaxROPs () const override |
Returns the largest number of ROPs a TPC set in the detector has. More... | |
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 |
Returns the ID of the ROP the channel belongs to (invalid if none). More... | |
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 | NOpChannels (unsigned int NOpDets) const |
Returns the number of optical channels contained in some detectors. More... | |
virtual unsigned int | MaxOpChannel (unsigned int NOpDets) const |
Returns the number of optical channels contained in some detectors. More... | |
virtual unsigned int | NOpHardwareChannels (unsigned int opDet) const |
Returns the number of channels in the specified optical detectors. More... | |
virtual bool | IsValidOpChannel (unsigned int opChannel, unsigned int NOpDets) const |
Returns whether the ID identifies a valid optical detector channel. More... | |
virtual unsigned int | OpChannel (unsigned int detNum, unsigned int hwchannel=0) const |
Returns the channel ID of the specified hardware channel. More... | |
virtual unsigned int | OpDetFromOpChannel (unsigned int opChannel) const |
Returns the optical detector the specified optical channel belongs. More... | |
virtual unsigned int | HardwareChannelFromOpChannel (unsigned int opChannel) const |
Returns the hardware channel number of specified optical 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 Types | |
using | TPCColl_t = icarus::details::TPCColl_t |
using | PlaneColl_t = icarus::details::PlaneColl_t |
using | WirelessChannelCounts_t = std::array< std::array< std::pair< unsigned int, unsigned int >, 3U >, 2U > |
using | PlaneType_t = std::size_t |
Type for plane type identifier. More... | |
Private Member Functions | |
bool | HasCryostat (readout::CryostatID const &cryoid) const |
Returns whether the specified cryostat is known to the mapping. More... | |
void | fillChannelToWireMap (geo::GeometryData_t::CryostatList_t const &Cryostats) |
Fills the information about readout channel mapping. More... | |
void | buildReadoutPlanes (geo::GeometryData_t::CryostatList_t const &Cryostats) |
Fills information about the TPC set and readout plane structure. More... | |
PlaneType_t | findPlaneType (readout::ROPID const &ropid) const |
Returns the "type" of readout plane. More... | |
virtual geo::SigType_t | SignalTypeForChannelImpl (raw::ChannelID_t const channel) const override |
Returns the type of signal on the specified channel . More... | |
Readout element information access | |
std::vector< unsigned int > const & | TPCsetCount () const |
Returns the number of TPC sets in each cryostat. More... | |
unsigned int | TPCsetCount (readout::CryostatID const &cid) const |
Returns the number of TPC sets in the specified cryostat cid . More... | |
readout::TPCsetDataContainer < TPCColl_t > const & | TPCsetTPCs () const |
All geo::TPCGeo objects in each TPC set, sorted by increasing z. More... | |
TPCColl_t const & | TPCsetTPCs (readout::TPCsetID const &sid) const |
All geo::TPCGeo objects in the specified TPC set sid . More... | |
readout::TPCsetDataContainer < unsigned int > const & | ROPcount () const |
Number of readout planes in each TPC set. More... | |
unsigned int | ROPcount (readout::TPCsetID const &sid) const |
Number of readout planes in the specified TPC set sid . More... | |
readout::ROPDataContainer < PlaneColl_t > const & | ROPplanes () const |
All geo::PlaneGeo objects in each readout plane, sorted by z. More... | |
PlaneColl_t const & | ROPplanes (readout::ROPID const &rid) const |
All geo::PlaneGeo objects in the specified readout plane rid . More... | |
geo::TPCDataContainer < readout::TPCsetID > const & | TPCtoTPCset () const |
The TPC set including each TPC. More... | |
geo::PlaneDataContainer < readout::ROPID > const & | PlaneToROP () const |
The readout plane including each wire plane. More... | |
readout::ROPID const & | PlaneToROP (geo::PlaneID const &pid) const |
The readout plane the specified wire plane pid belongs to. More... | |
Static Private Member Functions | |
static WirelessChannelCounts_t | extractWirelessChannelParams (Config::WirelessChannelStruct const ¶ms) |
static std::string | PlaneTypeName (PlaneType_t planeType) |
Returns the name of the specified plane type. More... | |
Private Attributes | |
WirelessChannelCounts_t const | fWirelessChannelCounts |
Count of wireless channels on each plane. More... | |
icarus::GeoObjectSorterPMTasTPC | fSorter |
Algorithms to sort geometry elements. More... | |
Static Private Attributes | |
static constexpr PlaneType_t | kFirstInductionType = 0U |
Identifier for first induction plane type. More... | |
static constexpr PlaneType_t | kSecondInductionType = 1U |
Identifier for second induction plane type. More... | |
static constexpr PlaneType_t | kCollectionType = 2U |
Identifier for collection plane type. More... | |
static constexpr PlaneType_t | kUnknownType = std::numeric_limits<PlaneType_t>::max() |
Identifier for unknown plane type. More... | |
Readout element information | |
The geometry and readout data containers have currently no support for resizing and their size is assigned on construction. Access should happen via the corresponding member functions. | |
using | ChannelRange_t = icarus::details::ChannelRange_t |
ReadoutMappingInfo_t | fReadoutMapInfo |
Information about TPC sets and readout planes in the geometry. More... | |
icarus::details::ChannelToWireMap | fChannelToWireMap |
Mapping of channels to wire planes and ROP's. More... | |
geo::PlaneDataContainer < PlaneInfo_t > | fPlaneInfo |
Range of channels covered by each of the wire planes. More... | |
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 |
Channel mapping for ICARUS detector with split wires.
This channel mapping is designed for a detector description including two TPC volumes in each drift volume.
Each of the four drift volumes in the ICARUS detector (one on each of the two side of the cathode, on each of the two cryostats/modules) is described by two "logical" TPC volumes. The division of the drift volume in two TPCs is not physical, but it is a convenient description to accommodate the fact that the first induction plane wires are split in two 9-meter halves which are read independently.
In this scheme, the physical wires from the second induction and the collection planes may be described by two geo::WireGeo
objects associated to the same readout channel, with the two geo::WireGeo
belonging to a different geo::TPCGeo
and geo::PlaneGeo
(but the planes are of the same type and on the same view). Therefore, physical wires on the second induction and collection planes are associated with a single geo::WireGeo
unless they cross the virtual border between TPCs half way on the beam direction, in which case they are associated with two geo::WireGeo
. The first induction wires are always associated with a single geo::WireGeo
. Each physical wire is associated and identified with a single TPC readout channel.
The numbering of channels is as follows:
0
goes first, then planes 1
and 2
follow; plane 0
is the plane closest to the drift volume, that is the first induction plane;geo::PlaneGeo
internal sorting algorithms, but it is guaranteed to be such that contiguous wires within the same logical wire plane have contiguous wire numbers, with no jumps and holes allowed;0
and 1
, which are "logical" TPCs describing the same drift volume, go first, then TPCs 2
and 3
0
goes first, then cryostat 1
This implies that the first wire plane being enumerated is C:0 T:0 P:0
, and then C:0 T:1 P:0
, that cover the first induction plane of the first drift volume, then the C:0 T:0 P:1
and C:0 T:1 P:1
are grouped together for the second induction plane, and finally C:0 T:0 P:2
and C:0 T:1 P:2
for the collection. Thereafter, the enumeration proceeds through C:0 T:2
and C:0 T:3
starting with C:0 T:2 P:0
, and then with the other cryostat in the same TPC and plane order.
It is possible to specify that some channels at the beginning and at the end of a readout plane are not connected to wires.
When a readout plane is extended to include "wireless" channels, additional channel IDs are included in the sequence of channels. Channel mapping does not distinguish between wireless channels (which have readout, cable but no wire), ghost channels (which have no bable either) and virtual channels (which do not have even readout): the count of wireless channels includes all of these categories, i.e. all the categories that have a readout channel ID but no physical wire.
The range of channels belonging to the readout plane (intended in LArSoft fashion as readout::ROPID
) is extended to include these wireless channels, but each of the wire planes does not include them: they are orphaned of wire planes (no geo::PlaneID
). The total number of channels reported by the mapping (and by the geometry service) includes these wireless channels as well: they are "valid" readout channels. Nevertheless, mapping them to a wire list will return an empty list. The ChannelStatus
services should be utilized to find out the actual category of the channels when needed.
These channels are assigned to each logical readout plane: in the standard ICARUS geometry, for example, in each TPC set (i.e. drift volume) there are two first induction readout planes with 1056 wires each, and one second induction and one collection readout planes with 5600 wires each, and each spanning two logical wire planes. Assigning pre- or post-channels to the first induction planes will increase each of them from 1056 channels to whatever is requested. Assigning pre- or post-channels to the second induction or collection planes will increase them from 5600 channels to whatever is requested.
The channel mapping configuration of the "standard" ICARUS detector should include:
WirelessChannels: { FirstInductionPreChannels: 0 FirstInductionPostChannels: 96 # 32 ghost, then 64 virtual # C:x S:0 (east TPC) SecondInductionEvenPreChannels: 96 # 32 ghost, then 64 wireless SecondInductionEvenPostChannels: 64 # 64 wireless CollectionEvenPreChannels: 64 # 64 wireless CollectionEvenPostChannels: 96 # 64 wireless, then 32 ghost # C:x S:1 (west TPC) SecondInductionOddPreChannels: 64 # 64 wireless SecondInductionOddPostChannels: 96 # 64 wireless, then 32 ghost CollectionOddPreChannels: 96 # 32 ghost, then 64 wireless CollectionOddPostChannels: 64 # 64 wireless } # WirelessChannels
The configuration parameters must be specified in the WirelessChannels
configuration table, as FirstInductionPreChannels
, FirstInductionPostChannels
, SecondInductionEvenPreChannels
, SecondInductionEvenPostChannels
, CollectionEvenPreChannels
, CollectionEvenPostChannels
, SecondInductionOddPreChannels
, SecondInductionOddPostChannels
, CollectionOddPreChannels
and CollectionOddPostChannels
. They are all 0
by default.
Definition at line 166 of file ICARUSChannelMapAlg.h.
Definition at line 530 of file ICARUSChannelMapAlg.h.
using icarus::ICARUSChannelMapAlg::Parameters = fhicl::Table<Config> |
Type of FHiCL configuration table for this object.
Definition at line 267 of file ICARUSChannelMapAlg.h.
|
private |
Definition at line 170 of file ICARUSChannelMapAlg.h.
|
private |
Type for plane type identifier.
Definition at line 658 of file ICARUSChannelMapAlg.h.
|
private |
Definition at line 169 of file ICARUSChannelMapAlg.h.
|
private |
Type for counts of wireless channels: per TPC set (even/odd), then per plane starting from the closest to the cathode; first
is the number of wireless channels before the regular ones, second
is the one after them.
Definition at line 514 of file ICARUSChannelMapAlg.h.
icarus::ICARUSChannelMapAlg::ICARUSChannelMapAlg | ( | Config const & | config | ) |
Constructor: taked a configuration object.
Definition at line 78 of file ICARUSChannelMapAlg.cxx.
|
inline |
Constructor: takes a FHiCL table object.
Definition at line 273 of file ICARUSChannelMapAlg.h.
|
private |
Fills information about the TPC set and readout plane structure.
Cryostats | the sorted list of cryostats in the detector |
This method extracts and fills the following information:
fTPCsetCount
);geo::TPCGeo
objects in each TPC set, sorted by increasing z (fTPCsetTPCs
);fROPcount
);geo::PlaneGeo
objects in each readout plane, sorted by increasing z (fROPplanes
).Cryostats and its components are expected to be already in the final order and with all their ID's set.
Definition at line 577 of file ICARUSChannelMapAlg.cxx.
|
overridevirtual |
Returns the ID of the ROP the channel belongs to (invalid if none).
Implements geo::ChannelMapAlg.
Definition at line 398 of file ICARUSChannelMapAlg.cxx.
|
overridevirtual |
Returns a collection of ID of wires connected to the channel
.
channel | TPC readout channel number |
channel
cet::exception | (category: "Geometry") if non-existent channel |
If the TPC readout channel
is invalid or non-existing, an exception is thrown. In ICARUS valid channels are expected to be associated with at least one wire.
Implements geo::ChannelMapAlg.
Definition at line 118 of file ICARUSChannelMapAlg.cxx.
|
staticprivate |
Definition at line 647 of file ICARUSChannelMapAlg.cxx.
|
private |
Fills the information about readout channel mapping.
Cryostats | the sorted list of cryostats in the detector |
The readout information must have been already filled (buildReadoutPlanes()
).
Definition at line 439 of file ICARUSChannelMapAlg.cxx.
|
private |
Returns the "type" of readout plane.
ropid | ID of the readout plane to query |
Here the "type" refers to the position of the plane in the TPC and as a consequence to its signal type. The type of the readout plane is deduced from the type of the planes it contains.
The returned value is kFirstInductionType
, kSecondInductionType
, kCollectionType
or kUnknownType
.
Definition at line 594 of file ICARUSChannelMapAlg.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 409 of file ICARUSChannelMapAlg.cxx.
|
overridevirtual |
Returns the ID of the first TPC belonging to the specified TPC set.
Implements geo::ChannelMapAlg.
Definition at line 303 of file ICARUSChannelMapAlg.cxx.
|
overridevirtual |
Returns the ID of the first plane belonging to the specified ROP.
The wire planes within a readout plane are supposed to be sorted by beam (z) coordinate, so that the first one should be the closest to the beam entrance point.
Implements geo::ChannelMapAlg.
Definition at line 420 of file ICARUSChannelMapAlg.cxx.
|
private |
Returns whether the specified cryostat is known to the mapping.
Definition at line 430 of file ICARUSChannelMapAlg.cxx.
|
overridevirtual |
Returns whether we have the specified ROP
Implements geo::ChannelMapAlg.
Definition at line 328 of file ICARUSChannelMapAlg.cxx.
|
overridevirtual |
Returns whether we have the specified TPC set.
Returns whether we have the specified TPC set
Implements geo::ChannelMapAlg.
Definition at line 270 of file ICARUSChannelMapAlg.cxx.
|
overridevirtual |
Prepares the algorithm extracting information from the geometry.
Implements geo::ChannelMapAlg.
Definition at line 86 of file ICARUSChannelMapAlg.cxx.
|
overridevirtual |
Returns the largest number of ROPs a TPC set in the detector has.
Implements geo::ChannelMapAlg.
Definition at line 322 of file ICARUSChannelMapAlg.cxx.
|
overridevirtual |
Returns the largest number of TPC sets any cryostat in the detector has.
Implements geo::ChannelMapAlg.
Definition at line 260 of file ICARUSChannelMapAlg.cxx.
|
overridevirtual |
Returns the number of readout channels (ID's go 0
to Nchannels()
).
Implements geo::ChannelMapAlg.
Definition at line 168 of file ICARUSChannelMapAlg.cxx.
|
overridevirtual |
Returns the number of channels in the specified ROP.
Implements geo::ChannelMapAlg.
Definition at line 177 of file ICARUSChannelMapAlg.cxx.
|
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 206 of file ICARUSChannelMapAlg.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 343 of file ICARUSChannelMapAlg.h.
|
overridevirtual |
Returns the total number of readout planes in the specified TPC set.
tpcsetid | TPC set ID |
0
if ID is invalidThe validity of the requested TPC set is performed like in HasTPCset()
.
Implements geo::ChannelMapAlg.
Definition at line 315 of file ICARUSChannelMapAlg.cxx.
|
overridevirtual |
Returns the total number of TPC sets in the specified cryostat.
cryoid | cryostat ID |
Implements geo::ChannelMapAlg.
Definition at line 252 of file ICARUSChannelMapAlg.cxx.
|
overridevirtual |
Returns a list of the plane IDs in the whole detector.
Implements geo::ChannelMapAlg.
Definition at line 232 of file ICARUSChannelMapAlg.cxx.
|
inlineprivate |
The readout plane including each wire plane.
Definition at line 718 of file ICARUSChannelMapAlg.h.
|
inlineprivate |
The readout plane the specified wire plane pid
belongs to.
Definition at line 722 of file ICARUSChannelMapAlg.h.
|
staticprivate |
Returns the name of the specified plane type.
Definition at line 686 of file ICARUSChannelMapAlg.cxx.
|
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 225 of file ICARUSChannelMapAlg.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 312 of file ICARUSChannelMapAlg.h.
|
inlineprivate |
Number of readout planes in each TPC set.
Definition at line 692 of file ICARUSChannelMapAlg.h.
|
inlineprivate |
Number of readout planes in the specified TPC set sid
.
Definition at line 696 of file ICARUSChannelMapAlg.h.
|
inlineprivate |
All geo::PlaneGeo
objects in each readout plane, sorted by z.
Definition at line 700 of file ICARUSChannelMapAlg.h.
|
inlineprivate |
All geo::PlaneGeo
objects in the specified readout plane rid
.
Definition at line 704 of file ICARUSChannelMapAlg.h.
|
overridevirtual |
Returns a list of ID of TPCs the specified ROP spans.
ropid | ID of the readout plane |
In this mapping, readout planes and wire planes are mapped one-to-one. The returned list contains always one entry, unless the specified readout plane ID is invalid, in which case the list is empty. 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 371 of file ICARUSChannelMapAlg.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.
In this mapping, readout planes contain one or two wire planes each, depending on the view.
Implements geo::ChannelMapAlg.
Definition at line 355 of file ICARUSChannelMapAlg.cxx.
|
overrideprivatevirtual |
Returns the type of signal on the specified channel
.
Implements geo::ChannelMapAlg.
Definition at line 621 of file ICARUSChannelMapAlg.cxx.
|
inlineoverridevirtual |
Return the sorter.
Implements geo::ChannelMapAlg.
Definition at line 505 of file ICARUSChannelMapAlg.h.
|
inlineprivate |
Returns the number of TPC sets in each cryostat.
Definition at line 676 of file ICARUSChannelMapAlg.h.
|
inlineprivate |
Returns the number of TPC sets in the specified cryostat cid
.
Definition at line 680 of file ICARUSChannelMapAlg.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 |
Each TPC set contains one TPC if on first induction plane, where wires are split, or two in the second induction and collection planes, which have shared channels.
Implements geo::ChannelMapAlg.
Definition at line 287 of file ICARUSChannelMapAlg.cxx.
|
inlineprivate |
All geo::TPCGeo
objects in each TPC set, sorted by increasing z.
Definition at line 684 of file ICARUSChannelMapAlg.h.
|
inlineprivate |
All geo::TPCGeo
objects in the specified TPC set sid
.
Definition at line 688 of file ICARUSChannelMapAlg.h.
|
overridevirtual |
Returns the ID of the TPC set the specified TPC belongs to.
tpcid | ID of the TPC |
If the TPC ID is not valid, an invalid TPC set ID is returned. Note that this check is performed on the validity of the TPC ID, that does not necessarily imply that the TPC specified by the ID actually exists.
Implements geo::ChannelMapAlg.
Definition at line 279 of file ICARUSChannelMapAlg.cxx.
|
inlineprivate |
The TPC set including each TPC.
Definition at line 708 of file ICARUSChannelMapAlg.h.
|
overridevirtual |
Frees the resources of this algorithm.
Implements geo::ChannelMapAlg.
Definition at line 105 of file ICARUSChannelMapAlg.cxx.
|
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 187 of file ICARUSChannelMapAlg.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 333 of file ICARUSChannelMapAlg.h.
|
overridevirtual |
Returns the ID of the ROP planeid belongs to, or invalid if none.
planeid | ID of the plane |
planeid
isIf the plane ID is not valid, an invalid readout plane ID is returned. Note that this check is performed on the validity of the plane ID, that does not necessarily imply that the plane specified by the ID actually exists.
planeid | ID of the plane |
In this mapping, readout planes and wire planes are mapped one-to-one. The returned value mirrors the plane ID in the readout space. If the plane ID is not valid, an invalid readout plane ID is returned. Note that this check is performed on the validity of the plane ID, that does not necessarily imply that the plane specified by the ID actually exists.
Implements geo::ChannelMapAlg.
Definition at line 347 of file ICARUSChannelMapAlg.cxx.
|
private |
Mapping of channels to wire planes and ROP's.
Definition at line 634 of file ICARUSChannelMapAlg.h.
|
private |
Range of channels covered by each of the wire planes.
Definition at line 637 of file ICARUSChannelMapAlg.h.
|
private |
Information about TPC sets and readout planes in the geometry.
Definition at line 631 of file ICARUSChannelMapAlg.h.
|
private |
Algorithms to sort geometry elements.
Definition at line 653 of file ICARUSChannelMapAlg.h.
|
private |
Count of wireless channels on each plane.
Definition at line 646 of file ICARUSChannelMapAlg.h.
|
staticprivate |
Identifier for collection plane type.
Definition at line 665 of file ICARUSChannelMapAlg.h.
|
staticprivate |
Identifier for first induction plane type.
Definition at line 661 of file ICARUSChannelMapAlg.h.
|
staticprivate |
Identifier for second induction plane type.
Definition at line 663 of file ICARUSChannelMapAlg.h.
|
staticprivate |
Identifier for unknown plane type.
Definition at line 668 of file ICARUSChannelMapAlg.h.