Diana Software
QTrigger.hh
Go to the documentation of this file.
1 #ifndef _Q_TRIGGER_HH_
2 #define _Q_TRIGGER_HH_
3 
14 #include "QDiana.hh"
15 #include <vector>
16 #include "QBaseModule.hh"
17 #include <string>
18 #include "TString.h"
19 
20 using std::vector;
21 using Diana::QBaseModule;
22 using std::string;
23 
25 
26 class QBaseModule;
27 
28 class QTrigger{
29  public:
30  virtual ~QTrigger() {};
31 
32  QTrigger(const QBaseModule* Reader){reader=Reader;SetTriggerLabel("");triggerAlgo="NotAssigned";}
33 
34  QTrigger(const QBaseModule* Reader,const string triglab){
35  reader=Reader;
36  SetTriggerLabel(triglab);
37  triggerAlgo="NotAssigned";
38  }
39 
40  QTrigger() {SetTriggerLabel("");triggerAlgo="NotAssigned";}
41 
42  virtual void TriggerStream(const vector<double>& stream) = 0; //trigger stream
43 
44  void TriggerStream(const vector<int>& stream){TriggerStream(vector<double>(stream.begin(),stream.end()));}
45  void TriggerStream(const vector<float>& stream){TriggerStream(vector<double>(stream.begin(),stream.end()));}
46 
47  virtual void Reset()=0;
48 
49  void SetReader(const QBaseModule* Reader){reader=Reader;}
50 
51  void SetSamplingFrequency(const double freq){samplingFrequency=freq;}
52 
53  void SetWindow(const int windowLength){windowsize = windowLength;}
54 
55  void SetDebounce(const int Debounce){debounce = Debounce;}
56 
57  void SetTriggerLabel(const string triglab){
58  if(triglab.compare("")!=0){
59  triggerLabel="_"+triglab;
60  }else{
61  triggerLabel="";
62  }
63  }
64 
65  void SetChannel(const int ch){chan=ch;}
66 
67  virtual void SetCFGParameters(vector<TString> params) = 0;
68  virtual string GetParameters(const bool useDesc=false)const = 0;
69 
70  double GetRMS(){return rms;}
71 
73 
74  int GetWindow(){return windowsize;}
75 
76  int GetDebounce(){return debounce;}
77 
78  string GetTriggerLabel(){return triggerLabel;}
79 
80  string GetTriggerAlgo(){return triggerAlgo;}
81 
82  int GetChannel(){return chan;}
83 
84  const vector<int>& GetTriggers(){return triggers;}
85  const vector<double>& GetTriggerHeights(){return triggerHeights;}
86  const vector<double>& GetFilteredStream(){return filteredStream;}
87  size_t GetFilteredStreamSize(){return filteredStream.size();}
88  std::vector<double>::iterator GetFilteredStreamBegin(){return filteredStream.begin();}
89  std::vector<double>::iterator GetFilteredStreamEnd(){return filteredStream.end();}
90 
91  void Clear(){
92  triggers.clear();
93  triggerHeights.clear();
94  filteredStream.clear();
95  }
96  protected:
97 
98  vector<int> triggers;
99  vector<double> triggerHeights;
100  vector<double> filteredStream;
101 
103 
105 
106  int debounce;
107 
108  double rms;
109 
111 
112  string triggerLabel;
113 
114  string triggerAlgo;
115 
116  int chan;
117 
119 };
120 
121 
123 
124 #endif
125 
#define Q_END_NAMESPACE
Definition: QDiana.hh:22
#define Q_BEGIN_NAMESPACE
Definition: QDiana.hh:20
Base class for modules.
Definition: QBaseModule.hh:57
Base class for trigger algorithms.
Definition: QTrigger.hh:28
void SetSamplingFrequency(const double freq)
Definition: QTrigger.hh:51
int windowsize
Definition: QTrigger.hh:104
virtual ~QTrigger()
Definition: QTrigger.hh:30
size_t GetFilteredStreamSize()
Definition: QTrigger.hh:87
const vector< double > & GetTriggerHeights()
Definition: QTrigger.hh:85
std::vector< double >::iterator GetFilteredStreamEnd()
Definition: QTrigger.hh:89
void TriggerStream(const vector< float > &stream)
Definition: QTrigger.hh:45
void TriggerStream(const vector< int > &stream)
Definition: QTrigger.hh:44
ClassDef(QTrigger, 2)
void SetChannel(const int ch)
Definition: QTrigger.hh:65
const vector< double > & GetFilteredStream()
Definition: QTrigger.hh:86
string triggerAlgo
Definition: QTrigger.hh:114
int chan
Definition: QTrigger.hh:116
int GetWindow()
Definition: QTrigger.hh:74
std::vector< double >::iterator GetFilteredStreamBegin()
Definition: QTrigger.hh:88
vector< int > triggers
Definition: QTrigger.hh:98
void SetReader(const QBaseModule *Reader)
Definition: QTrigger.hh:49
double samplingFrequency
Definition: QTrigger.hh:102
void SetDebounce(const int Debounce)
Definition: QTrigger.hh:55
const vector< int > & GetTriggers()
Definition: QTrigger.hh:84
double GetRMS()
Definition: QTrigger.hh:70
void SetWindow(const int windowLength)
Definition: QTrigger.hh:53
QTrigger(const QBaseModule *Reader)
Definition: QTrigger.hh:32
double GetSamplingFrequency()
Definition: QTrigger.hh:72
virtual void TriggerStream(const vector< double > &stream)=0
string GetTriggerLabel()
Definition: QTrigger.hh:78
int GetChannel()
Definition: QTrigger.hh:82
string triggerLabel
Definition: QTrigger.hh:112
QTrigger()
Definition: QTrigger.hh:40
virtual string GetParameters(const bool useDesc=false) const =0
vector< double > triggerHeights
Definition: QTrigger.hh:99
void Clear()
Definition: QTrigger.hh:91
void SetTriggerLabel(const string triglab)
Definition: QTrigger.hh:57
string GetTriggerAlgo()
Definition: QTrigger.hh:80
vector< double > filteredStream
Definition: QTrigger.hh:100
double rms
Definition: QTrigger.hh:108
QTrigger(const QBaseModule *Reader, const string triglab)
Definition: QTrigger.hh:34
virtual void Reset()=0
int debounce
Definition: QTrigger.hh:106
const QBaseModule * reader
Definition: QTrigger.hh:110
virtual void SetCFGParameters(vector< TString > params)=0
int GetDebounce()
Definition: QTrigger.hh:76