JAPAn
Just Another Parity Analyzer
Loading...
Searching...
No Matches
QwBlindDetectorArray.h
Go to the documentation of this file.
1/*!
2 * \file QwBlindDetectorArray.h
3 * \brief Blinded detector array for PMT analysis
4 * \author P. M. King
5 * \date 2007-05-08
6 */
7
8/// \ingroup QwAnalysis_ADC
9
10#pragma once
11
12// System headers
13#include <vector>
14
15// Qweak headers
16#include "VQwSubsystemParity.h"
17#include "QwIntegrationPMT.h"
18#include "QwCombinedPMT.h"
19#include "VQwDetectorArray.h"
20
21// Forward declarations
22class QwBlinder;
23class QwBlindDetectorArrayID;
24
25
26/**
27 * \class QwBlindDetectorArray
28 * \ingroup QwAnalysis_ADC
29 * \brief Detector array wrapper that applies blinding to asymmetries
30 *
31 * Aggregates multiple PMT-like detectors and provides methods to
32 * apply blinding strategies consistently to yields, differences,
33 * and asymmetries. Used for parity-violating detector analysis.
34 */
36 public VQwDetectorArray,
37 virtual public VQwSubsystemParity,
38 public MQwSubsystemCloneable<QwBlindDetectorArray>{
39
40 /******************************************************************
41 * Class: QwBlindDetectorArray
42 *
43 *
44 ******************************************************************/
45
46
47 private:
48
49 /// Private default constructor (not implemented, will throw linker error on use)
51
52 public:
53
54 /// Constructor with name
55
56 QwBlindDetectorArray(const TString& name)
57 : VQwSubsystem(name), VQwSubsystemParity(name), VQwDetectorArray(name) {};
58
59
60 /// Copy constructor
63
64
65 /// Virtual destructor
67
68 public:
69
70 /// \brief Blind the asymmetry
71 void Blind(const QwBlinder *blinder) override;
72
73 /// \brief Blind the difference using the yield
74 void Blind(const QwBlinder *blinder, const VQwSubsystemParity* subsys) override;
75
76#ifdef HAS_RNTUPLE_SUPPORT
77 // Inherit RNTuple methods from VQwDetectorArray - no need to redeclare
78 using VQwDetectorArray::ConstructNTupleAndVector;
79 using VQwDetectorArray::FillNTupleVector;
80#endif // HAS_RNTUPLE_SUPPORT
81
82};
Virtual base class for detector arrays (PMTs, etc.)
Combined PMT detector using Moller ADC channels.
Virtual base class for parity analysis subsystems.
Integration PMT detector for charge and asymmetry measurements.
VQwSubsystem(const TString &name)
Constructor with name.
QwBlindDetectorArray(const TString &name)
Constructor with name.
~QwBlindDetectorArray() override
Virtual destructor.
QwBlindDetectorArray()
Private default constructor (not implemented, will throw linker error on use)
QwBlindDetectorArray(const QwBlindDetectorArray &source)
Copy constructor.
void Blind(const QwBlinder *blinder) override
Blind the asymmetry.
Data blinding utilities for parity violation analysis.
Definition QwBlinder.h:57
VQwDetectorArray()
Private default constructor (not implemented, will throw linker error on use)
Abstract base class for subsystems participating in parity analysis.
VQwSubsystemParity()
Private default constructor (not implemented, will throw linker error on use)