ProtoDuneChannelGroups.h
Go to the documentation of this file.
1 // ProtoDuneChannelGroups.h
2 //
3 // David Adams
4 // July 2018
5 //
6 // Tool to return channel range groups for protoDUNE. The following are created:
7 // Name Label Meaning
8 // tpss APAs All TPC sets (set = pair of TPCs for one APA)
9 // apas APAs All APAs
10 // tppPs TPC P planes All TPC planes for view P
11 // apaPs APA P planes All APA planes for view P
12 // fembAFF FEMB AFF All channels in the FEMB (i.e. u, v and x)
13 //
14 // In the above
15 // S is the TPC set (offline APA) number in range [0,5]
16 // A is the APA number in range [1,6]
17 // P is the wire plane: u, v, z (TPC-side collection) or c (cryostat-side collection)
18 // or the wire plane pair x for (z, c) or i for (u, v)
19 // FF is the FEMB number in an APA in range [01,20]
20 // V is a wire orientation: u, v or x (collection)
21 //
22 // Where relevant, the ranges are assigned a second label location as one of:
23 // US-RaS, US-DaS, MS-RaS, MS-DaS, DS-RaS, DS-DaS
24 // and a third label indication the APA, e.g. APA3.
25 //
26 // Configuration parameters:
27 // LogLevel: Logging level (0=none, 1=ctor, 2=every call)
28 // IndexRangeTool: Tool that maps names here to channel ranges.
29 
30 #ifndef ProtoDuneChannelGroups_H
31 #define ProtoDuneChannelGroups_H
32 
34 #include "fhiclcpp/ParameterSet.h"
36 #include <map>
37 
38 class IndexRangeTool;
39 
41 
42 public:
43 
44  using Name = std::string;
45  using NameVector = std::vector<Name>;
47  using GroupMap = std::map<Name, NameVector>;
48 
49  // Ctor.
51 
52  // Dtor.
53  ~ProtoDuneChannelGroups() override =default;
54 
55  // Return a range.
56  IndexRangeGroup get(Name nam) const override;
57 
58 private:
59 
60  // Configuration parameters.
63 
64  // Derived from configuration.
68 
69 };
70 
71 
72 #endif
std::vector< Name > NameVector
std::map< Name, NameVector > GroupMap
std::string string
Definition: nybbler.cc:12
~ProtoDuneChannelGroups() override=default
static constexpr double ps
Definition: Units.h:99
unsigned int Index
IndexRangeGroup::Index Index
const IndexRangeTool * m_pIndexRangeTool
ProtoDuneChannelGroups(fhicl::ParameterSet const &ps)
IndexRangeGroup::Name Name