diff --git a/SConscript.py b/SConscript.py index fdb351d10a1d61520979ec5c61d64ea637fc1109..6ecc2d24f131624872f8dc79af46669d3576af95 100644 --- a/SConscript.py +++ b/SConscript.py @@ -20,7 +20,11 @@ for hcheaderfile in hcheadersbase: filename = '%s' % hcheaderfile basefilename = filename.rsplit('.',1) newbasefilename = basefilename[0].rsplit('/',1) - cmd1 = "echo '#pragma link C++ class %s+;' >> src/HallC_LinkDef.h" % newbasefilename[1] + # Assume filenames beginning with Scaler are decoder classes + if newbasefilename[1][:6] == 'Scaler': + cmd1 = "echo '#pragma link C++ class Decoder::%s+;' >> src/HallC_LinkDef.h" % newbasefilename[1] + else: + cmd1 = "echo '#pragma link C++ class %s+;' >> src/HallC_LinkDef.h" % newbasefilename[1] os.system(cmd1) cmd = "cat src/HallC_LinkDef.h_postamble >> src/HallC_LinkDef.h" diff --git a/src/Scaler9001.cxx b/src/Scaler9001.cxx new file mode 100644 index 0000000000000000000000000000000000000000..6406efa9e8679fb837d945002379648c1b01ac54 --- /dev/null +++ b/src/Scaler9001.cxx @@ -0,0 +1,32 @@ +//////////////////////////////////////////////////////////////////// +// +// TI scalers +// Identified by a 9001 bank +// +///////////////////////////////////////////////////////////////////// + +#include "Scaler9001.h" + +using namespace std; + +namespace Decoder { + +Module::TypeIter_t Scaler9001::fgThisType = + DoRegister( ModuleType( "Decoder::Scaler9001" , 9001 )); + +Scaler9001::Scaler9001(Int_t crate, Int_t slot) : GenScaler(crate, slot) { + Init(); +} + +Scaler9001::~Scaler9001() { +} + +void Scaler9001::Init() { + fNumChan = 12; + fWordsExpect = 12; + GenScaler::GenInit(); +} + +} + +ClassImp(Decoder::Scaler9001) diff --git a/src/Scaler9001.h b/src/Scaler9001.h new file mode 100644 index 0000000000000000000000000000000000000000..148e87c5789f83877c595bbf5fe830320a49cf5b --- /dev/null +++ b/src/Scaler9001.h @@ -0,0 +1,35 @@ +#ifndef Scaler9001_ +#define Scaler9001_ + +///////////////////////////////////////////////////////////////////// +// +// Scaler9001 +// TI scalers +// +///////////////////////////////////////////////////////////////////// + +#include "GenScaler.h" + +namespace Decoder { + +class Scaler9001 : public GenScaler { + +public: + + Scaler9001() {}; + Scaler9001(Int_t crate, Int_t slot); + virtual ~Scaler9001(); + + virtual void Init(); + +private: + + static TypeIter_t fgThisType; + + ClassDef(Scaler9001,0) // TI scalers + +}; + +} + +#endif diff --git a/src/Scaler9250.cxx b/src/Scaler9250.cxx new file mode 100644 index 0000000000000000000000000000000000000000..a3ed21f1d0515bf45855c75d41625755c1395aac --- /dev/null +++ b/src/Scaler9250.cxx @@ -0,0 +1,31 @@ +//////////////////////////////////////////////////////////////////// +// +// FADC250 scalers +// +///////////////////////////////////////////////////////////////////// + +#include "Scaler9250.h" + +using namespace std; + +namespace Decoder { + +Module::TypeIter_t Scaler9250::fgThisType = + DoRegister( ModuleType( "Decoder::Scaler9250" , 9250 )); + +Scaler9250::Scaler9250(Int_t crate, Int_t slot) : GenScaler(crate, slot) { + Init(); +} + +Scaler9250::~Scaler9250() { +} + +void Scaler9250::Init() { + fNumChan = 16; + fWordsExpect = 16; + GenScaler::GenInit(); +} + +} + +ClassImp(Decoder::Scaler9250) diff --git a/src/Scaler9250.h b/src/Scaler9250.h new file mode 100644 index 0000000000000000000000000000000000000000..1d9ddca9eb72ab8e7e7a604a13db1b728a31561b --- /dev/null +++ b/src/Scaler9250.h @@ -0,0 +1,35 @@ +#ifndef Scaler9250_ +#define Scaler9250_ + +///////////////////////////////////////////////////////////////////// +// +// Scaler9250 +// FADC250 scalers +// +///////////////////////////////////////////////////////////////////// + +#include "GenScaler.h" + +namespace Decoder { + +class Scaler9250 : public GenScaler { + +public: + + Scaler9250() {}; + Scaler9250(Int_t crate, Int_t slot); + virtual ~Scaler9250(); + + virtual void Init(); + +private: + + static TypeIter_t fgThisType; + + ClassDef(Scaler9250,0) // FADC250 scalers + +}; + +} + +#endif diff --git a/src/THcScalerEvtHandler.cxx b/src/THcScalerEvtHandler.cxx index cf1ddcd05e26d949e4911b5d51d9fda6caa1882c..525bf22725dd6b84ecac7e223334e8aab9985565 100644 --- a/src/THcScalerEvtHandler.cxx +++ b/src/THcScalerEvtHandler.cxx @@ -40,6 +40,8 @@ To enable debugging you may try this in the setup script #include "Scaler3801.h" #include "Scaler1151.h" #include "Scaler560.h" +#include "Scaler9001.h" +#include "Scaler9250.h" #include "THaCodaData.h" #include "THaEvData.h" #include "TNamed.h" @@ -387,6 +389,12 @@ THaAnalysisObject::EStatus THcScalerEvtHandler::Init(const TDatime& date) case 3801: scalers.push_back(new Scaler3801(icrate, islot)); break; + case 9001: // TI Scalers + scalers.push_back(new Scaler9001(icrate, islot)); + break; + case 9250: // FADC250 Scalers + scalers.push_back(new Scaler9250(icrate, islot)); + break; } if (scalers.size() > 0) { UInt_t idx = scalers.size()-1;