Jpp 19.3.0-rc.3
the software that should make you happy
Loading...
Searching...
No Matches
JTrigger/JTriggerParameters.hh
Go to the documentation of this file.
1#ifndef __JTRIGGERPARAMETERS__
2#define __JTRIGGERPARAMETERS__
3
4#include <istream>
5#include <ostream>
6#include <limits>
7
8#include <TROOT.h>
9#include <TObject.h>
10
12
18
19
20/**
21 * \author mdejong
22 */
23
24namespace JTRIGGER {}
25namespace JPP { using namespace JTRIGGER; }
26
27namespace JTRIGGER {
28
29 /**
30 * Data structure for L2 parameters.
31 */
33 public TObject
34 {
35 /**
36 * Default constructor.
37 */
39 {
40 reset();
41 }
42
43
44 /**
45 * Constructor.
46 *
47 * \param numberOfHits minimal number of hits
48 * \param TMaxLocal_ns maximal time difference [ns]
49 * \param ctMin minimal cosine space angle between PMT axes
50 */
52 const double TMaxLocal_ns,
53 const double ctMin)
54 {
55 this->numberOfHits = numberOfHits;
56 this->TMaxLocal_ns = TMaxLocal_ns;
57 this->ctMin = ctMin;
58 }
59
60
61 /**
62 * Virtual destructor.
63 */
65 {}
66
67
68 /**
69 * Reset L2 parameters.
70 */
71 void reset()
72 {
73 numberOfHits = 0;
74 TMaxLocal_ns = 0.0;
75 ctMin = 1.0;
76 }
77
78
79 /**
80 * Equality
81 *
82 * \param parameters L2 parameters
83 * \return true if equals; else false
84 */
85 bool equals(const JL2Parameters& parameters) const
86 {
87 return (this->numberOfHits == parameters.numberOfHits &&
88 this->TMaxLocal_ns == parameters.TMaxLocal_ns &&
89 this->ctMin == parameters.ctMin);
90 }
91
92
93 /**
94 * Check validity.
95 *
96 * \return true if not-equal to default value; else false
97 */
98 inline bool is_valid() const
99 {
100 return !this->equals(JL2Parameters());
101 }
102
103
105
106 int numberOfHits; ///< minimal number of hits
107 double TMaxLocal_ns; ///< maximal time difference [ns]
108 double ctMin; ///< minimal cosine space angle between PMT axes
109 };
110
111
112 /**
113 * Data structure for all trigger parameters.
114 */
116 public TObject
117 {
118 public:
119 /**
120 * Default constructor.
121 */
123 {
124 reset();
125 }
126
127
128 /**
129 * Virtual destructor.
130 */
132 {}
133
134
135 /**
136 * Set dependent trigger parameters.
137 *
138 * \param DMax_m maximal distance between PMTs [m]
139 */
140 void set(const double DMax_m = 0.0)
141 {
142 using namespace JPHYSICS;
143
144 const double t1 = DMax_m * getIndexOfRefraction() * getInverseSpeedOfLight();
145
146 if (t1 > TMaxEvent_ns) {
147 TMaxEvent_ns = t1;
148 }
149
150 trigger3DMuon.DMax_m = DMax_m;
151
152 // backward compatibility
153
154 if (!L2.is_valid()) {
156 }
157
160 }
161 }
162
163
164 /**
165 * Reset trigger parameters.
166 */
167 void reset()
168 {
172 triggerNB .reset();
173
174 highRateVeto_Hz = std::numeric_limits<double>::max();
175 L2Min = 2;
176 ctMin = -1.0;
177 TMaxLocal_ns = 10.0;
178 TMaxEvent_ns = 1000.0;
179 numberOfBins = 1000;
180 combineL1 = true;
181
182 disableHighRateVeto = false;
183
184 L2.reset();
185 SN.reset();
186 NB.reset();
187
188 writeTimeslices = 0;
189 writeSummary = 1;
190 writeL0 = 0;
191 writeL1 = 0;
192 writeL2 = 0;
193 writeSN = 0;
194 }
195
196
197 /**
198 * Test equality for high-rate vetos.
199 *
200 * \param R1_Hz high-rate veto
201 * \param R2_Hz high-rate veto
202 * \return true if equal; else false
203 */
204 static bool equals(const double R1_Hz, const double R2_Hz)
205 {
206 using namespace std;
207
208 if (R1_Hz <= numeric_limits<int>::max() &&
209 R2_Hz <= numeric_limits<int>::max()) {
210
211 return (int) R1_Hz == (int) R2_Hz;
212
213 } else {
214
215 return (R1_Hz > numeric_limits<int>::max() &&
216 R2_Hz > numeric_limits<int>::max());
217 }
218 }
219
220
221 /**
222 * Equality
223 *
224 * \param parameters trigger parameters
225 * \return true if equals; else false
226 */
227 bool equals(const JTriggerParameters& parameters) const
228 {
229 return (trigger3DShower.equals(parameters) &&
230 triggerMXShower.equals(parameters) &&
231 trigger3DMuon .equals(parameters) &&
232 triggerNB .equals(parameters) &&
233
235 parameters.highRateVeto_Hz) &&
236
237 L2Min == parameters.L2Min &&
238 ctMin == parameters.ctMin &&
239 TMaxLocal_ns == parameters.TMaxLocal_ns &&
240 TMaxEvent_ns == parameters.TMaxEvent_ns &&
241 numberOfBins == parameters.numberOfBins &&
242 combineL1 == parameters.combineL1 &&
243
245
246 L2.equals(parameters.L2) &&
247 SN.equals(parameters.SN) &&
248 NB.equals(parameters.NB) &&
249
250 writeSummary .equals(parameters.writeSummary) &&
251 writeL0 .equals(parameters.writeL0) &&
252 writeL1 .equals(parameters.writeL1) &&
253 writeL2 .equals(parameters.writeL2) &&
254 writeSN .equals(parameters.writeSN));
255 }
256
257
258 /**
259 * Equal operator for trigger parameters.
260 *
261 * \param first event
262 * \param second event
263 * \result true if first event equal to second; else false
264 */
265 friend inline bool operator==(const JTriggerParameters& first,
266 const JTriggerParameters& second)
267 {
268 return first.equals(second);
269 }
270
271
272 /**
273 * Type conversion operators.
274 */
275 inline operator JTrigger3DShower_t::JParameters() const { return trigger3DShower; } //!< JTrigger3DShower parameters
276 inline operator JTriggerMXShower_t::JParameters() const { return triggerMXShower; } //!< JTriggerMXShower parameters
277 inline operator JTrigger3DMuon_t::JParameters() const { return trigger3DMuon; } //!< JTrigger3DMuon parameters
278 inline operator JTriggerNB_t::JParameters() const { return triggerNB; } //!< JTrigger3DMuon parameters
279
280
281 /**
282 * Action method at file open.
283 *
284 * \param version version
285 */
286 static void actionAtFileOpen(int version)
287 {
288 ROOT_IO_VERSION = version;
289 }
290
291
292 /**
293 * Action method at file read.
294 */
296 {
297 if (ROOT_IO_VERSION <= 7) {
298
300 }
301
302 if (ROOT_IO_VERSION <= 6) {
303
306
307 } else if (ROOT_IO_VERSION <= 8) {
308
311 }
312
313 if (ROOT_IO_VERSION <= 11) {
314
316 }
317 }
318
319
321
322
323 // Trigger specific parameters
324
329
330
331 // Global parameters
332
333 double highRateVeto_Hz; ///< high-rate veto [Hz]
334 int L2Min; ///< minimal number of L0 hits for L2
335 double ctMin; ///< this parameter has been deprecated
336 double TMaxLocal_ns; ///< maximal time difference between L0 hits for L1
337 double TMaxEvent_ns; ///< maximal time before and after event for snapshot
338 int numberOfBins; ///< number of bins for lookup table of timeslice
339 bool combineL1; ///< combine multiple L1s in many-fold coincidence
340 bool disableHighRateVeto;///< disable high-rate veto
341
342 JL2Parameters L2; ///< L2 processing
343 JL2Parameters SN; ///< Supernova trigger
344 JL2Parameters NB; ///< nano-beacon trigger
345
346 JPrescaler writeTimeslices; ///< write JDAQTimeslice with L0 data (deprecated)
347 JPrescaler writeSummary; ///< write JDAQSummaryslice
348 JPrescaler writeL0; ///< write JDAQTimeslice with L0 data
349 JPrescaler writeL1; ///< write JDAQTimeslice with L1 data
350 JPrescaler writeL2; ///< write JDAQTimeslice with L2 data
351 JPrescaler writeSN; ///< write JDAQTimeslice with SN data
352
353 static int ROOT_IO_VERSION; //!< Streamer version of JTriggerParameters as obtained from ROOT file.
354 };
355}
356
357
358/**
359 * Read L2 parameters from input.
360 *
361 * \param in input stream
362 * \param parameters L2 parameters
363 * \return input stream
364 */
365std::istream& operator>>(std::istream& in, JTRIGGER::JL2Parameters& parameters);
366
367
368/**
369 * Write L2 parameters to output.
370 *
371 * \param out output stream
372 * \param parameters L2 parameters
373 * \return output stream
374 */
375std::ostream& operator<<(std::ostream& out, const JTRIGGER::JL2Parameters& parameters);
376
377
378/**
379 * Read trigger parameters from input.
380 *
381 * \param in input stream
382 * \param parameters trigger parameters
383 * \return input stream
384 */
385std::istream& operator>>(std::istream& in, JTRIGGER::JTriggerParameters& parameters);
386
387
388/**
389 * Write trigger parameters to output.
390 *
391 * \param out output stream
392 * \param parameters trigger parameters
393 * \return output stream
394 */
395std::ostream& operator<<(std::ostream& out, const JTRIGGER::JTriggerParameters& parameters);
396
397#endif
Physics constants.
Auxiliary class for prescaling.
Definition JPrescaler.hh:25
bool equals(const JPrescaler &prescaler) const
Equality.
Definition JPrescaler.hh:60
long long int prescale
Definition JPrescaler.hh:96
bool equals(const JParameters &parameters) const
Equality.
void reset()
Reset trigger parameters.
double DMax_m
maximal distance between PMTs [m]
int numberOfModules
minimal number of modules to trigger event
int numberOfHits
minimal number of hits to trigger event
int numberOfModules
minimal number of modules to trigger event
int numberOfHits
minimal number of hits to trigger event
void reset()
Reset trigger parameters.
bool equals(const JParameters &parameters) const
Equality.
bool equals(const JParameters &parameters) const
Equality.
void reset()
Reset trigger parameters.
bool enabled
enabled status of trigger
void reset()
Reset trigger parameters.
bool equals(const JParameters &parameters) const
Equality.
Data structure for all trigger parameters.
static int ROOT_IO_VERSION
Streamer version of JTriggerParameters as obtained from ROOT file.
int L2Min
minimal number of L0 hits for L2
virtual ~JTriggerParameters()
Virtual destructor.
void set(const double DMax_m=0.0)
Set dependent trigger parameters.
int numberOfBins
number of bins for lookup table of timeslice
JPrescaler writeL0
write JDAQTimeslice with L0 data
double TMaxLocal_ns
maximal time difference between L0 hits for L1
friend bool operator==(const JTriggerParameters &first, const JTriggerParameters &second)
Equal operator for trigger parameters.
JPrescaler writeL1
write JDAQTimeslice with L1 data
JPrescaler writeSummary
write JDAQSummaryslice
static bool equals(const double R1_Hz, const double R2_Hz)
Test equality for high-rate vetos.
JPrescaler writeL2
write JDAQTimeslice with L2 data
ClassDef(JTriggerParameters, 15)
JTrigger3DShower_t::JParameters trigger3DShower
JTrigger3DMuon_t::JParameters trigger3DMuon
static void actionAtFileOpen(int version)
Action method at file open.
JL2Parameters SN
Supernova trigger.
JPrescaler writeSN
write JDAQTimeslice with SN data
JPrescaler writeTimeslices
write JDAQTimeslice with L0 data (deprecated)
JL2Parameters NB
nano-beacon trigger
double TMaxEvent_ns
maximal time before and after event for snapshot
bool disableHighRateVeto
disable high-rate veto
double ctMin
this parameter has been deprecated
void actionAtFileRead()
Action method at file read.
bool combineL1
combine multiple L1s in many-fold coincidence
bool equals(const JTriggerParameters &parameters) const
Equality.
JTriggerMXShower_t::JParameters triggerMXShower
void reset()
Reset trigger parameters.
Auxiliary methods for light properties of deep-sea water.
double getIndexOfRefraction()
Get average index of refraction of water corresponding to group velocity.
const double getInverseSpeedOfLight()
Get inverse speed of light.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Auxiliary classes and methods for triggering.
JWriter & operator<<(JWriter &out, const JDAQChronometer &chronometer)
Write DAQ chronometer to output.
JReader & operator>>(JReader &in, JDAQChronometer &chronometer)
Read DAQ chronometer from input.
Data structure for L2 parameters.
ClassDef(JL2Parameters, 1)
double ctMin
minimal cosine space angle between PMT axes
void reset()
Reset L2 parameters.
double TMaxLocal_ns
maximal time difference [ns]
virtual ~JL2Parameters()
Virtual destructor.
bool is_valid() const
Check validity.
JL2Parameters(const int numberOfHits, const double TMaxLocal_ns, const double ctMin)
Constructor.
int numberOfHits
minimal number of hits
bool equals(const JL2Parameters &parameters) const
Equality.