class Packet_rich_fpga: public Packet_w4

This is the packet which deals with data in RICH_FPGA format.

Inheritance:


Public Methods

[more]int iValue(const int ich, const char *what)
with the "what" parameter you can decide which aspect of the data is made available.
[more]int iValue(const int ich, const int iy)
This gives access to the 3 data words per channel, in case the use wants to look at that raw information.
[more]int fillIntArray(int iarr[], const int nlen, int *nwout, const char *what="")
this interface got a special keyword for the benefit of the LVL2 Trigger.


Inherited from Packet_w4:


Inherited from Packet_A:


Inherited from Packet:

Public Methods

ovirtual float rValue(const int channel)
ovirtual float rValue(const int channel, const char * what)
ovirtual float rValue(const int channel, const int iy)
ovirtual int getArraylength(const char * what ="")
ovirtual int fillFloatArray(float destination[], const int length, int * nw, const char * what="")
ovirtual int* getIntArray(int * nw, const char * ="")
ovirtual float* getFloatArray(int * nw, const char * ="")
ovirtual int is_pointer_type() const
ovirtual int convert()
ovirtual int getLength() const
ovirtual int getDebugLength() const
ovirtual int getIdentifier() const
ovirtual int getPadding() const
ovirtual int getStructure() const
ovirtual int getHitFormat() const
ovirtual int getDataLength() const
ovirtual voidfullIdentify (std::ostream& os = std::cout) const (ostream & os = cout) const
ovirtual void dump(std::ostream& os = std::cout)
ovirtual void gdump(const int how = EVT_HEXADECIMAL, std::ostream& os = std::cout) const

Public

o


Documentation

This is the packet which deals with data in RICH_FPGA format. It inherits from Packet_w4 because the data are 32bit entities.
oint iValue(const int ich, const char *what)
with the "what" parameter you can decide which aspect of the data is made available. This class is one of those which have several different "kinds" of data; we use this to bring up the AMU cell information and all the misc. items in the FEM headers and trailers.

The AMU info is available as

 packet->iValue(0,"AMU") AMU cell from timing conversion 
 packet->iValue(1,"AMU") AMU cell from "pre" conversion
 packet->iValue(2,"AMU") AMU cell from "post" conversion
In addition, there is

 packet->iValue(0,"ID")       The detector id
 packet->iValue(0,"EVTNR")    The FEM event number
 packet->iValue(0,"MODULE")   The Module ID
 packet->iValue(0,"FLAG")     The Flag value
 packet->iValue(0,"BCLK")     Beam clock value from FEM
 packet->iValue(i,"PARITY")   The longitudinal parity
 packet->iValue(i,"SUMMARY")  The DCM summary word
 packet->iValue(i,"USERWORD") The USERWORD i, where i is from 0 through 7


oint iValue(const int ich, const int iy)
This gives access to the 3 data words per channel, in case the use wants to look at that raw information.

We chose to implement the 3 words of information as the two-dimensional interface, so packet->iValue(k,i) gives you the word "i" of channel k, where i is

packet->iValue(k,0) timing tag (TDC)
packet->iValue(k,1) post sample
packet->iValue(k,2) pre sample
and "k" is the channel number from 0 through 160.

There are definitions which make this a bit more trasnparent; you can use

packet->iValue(k,RICH_TIME) timing tag (TDC)
packet->iValue(k,RICH_POSTSAMPLE) post sample
packet->iValue(k,RICH_PRESAMPLE) pre sample

oint fillIntArray(int iarr[], const int nlen, int *nwout, const char *what="")
this interface got a special keyword for the benefit of the LVL2 Trigger. Calling

struct richChannelList rcl[160];
int nw, NumberOfChannels;
NumberOfChannels = p->fillIntArray ( (int *) rcl, 160*sizeof(*rcl), &nw, "SPARSE");

returns you the actually fired channels.

richChannelList is defined as

struct richChannelList
{
  int channel;
  int time;
  int post;
  int pre;
};


This class has no child classes.

Alphabetic index HTML hierarchy of classes or Java



This page was generated with the help of DOC++.