ROOT logo
Podd » (UNKNOWN) » Decoder::CodaDecoder

class Decoder::CodaDecoder: public THaEvData


   CodaDecoder

    Object Oriented version of decoder
    Sept, 2014    R. Michaels


Function Members (Methods)

public:
virtual~CodaDecoder()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
Int_tbank_decode(Int_t roc, const UInt_t* evbuffer, Int_t ipt, Int_t istop)
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
Decoder::CodaDecoderCodaDecoder()
Decoder::CodaDecoderCodaDecoder(const Decoder::CodaDecoder&)
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
virtual voidTObject::Delete(Option_t* option = "")MENU
const char*THaEvData::DevType(Int_t crate, Int_t slot) const
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
voidTHaEvData::EnableBenchmarks(Bool_t enable = true)
voidTHaEvData::EnableHelicity(Bool_t enable = true)
voidTHaEvData::EnableScalers(Bool_t enable = true)
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Int_tFindRocs(const UInt_t* evbuffer)
Int_tTHaEvData::GetData(Int_t crate, Int_t slot, Int_t chan, Int_t hit) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual doubleTHaEvData::GetEpicsData(const char* tag, Int_t event = 0) const
virtual TStringTHaEvData::GetEpicsString(const char* tag, Int_t event = 0) const
virtual doubleTHaEvData::GetEpicsTime(const char* tag, Int_t event = 0) const
Int_tTHaEvData::GetEvLength() const
Int_tTHaEvData::GetEvNum() const
virtual ULong64_tTHaEvData::GetEvTime() const
Int_tTHaEvData::GetEvType() const
virtual Int_tTHaEvData::GetHelicity() const
virtual Int_tTHaEvData::GetHelicity(const TString&) const
virtual const char*TObject::GetIconName() const
UInt_tTHaEvData::GetInstance() const
static UInt_tTHaEvData::GetInstances()
virtual Decoder::Module*THaEvData::GetModule(Int_t roc, Int_t slot) const
virtual const char*TObject::GetName() const
Int_tTHaEvData::GetNextChan(Int_t crate, Int_t slot, Int_t index) const
virtual Int_tGetNslots() const
Int_tTHaEvData::GetNumChan(Int_t crate, Int_t slot) const
Int_tTHaEvData::GetNumHits(Int_t crate, Int_t slot, Int_t chan) const
Int_tTHaEvData::GetNumRaw(Int_t crate, Int_t slot) const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
TStringTHaEvData::GetOrigPS() const
virtual Int_tGetPrescaleFactor(Int_t trigger) const
Int_tTHaEvData::GetRawData(Int_t i) const
Int_tTHaEvData::GetRawData(Int_t crate, Int_t i) const
Int_tTHaEvData::GetRawData(Int_t crate, Int_t slot, Int_t hit) const
Int_tTHaEvData::GetRawData(Int_t crate, Int_t slot, Int_t chan, Int_t hit) const
const UInt_t*THaEvData::GetRawDataBuffer(Int_t crate) const
Int_tTHaEvData::GetRocLength(Int_t crate) const
Int_tTHaEvData::GetRunNum() const
ULong64_tTHaEvData::GetRunTime() const
Int_tTHaEvData::GetRunType() const
virtual Int_tTHaEvData::GetScaler(Int_t, Int_t, Int_t) const
virtual Int_tTHaEvData::GetScaler(const TString&, Int_t, Int_t) const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
Bool_tTHaEvData::HelicityEnabled() const
static voidTHaEvData::hexdump(const char* cbuff, size_t len)
Bool_tTHaEvData::InCrate(Int_t crate, Int_t i) const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
Bool_tTHaEvData::IsEpicsEvent() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
virtual Bool_tTHaEvData::IsLoadedEpics(const char*) const
Bool_tTObject::IsOnHeap() const
Bool_tTHaEvData::IsPhysicsTrigger() const
Bool_tTHaEvData::IsPrescaleEvent() const
Bool_tTHaEvData::IsPrestartEvent() const
Bool_tTHaEvData::IsScalerEvent() const
virtual Bool_tTObject::IsSortable() const
Bool_tTHaEvData::IsSpecialEvent() const
Bool_tTObject::IsZombie() const
virtual Int_tLoadEvent(const UInt_t* evbuffer)
virtual Int_tLoadIfFlagData(const UInt_t* p)
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::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 voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
virtual voidTHaEvData::PrintOut() const
virtual voidTHaEvData::PrintSlotData(Int_t crate, Int_t slot) const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
Int_troc_decode(Int_t roc, const UInt_t* evbuffer, Int_t ipt, Int_t istop)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
Bool_tTHaEvData::ScalersEnabled() const
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidTHaEvData::SetCrateMapName(const char* name)
voidTHaEvData::SetDebug(UInt_t level)
virtual voidTHaEvData::SetDebugFile(ofstream* file)
static voidTHaEvData::SetDefaultCrateMapName(const char* name)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
static voidTObject::SetObjectStat(Bool_t stat)
voidTHaEvData::SetOrigPS(Int_t event_type)
virtual voidSetRunTime(ULong64_t tloc)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidTHaEvData::SetVerbose(UInt_t level)
virtual voidShowMembers(TMemberInspector&)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
voidChkFbSlot(Int_t roc, const UInt_t* evbuffer, Int_t ipt, Int_t istop)
voidChkFbSlots()
voidCompareRocs()
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voiddump(const UInt_t* evbuffer) const
voidFindUsedSlots()
Bool_tTHaEvData::GoodCrateSlot(Int_t crate, Int_t slot) const
Bool_tTHaEvData::GoodIndex(Int_t crate, Int_t slot) const
Int_tTHaEvData::idx(Int_t crate, Int_t slot) const
Int_tTHaEvData::idx(Int_t crate, Int_t slot)
Int_tTHaEvData::init_cmap()
intinit_slotdata(const Decoder::THaCrateMap* map)
voidTHaEvData::makeidx(Int_t crate, Int_t slot)
voidTObject::MakeZombie()

Data Members

public:
Decoder::THaCrateMap*THaEvData::fMapPointer to active crate map
Int_t*irn
Int_tnroc
protected:
THaEvData::BankDat_tTHaEvData::bankdat[50]
const UInt_t*THaEvData::buffer
Bool_tbuffmode
Bool_tTHaEvData::buffmode
Decoder::THaSlotData**THaEvData::crateslot
Int_tdatascan
Int_tTHaEvData::event_length
Int_tTHaEvData::event_num
Int_tTHaEvData::event_type
Int_tTHaEvData::evscaler
ULong64_tTHaEvData::evt_timeEvent time. Not directly supported by CODA
THaBenchmark*THaEvData::fBench
TStringTHaEvData::fCrateMapNameCrate map database file name to use
Int_tTHaEvData::fDebugDebug/verbosity level
ofstream*THaEvData::fDebugFiledebug output
Bool_tTHaEvData::fDoBench
UInt_tTHaEvData::fInstanceMy instance
Int_tTHaEvData::fNSlotClearNumber of elements of crateslot[] to clear
Int_tTHaEvData::fNSlotUsedNumber of elements of crateslot[] actually used
Bool_tTHaEvData::fNeedInitCrate map needs to be (re-)initialized
ULong64_tTHaEvData::fRunTimeCODA run time (Unix time) from prestart event
UShort_t*THaEvData::fSlotClear[fNSlotClear] Indices of crateslot[] to clear
UShort_t*THaEvData::fSlotUsed[fNSlotUsed] Indices of crateslot[] used
Bool_tTHaEvData::fTrigSupPS
Int_t*fbfound
static Bool_tTHaEvData::fgAllowUnimplIf true, allow unimplemented functions
static TStringTHaEvData::fgDefaultCrateMapNameDefault crate map name
static TBitsTHaEvData::fgInstancesNumber of instances of this object
Bool_tTHaEvData::first_decode
static const Double_tTHaEvData::kBigdefault value for invalid data
Int_tTHaEvData::recent_event
THaEvData::RocDat_tTHaEvData::rocdat[32]
Int_tTHaEvData::run_num
Int_tTHaEvData::run_typeCODA run type from prestart event
Bool_tsynchextra
Bool_tTHaEvData::synchextra
Int_tsynchflag
Bool_tsynchmiss
Bool_tTHaEvData::synchmiss

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

CodaDecoder()
~CodaDecoder()
Int_t GetPrescaleFactor(Int_t trigger) const
 To get the prescale factors for trigger number "trigger_type"
 (valid types are 1,2,3...)
  if (fgPsFact) return fgPsFact->GetPrescaleFactor(trigger_type);
Int_t LoadEvent(const UInt_t* evbuffer)
 Main engine for decoding, called by public LoadEvent() methods
 The crate map argument is ignored. Use SetCrateMapName instead
Int_t roc_decode(Int_t roc, const UInt_t* evbuffer, Int_t ipt, Int_t istop)
 Decode a Readout controller
Int_t bank_decode(Int_t roc, const UInt_t* evbuffer, Int_t ipt, Int_t istop)
 Split a roc into banks, if using bank structure
 Then loop over slots and decode it from a bank if the slot
 belongs to a blank.
Int_t LoadIfFlagData(const UInt_t* p)
 Need to generalize this ...  too Hall A specific

 Looks for buffer mode and synch problems.  The latter are recoverable
 but extremely rare, so I haven't bothered to write recovery a code yet,
 but at least this warns you.
Int_t FindRocs(const UInt_t* evbuffer)
int init_slotdata(const Decoder::THaCrateMap* map)
 Update lists of used/clearable slots in case crate map changed
void dump(const UInt_t* evbuffer) const
void CompareRocs()
void FindUsedSlots()
 Disable slots for which no module is defined.
 This speeds up the decoder.
void ChkFbSlot(Int_t roc, const UInt_t* evbuffer, Int_t ipt, Int_t istop)
void ChkFbSlots()
 This checks the fastbus slots to see if slots are appearing in both the
 data and the cratemap.  If they appear in one but not the other, a warning
 is issued, which usually means the cratemap is wrong.
void SetRunTime(ULong64_t tloc)
 Set run time and re-initialize crate map (and possibly other
 database parameters for the new time.
CodaDecoder()
 public interface is SAME as before
Int_t GetNslots() const
{ return fNSlotUsed; }