Belle II Software  release-08-01-10
TrgEclTiming.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 #ifndef TRGECLTIMING_FLAG_
10 #define TRGECLTIMING_FLAG_
11 
12 #include <vector>
13 
14 #include "trg/ecl/TrgEclMapping.h"
15 //
16 //
17 //
18 namespace Belle2 {
23 //
24 //
25 //
26  //
28  //
29  class TrgEclTiming {
30 
31  public:
33  TrgEclTiming();
34 
36  virtual ~TrgEclTiming();
37 
40 
43 
44  public:
46  void Setup(const std::vector<int>&, const std::vector<double>&, const std::vector<double>&);
48  double GetEventTiming(int);//Get eventtming
50  double GetEventTiming00();// Fastest TC timing
52  double GetEventTiming01();// The Most energetic TC Timing
54  double GetEventTiming02();
56  void SetNofTopTC(int NtopTC) {NofTopTC = NtopTC;}
58  int GetTimingSource() {return Source;}
59  // set energy threshold of event timing quality flag
60  void setEventTimingQualityThresholds(const std::vector<double>& iEventTimingQualityThresholds)
61  {
62  m_EventTimingQualityThresholds = iEventTimingQualityThresholds;
63  }
64  // get event timing quality flag
65  int getEventTimingQualityFlag()
66  {
67  return m_EventTimingQualityFlag;
68  }
69  // get TCId which is a source of event timing
70  int getEventTimingTCId()
71  {
72  return m_EventTimingTCId;
73  }
74  // get theta ID of TC which is a source of event timing
75  int getEventTimingTCThetaId()
76  {
77  return m_EventTimingTCThetaId;
78  }
79  // get TC energy which is a source of event timing
80  double getEventTimingTCEnergy()
81  {
82  return m_EventTimingTCEnergy;
83  }
84 
85  private:
87  std::vector<double> TCEnergy;
89  std::vector<double> TCTiming;
91  std::vector<int> TCId;
92 
93  // Event timing quality flag (for SVD DAQ)
94  // 3:= super-fine timing
95  // 2:= fine timing
96  // 1:= other
97  // 0:= no TC hit
98  int m_EventTimingQualityFlag;
99  // energy threshold(low, high) for quality flag (GeV)
100  std::vector<double> m_EventTimingQualityThresholds;
101  // TCId of event timing source
102  int m_EventTimingTCId;
103  // TC ThetaId of event timing source
104  int m_EventTimingTCThetaId;
105  // TC Energy of event timing source
106  double m_EventTimingTCEnergy;
107 
109  int NofTopTC;
113  int Source;
114  };
115 //
116 //
117 //
119 } // namespace Belle2
120 
121 #endif /* TRGECLTiming_FLAG_ */
A class of TC Mapping.
Definition: TrgEclMapping.h:26
A Class of ECL Trigger clustering
Definition: TrgEclTiming.h:29
std::vector< double > TCEnergy
TC Energy.
Definition: TrgEclTiming.h:87
void Setup(const std::vector< int > &, const std::vector< double > &, const std::vector< double > &)
SetUp.
Definition: TrgEclTiming.cc:43
void SetNofTopTC(int NtopTC)
Set # of considered TC in Energy weighted timing method.
Definition: TrgEclTiming.h:56
double GetEventTiming(int)
Get Evnet-timing.
Definition: TrgEclTiming.cc:55
double GetEventTiming00()
Fastest TC Timing.
Definition: TrgEclTiming.cc:75
int GetTimingSource()
Get Timing Source.
Definition: TrgEclTiming.h:58
std::vector< double > TCTiming
TC Timing.
Definition: TrgEclTiming.h:89
TrgEclTiming(TrgEclTiming &)=delete
Destructor.
virtual ~TrgEclTiming()
Constructor.
Definition: TrgEclTiming.cc:35
TrgEclTiming()
Constructor.
Definition: TrgEclTiming.cc:20
double GetEventTiming01()
The Most energetic TC Timing.
TrgEclTiming & operator=(TrgEclTiming &)=delete
Assignment operator, deleted.
int Source
Timing Source (FWD, Barrel, Backward)
Definition: TrgEclTiming.h:113
double GetEventTiming02()
Energy weighted Timing of Top 3 energetic TC.
TrgEclMapping * _TCMap
Object of TC Mapping.
Definition: TrgEclTiming.h:111
std::vector< int > TCId
TC Id.
Definition: TrgEclTiming.h:91
Abstract base class for different kinds of events.