GamR  0.0.0
GammaROOT
Loading...
Searching...
No Matches
Detector.hh
Go to the documentation of this file.
1#ifndef GAMROOT_TREE_DETECTOR_HH
2#define GAMROOT_TREE_DETECTOR_HH
3
4/* STD */
5#include <iostream>
6#include <tuple>
7
8/* ROOT */
9#include <TObject.h>
10
11/* GAMR */
12#include "DetDefn.hh"
13
14namespace GamR {
15namespace Tree {
16
17template <typename... Ts>
18class TDetector : public TObject {
19public:
20 template <size_t n>
21 using meas_type = typename std::tuple_element<n, std::tuple<Ts...>>::type;
22 using measurements_type = std::tuple<std::pair<Ts, Double_t>...>;
23
24public:
26 UShort_t ID;
27 Float16_t Eff;
28
29public:
31 TDetector(TDetDefn<Ts...> &defn, ULong64_t eventNum)
32 {
33 // defn.Calibrate();
34 ID = defn.GetID();
35 Eff = defn.GetEfficiency();
36 Meas = defn.GetAllDatums(eventNum);
37 }
39 template <int N>
40 auto Get() -> decltype(std::get<N>(Meas).first) &
41 {
42 return std::get<N>(Meas).first;
43 }
44 template <int N>
45 auto GetCal() -> decltype(std::get<N>(Meas).second) &
46 {
47 return std::get<N>(Meas).second;
48 }
49 auto GetAll() -> decltype(Meas) & { return Meas; }
50 size_t GetNumMeasurements() const { return sizeof...(Ts); }
51 void Reset()
52 {
53 ID = UShort_t(0);
54 Eff = Float16_t(1);
56 }
57
59};
60
61} /* namespace Tree */
62} /* namespace GamR */
63
64#endif
auto GetAllDatums(ULong64_t eventNum) -> decltype(fDatum) &
Definition DetDefn.hh:77
Double_t GetEfficiency()
Definition DetDefn.hh:85
measurements_type Meas
Definition Detector.hh:25
typename std::tuple_element< n, std::tuple< Ts... > >::type meas_type
Definition Detector.hh:21
TDetector(TDetDefn< Ts... > &defn, ULong64_t eventNum)
Definition Detector.hh:31
size_t GetNumMeasurements() const
Definition Detector.hh:50
auto GetAll() -> decltype(Meas) &
Definition Detector.hh:49
ClassDef(TDetector, 1)
std::tuple< std::pair< Ts, Double_t >... > measurements_type
Definition Detector.hh:22
auto GetCal() -> decltype(std::get< N >(Meas).second) &
Definition Detector.hh:45
auto Get() -> decltype(std::get< N >(Meas).first) &
Definition Detector.hh:40
Definition Gain.cc:19