10 #ifndef ICARUSCODE_LIGHT_LIBRARYMAPPINGTOOLS_ICARUSPHOTONMAPPINGTRANSFORMATIONS_H
11 #define ICARUSCODE_LIGHT_LIBRARYMAPPINGTOOLS_ICARUSPHOTONMAPPINGTRANSFORMATIONS_H
21 #include "art/Utilities/ToolConfigTable.h"
22 #include "fhiclcpp/types/OptionalSequence.h"
23 #include "fhiclcpp/types/Atom.h"
69 Name(
"CryostatChannelRemap"),
70 Comment(
"internal library mapping (new library ID for each old one)")
76 Comment(
"dump the mapping into console"),
299 typename OutputIndex,
typename InputIndex,
300 template <
typename...>
typename Container
303 Container<OutputIndex>
const& directMap,
305 InputIndex invalidIndex
331 <
typename OutputIndex,
typename InputIndex,
template <
typename...>
typename Container>
333 Container<OutputIndex>
const& directMap,
335 InputIndex invalidIndex
336 ) -> Container<InputIndex> {
338 OutputIndex
const endOutputIndex =
size;
340 Container<InputIndex> inverseMap(
size, invalidIndex);
341 for (std::size_t i = 0U; i < directMap.size(); ++i) {
342 OutputIndex o = directMap[i];
343 if (o < endOutputIndex) inverseMap[o] = i;
352 #endif // ICARUSCODE_LIGHT_LIBRARYMAPPINGTOOLS_ICARUSPHOTONMAPPINGTRANSFORMATIONS_H
Utilities related to art service access.
double Length_t
Type used for coordinates and distances. They are measured in centimeters.
std::size_t size(FixedBins< T, C > const &) noexcept
Access the description of detector geometry.
Definitions of geometry vector data types.
BEGIN_PROLOG vertical distance to the surface Name
phot::IPhotonMappingTransformations::OpDetID_t OpDetID_t
Type of (global) optical detector ID.
Description of geometry of one entire detector.
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Point_t
Type for representation of position in physical 3D space.
art framework interface to geometry description
constexpr Point origin()
Returns a origin position with a point of the specified type.
The data type to uniquely identify a cryostat.