Belle II Software  release-08-01-10
KLMAxis.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 
9 
10 #pragma once
11 
12 
13 #include "trg/klm/modules/klmtrigger/group_helper.h"
14 
15 
16 namespace Belle2 {
21  namespace group_helper {
22 
23  namespace KLM_Generic {
24  AXIS_NAME(event_nr, int);
25  }
26 
27  namespace KLM_Coordinates_n {
28  AXIS_NAME(sector, int32_t);
29  AXIS_NAME(section, int32_t);
30  AXIS_NAME(Subdetector, int32_t);
31  AXIS_NAME(strip, int32_t);
32  AXIS_NAME(layer, int32_t);
33  AXIS_NAME(plane, int32_t);
34  AXIS_NAME(isectors_t, int);
35  }
36 
37 
38  namespace geofit {
39  AXIS_NAME(slopeY, double);
40  AXIS_NAME(offsetY, double);
41  AXIS_NAME(slopeX, double);
42  AXIS_NAME(offsetX, double);
43  }
44 
45  using KLM_geo_fit_t =
46  std::tuple<KLM_Coordinates_n::Subdetector, KLM_Coordinates_n::section, KLM_Coordinates_n::sector, KLM_Coordinates_n::layer, KLM_Coordinates_n::plane, geofit::slopeX, geofit::offsetX, geofit::slopeY, geofit::offsetY>;
47 
48 
49 
50  using KLM_Digit_compact = std::tuple <
51  KLM_Generic::event_nr,
52  KLM_Coordinates_n::Subdetector,
53  KLM_Coordinates_n::section,
54  KLM_Coordinates_n::isectors_t,
55  KLM_Coordinates_n::sector,
56  KLM_Coordinates_n::plane,
57  KLM_Coordinates_n::layer,
58  KLM_Coordinates_n::strip
59  >;
60 
61 
62 
63 
64  AXIS_NAME(slopeXY_t, double);
65  AXIS_NAME(interceptXY_t, double);
66  AXIS_NAME(ipXY_t, double);
67  AXIS_NAME(chisqXY_t, double);
68  AXIS_NAME(Nhits_t, int);
69 
70 
71  using KLM_trig_linear_fit = std::tuple <
72  KLM_Generic::event_nr,
73  KLM_Coordinates_n::Subdetector,
74  KLM_Coordinates_n::section,
75  KLM_Coordinates_n::sector,
76  KLM_Coordinates_n::plane,
77  slopeXY_t,
78  interceptXY_t,
79  ipXY_t,
80  chisqXY_t,
81  Nhits_t
82  >;
83 
84 
85 
86  AXIS_NAME(BKLM_n_trg_sectors, int);
87  AXIS_NAME(EKLM_n_trg_sectors, int);
88  AXIS_NAME(Sector_mask_Backward_Barrel, int);
89  AXIS_NAME(Sector_mask_Forward_Barrel, int);
90  AXIS_NAME(Sector_mask_Backward_Endcap, int);
91  AXIS_NAME(Sector_mask_Forward_Endcap, int);
92  AXIS_NAME(Sector_mask_OR_Backward_Barrel, int);
93  AXIS_NAME(Sector_mask_OR_Forward_Barrel, int);
94  AXIS_NAME(Sector_mask_OR_Backward_Endcap, int);
95  AXIS_NAME(Sector_mask_OR_Forward_Endcap, int);
96  AXIS_NAME(BKLM_back_to_back_flag, int);
97  AXIS_NAME(EKLM_back_to_back_flag, int);
98 
99  using KLM_trg_summery = std::tuple <
100  KLM_Generic::event_nr,
101  BKLM_n_trg_sectors,
102  EKLM_n_trg_sectors,
103  Sector_mask_Backward_Barrel,
104  Sector_mask_Forward_Barrel,
105  Sector_mask_Backward_Endcap,
106  Sector_mask_Forward_Endcap,
107  Sector_mask_OR_Backward_Barrel,
108  Sector_mask_OR_Forward_Barrel,
109  Sector_mask_OR_Backward_Endcap,
110  Sector_mask_OR_Forward_Endcap,
111  BKLM_back_to_back_flag,
112  EKLM_back_to_back_flag
113 
114  >;
115 
116 
117  }
118 
120 }
Abstract base class for different kinds of events.