4 #ifndef __KVFAZIADETECTOR_H
5 #define __KVFAZIADETECTOR_H
7 #include "KVDetector.h"
10 #define __KVFD_methname(X, Y) Get ## X ## Y
11 #define __KVFD_setmethname(X, Y) Set ## X ## Y
12 #define __KVFD_dotcat(X, Y) X.Y
13 #define __KVFD_str(s) #s
14 #define __KVFD_xstr(s) __KVFD_str(s)
15 #define __KVFD_dcs(X, Y) __KVFD_xstr(__KVFD_dotcat(X,Y))
17 #define __KVFAZIADETECTOR_GETSIGNAL(sig,type) \
18 Double_t __KVFD_methname(sig,type)() const \
20 return GetDetectorSignalValue(__KVFD_dcs(sig,type)); \
22 KVDetectorSignal* __KVFD_setmethname(sig,type)(Double_t val) \
24 KVDetectorSignal* ds = GetDetectorSignal(__KVFD_dcs(sig,type)); \
82 virtual void SetName(
const char* name);
138 __KVFAZIADETECTOR_GETSIGNAL(I1, Amplitude)
139 __KVFAZIADETECTOR_GETSIGNAL(I1, BaseLine)
140 __KVFAZIADETECTOR_GETSIGNAL(I1, RawAmplitude)
141 __KVFAZIADETECTOR_GETSIGNAL(I1, SigmaBaseLine)
143 __KVFAZIADETECTOR_GETSIGNAL(I2, Amplitude)
144 __KVFAZIADETECTOR_GETSIGNAL(I2, BaseLine)
145 __KVFAZIADETECTOR_GETSIGNAL(I2, RawAmplitude)
146 __KVFAZIADETECTOR_GETSIGNAL(I2, SigmaBaseLine)
148 __KVFAZIADETECTOR_GETSIGNAL(Q2, Amplitude)
149 __KVFAZIADETECTOR_GETSIGNAL(Q2, BaseLine)
150 __KVFAZIADETECTOR_GETSIGNAL(Q2, FPGAEnergy)
151 __KVFAZIADETECTOR_GETSIGNAL(Q2, RawAmplitude)
152 __KVFAZIADETECTOR_GETSIGNAL(Q2, RiseTime)
153 __KVFAZIADETECTOR_GETSIGNAL(Q2, SigmaBaseLine)
155 __KVFAZIADETECTOR_GETSIGNAL(Q3, Amplitude)
156 __KVFAZIADETECTOR_GETSIGNAL(Q3, BaseLine)
157 __KVFAZIADETECTOR_GETSIGNAL(Q3, FastAmplitude)
158 __KVFAZIADETECTOR_GETSIGNAL(Q3, FastFPGAEnergy)
159 __KVFAZIADETECTOR_GETSIGNAL(Q3, FPGAEnergy)
160 __KVFAZIADETECTOR_GETSIGNAL(Q3, RawAmplitude)
161 __KVFAZIADETECTOR_GETSIGNAL(Q3, RiseTime)
162 __KVFAZIADETECTOR_GETSIGNAL(Q3, SigmaBaseLine)
163 __KVFAZIADETECTOR_GETSIGNAL(Q3, SlowAmplitude)
165 __KVFAZIADETECTOR_GETSIGNAL(QH1, Amplitude)
166 __KVFAZIADETECTOR_GETSIGNAL(QH1, BaseLine)
167 __KVFAZIADETECTOR_GETSIGNAL(QH1, FPGAEnergy)
168 __KVFAZIADETECTOR_GETSIGNAL(QH1, RawAmplitude)
169 __KVFAZIADETECTOR_GETSIGNAL(QH1, RiseTime)
170 __KVFAZIADETECTOR_GETSIGNAL(QH1, SigmaBaseLine)
172 __KVFAZIADETECTOR_GETSIGNAL(QL1, Amplitude)
173 __KVFAZIADETECTOR_GETSIGNAL(QL1, BaseLine)
174 __KVFAZIADETECTOR_GETSIGNAL(QL1, RawAmplitude)
175 __KVFAZIADETECTOR_GETSIGNAL(QL1, RiseTime)
176 __KVFAZIADETECTOR_GETSIGNAL(QL1, SigmaBaseLine)
#define ClassDef(name, id)
Base class for output signal data produced by a detector.
Base class for detector geometry description.
void SetDetectorSignalValue(const KVString &type, Double_t val) const
Double_t GetDetectorSignalValue(const KVString &type, const KVNameValueList ¶ms="") const
Base class for FAZIA detectors.
Bool_t fIsFiredFromSignals
KVSignal * GetSignal(const Char_t *name) const
Bool_t Fired(Option_t *opt="any") const
const KVSeqCollection * GetListOfSignals() const
virtual void Clear(Option_t *opt="")
If opt="N" we do not reset any raw data, signals, etc.
Double_t fQH1Threshold
thresholds defined for this detector
virtual ~KVFAZIADetector()
Destructor.
Int_t GetQuartetNumber() const
KVUniqueNameList fSignals
list of electronics signal (current, charge, etc... )
void SetSignal(TGraph *signal, const Char_t *signal_name)
KVFAZIADetector()
Default constructor.
Int_t GetIdentifier() const
Int_t GetBlockNumber() const
virtual void SetName(const char *name)
Bool_t HasSignal() const
Returns kTRUE if detector has at least 1 associated signal.
void Copy(TObject &obj) const
Bool_t IsRutherford() const
Int_t GetTelescopeNumber() const
KVDetectorSignal * SetBaseLine(int sigid, Float_t baseline)
KVSignal * GetSignalByType(const Char_t *type) const
Access detector signal of given type: "I1", "I2", "Q2", "Q3", "QH1", "QL1".
Double_t GetSetupParameter(const Char_t *parname)
Int_t GetNumberOfSignals() const
void ComputePSA()
Perform Pulse Shape Analysis on all signals.
Int_t fIdentifier
SI1=0(kSI1) SI2=1(kSI2) CSI=2(kCSI)
static const Char_t * GetNewName(KVString oldname)
void init()
default initialisations
KVDetectorSignal * SetFPGAEnergy(int sigid, Int_t idx, Double_t energy)
Int_t fIndex
100*block+10*quartet+telescope
KaliVeda extensions to ROOT collection classes.
Extension of ROOT TString class which allows backwards compatibility with ROOT v3....
Optimised list in which named objects can only be placed once.