__________________________________________________[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)); }