NSCL DDAS  1.0
Support for XIA DDAS at the NSCL
 All Classes Namespaces Files Functions Variables Macros Pages
MultiplicityState.h
1 
2 #ifndef MULTIPLICITYSTATE_H
3 #define MULTIPLICITYSTATE_H 1
4 
5 #include <stdint.h>
6 #include <bitset>
7 #include <iostream>
8 #include <TString.h>
9 
10 class MultiplicityState
11 {
12  private:
13  uint32_t fMultMaskLow;
14  uint32_t fMultMaskHigh;
15  double fCoincTime;
16 
17  public:
19  MultiplicityState(const uint32_t lowmask,
20  const uint32_t highmask,
21  const double coinctime);
22 
24  MultiplicityState& operator=(const MultiplicityState& state);
25 
26  bool IsValid() const;
27 
28  uint32_t GetSelfChannelMask() const;
29  uint32_t GetRightChannelMask() const;
30  uint32_t GetLeftChannelMask() const;
31 
32  uint32_t GetSelfMultiplicityThreshold() const;
33  uint32_t GetRightMultiplicityThreshold() const;
34  uint32_t GetLeftMultiplicityThreshold() const;
35 
36  uint32_t GetMultiplicityMaskLow() const {return fMultMaskLow;}
37  uint32_t GetMultiplicityMaskHigh() const {return fMultMaskHigh;}
38 
39  double GetCoincidenceTime() const { return fCoincTime;}
40 
41  void Print() const;
42 
43 };
44 
45 inline bool operator==(MultiplicityState& lhs, MultiplicityState& rhs)
46 {
47  bool flag = true;
48 
49  flag = flag && (lhs.GetMultiplicityMaskLow() == rhs.GetMultiplicityMaskLow());
50  flag = flag && (lhs.GetMultiplicityMaskHigh() == rhs.GetMultiplicityMaskHigh());
51  flag = flag && (lhs.GetCoincidenceTime() == rhs.GetCoincidenceTime());
52 
53  return flag;
54 
55 };
56 
57 inline bool operator!=(MultiplicityState& lhs, MultiplicityState& rhs)
58 {
59  return !(lhs==rhs);
60 }
61 
62 #endif
Definition: MultiplicityState.h:10