
__________________________________________________[C++ CLASS IMPLEMENTATION] Name: xiadgf/src/TMrbDGFData.cxx Purpose: Methods to operate a module XIA DGF-4C Description: Implements class methods for module XIA DGF-4C Header files: TMrbDGF.h -- class defs Keywords: Author: R. Lutter Mailto: <a href=mailto:rudi.lutter@physik.uni-muenchen.de>R. Lutter</a> Revision: $Id: TMrbDGFData.cxx,v 1.15 2007-07-27 11:17:23 Rudolf.Lutter Exp $ Date:
| TMrbDGFData() | |
| virtual | ~TMrbDGFData() |
| void | TObject::AbstractMethod(const char* method) const |
| Int_t | AddToNameTable(const Char_t* ParamFile, const Char_t* Comment = NULL) |
| Int_t | AddToNameTable(const Char_t* ParamName, Int_t Index, const Char_t* Comment = NULL) |
| virtual void | TObject::AppendPad(Option_t* option = "") |
| virtual void | TObject::Browse(TBrowser* b) |
| static TClass* | Class() |
| virtual const char* | TObject::ClassName() const |
| virtual void | TObject::Clear(Option_t* = "") |
| virtual TObject* | TObject::Clone(const char* newname = "") const |
| virtual Int_t | TObject::Compare(const TObject* obj) const |
| virtual void | TObject::Copy(TObject& object) const |
| virtual void | TObject::Delete(Option_t* option = "")MENU |
| virtual Int_t | TObject::DistancetoPrimitive(Int_t px, Int_t py) |
| virtual void | TObject::Draw(Option_t* option = "") |
| virtual void | TObject::DrawClass() constMENU |
| virtual TObject* | TObject::DrawClone(Option_t* option = "") constMENU |
| Bool_t | DSPCodeRead() const |
| virtual void | TObject::Dump() constMENU |
| virtual void | TObject::Error(const char* method, const char* msgfmt) const |
| virtual void | TObject::Execute(const char* method, const char* params, Int_t* error = 0) |
| virtual void | TObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0) |
| virtual void | TObject::ExecuteEvent(Int_t event, Int_t px, Int_t py) |
| virtual void | TObject::Fatal(const char* method, const char* msgfmt) const |
| virtual TObject* | TObject::FindObject(const char* name) const |
| virtual TObject* | TObject::FindObject(const TObject* obj) const |
| TMrbNamedX* | FindParam(const Char_t* ParamName) const |
| TMrbNamedX* | FindParam(Int_t Offset) const |
| TMrbNamedX* | FindParam(Int_t Channel, const Char_t* ParamName) |
| TMrbNamedX* | FirstParam() const |
| Bool_t | FPGACodeRead(TMrbDGFData::EMrbFPGAType FPGAType, Int_t Rev = kRevUnknown) const |
| Bool_t | FPGACodeRead(const Char_t* FPGAType, Int_t Rev = kRevUnknown) const |
| virtual Option_t* | TObject::GetDrawOption() const |
| UShort_t* | GetDSPCodeAddr() |
| Int_t | GetDSPCodeSize() const |
| static Long_t | TObject::GetDtorOnly() |
| UShort_t* | GetFPGACodeAddr(TMrbDGFData::EMrbFPGAType FPGAType, Int_t Rev = kRevUnknown) |
| Int_t | GetFPGACodeSize(TMrbDGFData::EMrbFPGAType FPGAType, Int_t Rev = kRevUnknown) const |
| virtual const char* | TObject::GetIconName() const |
| TMrbLofNamedX* | GetLofParamNames() |
| virtual const char* | TObject::GetName() const |
| Int_t | GetNofParams() const |
| virtual char* | TObject::GetObjectInfo(Int_t px, Int_t py) const |
| static Bool_t | TObject::GetObjectStat() |
| virtual Option_t* | TObject::GetOption() const |
| virtual const char* | TObject::GetTitle() const |
| virtual UInt_t | TObject::GetUniqueID() const |
| Int_t | GetXiaRelease() const |
| virtual Bool_t | TObject::HandleTimer(TTimer* timer) |
| virtual ULong_t | TObject::Hash() const |
| void | Help() |
| virtual void | TObject::Info(const char* method, const char* msgfmt) const |
| virtual Bool_t | TObject::InheritsFrom(const char* classname) const |
| virtual Bool_t | TObject::InheritsFrom(const TClass* cl) const |
| virtual void | TObject::Inspect() constMENU |
| void | TObject::InvertBit(UInt_t f) |
| virtual TClass* | IsA() const |
| virtual Bool_t | TObject::IsEqual(const TObject* obj) const |
| virtual Bool_t | TObject::IsFolder() const |
| Bool_t | TObject::IsOnHeap() const |
| virtual Bool_t | TObject::IsSortable() const |
| Bool_t | IsVerbose() const |
| Bool_t | TObject::IsZombie() const |
| virtual void | TObject::ls(Option_t* option = "") const |
| void | TObject::MayNotUse(const char* method) const |
| TMrbNamedX* | NextParam(TMrbNamedX* Param) const |
| virtual Bool_t | TObject::Notify() |
| void | TObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const |
| static void | TObject::operator delete(void* ptr) |
| static void | TObject::operator delete(void* ptr, void* vp) |
| static void | TObject::operator delete[](void* ptr) |
| static void | TObject::operator delete[](void* ptr, void* vp) |
| void* | TObject::operator new(size_t sz) |
| void* | TObject::operator new(size_t sz, void* vp) |
| void* | TObject::operator new[](size_t sz) |
| void* | TObject::operator new[](size_t sz, void* vp) |
| TObject& | TObject::operator=(const TObject& rhs) |
| virtual void | TObject::Paint(Option_t* option = "") |
| Bool_t | ParamNamesRead() const |
| virtual void | TObject::Pop() |
| void | Print() const |
| virtual void | Print(Option_t* Option) const |
| void | PrintXiaRelease() const |
| virtual Int_t | TObject::Read(const char* name) |
| Int_t | ReadDSPCode(const Char_t* CodeFile = "", Bool_t Forced = kFALSE) |
| Int_t | ReadDSPCodeAscii(const Char_t* CodeFile = "", Bool_t Forced = kFALSE) |
| Int_t | ReadDSPCodeBinary(const Char_t* CodeFile = "", Bool_t Forced = kFALSE) |
| Int_t | ReadFPGACode(TMrbDGFData::EMrbFPGAType FPGAType, const Char_t* CodeFile = "", Int_t Rev = kRevUnknown, Bool_t Forced = kFALSE) |
| Int_t | ReadFPGACode(const Char_t* FPGAType, const Char_t* CodeFile = "", Int_t Rev = kRevUnknown, Bool_t Forced = kFALSE) |
| Int_t | ReadFPGACodeAscii(TMrbDGFData::EMrbFPGAType FPGAType, const Char_t* CodeFile = "", Int_t Rev = kRevUnknown, Bool_t Forced = kFALSE) |
| Int_t | ReadFPGACodeAscii(const Char_t* FPGAType, const Char_t* CodeFile = "", Int_t Rev = kRevUnknown, Bool_t Forced = kFALSE) |
| Int_t | ReadFPGACodeBinary(TMrbDGFData::EMrbFPGAType FPGAType, const Char_t* CodeFile = "", Int_t Rev = kRevUnknown, Bool_t Forced = kFALSE) |
| Int_t | ReadFPGACodeBinary(const Char_t* FPGAType, const Char_t* CodeFile = "", Int_t Rev = kRevUnknown, Bool_t Forced = kFALSE) |
| Int_t | ReadNameTable(const Char_t* ParamFile = "", Bool_t Forced = kFALSE) |
| virtual void | TObject::RecursiveRemove(TObject* obj) |
| void | TObject::ResetBit(UInt_t f) |
| virtual void | TObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU |
| virtual void | TObject::SavePrimitive(ostream& out, Option_t* option = "") |
| void | TObject::SetBit(UInt_t f) |
| void | TObject::SetBit(UInt_t f, Bool_t set) |
| virtual void | TObject::SetDrawOption(Option_t* option = "")MENU |
| static void | TObject::SetDtorOnly(void* obj) |
| void | SetLocal(Bool_t LocalFlag) |
| static void | TObject::SetObjectStat(Bool_t stat) |
| virtual void | TObject::SetUniqueID(UInt_t uid) |
| void | SetVerboseMode(Bool_t VerboseFlag = kTRUE) |
| virtual void | ShowMembers(TMemberInspector&) |
| virtual void | Streamer(TBuffer&) |
| void | StreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b) |
| virtual void | TObject::SysError(const char* method, const char* msgfmt) const |
| Bool_t | TObject::TestBit(UInt_t f) const |
| Int_t | TObject::TestBits(UInt_t f) const |
| virtual void | TObject::UseCurrentStyle() |
| virtual void | TObject::Warning(const char* method, const char* msgfmt) const |
| virtual Int_t | TObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) |
| virtual Int_t | TObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const |
| Bool_t | CheckXiaRelease() |
| virtual void | TObject::DoError(int level, const char* location, const char* fmt, va_list va) const |
| void | TObject::MakeZombie() |
| void | Reset() |
| void | Setup() |
| enum { | kFPGAMaxSize | |
| kDSPMaxSize | ||
| }; | ||
| enum EMrbDGFFileType { | kFileUndef | |
| kFileAscii | ||
| kFileBinary | ||
| }; | ||
| enum EMrbFPGAType { | kSystemFPGA | |
| kFippiFPGA | ||
| }; | ||
| enum { | kNofDSPInputParams | |
| kNofDSPOutputParams | ||
| kNofDSPInparModule | ||
| kNofDSPInparChannel | ||
| kDSPInparStartAddr | ||
| kDSPOutparStartAddr | ||
| }; | ||
| enum EMrbCamacCSR { | kRunEna | |
| kNewRun | ||
| kEnaLAM | ||
| kDSPReset | ||
| kDSPError | ||
| kActive | ||
| kLAMActive | ||
| }; | ||
| enum { | kCamacCSRMask | |
| }; | ||
| enum EMrbCamacICSR { | kSystemFPGAReset | |
| kFippiFPGA0Reset | ||
| kFippiFPGA1Reset | ||
| kFippiFPGA2Reset | ||
| kFippiFPGA3Reset | ||
| kConnectDSPFromRight | ||
| kConnectDSPFromLeft | ||
| kTerminateDSP | ||
| kConnectFastFromRight | ||
| kConnectFastFromLeft | ||
| kTerminateFast | ||
| kSwitchBusNormal | ||
| }; | ||
| enum { | kFippiFPGAReset | |
| kFPGAReset | ||
| kConnectDSPTrigger | ||
| kConnectFastTrigger | ||
| kSwitchBus | ||
| kCamacICSRMask | ||
| }; | ||
| enum EMrbModCSRB { | kCallUserCode | |
| }; | ||
| enum EMrbRunTask { | kRunSlowControl | |
| kRunStdListMode | ||
| kRunStdListModeNoTrace | ||
| kRunStdListModeShort4 | ||
| kRunStdListModeShort2 | ||
| kRunFastListMode | ||
| kRunFastListModeNoTrace | ||
| kRunFastListModeShort4 | ||
| kRunFastListModeShort2 | ||
| kRunMCA | ||
| }; | ||
| enum EMrbControlTask { | kProgramDACs | |
| kConnectInputs | ||
| kDisconnectInputs | ||
| kCalibrate | ||
| kSampleADCs | ||
| kUpdateFPGA | ||
| kReadHistoFirstPage | ||
| kReadHistoNextPage | ||
| }; | ||
| enum EMrbChanCSRA { | kGroupTriggerOnly | |
| kIndivLiveTime | ||
| kGoodChannel | ||
| kReadAlways | ||
| kEnableTrigger | ||
| kTriggerPositive | ||
| kGFLTValidate | ||
| kHistoEnergies | ||
| kHistoBaselines | ||
| kCorrBallDeficit | ||
| kComputeCFT | ||
| kEnaMultiplicity | ||
| kBipolarSignals | ||
| }; | ||
| enum EMrbUserPsaData { | kPsaBaseline03 | |
| kPsaCutOff01 | ||
| kPsaCutOff23 | ||
| kPsaT0Thresh01 | ||
| kPsaT0Thresh23 | ||
| kPsaT90Thresh03 | ||
| kPsaPSACh0 | ||
| kPsaPSACh1 | ||
| kPsaPSACh2 | ||
| kPsaPSACh3 | ||
| kPsaPSALength01 | ||
| kPsaPSALength23 | ||
| kPsaPSAOffset01 | ||
| kPsaPSAOffset23 | ||
| kPsaTFACutOff01 | ||
| kPsaTFACutOff23 | ||
| }; | ||
| enum EMrbUserPsaCSR { | kT0 | |
| kT90 | ||
| kTslope | ||
| kQmax | ||
| kUseEnergyCutTFA | ||
| kUseTFA | ||
| kInitTFA | ||
| kForceAveTiming | ||
| kAvePulseShape | ||
| kAveRefT0 | ||
| kAveRefT90 | ||
| kRefPsaOffsLength | ||
| kQuadInterpolT0 | ||
| kInterpolT0Tslope | ||
| kOverwriteGSLT | ||
| kInterpolT50T90 | ||
| }; | ||
| enum { | kChanCSRAMask | |
| }; | ||
| enum EMrbDGFStatusDBits { | kSystemFPGACodeRead | |
| kFippiFPGARevDCodeRead | ||
| kFippiFPGARevECodeRead | ||
| kDSPCodeRead | ||
| kParamNamesRead | ||
| }; | ||
| enum { | kNofChannels | |
| kNofMCAPages | ||
| kMCAPageSize | ||
| kUntrigTraceLength | ||
| kChannelPattern | ||
| }; | ||
| enum EMrbDGFRevision { | kRevUnknown | |
| kOrigRevD | ||
| kOrigRevE | ||
| kRevD | ||
| kRevE | ||
| }; | ||
| enum { | kNofRevs | |
| }; | ||
| enum TObject::EStatusBits { | kCanDelete | |
| kMustCleanup | ||
| kObjInCanvas | ||
| kIsReferenced | ||
| kHasUUID | ||
| kCannotPick | ||
| kNoContextMenu | ||
| kInvalidObject | ||
| }; | ||
| enum TObject::[unnamed] { | kIsOnHeap | |
| kNotDeleted | ||
| kZombie | ||
| kBitMask | ||
| kSingleKey | ||
| kOverwrite | ||
| kWriteDelete | ||
| }; |
| TArrayS | fDSPCode | DSP code: 32 bit words, stored in 2 * UShort_t |
| TString | fDSPFile | name of DSP code file |
| Int_t | fDSPSize | actual size of DSP code |
| TMrbDGFData::EMrbDGFFileType | fDSPType | type of DSP file: ascii or binary |
| TArrayS | fFippiFPGACode[2] | FPGA code: byte oriented, stored in UShort_t(LSB), MSB=0 |
| TString | fFippiFPGAFile[2] | name of FPGA code file (FIPPI) |
| Int_t | fFippiFPGASize[2] | actual size of FPGA code |
| TMrbDGFData::EMrbDGFFileType | fFippiFPGAType[2] | type of FPGA file: ascii or binary |
| Bool_t | fLocalData | kTRUE if data base is local |
| Int_t | fNofParams | number of params |
| TString | fParamFile | file containing param names |
| TMrbLofNamedX | fParamNames | DSP param table, pairs of (ParamName, Offset) |
| UInt_t | fStatusD | soft status (data) |
| TArrayS | fSystemFPGACode | FPGA code: byte oriented, stored in UShort_t(LSB), MSB=0 |
| TString | fSystemFPGAFile | name of FPGA code file (SYSTEM) |
| Int_t | fSystemFPGASize | actual size of FPGA code |
| TMrbDGFData::EMrbDGFFileType | fSystemFPGAType | type of FPGA file: ascii or binary |
| Bool_t | fVerboseMode | common verbosity flag for all DGF modules |
| UInt_t | fXiaRelease | xia release |

__________________________________________________________________[C++ CTOR] Name: TMrbDGFData Purpose: Data base to hold DSP / FPGA data Description: Keywords:
________________________________________________________________[C++ METHOD] Name: TMrbDGFData::Setup Purpose: Setup data base Arguments: -- Results: -- Exceptions: Description: Initializes DGF's data base. Keywords:
________________________________________________________________[C++ METHOD] Name: TMrbDGFData::Reset Purpose: Reset to initial values Arguments: -- Results: -- Exceptions: Description: Initializes DGF's data base. Keywords:
________________________________________________________________[C++ METHOD] Name: TMrbDGFData::ReadFPGACode Purpose: Read FPGA code Arguments: EMrbFPGAType FPGAType -- fpga type (system or fippi) Char_t * CodeFile -- file name Int_t Rev -- module revision Bool_t Forced -- read even if code already loaded Results: Int_t NofWords -- number of words read Exceptions: Description: Reads FPGA code. Data format depends on file extension: .fip -- ascii .bin -- binary Keywords:
________________________________________________________________[C++ METHOD] Name: TMrbDGFData::ReadFPGACode Purpose: Read FPGA code Arguments: Char_t * FPGAType -- fpga type (system or fippi) Char_t * CodeFile -- file name Int_t Rev -- module revision Bool_t Forced -- read even if code already loaded Results: Int_t NofWords -- number of words read Exceptions: Description: Reads FPGA code. Data format depends on file extension Keywords:
________________________________________________________________[C++ METHOD] Name: TMrbDGFData::ReadFPGACodeBinary Purpose: Read FPGA code from binary file Arguments: EMrbFPGAType FPGAType -- fpga type (system or fippi) Char_t * CodeFile -- file name Int_t Rev -- module revision Bool_t Forced -- read even if code already loaded Results: Int_t NofWords -- number of words read Exceptions: Description: Reads FPGA code. Input: byte-oriented binary Output: UShort_t, MSB = 0 Keywords:
________________________________________________________________[C++ METHOD] Name: TMrbDGFData::ReadFPGACodeBinary Purpose: Read FPGA code from binary file Arguments: Char_t * FPGAType -- fpga type (system or fippi) Char_t * CodeFile -- file name Int_t Rev -- module revision Bool_t Forced -- read even if code already loaded Results: Int_t NofWords -- number of words read Exceptions: Description: Reads FPGA code. Keywords:
________________________________________________________________[C++ METHOD] Name: TMrbDGFData::ReadFPGACodeAscii Purpose: Read FPGA code from ascii file Arguments: EMrbFPGAType FPGAType -- fpga type (system or fippi) Char_t * CodeFile -- file name Int_t Rev -- module revision Bool_t Forced -- read even if code already loaded Results: Int_t NofWords -- number of words read Exceptions: Description: Reads FPGA code. Input: hex code ascii Output: UShort_t, MSB = 0 Keywords:
________________________________________________________________[C++ METHOD] Name: TMrbDGFData::ReadFPGACodeAscii Purpose: Read FPGA code from ascii file Arguments: Char_t * FPGAType -- fpga type (system or fippi) Char_t * CodeFile -- file name Int_t Rev -- module revision Bool_t Forced -- read even if code already loaded Results: Int_t NofWords -- number of words read Exceptions: Description: Reads FPGA code. Keywords:
________________________________________________________________[C++ METHOD] Name: TMrbDGFData::ReadDSPCode Purpose: Read DSP code Arguments: Char_t * CodeFile -- file name Bool_t Forced -- read even if code already loaded Results: Int_t NofWords -- number of words read Exceptions: Description: Reads DSP code. Data format depends on file extension: .exe -- ascii .bin -- binary Keywords:
________________________________________________________________[C++ METHOD] Name: TMrbDGFData::ReadDSPCodeBinary Purpose: Read DSP code from binary file Arguments: Char_t * CodeFile -- file name Bool_t Forced -- read even if code already loaded Results: Int_t NofWords -- number of words read Exceptions: Description: Reads DSP code. Keywords:
________________________________________________________________[C++ METHOD] Name: TMrbDGFData::ReadDSPCodeAscii Purpose: Read DSP code from WaveMetrics ascii file Arguments: Char_t * CodeFile -- file name Bool_t Forced -- read even if code already loaded Results: Int_t NofWords -- number of words read Exceptions: Description: Reads DSP code. Format: WaveMetrics (ASCII) Code: 24 bits per line, 0xHHHHLL -> 0xHHHH 0x00LL Lines starting with '@' indicate address specifier in next line Keywords:
________________________________________________________________[C++ METHOD] Name: TMrbDGFData::ReadNameTable Purpose: Read param names from file Arguments: Char_t * ParamFile -- file name Bool_t Forced -- read even if names already read Results: Int_t NofParams -- number of params read Exceptions: Description: Reads param names and offsets from file. Keywords:
________________________________________________________________[C++ METHOD] Name: TMrbDGFData::AddToNameTable Purpose: Add params from file to name table Arguments: Char_t * ParamFile -- file name Char_t * Comment -- comment to be stored in param title Results: Int_t NofParams -- number of params read Exceptions: Description: Reads params from file and adds to name table. Keywords:
________________________________________________________________[C++ METHOD] Name: TMrbDGFData::AddToNameTable Purpose: Add params from file to name table Arguments: Char_t * ParamName -- param name Int_t Offset -- offset Char_t * Comment -- comment to be stored in param title Results: Int_t NofParams -- 0 or 1 Exceptions: Description: Adds param to name table. Keywords:
________________________________________________________________[C++ METHOD] Name: TMrbDGFData::FindParam Purpose: Search a param for a given channel Arguments: Int_t Channel -- channel number Char_t * ParamName -- param name Results: TMrbNamedX * Param -- param name & index Exceptions: Description: Searches a param for a given channel. Keywords:
________________________________________________________________[C++ METHOD] Name: TMrbDGF::FGPACodeRead Purpose: Test if FPGA code is read Arguments: EMrbFPGAType FPGAType -- fpga type (system or fippi) EMrbDGFRevision Rev -- module revision (if fippi) Results: kTRUE/kFALSE Exceptions: Description: Tests if FPGA code has been read. Keywords:
________________________________________________________________[C++ METHOD] Name: TMrbDGF::FGPACodeRead Purpose: Test if FPGA code is read Arguments: Char_t * FPGAType -- fpga type (system or fippi) Int_t Rev -- module revision (if fippi) Results: kTRUE/kFALSE Exceptions: Description: Tests if FPGA code has been read. Keywords:
________________________________________________________________[C++ METHOD] Name: TMrbDGFData::Print Purpose: Print status Arguments: -- Results: -- Exceptions: Description: Outputs status info. Keywords:
________________________________________________________________[C++ METHOD] Name: TMrbDGFData::CheckXiaRelease Purpose: Determine XIA's release number Arguments: kTRUE/kFALSE Results: -- Exceptions: Description: Looks for env var TMrbDGF.XiaRelease. Keywords:
________________________________________________________________[C++ METHOD] Name: TMrbDGFData::PrintXiaRelease Purpose: Output XIA's release number Arguments: -- Results: -- Exceptions: Description: Outputs current XIA release to stdout. Keywords:
{ return((TMrbNamedX *) fParamNames.FindByName(ParamName)); }{ return((TMrbNamedX *) fParamNames.FindByIndex(Offset)); }{ return((TMrbNamedX *) fParamNames.After(Param)); }