CFEL - ASG Software Suite  2.5.0
CASS
acqiris_detectors.h
Go to the documentation of this file.
1 //Copyright (C) 2010-2011 Lutz Foucar
2 
3 /**
4  * @file acqiris_detectors.h file contains declaration of processors that
5  * extract information of acqiris detectors.
6  *
7  * @author Lutz Foucar
8  */
9 
10 #ifndef _DELAYLINE_POSTPROCESSOR_H_
11 #define _DELAYLINE_POSTPROCESSOR_H_
12 
13 #include "processor.h"
15 #include "signal_producer.h"
16 #include "delayline_detector.h"
17 #include "result.hpp"
18 
19 
20 namespace cass
21 {
22 /** Number of Signals in MCP Waveform.
23  *
24  * @PPList "150":TofDetector number of signals in MCP waveform
25  *
26  * This processor will output how many Signals have been found
27  * in the acqiris channel for the mcp of the detector.
28  *
29  * To set up the channel assignment for the requested detector one needs to set
30  * up the detector parameters.
31  * @see cass::ACQIRIS::TofDetector or cass::ACQIRIS::DelaylineDetector and
32  * cass::ACQIRIS::SignalProducer
33  *
34  * @see Processor for a list of all commonly available cass.ini
35  * settings.
36  *
37  * @cassttng Processor/\%name\%/{Detector}\n
38  * Name of the detector that we work on. Default is "blubb"
39  * See cass::ACQIRIS::HelperAcqirisDetectors as starting point for
40  * more information on how to set up the different types of Acqiris
41  * type detectors.
42  *
43  * @author Lutz Foucar
44  */
45 class pp150 : public Processor
46 {
47 public:
48  /** Constructor. Constructor for Number of Signals*/
49  pp150(const name_t&);
50 
51  /** Retrieve the number of Signals and histogram it */
52  virtual void process(const CASSEvent&, result_t &res);
53 
54  /** load the histogram settings from file*/
55  virtual void loadSettings(size_t);
56 
57 protected:
58  /** The detector we are there for*/
59  ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector;
60 };
61 
62 
63 
64 
65 
66 
67 
68 
69 /** all mcp signals.
70  *
71  * @PPList "151":TofDetector all signals
72  *
73  * This processor will output the times of all found singal int the
74  * mcp waveform of the detector. This is a Time of Flight Spectrum
75  *
76  * To set up the channel assignment for the requested detector one needs to set
77  * up the detector parameters.
78  * @see cass::ACQIRIS::TofDetector or cass::ACQIRIS::DelaylineDetector and
79  * cass::ACQIRIS::SignalProducer
80  *
81  * @see Processor for a list of all commonly available cass.ini
82  * settings.
83  *
84  * @cassttng Processor/\%name\%/{XNbrBins|XLow|XUp}\n
85  * properties of the 1d histogram
86  * @cassttng Processor/\%name\%/{Detector}\n
87  * Name of the detector that we work on. Default is "blubb"
88  * See cass::ACQIRIS::HelperAcqirisDetectors as starting point for
89  * more information on how to set up the different types of Acqiris
90  * type detectors.
91  *
92  * @author Lutz Foucar
93  */
94 class pp151 : public Processor
95 {
96 public:
97  /** Constructor*/
98  pp151(const name_t&);
99 
100  /** Retrieve the number of Signals and histogram it */
101  virtual void process(const CASSEvent&, result_t &res);
102 
103  /** load the histogram settings from file*/
104  virtual void loadSettings(size_t);
105 
106 protected:
107  /** The detector we are there for*/
108  ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector;
109 };
110 
111 
112 
113 
114 
115 
116 
117 /** FWHM vs. Height of mcp signals.
118  *
119  * @PPList "152":TofDetector signal height vs. fwhm
120  *
121  * This processor will make a histogram of the fwhm and height of
122  * found mcp signals.
123  *
124  * To set up the channel assignment for the requested detector one needs to set
125  * up the detector parameters.
126  * @see cass::ACQIRIS::DelaylineDetector or cass::ACQIRIS:::TofDetector and
127  * cass::ACQIRIS::SignalProducer
128  *
129  * @see Processor for a list of all commonly available cass.ini
130  * settings.
131  *
132  * @cassttng Processor/\%name\%/{XNbrBins|XLow|XUp|YNbrBins|YLow|YUp}\n
133  * properties of the 2d histogram
134  * @cassttng Processor/\%name\%/{Detector}\n
135  * Name of the detector that we work on. Default is "blubb"
136  * See cass::ACQIRIS::HelperAcqirisDetectors as starting point for
137  * more information on how to set up the different types of Acqiris
138  * type detectors.
139  *
140  * @author Lutz Foucar
141  */
142 class pp152 : public Processor
143 {
144 public:
145  /** Constructor for Number of Signals*/
146  pp152(const name_t &);
147 
148  /** Retrieve the number of Signals and histogram it */
149  virtual void process(const CASSEvent&, result_t &res);
150 
151  /** load the histogram settings from file*/
152  virtual void loadSettings(size_t);
153 
154 protected:
155  /** The detector we are there for*/
156  ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector;
157 };
158 
159 
160 
161 
162 
163 
164 
165 
166 /** Deadtime between two consecutive mcp signals
167  *
168  * @PPList "153":TofDetector Deadtime between two consecutive MCP signals
169  *
170  * This processor will output a histogram of the deadtime between two
171  * consecutive mcp signals.
172  *
173  * To set up the channel assignment for the requested detector one needs to set
174  * up the detector parameters.
175  * @see cass::ACQIRIS::TofDetector or cass::ACQIRIS::DelaylineDetector and
176  * cass::ACQIRIS::SignalProducer
177  *
178  * @see Processor for a list of all commonly available cass.ini
179  * settings.
180  *
181  * @cassttng Processor/\%name\%/{Detector}\n
182  * Name of the delayline detector that we work on. Default is "blubb"
183  * See cass::ACQIRIS::HelperAcqirisDetectors as starting point for
184  * more information on how to set up the different types of Acqiris
185  * type detectors.
186  *
187  * @author Lutz Foucar
188  */
189 class pp153 : public Processor
190 {
191 public:
192  /** Constructor for Ratio of the reconstructed Hits vs MCP Hits*/
193  pp153(const name_t &);
194 
195  /** Retrieve the number of Signals and histogram it */
196  virtual void process(const CASSEvent&, result_t &);
197 
198  /** load the histogram settings from file*/
199  virtual void loadSettings(size_t);
200 
201 protected:
202  /** The detector we are there for*/
203  ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector;
204 };
205 
206 
207 
208 
209 
210 
211 
212 
213 
214 
215 
216 
217 
218 /** Number of Signals in Anode Layers Waveform.
219  *
220  * @PPList "160":Delayline wireend number of signals
221  *
222  * This processor will output how many Signals have been found in the
223  * acqiris channels of requested layers.
224  *
225  * To set up the channel assignment for the requested detector one needs to set
226  * up the detector parameters.
227  * @see cass::ACQIRIS::DelaylineDetector and
228  * cass::ACQIRIS::SignalProducer
229  *
230  * @see Processor for a list of all commonly available cass.ini
231  * settings.
232  *
233  * @cassttng Processor/\%name\%/{Detector}\n
234  * Name of the delayline detector that we work on. Default is "blubb"
235  * See cass::ACQIRIS::HelperAcqirisDetectors as starting point for
236  * more information on how to set up the different types of Acqiris
237  * type detectors.
238  * @cassttng Processor/\%name\%/{Layer}\n
239  * The anode layer. Default is U. Options are:
240  * - for HexDetector
241  * - U: U-Layer
242  * - V: V-Layer
243  * - W: W-Layer
244  * - for Quad Detector
245  * - X: X-Layer
246  * - Y: Y-Layer
247  * @cassttng Processor/\%name\%/{Wireend}\n
248  * The anode layer Wireend. Default is 1. Options are:
249  * - 1: first wireend
250  * - 2: second wireend
251  *
252  * @author Lutz Foucar
253  */
254 class pp160 : public Processor
255 {
256 public:
257  /** Constructor for Number of Signals*/
258  pp160(const name_t &);
259 
260  /** Retrieve the number of Signals and histogram it */
261  virtual void process(const CASSEvent&, result_t &);
262 
263  /** load the histogram settings from file*/
264  virtual void loadSettings(size_t);
265 
266 protected:
267  /** The detector we are there for*/
268  ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector;
269 
270  /** The layer of the detector detector we are there for*/
271  ACQIRIS::DelaylineDetector::anodelayers_t::key_type _layer;
272 
273  /** The Signal of the layer detector we are there for*/
274  ACQIRIS::AnodeLayer::wireends_t::key_type _signal;
275 };
276 
277 
278 
279 
280 
281 
282 
283 
284 
285 
286 
287 /** FWHM vs. Height of wireend signals.
288  *
289  * @PPList "161":Delayline wireend signal height vs. fwhm
290  *
291  * This processor will make a histogram of the fwhm and height of
292  * all identified signals in a detector.
293  *
294  * To set up the channel assignment for the requested detector one needs to set
295  * up the detector parameters.
296  * @see cass::ACQIRIS::DelaylineDetector and
297  * cass::ACQIRIS::SignalProducer
298  *
299  * @see Processor for a list of all commonly available cass.ini
300  * settings.
301  *
302  * @cassttng Processor/\%name\%/{XNbrBins|XLow|XUp|YNbrBins|YLow|YUp}\n
303  * properties of the 2d histogram
304  * @cassttng Processor/\%name\%/{Detector}\n
305  * Name of the delayline detector that we work on. Default is "blubb"
306  * See cass::ACQIRIS::HelperAcqirisDetectors as starting point for
307  * more information on how to set up the different types of Acqiris
308  * type detectors.
309  * @cassttng Processor/\%name\%/{Layer}\n
310  * The anode layer. Default is U. Options are:
311  * - for HexDetector
312  * - U: U-Layer
313  * - V: V-Layer
314  * - W: W-Layer
315  * - for Quad Detector
316  * - X: X-Layer
317  * - Y: Y-Layer
318  * @cassttng Processor/\%name\%/{Wireend}\n
319  * The anode layer Wireend. Default is 1. Options are:
320  * - 1: first wireend
321  * - 2: second wireend
322  *
323  * @author Lutz Foucar
324  */
325 class pp161 : public Processor
326 {
327 public:
328  /** Constructor*/
329  pp161(const name_t &);
330 
331  /** Retrieve the number of Signals and histogram it */
332  virtual void process(const CASSEvent&, result_t &);
333 
334  /** load the histogram settings from file*/
335  virtual void loadSettings(size_t);
336 
337 protected:
338  /** The detector we are there for*/
339  ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector;
340 
341  /** The layer of the detector detector we are there for*/
342  ACQIRIS::DelaylineDetector::anodelayers_t::key_type _layer;
343 
344  /** The Signal of the layer detector we are there for*/
345  ACQIRIS::AnodeLayer::wireends_t::key_type _signal;
346 };
347 
348 
349 
350 
351 
352 
353 
354 
355 
356 
357 /** Timesum of Delayline.
358  *
359  * @PPList "162":Delayline timesum on anode
360  *
361  * This processor will output Timesum of a Delayline Anode for the first
362  * hit in a selectable good range.
363  *
364  * To set up the channel assignment for the requested detector one needs to set
365  * up the detector parameters.
366  * @see cass::ACQIRIS::DelaylineDetector and
367  * cass::ACQIRIS::SignalProducer
368  *
369  * @see Processor for a list of all commonly available cass.ini
370  * settings.
371  *
372  * @cassttng Processor/\%name\%/{Detector}\n
373  * Name of the delayline detector that we work on. Default is "blubb"
374  * See cass::ACQIRIS::HelperAcqirisDetectors as starting point for
375  * more information on how to set up the different types of Acqiris
376  * type detectors.
377  * @cassttng Processor/\%name\%/{Layer}\n
378  * The anode layer. Default is U. Options are:
379  * - if detector type is HexDetector
380  * - U: U-Layer
381  * - V: V-Layer
382  * - W: W-Layer
383  * - if detector type is Quad Detector
384  * - X: X-Layer
385  * - Y: Y-Layer
386  * @cassttng Processor/\%name\%/{TimeRangeLow|TimeRangeHigh}\n
387  * The time range in which we will take the first hits on the wireends
388  * and the mcp signal to calculate the timesum. This should be a
389  * timerange in which mostly single detectorhits are to be expected.
390  * Default is 0 | 20000.
391  *
392  * @author Lutz Foucar
393  */
394 class pp162 : public Processor
395 {
396 public:
397  /** Constructor*/
398  pp162(const name_t &);
399 
400  /** Retrieve the number of Signals and histogram it */
401  virtual void process(const CASSEvent&, result_t &);
402 
403  /** load the histogram settings from file*/
404  virtual void loadSettings(size_t);
405 
406 protected:
407  /** The detector we are there for*/
408  ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector;
409 
410  /** The layer of the detector detector we are there for*/
411  ACQIRIS::DelaylineDetector::anodelayers_t::key_type _layer;
412 
413  /** the range in which the single events are in */
414  std::pair<double,double> _range;
415 };
416 
417 
418 
419 
420 
421 
422 
423 
424 /** Timesum of Delayline Anode vs Position of Anode.
425  *
426  * @PPList "163":Delayline timesum on anode vs. position
427  *
428  * This processor will output Timesum of a Delayline Anode versus the
429  * position of the delayline. This is used to know the value for extracting
430  * the detectorhits.
431  *
432  * To set up the channel assignment for the requested detector one needs to set
433  * up the detector parameters.
434  * @see cass::ACQIRIS::DelaylineDetector and
435  * cass::ACQIRIS::SignalProducer
436  *
437  * @see Processor for a list of all commonly available cass.ini
438  * settings.
439  *
440  * @cassttng Processor/\%name\%/{Detector}\n
441  * Name of the delayline detector that we work on. Default is "blubb"
442  * See cass::ACQIRIS::HelperAcqirisDetectors as starting point for
443  * more information on how to set up the different types of Acqiris
444  * type detectors.
445  * @cassttng Processor/\%name\%/{Layer}\n
446  * The anode layer. Default is U. Options are:
447  * - if detector type is HexDetector
448  * - U: U-Layer
449  * - V: V-Layer
450  * - W: W-Layer
451  * - if detector type is Quad Detector
452  * - X: X-Layer
453  * - Y: Y-Layer
454  * @cassttng Processor/\%name\%/{TimeRangeLow|TimeRangeHigh}\n
455  * The time range in which we will take the first hits on the wireends
456  * and the mcp signal to calculate the timesum. This should be a
457  * timerange in which mostly single detectorhits are to be expected.
458  * Default is 0 | 20000.
459  *
460  * @author Lutz Foucar
461  */
462 class pp163 : public Processor
463 {
464 public:
465  /** Constructor */
466  pp163(const name_t &);
467 
468  /** Retrieve the number of Signals and histogram it */
469  virtual void process(const CASSEvent&, result_t &);
470 
471  /** load the histogram settings from file*/
472  virtual void loadSettings(size_t);
473 
474 protected:
475  /** The detector we are there for*/
476  ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector;
477 
478  /** The layer of the detector detector we are there for*/
479  ACQIRIS::DelaylineDetector::anodelayers_t::key_type _layer;
480 
481  /** the range in which the single events are in */
482  std::pair<double,double> _range;
483 };
484 
485 
486 
487 
488 
489 
490 
491 
492 
493 
494 /** detector picture of first hit.
495  *
496  * @PPList "164":Delayline image of first good hit
497  *
498  * This processor will output the Detector picture of the first Hit in
499  * the selectable good range. The added Hit fullfilles the timesum condition.
500  *
501  * To set up the channel assignment for the requested detector one needs to set
502  * up the detector parameters.
503  * @see cass::ACQIRIS::DelaylineDetector and
504  * cass::ACQIRIS::SignalProducer
505  *
506  * @see Processor for a list of all commonly available cass.ini
507  * settings.
508  *
509  * @cassttng Processor/\%name\%/{XNbrBins|XLow|XUp|YNbrBins|YLow|YUp}\n
510  * properties of the 2d histogram
511  * @cassttng Processor/\%name\%/{Detector}\n
512  * Name of the delayline detector that we work on. Default is "blubb"
513  * See cass::ACQIRIS::HelperAcqirisDetectors as starting point for
514  * more information on how to set up the different types of Acqiris
515  * type detectors.
516  * @cassttng Processor/\%name\%/{FirstLayer}\n
517  * The anode layer of the first coordinate. Default is U. Options are:
518  * - for HexDetector
519  * - U: U-Layer
520  * - V: V-Layer
521  * - W: W-Layer
522  * - for Quad Detector
523  * - X: X-Layer
524  * - Y: Y-Layer
525  * @cassttng Processor/\%name\%/{SecondLayer}\n
526  * The anode layer of the second coordinate. Default is U. Options are:
527  * - for HexDetector
528  * - U: U-Layer
529  * - V: V-Layer
530  * - W: W-Layer
531  * - for Quad Detector
532  * - X: X-Layer
533  * - Y: Y-Layer
534  * @cassttng Processor/\%name\%/{TimesumFirstLayerLow|TimesumFirstLayerHigh}\n
535  * The Timesumcondition range for the first layer.
536  * Default is 20 | 200.
537  * @cassttng Processor/\%name\%/{TimesumSecondLayerLow|TimesumSecondLayerHigh}\n
538  * The Timesumcondition range for the Second layer.
539  * Default is 20 | 200.
540  * @cassttng Processor/\%name\%/{TimeRangeLow|TimeRangeHigh}\n
541  * The time range in which we will take the first hits on the wireends
542  * and the mcp signal to calculate the timesum. This should be a
543  * timerange in which mostly single detectorhits are to be expected.
544  * Default is 0 | 20000.
545  *
546  * @author Lutz Foucar
547  */
548 class pp164 : public Processor
549 {
550 public:
551  /** Constructor */
552  pp164(const name_t &);
553 
554  /** Retrieve the number of Signals and histogram it */
555  virtual void process(const CASSEvent&, result_t &);
556 
557  /** load the histogram settings from file*/
558  virtual void loadSettings(size_t);
559 
560 protected:
561  /** The detector we are there for*/
562  ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector;
563 
564  /** The first layer of the detector for the position */
565  ACQIRIS::DelaylineDetector::anodelayers_t::key_type _first;
566 
567  /** The second layer of the detector for the position */
568  ACQIRIS::DelaylineDetector::anodelayers_t::key_type _second;
569 
570  /** the range in which the single events are in */
571  std::pair<double,double> _range;
572 
573  /** timesum ranges of the layers */
574  std::pair<std::pair<double, double>,
575  std::pair<double, double> > _tsrange;
576 };
577 
578 
579 
580 
581 
582 
583 
584 
585 
586 
587 /** Number of reconstucted hits.
588  *
589  * @PPList "165":Delayline reconstructed Number of detectorhits
590  *
591  * This processor will output the number of reconstructed detector hits.
592  *
593  * To set up the channel assignment for the requested detector one needs to set
594  * up the detector parameters.
595  * @see cass::ACQIRIS::DelaylineDetector and
596  * cass::ACQIRIS::SignalProducer
597  *
598  * @see Processor for a list of all commonly available cass.ini
599  * settings.
600  *
601  * @cassttng Processor/\%name\%/{Detector}\n
602  * Name of the delayline detector that we work on. Default is "blubb"
603  * See cass::ACQIRIS::HelperAcqirisDetectors as starting point for
604  * more information on how to set up the different types of Acqiris
605  * type detectors.
606  *
607  * @author Lutz Foucar
608  */
609 class pp165 : public Processor
610 {
611 public:
612  /** Constructor for Ratio of the reconstructed Hits vs MCP Hits*/
613  pp165(const name_t &);
614 
615  /** Retrieve the number of Signals and histogram it */
616  virtual void process(const CASSEvent&, result_t &);
617 
618  /** load the histogram settings from file*/
619  virtual void loadSettings(size_t);
620 
621 protected:
622  /** The detector we are there for*/
623  ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector;
624 };
625 
626 
627 
628 
629 
630 
631 
632 
633 
634 
635 /** detector hits values.
636  *
637  * @PPList "166":Delayline data of all reconstructed detectorhits
638  *
639  * This processor will output the Detector Hit values reqeuested.
640  * depending on the processor id, it will histogram 2 of the 3 values
641  * of an detectorhit. It will make a condition on the third value of the
642  * detector hit.
643  *
644  * To set up the channel assignment for the requested detector one needs to set
645  * up the detector parameters.
646  * @see cass::ACQIRIS::DelaylineDetector and
647  * cass::ACQIRIS::Signal
648  *
649  * @see Processor for a list of all commonly available cass.ini
650  * settings.
651  *
652  * @cassttng Processor/\%name\%/{XNbrBins|XLow|XUp|YNbrBins|YLow|YUp}\n
653  * properties of the 2d histogram
654  * @cassttng Processor/\%name\%/{Detector}\n
655  * Name of the delayline detector that we work on. Default is "blubb"
656  * See cass::ACQIRIS::HelperAcqirisDetectors as starting point for
657  * more information on how to set up the different types of Acqiris
658  * type detectors.
659  * @cassttng Processor/\%name\%/{XInput}\n
660  * The value that should be put onto the x-axis of the histogram.
661  * Default is 0. For all options see ACQIRIS::detectorHits
662  * @cassttng Processor/\%name\%/{YInput}\n
663  * The value that should be put onto the x-axis of the histogram.
664  * Default is 1. For all options see ACQIRIS::detectorHits
665  * @cassttng Processor/\%name\%/{ConditionInput}\n
666  * The value that should be checked for the range before filling the
667  * histogram.
668  * Default is 2. For all options see ACQIRIS::detectorHits
669  * @cassttng Processor/\%name\%/{ConditionLow|ConditionHigh}\n
670  * the condition range that should be applied to the condition input
671  *
672  * @author Lutz Foucar
673  */
674 class pp166 : public Processor
675 {
676 public:
677  /** Constructor */
678  pp166(const name_t &);
679 
680  /** Retrieve the number of Signals and histogram it */
681  virtual void process(const CASSEvent&, result_t &);
682 
683  /** load the histogram settings from file*/
684  virtual void loadSettings(size_t);
685 
686 protected:
687  /** The detector we are there for*/
688  ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector;
689 
690  /** The first value of the detector hit */
692 
693  /** The second value of the detector */
695 
696  /** The third value of the detector, that we will check the condition for*/
698 
699  /** The condition that we impose on the third component*/
700  std::pair<float, float> _cond;
701 };
702 
703 
704 
705 
706 
707 
708 
709 
710 
711 
712 
713 
714 
715 
716 
717 
718 
719 
720 
721 
722 
723 /** Deadtime between two consecutive anode signals
724  *
725  * @PPList "167":Delayline Deadtime between two consecutive anode signals
726  *
727  * This processor will output a histogram of the deadtime between two
728  * consecutive anode signals.
729  *
730  * To set up the channel assignment for the requested detector one needs to set
731  * up the detector parameters.
732  * @see cass::ACQIRIS::DelaylineDetector and
733  * cass::ACQIRIS::SignalProducer
734  *
735  * @see Processor for a list of all commonly available cass.ini
736  * settings.
737  *
738  * @cassttng Processor/\%name\%/{Detector}\n
739  * Name of the delayline detector that we work on. Default is "blubb"
740  * See cass::ACQIRIS::HelperAcqirisDetectors as starting point for
741  * more information on how to set up the different types of Acqiris
742  * type detectors.
743  * @cassttng Processor/\%name\%/{Layer}\n
744  * The anode layer. Default is U. Options are:
745  * - for HexDetector
746  * - U: U-Layer
747  * - V: V-Layer
748  * - W: W-Layer
749  * - for Quad Detector
750  * - X: X-Layer
751  * - Y: Y-Layer
752  * @cassttng Processor/\%name\%/{Wireend}\n
753  * The anode layer Wireend. Default is 1. Options are:
754  * - 1: first wireend
755  * - 2: second wireend
756  *
757  * @author Lutz Foucar
758  */
759 class pp167 : public Processor
760 {
761 public:
762  /** Constructor for Ratio of the reconstructed Hits vs MCP Hits*/
763  pp167(const name_t &);
764 
765  /** Retrieve the number of Signals and histogram it */
766  virtual void process(const CASSEvent&, result_t &);
767 
768  /** load the histogram settings from file*/
769  virtual void loadSettings(size_t);
770 
771 protected:
772  /** The detector we are there for*/
773  ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector;
774 
775  /** The layer of the detector detector we are there for*/
776  ACQIRIS::DelaylineDetector::anodelayers_t::key_type _layer;
777 
778  /** The Signal of the layer detector we are there for*/
779  ACQIRIS::AnodeLayer::wireends_t::key_type _signal;
780 };
781 
782 
783 
784 
785 
786 
787 
788 
789 
790 
791 
792 
793 
794 
795 /** Pipico spectra.
796  *
797  * @PPList "220":PIPICO Spectrum
798  *
799  * This processor will create Photo-Ion Photo-Ion Coincidence Spectra.
800  *
801  * To set up the channel assignment for the requested detector one needs to set
802  * up the detector parameters.
803  * @see cass::ACQIRIS::TofDetector or cass::ACQIRIS::DelaylineDetector and
804  * cass::ACQIRIS::Signal
805  *
806  * @see Processor for a list of all commonly available cass.ini
807  * settings.
808  *
809  * @cassttng Processor/\%name\%/{XNbrBins|XLow|XUp|YNbrBins|YLow|YUp}\n
810  * properties of the 2d histogram
811  * @cassttng Processor/\%name\%/{FirstDetector}\n
812  * Name of the first detector that we work on. Default is "blubb"
813  * See cass::ACQIRIS::HelperAcqirisDetectors as starting point for
814  * more information on how to set up the different types of Acqiris
815  * type detectors.
816  * @cassttng Processor/\%name\%/{SecondDetector}\n
817  * Name of the first detector that we work on. Default is "blubb"
818  * See cass::ACQIRIS::HelperAcqirisDetectors as starting point for
819  * more information on how to set up the different types of Acqiris
820  * type detectors.
821  *
822  * @author Lutz Foucar
823  */
824 class pp220 : public Processor
825 {
826 public:
827  /** Constructor for Number of Signals*/
828  pp220(const name_t &);
829 
830  /** Retrieve the number of Signals and histogram it */
831  virtual void process(const CASSEvent&, result_t &);
832 
833  /** load the histogram settings from file*/
834  virtual void loadSettings(size_t);
835 
836 protected:
837  /** The first detector of the cooincdence*/
838  ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector01;
839 
840  /** The second detector of the cooincdence*/
841  ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector02;
842 };
843 
844 
845 
846 
847 
848 
849 
850 /** Particle value.
851  *
852  * @PPList "250":Property of particle
853  *
854  * retrieve one particle property from a Particle that belong to a detector.
855  *
856  * To set up the channel assignment for the requested detector one needs to set
857  * up the detector parameters.
858  * @see cass::ACQIRIS::TofDetector or cass::ACQIRIS::DelaylineDetector and
859  * cass::ACQIRIS::Signal
860  *
861  * @see Processor for a list of all commonly available cass.ini
862  * settings.
863  *
864  * @cassttng Processor/\%name\%/{XNbrBins|XLow|XUp}\n
865  * properties of the 1d histogram
866  * @cassttng Processor/\%name\%/{Detector}\n
867  * Name of the first detector that we work on. Default is "blubb"
868  * @cassttng Processor/\%name\%/{Particle}\n
869  * Name of the particle whos properties we want to extract
870  * Default is "NeP"
871  * @cassttng Processor/\%name\%/{Property}\n
872  * Name of the particles first property we want to extract
873  * Default is 0.
874  * Available Properties see ACQIRIS::particleHits
875  *
876  * @author Lutz Foucar
877  */
878 class pp250 : public Processor
879 {
880 public:
881  /** Constructor for Number of Signals*/
882  pp250(const name_t &);
883 
884  /** Retrieve the number of Signals and histogram it */
885  virtual void process(const CASSEvent&, result_t &);
886 
887  /** load the histogram settings from file*/
888  virtual void loadSettings(size_t);
889 
890 protected:
891  /** The detector we are there for*/
892  ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector;
893 
894  /** the particle we are working on */
895  ACQIRIS::DelaylineDetector::particles_t::key_type _particle;
896 
897  /** the property of the particle that we want to retrieve */
899 };
900 
901 
902 
903 
904 
905 
906 
907 
908 
909 /** Particle values.
910  *
911  * @PPList "251":2d hist with two properties of particle
912  *
913  * create 2d hist of two particle properties from a Particle that belong to a
914  * detector.
915  *
916  * To set up the channel assignment for the requested detector one needs to set
917  * up the detector parameters.
918  * @see cass::ACQIRIS::TofDetector or cass::ACQIRIS::DelaylineDetector and
919  * cass::ACQIRIS::Signal and cass::ACQIRIS::Particle
920  *
921  * @see Processor for a list of all commonly available cass.ini
922  * settings.
923  *
924  * @cassttng Processor/\%name\%/{XNbrBins|XLow|XUp|YNbrBins|YLow|YUp}\n
925  * properties of the 2d histogram
926  * @cassttng Processor/\%name\%/{Detector}\n
927  * Name of the detector that the particles belong to.
928  * Default is "blubb"
929  * See cass::ACQIRIS::HelperAcqirisDetectors as starting point for
930  * more information on how to set up the different types of Acqiris
931  * type detectors.
932  * @cassttng Processor/\%name\%/{Particle}\n
933  * Name of the particle whos properties we want to extract
934  * Default is "NeP"
935  * @cassttng Processor/\%name\%/{FirstProperty}\n
936  * Name of the particles first property we want to extract
937  * Default is 0.
938  * Available Properties see ACQIRIS::particleHits
939  * @cassttng Processor/\%name\%/{SecondProperty}\n
940  * Name of the particles second property we want to extract
941  * Default is 1
942  * Available Properties see ACQIRIS::particleHits
943  *
944  * @author Lutz Foucar
945  */
946 class pp251 : public Processor
947 {
948 public:
949  /** Constructor for Number of Signals*/
950  pp251(const name_t &);
951 
952  /** Retrieve the number of Signals and histogram it */
953  virtual void process(const CASSEvent&, result_t &);
954 
955  /** load the histogram settings from file*/
956  virtual void loadSettings(size_t);
957 
958 protected:
959  /** The detector we are there for*/
960  ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector;
961 
962  /** the particle we are working on */
963  ACQIRIS::DelaylineDetector::particles_t::key_type _particle;
964 
965  /** the first property of the particle that we want to retrieve */
967 
968  /** the second property of the particle that we want to retrieve */
970 };
971 
972 
973 
974 
975 
976 /** Number of particles found per shot.
977  *
978  * @PPList "252":Number of found particle hits per shot
979  *
980  * To set up the channel assignment for the requested detector one needs to set
981  * up the detector parameters.
982  * @see cass::ACQIRIS::TofDetector or cass::ACQIRIS::DelaylineDetector and
983  * cass::ACQIRIS::Signal
984  *
985  * @see Processor for a list of all commonly available cass.ini
986  * settings.
987  *
988  * @cassttng Processor/\%name\%/{XNbrBins|XLow|XUp}\n
989  * properties of the 1d histogram
990  * @cassttng Processor/\%name\%/{Detector}\n
991  * Name of the first detector that we work on. Default is "blubb"
992  * See cass::ACQIRIS::HelperAcqirisDetectors as starting point for
993  * more information on how to set up the different types of Acqiris
994  * type detectors.
995  * @cassttng Processor/\%name\%/{Particle}\n
996  * Name of the particle whos properties we want to extract
997  * Default is "NeP"
998  *
999  * @author Lutz Foucar
1000  */
1001 class pp252 : public Processor
1002 {
1003 public:
1004  /** Constructor for Number of Signals*/
1005  pp252(const name_t &);
1006 
1007  /** Retrieve the number of Signals and histogram it */
1008  virtual void process(const CASSEvent&, result_t &);
1009 
1010  /** load the histogram settings from file*/
1011  virtual void loadSettings(size_t);
1012 
1013 protected:
1014  /** The detector we are there for*/
1015  ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector;
1016 
1017  /** the particle we are working on */
1018  ACQIRIS::DelaylineDetector::particles_t::key_type _particle;
1019 };
1020 
1021 
1022 
1023 
1024 }//end namespace cass
1025 
1026 #endif
pp162(const name_t &)
Constructor.
ACQIRIS::DelaylineDetector::particles_t::key_type _particle
the particle we are working on
pp166(const name_t &)
Constructor.
Event to store all LCLS Data.
Definition: cass_event.h:32
Timesum of Delayline.
ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector
The detector we are there for.
ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector
The detector we are there for.
file contains the classes that describe how to analyze the waveform and stores the result...
virtual void process(const CASSEvent &, result_t &)
Retrieve the number of Signals and histogram it.
ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector
The detector we are there for.
virtual void process(const CASSEvent &, result_t &)
Retrieve the number of Signals and histogram it.
virtual void process(const CASSEvent &, result_t &)
Retrieve the number of Signals and histogram it.
ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector
The detector we are there for.
pp167(const name_t &)
Constructor for Ratio of the reconstructed Hits vs MCP Hits.
virtual void loadSettings(size_t)
load the histogram settings from file
Timesum of Delayline Anode vs Position of Anode.
virtual void process(const CASSEvent &, result_t &res)
Retrieve the number of Signals and histogram it.
virtual void loadSettings(size_t)
load the histogram settings from file
pp160(const name_t &)
Constructor for Number of Signals.
file contains declaration of classes that extract information of acqiris detectors.
ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector01
The first detector of the cooincdence.
ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector
The detector we are there for.
ACQIRIS::particleHits _property02
the second property of the particle that we want to retrieve
virtual void process(const CASSEvent &, result_t &)
Retrieve the number of Signals and histogram it.
pp252(const name_t &)
Constructor for Number of Signals.
virtual void process(const CASSEvent &, result_t &)
Retrieve the number of Signals and histogram it.
ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector
The detector we are there for.
ACQIRIS::DelaylineDetector::anodelayers_t::key_type _first
The first layer of the detector for the position.
virtual void loadSettings(size_t)
load the histogram settings from file
virtual void process(const CASSEvent &, result_t &res)
Retrieve the number of Signals and histogram it.
pp153(const name_t &)
Constructor for Ratio of the reconstructed Hits vs MCP Hits.
all mcp signals.
Particle values.
Pipico spectra.
virtual void process(const CASSEvent &, result_t &)
Retrieve the number of Signals and histogram it.
result classes
pp251(const name_t &)
Constructor for Number of Signals.
ACQIRIS::detectorHits _first
The first value of the detector hit.
virtual void process(const CASSEvent &, result_t &)
Retrieve the number of Signals and histogram it.
pp165(const name_t &)
Constructor for Ratio of the reconstructed Hits vs MCP Hits.
pp151(const name_t &)
Constructor.
ACQIRIS::DelaylineDetector::particles_t::key_type _particle
the particle we are working on
virtual void process(const CASSEvent &, result_t &)
Retrieve the number of Signals and histogram it.
detector picture of first hit.
virtual void process(const CASSEvent &, result_t &res)
Retrieve the number of Signals and histogram it.
ACQIRIS::DelaylineDetector::anodelayers_t::key_type _layer
The layer of the detector detector we are there for.
virtual void process(const CASSEvent &, result_t &)
Retrieve the number of Signals and histogram it.
file contains the classes that describe a delayline detector.
ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector
The detector we are there for.
virtual void process(const CASSEvent &, result_t &)
Retrieve the number of Signals and histogram it.
virtual void loadSettings(size_t)
load the histogram settings from file
virtual void loadSettings(size_t)
load the histogram settings from file
ACQIRIS::DelaylineDetector::anodelayers_t::key_type _second
The second layer of the detector for the position.
virtual void loadSettings(size_t)
load the histogram settings from file
base class for processors.
Definition: processor.h:39
ACQIRIS::particleHits _property
the property of the particle that we want to retrieve
virtual void loadSettings(size_t)
load the histogram settings from file
virtual void loadSettings(size_t)
load the histogram settings from file
Number of Signals in Anode Layers Waveform.
virtual void loadSettings(size_t)
load the histogram settings from file
pp163(const name_t &)
Constructor.
particleHits
types of pariticle hits
std::pair< double, double > _range
the range in which the single events are in
virtual void loadSettings(size_t)
load the histogram settings from file
Number of particles found per shot.
ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector02
The second detector of the cooincdence.
ACQIRIS::detectorHits _second
The second value of the detector.
std::pair< std::pair< double, double >, std::pair< double, double > > _tsrange
timesum ranges of the layers
ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector
The detector we are there for.
ACQIRIS::DelaylineDetector::anodelayers_t::key_type _layer
The layer of the detector detector we are there for.
virtual void loadSettings(size_t)
load the histogram settings from file
pp161(const name_t &)
Constructor.
pp220(const name_t &)
Constructor for Number of Signals.
Deadtime between two consecutive mcp signals.
std::pair< double, double > _range
the range in which the single events are in
pp164(const name_t &)
Constructor.
ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector
The detector we are there for.
file contains processors baseclass declaration
pp152(const name_t &)
Constructor for Number of Signals.
ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector
The detector we are there for.
ACQIRIS::AnodeLayer::wireends_t::key_type _signal
The Signal of the layer detector we are there for.
ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector
The detector we are there for.
ACQIRIS::AnodeLayer::wireends_t::key_type _signal
The Signal of the layer detector we are there for.
Number of reconstucted hits.
virtual void process(const CASSEvent &, result_t &)
Retrieve the number of Signals and histogram it.
ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector
The detector we are there for.
ACQIRIS::detectorHits _third
The third value of the detector, that we will check the condition for.
ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector
The detector we are there for.
virtual void loadSettings(size_t)
load the histogram settings from file
virtual void process(const CASSEvent &, result_t &)
Retrieve the number of Signals and histogram it.
virtual void loadSettings(size_t)
load the histogram settings from file
ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector
The detector we are there for.
std::pair< double, double > _range
the range in which the single events are in
virtual void loadSettings(size_t)
load the histogram settings from file
std::pair< float, float > _cond
The condition that we impose on the third component.
ACQIRIS::DelaylineDetector::anodelayers_t::key_type _layer
The layer of the detector detector we are there for.
virtual void process(const CASSEvent &, result_t &)
Retrieve the number of Signals and histogram it.
ACQIRIS::HelperAcqirisDetectors::helperinstancesmap_t::key_type _detector
The detector we are there for.
pp150(const name_t &)
Constructor.
pp250(const name_t &)
Constructor for Number of Signals.
detectorHits
types of detector hits
std::string name_t
define the name type
Definition: processor.h:46
virtual void loadSettings(size_t)
load the histogram settings from file
detector hits values.
ACQIRIS::particleHits _property01
the first property of the particle that we want to retrieve
ACQIRIS::DelaylineDetector::anodelayers_t::key_type _layer
The layer of the detector detector we are there for.
Number of Signals in MCP Waveform.
Particle value.
ACQIRIS::DelaylineDetector::particles_t::key_type _particle
the particle we are working on
ACQIRIS::AnodeLayer::wireends_t::key_type _signal
The Signal of the layer detector we are there for.
virtual void loadSettings(size_t)
load the histogram settings from file
Deadtime between two consecutive anode signals.
ACQIRIS::DelaylineDetector::anodelayers_t::key_type _layer
The layer of the detector detector we are there for.