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