Classes | Public Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
geo::ColdBoxChannelMapAlg Class Reference

#include <ColdBoxChannelMapAlg.h>

Inheritance diagram for geo::ColdBoxChannelMapAlg:
geo::ChannelMapAlg

Classes

struct  ChannelRange_t
 
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 Member Functions

 ColdBoxChannelMapAlg (fhicl::ParameterSet const &p)
 
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::vector< geo::WireIDChannelToWire (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 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...
 
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 geo::GeometryCore calls.

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::TPCIDTPCsetToTPCs (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::PlaneIDROPtoWirePlanes (readout::ROPID const &ropid) const override
 Returns a list of ID of wire planes belonging to the specified ROP. More...
 
virtual std::vector< geo::TPCIDROPtoTPCs (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 = std::vector< geo::TPCID >
 
using PlaneColl_t = std::vector< geo::PlaneID >
 

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. More...
 
TPCColl_t const & TPCsetTPCs (readout::TPCsetID const &sid) const
 All geo::TPCID 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. More...
 
PlaneColl_t const & ROPplanes (readout::ROPID const &rid) const
 All geo::PlaneId 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 std::string PlaneTypeName (PlaneType_t planeType)
 Returns the name of the specified plane type. More...
 

Private Attributes

std::string fLogCategory = "ColdBoxChannelMapAlg"
 

Readout element information

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.

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 PlaneType_t = std::size_t
 Type for plane type identifier. More...
 
ReadoutMappingInfo_t fReadoutMapInfo
 Information about TPC sets and readout planes in the geometry. More...
 
geo::dune::vd::ChannelToWireMap fChannelToWireMap
 Mapping of channels and ROP's. More...
 
geo::PlaneDataContainer< PlaneInfo_tfPlaneInfo
 Range of channels covered by each of the wire planes. More...
 
geo::GeoObjectSorterCRU fSorter
 class to sort geo objects More...
 
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...
 

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_tfFirstChannelInThisPlane
 
PlaneInfoMap_t< raw::ChannelID_tfFirstChannelInNextPlane
 
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
 

Detailed Description

Definition at line 121 of file ColdBoxChannelMapAlg.h.

Member Typedef Documentation

Definition at line 125 of file ColdBoxChannelMapAlg.h.

using geo::ColdBoxChannelMapAlg::PlaneType_t = std::size_t
private

Type for plane type identifier.

Definition at line 509 of file ColdBoxChannelMapAlg.h.

Definition at line 124 of file ColdBoxChannelMapAlg.h.

Constructor & Destructor Documentation

geo::ColdBoxChannelMapAlg::ColdBoxChannelMapAlg ( fhicl::ParameterSet const &  p)

Definition at line 61 of file ColdBoxChannelMapAlg.cxx.

61  :
63 {}
geo::GeoObjectSorterCRU fSorter
class to sort geo objects
p
Definition: test.py:223

Member Function Documentation

void geo::ColdBoxChannelMapAlg::buildReadoutPlanes ( geo::GeometryData_t::CryostatList_t const &  Cryostats)
private

Fills information about the TPC set and readout plane structure.

Parameters
Cryostatsthe sorted list of cryostats in the detector

Definition at line 522 of file ColdBoxChannelMapAlg.cxx.

523 {
524  auto const [ NCryostats, MaxTPCs, MaxPlanes ]
525  = geo::details::extractMaxGeometryElements<3U>(Cryostats);
526 
527  //mf::LogInfo("ColdBoxChannelMapAlg")
528  //<< "Build readout planes for "<<NCryostats<<" "<<MaxTPCs<<" "<<MaxPlanes<<"\n";
529 
530 
531  if( Cryostats.size() > 1 ){
532  throw cet::exception("Geometry")
533  << "geo::ColdBoxChannelMapAlg::buildReadoutPlanes " << Cryostats.size()
534  << ": more than one cryostat is currently not supported\n";
535  }
536 
537  if( Cryostats[0].NTPC() != 4 ){
538  throw cet::exception("Geometry")
539  << "geo::ColdBoxChannelMapAlg::buildReadoutPlanes " << Cryostats[0].NTPC()
540  << ": more than four TPCs is currently not supported\n";
541  }
542 
543  // currently do it by hand for CB --> to be generalized for FD
544  auto cryo = Cryostats[0];
545  //unsigned int MaxTPCs = cryo.NTPC();
546  //unsigned int MaxPlanes = 3;
547  unsigned int MaxROPs = 3;
548  unsigned int MaxTPCsets = MaxTPCs/2;
549  std::vector<unsigned int> TPCsetCount = {2};
550  std::vector<std::vector<const geo::TPCGeo*>> AllTPCsInTPCsets( MaxTPCsets ); // TPCs belonging to a set
551  // the standard CRU sorter is assumed (fixing this another "todo")
552  AllTPCsInTPCsets[0] = {cryo.TPCPtr(0), cryo.TPCPtr(2)};
553  AllTPCsInTPCsets[1] = {cryo.TPCPtr(1), cryo.TPCPtr(3)};
554  readout::TPCsetDataContainer<TPCColl_t> TPCsetTPCs(NCryostats, MaxTPCsets);
555 
556  for( auto&& [s, TPClist ]: util::enumerate(AllTPCsInTPCsets) ){
557  readout::TPCsetID const tpcsetid
558  { cryo.ID(), static_cast<readout::TPCsetID::TPCsetID_t>(s) };
559  //mf::LogInfo("ColdBoxChannelMapAlg")<< tpcsetid <<" "<<TPCPtrs.size()<<"\n";
560  std::vector<geo::TPCID> TPCs;
561  TPCs.reserve(TPClist.size());
562  std::transform(TPClist.begin(), TPClist.end(), std::back_inserter(TPCs),
563  std::mem_fn(&geo::TPCGeo::ID));
564 
565  TPCsetTPCs[tpcsetid] = std::move(TPCs);
566  }
567 
568  // number of readout planes in each TPC set
570  ROPcount.resize( TPCsetTPCs.dimSize<0U>(), TPCsetTPCs.dimSize<1U>(), 0U );
571 
572  // geo::PlaneGeo objects in each readout plane
574  ROPplanes.resize(TPCsetTPCs.dimSize<0U>(), TPCsetTPCs.dimSize<1U>(), MaxROPs);
575 
576  for (auto [ c, nTPCsets ]: util::enumerate(TPCsetCount)) {
577  readout::CryostatID const cryoid
578  { static_cast<readout::CryostatID::CryostatID_t>(c) };
579  for (readout::TPCsetID::TPCsetID_t s = 0; s < nTPCsets; ++s) {
580  readout::TPCsetID const tpcsetid { cryoid, s };
581  unsigned int nROP = MaxROPs;
582  ROPcount[tpcsetid] = nROP;
583 
584  auto TPCs = AllTPCsInTPCsets[s];
585  for( unsigned r = 0; r<nROP;++r ){ // assuming the number of rops == number of planes per TPC
586  // get PlaneColl_t for each set for each plane
587  PlaneColl_t planes;
588 
589  for ( const geo::TPCGeo* TPC: TPCs){
590  planes.push_back( TPC->Plane(r).ID() );
591  }
592  readout::ROPID const ropid { tpcsetid, r };
594  log << "Readout plane " << ropid << " assigned with " << planes.size()
595  << " planes:";
596  for (auto const plane: planes)
597  log << " (" << plane << ")";
598 
599  if(!ROPplanes[ropid].empty()) {
600  //
601  // If this happens, it may be that the geometry is not compatible
602  // with the algorithm, or just a bug.
603  // Enabling the debug stream will show which planes are assigned
604  // each time, including the two conflicting assignments.
605  //
607  << "Logic error: ROPID " << ropid
608  << " has already been assigned!\n";
609  }
610 
611  ROPplanes[ ropid ] = std::move( planes );
612  } // ROPs/ planes
613  } // tpcs in tpcset
614  }//cryo, TPCSets
615 
616  //
617  // the TPC set each TPC belongs to
619  TPCtoTPCset.resize( NCryostats, MaxTPCs, {});
620  for (auto c
621  : util::counter<geo::CryostatID::CryostatID_t>(TPCsetTPCs.dimSize<0>())){
622 
623  geo::CryostatID const cid { c };
624  for (auto s: util::counter<readout::TPCsetID::TPCsetID_t>(TPCsetTPCs.dimSize<1>()))
625  {
626  readout::TPCsetID const sid { cid, s };
627  for (auto const TPCid: TPCsetTPCs[sid]) {
628  TPCtoTPCset[TPCid] = sid;
629  MF_LOG_TRACE(fLogCategory) << TPCid << " => " << sid;
630  } // for TPCs in TPC set
631  } // for TPC sets in cryostat
632  } // for cryostats
633 
634  // ROP each wire belongs to
636  PlaneToROP.resize( NCryostats, MaxTPCs, MaxPlanes, {} );
637  for (auto c
638  : util::counter<geo::CryostatID::CryostatID_t>(ROPplanes.dimSize<0>())
639  )
640  {
641  geo::CryostatID const cid { c };
642  for (auto s: util::counter<readout::TPCsetID::TPCsetID_t>(ROPplanes.dimSize<1>()))
643  {
644  readout::TPCsetID const sid { cid, s };
645  for (auto r: util::counter<readout::ROPID::ROPID_t>(ROPplanes.dimSize<2>()))
646  {
647  readout::ROPID const rid { sid, r };
648  for (auto const plane: ROPplanes[rid]) {
649  //assert(plane && plane->ID());
650  PlaneToROP[plane] = rid;
651  MF_LOG_TRACE(fLogCategory) << plane << " => " << rid;
652  } // for planes in readout plane
653  } // for readout planes in TPC set
654  } // for TPC sets in cryostat
655  } // for cryostats
656 
657  // copy to ReadoutMapInfo struct
659  std::move(TPCsetCount), std::move(TPCsetTPCs),
660  std::move(ROPcount), std::move(ROPplanes),
661  std::move(TPCtoTPCset), std::move(PlaneToROP)
662  );
663 } // geo::ColdBoxChannelMapAlg::buildReadoutPlanes()
geo::TPCID const & ID() const
Returns the identifier of this TPC.
Definition: TPCGeo.h:333
readout::TPCsetDataContainer< TPCColl_t > const & TPCsetTPCs() const
All geo::TPCGeo objects in each TPC set.
unsigned short TPCsetID_t
Type for the ID number.
Definition: readout_types.h:71
Geometry information for a single TPC.
Definition: TPCGeo.h:38
Class identifying a set of TPC sharing readout channels.
Definition: readout_types.h:70
std::vector< unsigned int > const & TPCsetCount() const
Returns the number of TPC sets in each cryostat.
void resize(unsigned int nCryo, unsigned int nTPCsets)
Prepares the container with default-constructed data.
Container with one element per geometry wire plane.
void resize(unsigned int nCryo, unsigned int nTPCs)
Prepares the container with default-constructed data.
auto enumerate(Iterables &&...iterables)
Range-for loop helper tracking the number of iteration.
Definition: enumerate.h:69
void resize(unsigned int nCryo, unsigned int nTPCsets, unsigned int nROPs)
Prepares the container with default-constructed data.
virtual unsigned int MaxROPs() const override
Returns the largest number of ROPs a TPC set in the detector has.
std::vector< geo::PlaneID > PlaneColl_t
def move(depos, offset)
Definition: depos.py:107
#define MF_LOG_TRACE(id)
geo::PlaneDataContainer< readout::ROPID > const & PlaneToROP() const
The readout plane including each wire plane.
ReadoutMappingInfo_t fReadoutMapInfo
Information about TPC sets and readout planes in the geometry.
readout::TPCsetDataContainer< unsigned int > const & ROPcount() const
Number of readout planes in each TPC set.
Class identifying a set of planes sharing readout channels.
void set(std::vector< unsigned int > &&TPCsetCount, readout::TPCsetDataContainer< TPCColl_t > &&TPCsetTPCs, readout::TPCsetDataContainer< unsigned int > &&ROPcount, readout::ROPDataContainer< PlaneColl_t > &&ROPplanes, geo::TPCDataContainer< readout::TPCsetID > &&TPCtoTPCset, geo::PlaneDataContainer< readout::ROPID > &&PlaneToROP)
readout::ROPDataContainer< PlaneColl_t > const & ROPplanes() const
All geo::PlaneGeo objects in each readout plane.
virtual unsigned int MaxTPCsets() const override
Returns the largest number of TPC sets any cryostat in the detector has.
unsigned int CryostatID_t
Type for the ID number.
Definition: geo_types.h:191
void resize(unsigned int nCryo, unsigned int nTPCs, unsigned int nPlanes)
Prepares the container with default-constructed data.
geo::TPCDataContainer< readout::TPCsetID > const & TPCtoTPCset() const
The TPC set including each TPC.
unsigned int dimSize() const
Dimensions of the Level dimension of this container.
static QCString * s
Definition: config.cpp:1042
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
decltype(auto) constexpr empty(T &&obj)
ADL-aware version of std::empty.
Definition: StdUtils.h:97
The data type to uniquely identify a cryostat.
Definition: geo_types.h:190
readout::ROPID geo::ColdBoxChannelMapAlg::ChannelToROP ( raw::ChannelID_t  channel) const
overridevirtual

Returns the ID of the ROP the channel belongs to (invalid if none).

Implements geo::ChannelMapAlg.

Definition at line 351 of file ColdBoxChannelMapAlg.cxx.

352 {
353  if (!raw::isValidChannelID(channel)) return {};
354 
355  ChannelToWireMap::ChannelsInROPStruct const* info
357  return info? info->ropid: readout::ROPID{};
358 } // geo::ColdBoxChannelMapAlg::ChannelToROP()
readout::ROPID ropid
ID of the ROP we cover.
uint8_t channel
Definition: CRTFragment.hh:201
geo::dune::vd::ChannelToWireMap fChannelToWireMap
Mapping of channels and ROP&#39;s.
constexpr bool isValidChannelID(raw::ChannelID_t channel)
Definition: RawTypes.h:37
Class identifying a set of planes sharing readout channels.
ChannelsInROPStruct const * find(raw::ChannelID_t channel) const
Returns data of the ROP including channel, nullptr if none.
std::vector< geo::WireID > geo::ColdBoxChannelMapAlg::ChannelToWire ( raw::ChannelID_t  channel) const
overridevirtual

Returns a collection of ID of wires connected to the channel.

Parameters
channelTPC readout channel number
Returns
collection of the wire IDs associated with channel
Exceptions
cet::exception(category: "Geometry") if non-existent channel

If the TPC readout channel is invalid or non-existing, an exception is thrown. Channels are expected to be associated with at least one wire.

Implements geo::ChannelMapAlg.

Definition at line 92 of file ColdBoxChannelMapAlg.cxx.

93 {
94  //
95  // input check
96  //
97  assert(!fPlaneInfo.empty());
98 
99  //
100  // output
101  //
102  std::vector<geo::WireID> AllSegments;
103 
104  //
105  // find the ROP with that channel
106  //
107  ChannelToWireMap::ChannelsInROPStruct const* channelInfo
109  if (!channelInfo) {
110  throw cet::exception("Geometry")
111  << "geo::ColdBoxChannelMapAlg::ChannelToWire(" << channel
112  << "): invalid channel requested (must be lower than "
113  << Nchannels() << ")\n";
114  }
115 
116  //
117  // find the wire planes in that ROP
118  //
119  PlaneColl_t const& planes = ROPplanes(channelInfo->ropid);
120 
121  //
122  // associate one wire for each of those wire planes to the channel
123  //
124  AllSegments.reserve(planes.size()); // this is sometimes (often?) too much
125  for (auto const pid: planes) {
126 
127  //geo::PlaneID const& pid = plane->ID();
128  ChannelRange_t const& channelRange = fPlaneInfo[pid].channelRange();
129 
130  if (!channelRange.contains(channel)) continue;
131  AllSegments.emplace_back
132  (pid, static_cast<geo::WireID::WireID_t>(channel - channelRange.begin()));
133 
134  } // for planes in ROP
135 
136  return AllSegments;
137 
138 } // geo::ColdBoxChannelMapAlg::ChannelToWire()
geo::PlaneDataContainer< PlaneInfo_t > fPlaneInfo
Range of channels covered by each of the wire planes.
uint8_t channel
Definition: CRTFragment.hh:201
geo::dune::vd::ChannelToWireMap fChannelToWireMap
Mapping of channels and ROP&#39;s.
virtual unsigned int Nchannels() const override
Returns the number of readout channels (ID&#39;s go 0 to Nchannels()).
std::vector< geo::PlaneID > PlaneColl_t
readout::ROPDataContainer< PlaneColl_t > const & ROPplanes() const
All geo::PlaneGeo objects in each readout plane.
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
ChannelsInROPStruct const * find(raw::ChannelID_t channel) const
Returns data of the ROP including channel, nullptr if none.
void geo::ColdBoxChannelMapAlg::fillChannelToWireMap ( geo::GeometryData_t::CryostatList_t const &  Cryostats)
private

Fills the information about readout channel mapping.

Parameters
Cryostatsthe sorted list of cryostats in the detector

The readout information must have been already filled (buildReadoutPlanes()).

Definition at line 394 of file ColdBoxChannelMapAlg.cxx.

395 {
396 
397  //
398  // input check
399  //
400  assert(fReadoutMapInfo);
401  assert(!Cryostats.empty());
402 
403  //mf::LogInfo("ColdBoxChannelMapAlg")<<"fillChannelToWireMap\n";
404  //
405  // output setup
406  //
407  assert(fPlaneInfo.empty());
408  std::array<unsigned int, 3U> maxSizes
409  = geo::details::extractMaxGeometryElements<3U>(Cryostats);
410 
411  fPlaneInfo.resize(maxSizes[0U], maxSizes[1U], maxSizes[2U]);
412 
413  raw::ChannelID_t nextChannel = 0; // next available channel
414  for (geo::CryostatGeo const& cryo: Cryostats) {
415 
416  readout::CryostatID const cid { cryo.ID() };
417 
418  auto const nTPCsets
419  = static_cast<readout::TPCsetID::TPCsetID_t>(TPCsetCount(cid));
420 
422 
423  readout::TPCsetID const sid { cid, s };
424  auto const nROPs = static_cast<readout::ROPID::ROPID_t>(ROPcount(sid));
425 
426  for (readout::ROPID::ROPID_t r: util::counter(nROPs)) {
427 
428  mf::LogTrace log("ColdBoxChannelMapAlg");
429 
430  readout::ROPID const rid { sid, r };
431  auto const planeType = findPlaneType(rid);
432  log << "ROP: " << rid
433  << " (plane type: " << PlaneTypeName(planeType) << ")";
434 
435  PlaneColl_t const& plane_ids = ROPplanes(rid);
436  assert(!plane_ids.empty());
437  log << " (" << plane_ids.size() << " planes):";
438 
439  std::vector<geo::PlaneGeo const*> planes;
440  planes.reserve( plane_ids.size() );
441  for( auto const pid : plane_ids ){
442  planes.push_back( cryo.TPC( pid ).PlanePtr( pid ) );
443  }
444 
445  raw::ChannelID_t const firstROPchannel = nextChannel;
446 
447  auto iPlane = util::begin(planes);
448  auto const pend = util::end(planes);
449 
450  // assign available channels to all wires of the first plane
451  nextChannel += (*iPlane)->Nwires();
452  fPlaneInfo[(*iPlane)->ID()] = {
453  ChannelRange_t{ firstROPchannel, nextChannel }, rid };
454  log << " [" << (*iPlane)->ID() << "] "
455  << fPlaneInfo[(*iPlane)->ID()].firstChannel()
456  << " -- " << fPlaneInfo[(*iPlane)->ID()].lastChannel() << ";";
457 
458  geo::Point_t lastWirePos = (*iPlane)->LastWire().GetCenter<geo::Point_t>();
459 
460  while (++iPlane != pend) {
461 
462  geo::PlaneGeo const& plane = **iPlane;
463 
464  // find out which wire matches the last wire from the previous plane;
465  // if there is no such wire, an exception will be thrown,
466  // which is ok to us since we believe it should not happen.
467  geo::WireID const lastMatchedWireID
468  = plane.NearestWireID(lastWirePos);
469 
470  /*
471  mf::LogTrace("ColdBoxChannelMapAlg")
472  << (*std::prev(iPlane))->ID() << " W:" << ((*std::prev(iPlane))->Nwires() - 1)
473  << " ending at " << (*std::prev(iPlane))->LastWire().GetEnd<geo::Point_t>()
474  << " matched " << lastMatchedWireID
475  << " which starts at " << plane.Wire(lastMatchedWireID).GetStart<geo::Point_t>()
476  ;
477  */
478 
479  // For ROP = 0 (1st induction)
480  // the first channel in this plane (`iPlane`) is the one associated
481  // to the first wire in the plane, which has local wire number `0`;
482  // the last channel from the previous plane (`nextChannel - 1`)
483  // is associated to the matched wire (`lastMatchedWireID`),
484  // which has some wire number (`lastMatchedWireID.Wire`).
485  //
486  auto const nWires = plane.Nwires();
487  raw::ChannelID_t const firstChannel =
488  (r == 0)?((nextChannel - 1) - lastMatchedWireID.Wire):nextChannel;
489 
490  nextChannel = firstChannel + nWires;
491 
492  fPlaneInfo[plane.ID()] = { { firstChannel, nextChannel }, rid };
493  log << " [" << plane.ID() << "] "
494  << fPlaneInfo[plane.ID()].firstChannel() << " -- "
495  << fPlaneInfo[plane.ID()].lastChannel() << ";";
496 
497  // update for the next iteration
498  lastWirePos = plane.LastWire().GetCenter<geo::Point_t>();
499 
500  } // while
501 
502  unsigned int const nChannels = nextChannel - firstROPchannel;
503  fChannelToWireMap.addROP(rid, firstROPchannel, nChannels);
504  log
505  << " => " << nChannels << " channels starting at " << firstROPchannel;
506 
507  } // for readout plane
508 
509  } // for TPC set
510 
511  } // for cryostat
512 
513  fChannelToWireMap.setEndChannel(nextChannel);
514  mf::LogInfo("ColdBoxChannelMapAlg")
515  << "Counted " << fChannelToWireMap.nChannels() << " channels.";
516 
517 } // geo::ColdBoxChannelMapAlg::fillChannelToWireMap()
void addROP(readout::ROPID const &rid, raw::ChannelID_t firstROPchannel, unsigned int nChannels)
unsigned int nChannels() const
Returns the number of mapped channels.
MaybeLogger_< ELseverityLevel::ELsev_info, false > LogInfo
PlaneType_t findPlaneType(readout::ROPID const &ropid) const
Returns the "type" of readout plane.
unsigned int ROPID_t
Type for the ID number.
unsigned short TPCsetID_t
Type for the ID number.
Definition: readout_types.h:71
Class identifying a set of TPC sharing readout channels.
Definition: readout_types.h:70
std::vector< unsigned int > const & TPCsetCount() const
Returns the number of TPC sets in each cryostat.
WireID_t Wire
Index of the wire within its plane.
Definition: geo_types.h:580
geo::PlaneDataContainer< PlaneInfo_t > fPlaneInfo
Range of channels covered by each of the wire planes.
static std::string PlaneTypeName(PlaneType_t planeType)
Returns the name of the specified plane type.
Geometry information for a single cryostat.
Definition: CryostatGeo.h:43
decltype(auto) constexpr end(T &&obj)
ADL-aware version of std::end.
Definition: StdUtils.h:77
geo::dune::vd::ChannelToWireMap fChannelToWireMap
Mapping of channels and ROP&#39;s.
auto counter(T begin, T end)
Returns an object to iterate values from begin to end in a range-for loop.
Definition: counter.h:285
geo::WireID NearestWireID(geo::Point_t const &pos) const
Returns the ID of wire closest to the specified position.
Definition: PlaneGeo.cxx:649
std::vector< geo::PlaneID > PlaneColl_t
Geometry information for a single wire plane.The plane is represented in the geometry by a solid whic...
Definition: PlaneGeo.h:82
void setEndChannel(raw::ChannelID_t channel)
Sets the ID of the channels after the last valid one.
ReadoutMappingInfo_t fReadoutMapInfo
Information about TPC sets and readout planes in the geometry.
readout::TPCsetDataContainer< unsigned int > const & ROPcount() const
Number of readout planes in each TPC set.
Class identifying a set of planes sharing readout channels.
readout::ROPDataContainer< PlaneColl_t > const & ROPplanes() const
All geo::PlaneGeo objects in each readout plane.
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Point_t
Type for representation of position in physical 3D space.
Definition: geo_vectors.h:184
geo::PlaneID const & ID() const
Returns the identifier of this plane.
Definition: PlaneGeo.h:203
unsigned int Nwires() const
Number of wires in this plane.
Definition: PlaneGeo.h:269
decltype(auto) constexpr begin(T &&obj)
ADL-aware version of std::begin.
Definition: StdUtils.h:72
void GetCenter(double *xyz, double localz=0.0) const
Fills the world coordinate of a point on the wire.
Definition: WireGeo.cxx:73
unsigned int ChannelID_t
Type representing the ID of a readout channel.
Definition: RawTypes.h:28
const WireGeo & LastWire() const
Return the last wire in the plane.
Definition: PlaneGeo.h:350
static QCString * s
Definition: config.cpp:1042
The data type to uniquely identify a cryostat.
Definition: geo_types.h:190
std::size_t geo::ColdBoxChannelMapAlg::findPlaneType ( readout::ROPID const &  ropid) const
private

Returns the "type" of readout plane.

Parameters
ropidID 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 667 of file ColdBoxChannelMapAlg.cxx.

668 {
669  /*
670  * This implementation is very fragile, relying on the fact that the first
671  * induction plane numbers are `kFirstInductionType`, the second induction
672  * plane numbers are `kSecondInductionType` and the collection plane numbers
673  * are `kCollectionType`. This assumption is not checked anywhere.
674  *
675  */
676  constexpr std::array PlaneTypes = { // let's C++ figure out type and size
677  kFirstInductionType, // P:0
678  kSecondInductionType, // P:1
679  kCollectionType // P:2
680  };
681 
682  PlaneColl_t const& planes = ROPplanes(rid);
683  //std::cout<<"findPlaneType: "<<rid<<" "<<planes.size()<<" @ "<<planes.front()
684  //<<" "<<planes.front()->ID().Plane<<"\n";
685  //for (geo::PlaneGeo const* plane: planes)
686  //std::cout <<" (" << plane->ID() << ")";
687  //std::cout<<"\n";
688 
689  if (planes.empty()) return kUnknownType;
690  if (auto const planeNo = planes.front().Plane; planeNo < PlaneTypes.size())
691  return PlaneTypes[planeNo];
692  else return kUnknownType;
693 
694 } // geo::ColdBoxChannelMapAlg::findPlaneType()
static constexpr PlaneType_t kUnknownType
Identifier for unknown plane type.
std::vector< geo::PlaneID > PlaneColl_t
static constexpr PlaneType_t kSecondInductionType
Identifier for second induction plane type.
static constexpr PlaneType_t kCollectionType
Identifier for collection plane type.
readout::ROPDataContainer< PlaneColl_t > const & ROPplanes() const
All geo::PlaneGeo objects in each readout plane.
auto array(Array const &a)
Returns a manipulator which will print the specified array.
Definition: DumpUtils.h:228
static constexpr PlaneType_t kFirstInductionType
Identifier for first induction plane type.
raw::ChannelID_t geo::ColdBoxChannelMapAlg::FirstChannelInROP ( readout::ROPID const &  ropid) const
overridevirtual

Returns the ID of the first channel in the specified readout plane.

Parameters
ropidID of the readout plane
Returns
ID of first channel, or raw::InvalidChannelID if ID is invalid

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 363 of file ColdBoxChannelMapAlg.cxx.

364 {
365  if (!ropid) return raw::InvalidChannelID;
366 
367  ChannelToWireMap::ChannelsInROPStruct const* info
368  = fChannelToWireMap.find(ropid);
369  return info? info->firstChannel: raw::InvalidChannelID;
370 } // geo::ColdBoxChannelMapAlg::FirstChannelInROP()
geo::dune::vd::ChannelToWireMap fChannelToWireMap
Mapping of channels and ROP&#39;s.
constexpr ChannelID_t InvalidChannelID
ID of an invalid channel.
Definition: RawTypes.h:32
ChannelsInROPStruct const * find(raw::ChannelID_t channel) const
Returns data of the ROP including channel, nullptr if none.
geo::TPCID geo::ColdBoxChannelMapAlg::FirstTPCinTPCset ( readout::TPCsetID const &  tpcsetid) const
overridevirtual

Returns the ID of the first TPC belonging to the specified TPC set.

Implements geo::ChannelMapAlg.

Definition at line 271 of file ColdBoxChannelMapAlg.cxx.

272 {
273  if (!tpcsetid) return {};
274 
275  auto const& TPClist = TPCsetTPCs(tpcsetid);
276  return TPClist.empty()? geo::TPCID{}: TPClist.front();
277 
278 } // geo::ColdBoxChannelMapAlg::FirstTPCinTPCset()
readout::TPCsetDataContainer< TPCColl_t > const & TPCsetTPCs() const
All geo::TPCGeo objects in each TPC set.
The data type to uniquely identify a TPC.
Definition: geo_types.h:386
geo::PlaneID geo::ColdBoxChannelMapAlg::FirstWirePlaneInROP ( readout::ROPID const &  ropid) const
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 375 of file ColdBoxChannelMapAlg.cxx.

376 {
377  if (!ropid) return {};
378  PlaneColl_t const& planes = ROPplanes(ropid);
379  return planes.empty()? geo::PlaneID{}: planes.front();
380 } // geo::ColdBoxChannelMapAlg::FirstWirePlaneInROP()
The data type to uniquely identify a Plane.
Definition: geo_types.h:472
std::vector< geo::PlaneID > PlaneColl_t
readout::ROPDataContainer< PlaneColl_t > const & ROPplanes() const
All geo::PlaneGeo objects in each readout plane.
bool geo::ColdBoxChannelMapAlg::HasCryostat ( readout::CryostatID const &  cryoid) const
private

Returns whether the specified cryostat is known to the mapping.

Definition at line 385 of file ColdBoxChannelMapAlg.cxx.

386 {
387  assert(fReadoutMapInfo);
388  return cryoid.Cryostat < fReadoutMapInfo.NCryostats();
389 } // geo::ColdBoxChannelMapAlg::HasCryostat()
ReadoutMappingInfo_t fReadoutMapInfo
Information about TPC sets and readout planes in the geometry.
bool geo::ColdBoxChannelMapAlg::HasROP ( readout::ROPID const &  ropid) const
overridevirtual

Returns whether we have the specified ROP

Returns
whether the readout plane is valid and exists

Implements geo::ChannelMapAlg.

Definition at line 296 of file ColdBoxChannelMapAlg.cxx.

296  {
297  return HasTPCset(ropid)? (ropid.ROP < ROPcount(ropid)): false;
298 } // geo::ColdBoxChannelMapAlg::HasROP()
virtual bool HasTPCset(readout::TPCsetID const &tpcsetid) const override
readout::TPCsetDataContainer< unsigned int > const & ROPcount() const
Number of readout planes in each TPC set.
bool geo::ColdBoxChannelMapAlg::HasTPCset ( readout::TPCsetID const &  tpcsetid) const
overridevirtual

Returns whether we have the specified TPC set.

Returns
whether the TPC set is valid and exists

Returns whether we have the specified TPC set

Returns
whether the TPC set is valid and exists

Implements geo::ChannelMapAlg.

Definition at line 243 of file ColdBoxChannelMapAlg.cxx.

244 {
245  return
246  HasCryostat(tpcsetid)? (tpcsetid.TPCset < TPCsetCount(tpcsetid)): false;
247 } // geo::ColdBoxChannelMapAlg::HasTPCset()
std::vector< unsigned int > const & TPCsetCount() const
Returns the number of TPC sets in each cryostat.
bool HasCryostat(readout::CryostatID const &cryoid) const
Returns whether the specified cryostat is known to the mapping.
void geo::ColdBoxChannelMapAlg::Initialize ( geo::GeometryData_t const &  geodata)
overridevirtual

Prepares the algorithm extracting information from the geometry.

Implements geo::ChannelMapAlg.

Definition at line 67 of file ColdBoxChannelMapAlg.cxx.

68 {
69  mf::LogInfo("ColdBoxChannelMapAlg")
70  << "Initializing ColdBoxChannelMapAlg channel mapping algorithm.";
71 
72  buildReadoutPlanes(geodata.cryostats);
73  fillChannelToWireMap(geodata.cryostats);
74 
75  MF_LOG_TRACE("ColdBoxChannelMapAlg")
76  << "ColdBoxChannelMapAlg::Initialize() completed.";
77 } // geo::ColdBoxChannelMapAlg::Initialize()
MaybeLogger_< ELseverityLevel::ELsev_info, false > LogInfo
void buildReadoutPlanes(geo::GeometryData_t::CryostatList_t const &Cryostats)
Fills information about the TPC set and readout plane structure.
void fillChannelToWireMap(geo::GeometryData_t::CryostatList_t const &Cryostats)
Fills the information about readout channel mapping.
#define MF_LOG_TRACE(id)
unsigned int geo::ColdBoxChannelMapAlg::MaxROPs ( ) const
overridevirtual

Returns the largest number of ROPs a TPC set in the detector has.

Implements geo::ChannelMapAlg.

Definition at line 290 of file ColdBoxChannelMapAlg.cxx.

290  {
291  assert(fReadoutMapInfo);
292  return fReadoutMapInfo.MaxROPs();
293 } // geo::ColdBoxChannelMapAlg::MaxROPs()
ReadoutMappingInfo_t fReadoutMapInfo
Information about TPC sets and readout planes in the geometry.
unsigned int geo::ColdBoxChannelMapAlg::MaxTPCsets ( ) const
overridevirtual

Returns the largest number of TPC sets any cryostat in the detector has.

Implements geo::ChannelMapAlg.

Definition at line 233 of file ColdBoxChannelMapAlg.cxx.

233  {
234  assert(fReadoutMapInfo);
235  return fReadoutMapInfo.MaxTPCsets();
236 } // geo::ColdBoxChannelMapAlg::MaxTPCsets()
ReadoutMappingInfo_t fReadoutMapInfo
Information about TPC sets and readout planes in the geometry.
unsigned int geo::ColdBoxChannelMapAlg::Nchannels ( ) const
overridevirtual

Returns the number of readout channels (ID's go 0 to Nchannels()).

Implements geo::ChannelMapAlg.

Definition at line 142 of file ColdBoxChannelMapAlg.cxx.

142  {
143 
144  return fChannelToWireMap.nChannels();
145 } // geo::ColdBoxChannelMapAlg::Nchannels()
unsigned int nChannels() const
Returns the number of mapped channels.
geo::dune::vd::ChannelToWireMap fChannelToWireMap
Mapping of channels and ROP&#39;s.
unsigned int geo::ColdBoxChannelMapAlg::Nchannels ( readout::ROPID const &  ropid) const
overridevirtual

Returns the number of channels in the specified ROP.

Returns
number of channels in the specified ROP, 0 if non-existent

Implements geo::ChannelMapAlg.

Definition at line 150 of file ColdBoxChannelMapAlg.cxx.

151 {
152  ChannelToWireMap::ChannelsInROPStruct const* ROPinfo
153  = fChannelToWireMap.find(ropid);
154  return ROPinfo? ROPinfo->nChannels: 0U;
155 } // geo::ColdBoxChannelMapAlg::Nchannels(ROPID)
geo::dune::vd::ChannelToWireMap fChannelToWireMap
Mapping of channels and ROP&#39;s.
ChannelsInROPStruct const * find(raw::ChannelID_t channel) const
Returns data of the ROP including channel, nullptr if none.
geo::WireID geo::ColdBoxChannelMapAlg::NearestWireID ( const TVector3 &  worldPos,
geo::PlaneID const &  planeID 
) const
overridevirtual

Returns the ID of the wire nearest to the specified position.

Parameters
worldPosposition to be tested
planeIDplane containing the wire
Returns
the ID of the wire closest to worldPos in the specified plane
Exceptions
InvalidWireIDErrorthe ID found is not present in the detector
See also
WireCoordinate(double, double, geo::PlaneID const&)

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 179 of file ColdBoxChannelMapAlg.cxx.

180 {
181  /*
182  * this should NOT be called... it shouldn't be here at all!
183  */
184 
185  cet::exception e("ColdBoxChannelMapAlg");
186  e << "ColdBoxChannelMapAlg does not support `NearestWireID()` call."
187  "\nPlease update calling software to use geo::PlaneGeo::NearestWireID()`:"
188  "\n";
189 
190  //lar::debug::printBacktrace(e, 3U);
191 
192  throw e;
193 } // geo::ColdBoxChannelMapAlg::NearestWireID()
const double e
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
virtual geo::WireID geo::ColdBoxChannelMapAlg::NearestWireID ( const TVector3 &  worldPos,
unsigned int  PlaneNo,
unsigned int  TPCNo,
unsigned int  cstat 
) const
inlineoverridevirtual

Returns the ID of the wire nearest to the specified position.

Parameters
worldPosposition to be tested
PlaneNonumber of plane containing the wire
TPCNonumber of TPC containing the wire
cstatnumber of cryostat containing the wire
Returns
the ID of the wire closest to worldPos in the specified plane
See also
NearestWireID(const TVector3&, geo::PlaneID const&)
Deprecated:
Use the version with geo::PlaneID instead

Implements geo::ChannelMapAlg.

Definition at line 194 of file ColdBoxChannelMapAlg.h.

198  { return NearestWireID(worldPos, geo::PlaneID(cstat, TPCNo, PlaneNo)); }
The data type to uniquely identify a Plane.
Definition: geo_types.h:472
virtual geo::WireID NearestWireID(const TVector3 &worldPos, geo::PlaneID const &planeID) const override
Returns the ID of the wire nearest to the specified position.
unsigned int geo::ColdBoxChannelMapAlg::NROPs ( readout::TPCsetID const &  tpcsetid) const
overridevirtual

Returns the total number of readout planes in the specified TPC set.

Parameters
tpcsetidTPC set ID
Returns
number of readout planes in the TPC sets, or 0 if ID is invalid

The validity of the requested TPC set is performed like in HasTPCset().

Implements geo::ChannelMapAlg.

Definition at line 283 of file ColdBoxChannelMapAlg.cxx.

284 {
285  return HasTPCset(tpcsetid)? ROPcount(tpcsetid): 0U;
286 } // geo::ColdBoxChannelMapAlg::NROPs()
virtual bool HasTPCset(readout::TPCsetID const &tpcsetid) const override
readout::TPCsetDataContainer< unsigned int > const & ROPcount() const
Number of readout planes in each TPC set.
unsigned int geo::ColdBoxChannelMapAlg::NTPCsets ( readout::CryostatID const &  cryoid) const
overridevirtual

Returns the total number of TPC sets in the specified cryostat.

Parameters
cryoidcryostat ID
Returns
number of TPC sets in the cryostat, or 0 if no cryostat found

Implements geo::ChannelMapAlg.

Definition at line 225 of file ColdBoxChannelMapAlg.cxx.

226 {
227  return HasCryostat(cryoid)? TPCsetCount(cryoid): 0U;
228 } // geo::ColdBoxChannelMapAlg::NTPCsets()
std::vector< unsigned int > const & TPCsetCount() const
Returns the number of TPC sets in each cryostat.
bool HasCryostat(readout::CryostatID const &cryoid) const
Returns whether the specified cryostat is known to the mapping.
std::set< geo::PlaneID > const & geo::ColdBoxChannelMapAlg::PlaneIDs ( ) const
overridevirtual

Returns a list of the plane IDs in the whole detector.

Implements geo::ChannelMapAlg.

Definition at line 205 of file ColdBoxChannelMapAlg.cxx.

205  {
206 
207  /*
208  * this should NOT be called... it shouldn't be here at all!
209  */
210 
211  cet::exception e("ColdBoxChannelMapAlg");
212  e << "ColdBoxChannelMapAlg does not support `PlaneIDs()` call."
213  "\nPlease update calling software to use geo::GeometryCore::IteratePlanes()`"
214  "\n";
215 
216  //lar::debug::printBacktrace(e, 3U);
217 
218  throw e;
219 
220 } // geo::ColdBoxChannelMapAlg::PlaneIDs()
const double e
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
geo::PlaneDataContainer<readout::ROPID> const& geo::ColdBoxChannelMapAlg::PlaneToROP ( ) const
inlineprivate

The readout plane including each wire plane.

Definition at line 563 of file ColdBoxChannelMapAlg.h.

564  { assert(fReadoutMapInfo); return fReadoutMapInfo.fPlaneToROP; }
ReadoutMappingInfo_t fReadoutMapInfo
Information about TPC sets and readout planes in the geometry.
geo::PlaneDataContainer< readout::ROPID > fPlaneToROP
The ROP each wire plane belongs to.
readout::ROPID const& geo::ColdBoxChannelMapAlg::PlaneToROP ( geo::PlaneID const &  pid) const
inlineprivate

The readout plane the specified wire plane pid belongs to.

Definition at line 567 of file ColdBoxChannelMapAlg.h.

568  { return PlaneToROP()[pid]; }
geo::PlaneDataContainer< readout::ROPID > const & PlaneToROP() const
The readout plane including each wire plane.
std::string geo::ColdBoxChannelMapAlg::PlaneTypeName ( PlaneType_t  planeType)
staticprivate

Returns the name of the specified plane type.

Definition at line 720 of file ColdBoxChannelMapAlg.cxx.

720  {
721 
722  using namespace std::string_literals;
723  switch (planeType) {
724  case kFirstInductionType: return "first induction"s;
725  case kSecondInductionType: return "second induction"s;
726  case kCollectionType: return "collection induction"s;
727  case kUnknownType: return "unknown"s;
728  default:
729  return "unsupported ("s + std::to_string(planeType) + ")"s;
730  } // switch
731 
732 } // geo::ColdBoxChannelMapAlg::PlaneTypeName()
static constexpr PlaneType_t kUnknownType
Identifier for unknown plane type.
static constexpr PlaneType_t kSecondInductionType
Identifier for second induction plane type.
static constexpr PlaneType_t kCollectionType
Identifier for collection plane type.
std::string to_string(ModuleType const mt)
Definition: ModuleType.h:34
static QCString * s
Definition: config.cpp:1042
static constexpr PlaneType_t kFirstInductionType
Identifier for first induction plane type.
raw::ChannelID_t geo::ColdBoxChannelMapAlg::PlaneWireToChannel ( geo::WireID const &  wireID) const
overridevirtual

Returns the channel ID a wire is connected to.

Parameters
wireIDID of the wire
Returns
the ID of the channel
See also
PlaneWireToChannel(geo::WireID const&)

Behaviour on an invalid or not present wires is undefined.

Deprecated:
Use the version with geo::WireID

Reimplemented from geo::ChannelMapAlg.

Definition at line 198 of file ColdBoxChannelMapAlg.cxx.

199 {
200  return fPlaneInfo[wireID].firstChannel() + wireID.Wire;
201 } // geo::ColdBoxChannelMapAlg::PlaneWireToChannel()
geo::PlaneDataContainer< PlaneInfo_t > fPlaneInfo
Range of channels covered by each of the wire planes.
virtual raw::ChannelID_t geo::ColdBoxChannelMapAlg::PlaneWireToChannel ( unsigned int  plane,
unsigned int  wire,
unsigned int  tpc,
unsigned int  cstat 
) const
inlineoverridevirtual

Returns the channel ID a wire is connected to.

Parameters
planenumber of plane
wirenumber of wire
tpcnumber of TPC
cstatnumber of cryostat
Returns
the ID of the channel
See also
PlaneWireToChannel(geo::WireID const&)
Deprecated:
Use the version with geo::WireID

Implements geo::ChannelMapAlg.

Definition at line 163 of file ColdBoxChannelMapAlg.h.

167  { return PlaneWireToChannel(geo::WireID(cstat, tpc, plane, wire)); }
virtual raw::ChannelID_t PlaneWireToChannel(geo::WireID const &wireID) const override
Returns the channel ID a wire is connected to.
readout::TPCsetDataContainer<unsigned int> const& geo::ColdBoxChannelMapAlg::ROPcount ( ) const
inlineprivate

Number of readout planes in each TPC set.

Definition at line 543 of file ColdBoxChannelMapAlg.h.

544  { assert(fReadoutMapInfo); return fReadoutMapInfo.fROPcount; }
readout::TPCsetDataContainer< unsigned int > fROPcount
Number of readout planes in each TPC set.
ReadoutMappingInfo_t fReadoutMapInfo
Information about TPC sets and readout planes in the geometry.
unsigned int geo::ColdBoxChannelMapAlg::ROPcount ( readout::TPCsetID const &  sid) const
inlineprivate

Number of readout planes in the specified TPC set sid.

Definition at line 547 of file ColdBoxChannelMapAlg.h.

548  { return ROPcount()[sid]; }
readout::TPCsetDataContainer< unsigned int > const & ROPcount() const
Number of readout planes in each TPC set.
readout::ROPDataContainer<PlaneColl_t> const& geo::ColdBoxChannelMapAlg::ROPplanes ( ) const
inlineprivate

All geo::PlaneGeo objects in each readout plane.

Definition at line 551 of file ColdBoxChannelMapAlg.h.

552  { assert(fReadoutMapInfo); return fReadoutMapInfo.fROPplanes; }
readout::ROPDataContainer< PlaneColl_t > fROPplanes
All geo::PlaneGeo objects in each readout plane.
ReadoutMappingInfo_t fReadoutMapInfo
Information about TPC sets and readout planes in the geometry.
PlaneColl_t const& geo::ColdBoxChannelMapAlg::ROPplanes ( readout::ROPID const &  rid) const
inlineprivate

All geo::PlaneId objects in the specified readout plane rid.

Definition at line 555 of file ColdBoxChannelMapAlg.h.

556  { return ROPplanes()[rid]; }
readout::ROPDataContainer< PlaneColl_t > const & ROPplanes() const
All geo::PlaneGeo objects in each readout plane.
std::vector< geo::TPCID > geo::ColdBoxChannelMapAlg::ROPtoTPCs ( readout::ROPID const &  ropid) const
overridevirtual

Returns a list of ID of TPCs the specified ROP spans.

Parameters
ropidID of the readout plane
Returns
the list of TPC IDs, empty if readout plane ID is invalid

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 334 of file ColdBoxChannelMapAlg.cxx.

335 {
336  std::vector<geo::TPCID> TPCs;
337  if (!ropid) return TPCs;
338 
339  auto const& PlaneList = ROPplanes(ropid);
340  TPCs.reserve(PlaneList.size());
341  for( auto const pid : PlaneList ){
342  TPCs.push_back( pid );
343  }
344 
345  return TPCs;
346 } // geo::ColdBoxChannelMapAlg::ROPtoTPCs()
readout::ROPDataContainer< PlaneColl_t > const & ROPplanes() const
All geo::PlaneGeo objects in each readout plane.
std::vector< geo::PlaneID > geo::ColdBoxChannelMapAlg::ROPtoWirePlanes ( readout::ROPID const &  ropid) const
overridevirtual

Returns a list of ID of wire planes belonging to the specified ROP.

Parameters
ropidID of the readout plane to convert into wire planes
Returns
the list of wire plane IDs, empty if readout plane ID is invalid

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 324 of file ColdBoxChannelMapAlg.cxx.

325 {
326  std::vector<geo::PlaneID> Planes;
327  if (!ropid) return Planes;
328  return ROPplanes(ropid);
329 } // geo::ColdBoxChannelMapAlg::ROPtoWirePlanes()
readout::ROPDataContainer< PlaneColl_t > const & ROPplanes() const
All geo::PlaneGeo objects in each readout plane.
geo::SigType_t geo::ColdBoxChannelMapAlg::SignalTypeForChannelImpl ( raw::ChannelID_t const  channel) const
overrideprivatevirtual

Returns the type of signal on the specified channel.

Implements geo::ChannelMapAlg.

Definition at line 699 of file ColdBoxChannelMapAlg.cxx.

700 {
701  ChannelToWireMap::ChannelsInROPStruct const* channelInfo
703  if (!channelInfo) return geo::kMysteryType;
704 
705  switch (findPlaneType(channelInfo->ropid)) {
706  case kFirstInductionType:
708  return geo::kInduction;
709  case kCollectionType:
710  return geo::kCollection;
711  default:
712  return geo::kMysteryType;
713  } // switch
714 
715  return geo::kMysteryType;
716 } // geo::ColdBoxChannelMapAlg::SignalTypeForChannelImpl()
Who knows?
Definition: geo_types.h:147
PlaneType_t findPlaneType(readout::ROPID const &ropid) const
Returns the "type" of readout plane.
uint8_t channel
Definition: CRTFragment.hh:201
geo::dune::vd::ChannelToWireMap fChannelToWireMap
Mapping of channels and ROP&#39;s.
Signal from induction planes.
Definition: geo_types.h:145
static constexpr PlaneType_t kSecondInductionType
Identifier for second induction plane type.
static constexpr PlaneType_t kCollectionType
Identifier for collection plane type.
static constexpr PlaneType_t kFirstInductionType
Identifier for first induction plane type.
Signal from collection planes.
Definition: geo_types.h:146
ChannelsInROPStruct const * find(raw::ChannelID_t channel) const
Returns data of the ROP including channel, nullptr if none.
virtual geo::GeoObjectSorter const& geo::ColdBoxChannelMapAlg::Sorter ( ) const
inlineoverridevirtual

Return the sorter.

Implements geo::ChannelMapAlg.

Definition at line 356 of file ColdBoxChannelMapAlg.h.

357  { return fSorter; }
geo::GeoObjectSorterCRU fSorter
class to sort geo objects
std::vector<unsigned int> const& geo::ColdBoxChannelMapAlg::TPCsetCount ( ) const
inlineprivate

Returns the number of TPC sets in each cryostat.

Definition at line 527 of file ColdBoxChannelMapAlg.h.

528  { assert(fReadoutMapInfo); return fReadoutMapInfo.fTPCsetCount; }
std::vector< unsigned int > fTPCsetCount
Number of TPC sets in each cryostat.
ReadoutMappingInfo_t fReadoutMapInfo
Information about TPC sets and readout planes in the geometry.
unsigned int geo::ColdBoxChannelMapAlg::TPCsetCount ( readout::CryostatID const &  cid) const
inlineprivate

Returns the number of TPC sets in the specified cryostat cid.

Definition at line 531 of file ColdBoxChannelMapAlg.h.

532  { return TPCsetCount()[cid.Cryostat]; }
std::vector< unsigned int > const & TPCsetCount() const
Returns the number of TPC sets in each cryostat.
std::vector< geo::TPCID > geo::ColdBoxChannelMapAlg::TPCsetToTPCs ( readout::TPCsetID const &  tpcsetid) const
overridevirtual

Returns a list of ID of TPCs belonging to the specified TPC set.

Parameters
tpcsetidID of the TPC set to convert into TPC IDs
Returns
the list of TPCs, empty if TPC set is invalid

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 260 of file ColdBoxChannelMapAlg.cxx.

261 {
262  std::vector<geo::TPCID> TPCs;
263  if (!tpcsetid) return TPCs;
264 
265  return TPCsetTPCs(tpcsetid);
266 } // geo::ColdBoxChannelMapAlg::TPCsetToTPCs()
readout::TPCsetDataContainer< TPCColl_t > const & TPCsetTPCs() const
All geo::TPCGeo objects in each TPC set.
readout::TPCsetDataContainer<TPCColl_t> const& geo::ColdBoxChannelMapAlg::TPCsetTPCs ( ) const
inlineprivate

All geo::TPCGeo objects in each TPC set.

Definition at line 535 of file ColdBoxChannelMapAlg.h.

536  { assert(fReadoutMapInfo); return fReadoutMapInfo.fTPCsetTPCs; }
ReadoutMappingInfo_t fReadoutMapInfo
Information about TPC sets and readout planes in the geometry.
readout::TPCsetDataContainer< TPCColl_t > fTPCsetTPCs
All geo::TPCGeo objects in each TPC set.
TPCColl_t const& geo::ColdBoxChannelMapAlg::TPCsetTPCs ( readout::TPCsetID const &  sid) const
inlineprivate

All geo::TPCID objects in the specified TPC set sid.

Definition at line 539 of file ColdBoxChannelMapAlg.h.

540  { return TPCsetTPCs()[sid]; }
readout::TPCsetDataContainer< TPCColl_t > const & TPCsetTPCs() const
All geo::TPCGeo objects in each TPC set.
readout::TPCsetID geo::ColdBoxChannelMapAlg::TPCtoTPCset ( geo::TPCID const &  tpcid) const
overridevirtual

Returns the ID of the TPC set the specified TPC belongs to.

Parameters
tpcidID of the TPC
Returns
the ID of the corresponding TPC set, or invalid ID when tpcid is

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 252 of file ColdBoxChannelMapAlg.cxx.

253 {
254  return tpcid? TPCtoTPCset()[tpcid]: readout::TPCsetID{};
255 } // geo::ColdBoxChannelMapAlg::TPCtoTPCset()
Class identifying a set of TPC sharing readout channels.
Definition: readout_types.h:70
geo::TPCDataContainer< readout::TPCsetID > const & TPCtoTPCset() const
The TPC set including each TPC.
geo::TPCDataContainer<readout::TPCsetID> const& geo::ColdBoxChannelMapAlg::TPCtoTPCset ( ) const
inlineprivate

The TPC set including each TPC.

Definition at line 559 of file ColdBoxChannelMapAlg.h.

560  { assert(fReadoutMapInfo); return fReadoutMapInfo.fTPCtoTPCset; }
geo::TPCDataContainer< readout::TPCsetID > fTPCtoTPCset
The TPC set each TPC belongs to.
ReadoutMappingInfo_t fReadoutMapInfo
Information about TPC sets and readout planes in the geometry.
void geo::ColdBoxChannelMapAlg::Uninitialize ( )
overridevirtual

Frees the resources of this algorithm.

Implements geo::ChannelMapAlg.

Definition at line 81 of file ColdBoxChannelMapAlg.cxx.

81  {
82 
85  fPlaneInfo.clear();
86 
87 } // geo::ColdBoxChannelMapAlg::Uninitialize()
void clear()
Frees the memory and leaves the object unusable until next set().
void clear()
Resets the data of the map to like just constructed.
geo::PlaneDataContainer< PlaneInfo_t > fPlaneInfo
Range of channels covered by each of the wire planes.
geo::dune::vd::ChannelToWireMap fChannelToWireMap
Mapping of channels and ROP&#39;s.
ReadoutMappingInfo_t fReadoutMapInfo
Information about TPC sets and readout planes in the geometry.
double geo::ColdBoxChannelMapAlg::WireCoordinate ( double  YPos,
double  ZPos,
geo::PlaneID const &  planeID 
) const
overridevirtual

Returns the index of the wire nearest to the specified position.

Parameters
YPosy coordinate on the wire plane
ZPosz coordinate on the wire plane
planeIDID of the plane
Returns
an index interpolation between the two nearest wires
See also
NearestWireID()

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 160 of file ColdBoxChannelMapAlg.cxx.

161 {
162  /*
163  * this should NOT be called... it shouldn't be here at all!
164  */
165 
166  cet::exception e("ColdBoxChannelMapAlg");
167  e << "ColdBoxChannelMapAlg does not support `WireCoordinate()` call."
168  "\nPlease update calling software to use geo::PlaneGeo::WireCoordinate()`:"
169  "\n";
170 
171  //lar::debug::printBacktrace(e, 4U);
172 
173  throw e;
174 } // geo::ColdBoxChannelMapAlg::WireCoordinate()
const double e
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
virtual double geo::ColdBoxChannelMapAlg::WireCoordinate ( double  YPos,
double  ZPos,
unsigned int  PlaneNo,
unsigned int  TPCNo,
unsigned int  cstat 
) const
inlineoverridevirtual

Returns the index of the wire nearest to the specified position.

Parameters
YPosy coordinate on the wire plane
ZPosz coordinate on the wire plane
PlaneNonumber of plane
TPCNonumber of TPC
cstatnumber of cryostat
Returns
an index interpolation between the two nearest wires
See also
WireCoordinate(double, double, geo::PlaneID const&)
Deprecated:
Use the version with geo::PlaneID instead

Implements geo::ChannelMapAlg.

Definition at line 184 of file ColdBoxChannelMapAlg.h.

188  { return WireCoordinate(YPos, ZPos, geo::PlaneID(cstat, TPCNo, PlaneNo)); }
The data type to uniquely identify a Plane.
Definition: geo_types.h:472
virtual double WireCoordinate(double YPos, double ZPos, geo::PlaneID const &planeID) const override
Returns the index of the wire nearest to the specified position.
readout::ROPID geo::ColdBoxChannelMapAlg::WirePlaneToROP ( geo::PlaneID const &  planeid) const
overridevirtual

Returns the ID of the ROP planeid belongs to, or invalid if none.

Parameters
planeidID of the plane
Returns
the ID of the corresponding ROP, or invalid ID when planeid is

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.

Parameters
planeidID of the plane
Returns
the ID of the corresponding ROP, or invalid ID when planeid is

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 315 of file ColdBoxChannelMapAlg.cxx.

316 {
317  return planeid? PlaneToROP(planeid): readout::ROPID{};
318  //return planeid?fReadoutMapInfo.fPlaneToROP[planeid]:readout::ROPID{};
319 } // geo::ColdBoxChannelMapAlg::WirePlaneToROP()
geo::PlaneDataContainer< readout::ROPID > const & PlaneToROP() const
The readout plane including each wire plane.
Class identifying a set of planes sharing readout channels.

Member Data Documentation

geo::dune::vd::ChannelToWireMap geo::ColdBoxChannelMapAlg::fChannelToWireMap
private

Mapping of channels and ROP's.

Definition at line 501 of file ColdBoxChannelMapAlg.h.

std::string geo::ColdBoxChannelMapAlg::fLogCategory = "ColdBoxChannelMapAlg"
private

Definition at line 623 of file ColdBoxChannelMapAlg.h.

geo::PlaneDataContainer<PlaneInfo_t> geo::ColdBoxChannelMapAlg::fPlaneInfo
private

Range of channels covered by each of the wire planes.

Definition at line 504 of file ColdBoxChannelMapAlg.h.

ReadoutMappingInfo_t geo::ColdBoxChannelMapAlg::fReadoutMapInfo
private

Information about TPC sets and readout planes in the geometry.

Definition at line 498 of file ColdBoxChannelMapAlg.h.

geo::GeoObjectSorterCRU geo::ColdBoxChannelMapAlg::fSorter
private

class to sort geo objects

Definition at line 506 of file ColdBoxChannelMapAlg.h.

constexpr PlaneType_t geo::ColdBoxChannelMapAlg::kCollectionType = 2U
staticprivate

Identifier for collection plane type.

Definition at line 516 of file ColdBoxChannelMapAlg.h.

constexpr PlaneType_t geo::ColdBoxChannelMapAlg::kFirstInductionType = 0U
staticprivate

Identifier for first induction plane type.

Definition at line 512 of file ColdBoxChannelMapAlg.h.

constexpr PlaneType_t geo::ColdBoxChannelMapAlg::kSecondInductionType = 1U
staticprivate

Identifier for second induction plane type.

Definition at line 514 of file ColdBoxChannelMapAlg.h.

constexpr PlaneType_t geo::ColdBoxChannelMapAlg::kUnknownType = std::numeric_limits<PlaneType_t>::max()
staticprivate

Identifier for unknown plane type.

Definition at line 519 of file ColdBoxChannelMapAlg.h.


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