4 #include "KVFAZIADetector.h"
5 #include "KVIDTelescope.h"
17 void KVFAZIADetector::init()
110 if (strncmp(opt,
"N", 1)) fSignals.
Execute(
"Set",
"0");
135 Bool_t KVFAZIADetector::SetProperties()
152 else if (!strcmp(
GetLabel(),
"SI2")) fIdentifier =
kSI2;
153 else if (!strcmp(
GetLabel(),
"CSI")) fIdentifier =
kCSI;
168 fIsRutherford =
kTRUE;
169 fIndex = fTelescope = fQuartet = fBlock = 0;
173 fBlock = fIndex / 100;
174 fQuartet = (fIndex - fBlock * 100) / 10;
175 fTelescope = fIndex - fBlock * 100 - fQuartet * 10;
178 Info(
"SetProperties",
"Unkown format for the detector %s",
GetName());
187 lsignals =
"QH1,I1,QL1";
189 else if (!strcmp(
GetLabel(),
"SI2")) {
192 else if (!strcmp(
GetLabel(),
"CSI")) {
194 dsigs +=
",Q3.FastAmplitude,Q3.FastFPGAEnergy";
201 KVString sigtypes =
"Amplitude,RawAmplitude,FPGAEnergy,RiseTime,BaseLine,SigmaBaseLine";
203 while (!lsignals.
End()) {
206 while (!sigtypes.
End()) {
208 if (sig.
BeginsWith(
"I") && (stype ==
"FPGAEnergy" || stype ==
"RiseTime"))
continue;
209 if (sig ==
"QL1" && stype ==
"FPGAEnergy")
continue;
218 while (!lsignals.
End()) {
224 sig->SetType(ssig.
Data());
226 sig->LoadPSAParameters();
227 sig->SetDetectorName(
GetName());
242 Bool_t KVFAZIADetector::use_signal_for_raw_data_tree(
const TString &type)
const
248 if(type==
"QH1.FPGAEnergy"
249 || type==
"I1.Amplitude"
250 || type==
"QL1.Amplitude"
256 if(type==
"Q2.FPGAEnergy")
261 if(type==
"Q3.FastFPGAEnergy"
262 || type==
"Q3.FPGAEnergy"
284 if (!oldname.
End()) {
285 lab = oldname.
Next();
287 if (!oldname.
End()) {
288 tmp = oldname.
Next();
292 if (!oldname.
End()) {
293 tmp = oldname.
Next();
297 if (!oldname.
End()) {
298 tmp = oldname.
Next();
303 newname.
Form(
"%s-%d", lab.
Data(), bb * 100 + qq * 10 +
tt);
304 return newname.
Data();
359 if (!fIsFiredFromSignals) {
383 TIter next(&fSignals);
518 while ((sig = (
KVSignal*)nexts())) {
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
char * Form(const char *fmt,...)
void SetLabel(const Char_t *lab)
const Char_t * GetLabel() const
ValType GetDataSetEnv(const Char_t *type, const ValType &defval={}) const
Base class for output signal data produced by a detector.
Base class for detector geometry description, interface to energy-loss calculations.
virtual Bool_t IsSimMode() const
KVMaterial * GetActiveLayer() const override
KVDetectorSignal * AddDetectorSignal(const KVString &type)
Bool_t HasDetectorSignal(const KVString &type) const
Double_t GetEnergyLoss() const override
void Copy(TObject &obj) const override
Bool_t AddDetectorSignalExpression(const KVString &type, const KVString &_expr)
Double_t GetDetectorSignalValue(const KVString &type, const KVNameValueList ¶ms="") const
virtual Bool_t IsDetecting() const
void Clear(Option_t *opt="") override
Base class for FAZIA detectors.
KVSignal * GetSignal(const Char_t *name) const
Bool_t Fired(Option_t *opt="any") const override
const KVSeqCollection * GetListOfSignals() const
virtual ~KVFAZIADetector()
Destructor.
void Clear(Option_t *opt="") override
If opt="N" we do not reset any raw data, signals, etc.
void SetSignal(TGraph *signal, const Char_t *signal_name)
KVFAZIADetector()
Default constructor.
Int_t GetIdentifier() const
Bool_t HasSignal() const
Returns kTRUE if detector has at least 1 associated signal.
void SetName(const char *name) override
KVSignal * GetSignalByType(const Char_t *type) const
Double_t GetSetupParameter(const Char_t *parname)
Int_t GetNumberOfSignals() const
void ComputePSA()
Perform Pulse Shape Analysis on all signals.
static const Char_t * GetNewName(KVString oldname)
void Copy(TObject &obj) const override
FAZIA signal processing base class.
static KVFAZIASignal * MakeSignal(const char *sig_type)
void AddDetectorLabel(const Char_t *label)
KaliVeda extensions to ROOT collection classes.
void Execute(const char *method, const char *params, Int_t *error=0) override
TObject * FindObject(const char *name) const override
Int_t GetSize() const override
void Clear(Option_t *option="") override
void SetOwner(Bool_t enable=kTRUE) override
TObject * At(Int_t idx) const override
virtual TObject * FindObjectByTitle(const Char_t *) const
Will return object with given title (value of TObject::GetTitle() method).
Base class for digital signal processing.
virtual Bool_t IsCharge() const
virtual void TreateSignal()
void SetData(Int_t nn, Double_t *xx, Double_t *yy)
operation on data arrays
Bool_t IsFired()
ComputeBaseLine and ComputeEndLine methods have to be called before.
Bool_t PSAHasBeenComputed() const
virtual Double_t ComputeEndLine()
Extension of ROOT TString class which allows backwards compatibility with ROOT v3....
void Begin(TString delim) const
KVString Next(Bool_t strip_whitespace=kFALSE) const
void Add(TObject *obj) override
virtual Int_t GetEntries() const
virtual const char * GetValue(const char *name, const char *dflt) const
const char * GetName() const override
virtual void SetName(const char *name)
virtual void Info(const char *method, const char *msgfmt,...) const
const char * Data() const
Bool_t BeginsWith(const char *s, ECaseCompare cmp=kExact) const
void Form(const char *fmt,...)
TString & ReplaceAll(const char *s1, const char *s2)
void Warning(UserClass p, const char *location, const char *va_(fmt),...)