Belle II Software development
klm_trig_linear_fit.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#pragma once
9
10#include <algorithm>
11#include <numeric>
12#include <vector>
13#include <tuple>
14#include <iostream>
15#include <bitset>
16#include <map>
17
18
19
20#include "trg/klm/modules/klmtrigger/KLMAxis.h"
21
22
23namespace Belle2 {
29 public:
30 void clear_geometry();
31 void add_geometry(const KLM_TRG_definitions::KLM_geo_fit_t& geometry);
32 void set_y_cutoff(int cutoff);
33 void set_intercept_cutoff(int cutoff);
34
35
36 void run(const KLM_TRG_definitions::KLM_Digit_compact_ts& hits);
37
38
39 int get_triggermask(int subdetector, int section);
40 int get_triggermask_or(int subdetector, int section);
41 const KLM_TRG_definitions::KLM_trig_linear_fits& get_result() const ;
42
43
44 private:
45 KLM_TRG_definitions::KLM_trig_linear_fits m_linear_fits;
46 int y_cutoff = 100;
47 int m_intercept_cutoff = 500;
48
49 using geo_KLM_t =
51
52 std::map<int64_t, geo_KLM_t> m_KLMgeomap;
53
54 KLM_TRG_definitions::subdetector m_bklm_constant;
55
56
57
58
59 using sections_trig_t =
60 std::vector<nt::ntuple< KLM_TRG_definitions::subdetector, KLM_TRG_definitions::section, KLM_TRG_definitions::sector_mask, KLM_TRG_definitions::sector_mask_or>>;
61 sections_trig_t m_sections_trig;
62
63 };
64
65
66
67
69}
Abstract base class for different kinds of events.