GET library
GETHitMask.hh
Go to the documentation of this file.
1 //======================================================================
2 /*! \file GETHitMask.hh
3  *
4  * Include file for the GETHitMask class.
5  */
6 //======================================================================
7 
8 #ifndef GET_HIT_MASK_HH
9 #define GET_HIT_MASK_HH
10 
11 //----------------------------------------------------------------------
12 #include "GETCommon.hh"
13 #include "GETChannel.hh"
14 
15 class GETSystem;
16 
17 
18 //======================================================================
19 /*! \class GETHitMask
20  *
21  * This class defines a mask for analysis of the hit channels of
22  * the detector.
23  *
24  * It requires that the lookup table is defined for the GET system.
25  *
26  * The hit mask associated a logical value to each channel, indicating
27  * that the channel signal is larger than a threshold.
28  */
30 {
31  //------------------------------------------------------------
32  /*! \object_doc */
34  //------------------------------------------------------------
35 
36  protected:
37  GETSystem * get_ptr; ///< Pointer to the GET system
38  u_short data_info; ///< The flag indicating on which data the mask acts (test, output or reconstructed sample)
39 
40  u_int size; ///< Number of GET channels
41  bool * hit_table; ///< Table of hit channels
42  bool * val_table; ///< Table of valid channels
43  double * threshold[3]; ///< Current mask threshold table (in, out & rec)
44 
45  bool mask_set; ///< Whether the mask has been computed
46  u_int nhit; ///< Number of hit channels
47  u_int nhit_val; ///< Number of hit valid channels
48 
49  u_int * valid_channel; ///< Array of valid channels indexes
50  GETSample ** valid_sample; ///< Array of pointers to valid samples
51 
52  public:
53  //----------------------------------------------------------
54  /** @name Constructors, affectation, destructor */
55  //@{
56  GETHitMask ( GETSystem * get = NULL );
57  GETHitMask ( const GETHitMask & mask );
58  GETHitMask & operator = ( const GETHitMask & mask );
59  virtual ~GETHitMask ( );
60 
61  virtual void CopyData ( const GETHitMask & mask );
62  //@}
63 
64  //----------------------------------------------------------
65  /** @name Hit mask building */
66  //@{
67  virtual void EraseMask ( );
68  virtual int InitMask ( );
69  virtual void ClearHitMask ( );
70  virtual void ClearValidMask ( );
71  virtual void InvertHits ( );
72 
73  virtual bool IsMaskDefined ( ) const; // inline
74  virtual bool IsMaskSet ( ) const; // inline
75  virtual void MaskSet ( bool b = true ); // inline
76 
77  virtual void SetDataInfo ( u_short info ); // inline
78  virtual u_short GetDataInfo ( ) const; // inline
79  //@}
80 
81  //----------------------------------------------------------
82  /** @name Hit mask data */
83  //@{
84  GETSystem * GetSystemPtr ( ) const; // inline
85 
86  virtual u_int GetSize ( ) const; // inline
87  virtual u_int GetNhit ( ) const; // inline
88  virtual u_int GetNhitValid ( ) const; // inline
89 
90  virtual double GetThreshold ( u_int ic = 0, u_short data = GET::signalOut ) const; // inline
91  virtual void SetThreshold ( double thr, u_short data = 0 );
92  virtual void SetThreshold ( u_int ic, double thr, u_short data = 0 );
93 
94  virtual void SetThresholds ( double * tab, u_short data = 0 );
95  virtual void SetThresholds ( const string & fname, double fact = 1., double cst = 0., u_short data = 0 );
96 
97  virtual u_int UpdateMask ( );
98  virtual u_int SetMaskHits ( );
99  virtual u_int SetValidChannels ( );
100  virtual u_int UpdateHitCounts ( );
101 
102  virtual void SetValid ( u_int ic, bool b = true ); // inline
103  virtual void SetHit ( u_int ic, bool b = true ); // inline
104  virtual bool IsValid ( u_int ic ) const; // inline
105  virtual bool IsHit ( u_int ic ) const; // inline
106  virtual bool IsValidHit ( u_int ic ) const; // inline
107 
108  virtual int GetValidChannelIndex ( u_int i ) const; // inline
109  virtual GETSample * GetValidSamplePtr ( u_int i ) const; // inline
110  //@}
111 
112  //----------------------------------------------------------
113  /** @name Read-write function */
114  //@{
115  virtual int WriteFileText ( const string & fname, u_short data = GET::signalOut );
116 
117  virtual int CreateThresholdXML ( const string & fname, const double rdiscri = 0.05, u_short data = GET::signalOut );
118  //@}
119 
120  //----------------------------------------------------------
121  /** @name ROOT related functions */
122  //@{
123  public:
124 
125  /*! for use within ROOT.*/
126  ClassDef(GETHitMask,0);
127  //@}
128 };
129 
130 
131 //----------------------------------------------------------------------
132 // Inline functions
133 #include "icc/GETHitMask.icc"
134 
135 
136 //======================================================================
137 #endif
static const u_short signalOut
Output (experimental data) signal sample.
Definition: GETCommon.hh:110
bool * hit_table
Table of hit channels.
Definition: GETHitMask.hh:41
virtual double GetThreshold(u_int ic=0, u_short data=GET::signalOut) const
Definition: GETHitMask.icc:58
virtual ~GETHitMask()
Definition: GETHitMask.cpp:95
virtual u_int GetNhit() const
Definition: GETHitMask.icc:46
GObject(GETHitMask)
u_int * valid_channel
Array of valid channels indexes.
Definition: GETHitMask.hh:49
GETSystem * get_ptr
Pointer to the GET system.
Definition: GETHitMask.hh:37
virtual void InvertHits()
Definition: GETHitMask.cpp:239
virtual bool IsMaskDefined() const
Definition: GETHitMask.icc:9
virtual u_int SetMaskHits()
Definition: GETHitMask.cpp:404
virtual u_int SetValidChannels()
Definition: GETHitMask.cpp:451
GETSample ** valid_sample
Array of pointers to valid samples.
Definition: GETHitMask.hh:50
virtual u_int GetSize() const
Definition: GETHitMask.icc:42
virtual void ClearHitMask()
Definition: GETHitMask.cpp:213
virtual int InitMask()
Definition: GETHitMask.cpp:164
GETHitMask(GETSystem *get=NULL)
Definition: GETHitMask.cpp:22
Definition: GETHitMask.hh:29
virtual void MaskSet(bool b=true)
Definition: GETHitMask.icc:19
virtual void SetHit(u_int ic, bool b=true)
Definition: GETHitMask.icc:93
virtual void SetThreshold(double thr, u_short data=0)
Definition: GETHitMask.cpp:266
virtual u_int UpdateHitCounts()
Definition: GETHitMask.cpp:495
virtual bool IsHit(u_int ic) const
Definition: GETHitMask.icc:73
virtual void ClearValidMask()
Definition: GETHitMask.cpp:226
virtual int WriteFileText(const string &fname, u_short data=GET::signalOut)
Definition: GETHitMask.cpp:526
u_int nhit_val
Number of hit valid channels.
Definition: GETHitMask.hh:47
virtual GETSample * GetValidSamplePtr(u_int i) const
Definition: GETHitMask.icc:111
RRealSampleFFT GETSample
Define the data type for samples.
Definition: GETCommon.hh:31
virtual void SetValid(u_int ic, bool b=true)
Definition: GETHitMask.icc:86
virtual bool IsMaskSet() const
Definition: GETHitMask.icc:13
virtual int CreateThresholdXML(const string &fname, const double rdiscri=0.05, u_short data=GET::signalOut)
Definition: GETHitMask.cpp:583
virtual bool IsValidHit(u_int ic) const
Definition: GETHitMask.icc:79
u_int size
Number of GET channels.
Definition: GETHitMask.hh:40
virtual void SetThresholds(double *tab, u_short data=0)
Definition: GETHitMask.cpp:315
GETSystem * GetSystemPtr() const
Definition: GETHitMask.icc:38
virtual void EraseMask()
Definition: GETHitMask.cpp:139
virtual void CopyData(const GETHitMask &mask)
Definition: GETHitMask.cpp:108
virtual u_int UpdateMask()
Definition: GETHitMask.cpp:385
GETHitMask & operator=(const GETHitMask &mask)
Definition: GETHitMask.cpp:83
virtual bool IsValid(u_int ic) const
Definition: GETHitMask.icc:67
double * threshold[3]
Current mask threshold table (in, out &amp; rec)
Definition: GETHitMask.hh:43
bool * val_table
Table of valid channels.
Definition: GETHitMask.hh:42
virtual int GetValidChannelIndex(u_int i) const
Definition: GETHitMask.icc:103
u_int nhit
Number of hit channels.
Definition: GETHitMask.hh:46
virtual u_int GetNhitValid() const
Definition: GETHitMask.icc:50
virtual void SetDataInfo(u_short info)
Definition: GETHitMask.icc:26
u_short data_info
The flag indicating on which data the mask acts (test, output or reconstructed sample) ...
Definition: GETHitMask.hh:38
bool mask_set
Whether the mask has been computed.
Definition: GETHitMask.hh:45
ClassDef(GETHitMask, 0)
virtual u_short GetDataInfo() const
Definition: GETHitMask.icc:32
Definition: GETSystem.hh:147