|
ATLAS Offline Software
|
#include <MatrixReadOut.h>
|
| MatrixReadOut (Matrix *p, ubit16 FEevent, uint NOBXS, DataVersion=MatrixReadOut::Atlas) |
|
| MatrixReadOut (ubit16 FEevent=0, uint NOBXS=8, DataVersion=MatrixReadOut::Atlas) |
|
| MatrixReadOut (ubit16 *v, ubit16 numWords, uint NOBXS, DataVersion=MatrixReadOut::Atlas) |
|
| MatrixReadOut (const MatrixReadOut &MROOrig) |
|
MatrixReadOut & | operator= (const MatrixReadOut &MROOrig)=delete |
|
| ~MatrixReadOut () |
|
MatrixReadOutStructure | getCMAHit (int index) |
|
MatrixReadOutStructure | getHeader () |
|
MatrixReadOutStructure | getSubHeader () |
|
MatrixReadOutStructure | getFooter () |
|
void | deleteCMABody () |
|
void | reset (uint NOBXS) |
|
void | writeHeader (ubit16 CMcode) |
|
void | writeSubHeader () |
|
void | writeCMABody (ubit16 _BC, ubit16 _TIME, ubit16 IJK, ubit16 _STRIP) |
|
void | writeFooter () |
|
void | writeRecord (ubit16 thisRecord, bool last) |
|
void | overwriteHeader (ubit16 thisRecord) |
|
void | overwriteSubHeader (ubit16 thisRecord) |
|
void | reComputeFooter () |
|
ubit16 | numberOfBodyWords () |
|
ubit16 | numberOfFragmentWords () |
|
ubit16 | readHeader () |
|
ubit16 | readSubHeader () |
|
ubit16 | readCMABodyCurrent () |
|
void | readCMABody (ubit16 *Body) |
|
ubit16 | readFooter () |
|
ubit16 | readCMAWord () |
|
ubit16 | checkCRC8 (ubit16 foot) |
|
void | topCMABody () |
|
void | display (std::ostream &stream) |
|
void | displayHeader (std::ostream &stream) |
|
void | displaySubHeader (std::ostream &stream) |
|
void | displayBody (std::ostream &stream) |
|
void | displayFooter (std::ostream &stream) |
|
void | bytestream (std::ostream &stream) |
|
ubit16 | checkBodyOrder (bool debugPrint=false) |
|
ubit16 | checkFragment () |
|
void | doMatrix (Matrix *CMpointer) |
|
void | makeTestPattern (ubit16 mode, ubit16 ktimes, int eventNum) |
|
ObjectType | tag () const |
|
const std::string & | name () const |
|
virtual void | Print (std::ostream &, bool) const |
|
Definition at line 18 of file MatrixReadOut.h.
◆ DataVersion
◆ MatrixReadOut() [1/4]
◆ MatrixReadOut() [2/4]
◆ MatrixReadOut() [3/4]
◆ MatrixReadOut() [4/4]
◆ ~MatrixReadOut()
MatrixReadOut::~MatrixReadOut |
( |
| ) |
|
◆ bytestream()
void MatrixReadOut::bytestream |
( |
std::ostream & |
stream | ) |
|
◆ checkBodyOrder()
ubit16 MatrixReadOut::checkBodyOrder |
( |
bool |
debugPrint = false | ) |
|
Definition at line 837 of file MatrixReadOut.cxx.
840 ubit16 currIJK, currBCID, currTIME, currCHANNEL;
841 ubit16 nextIJK, nextBCID, nextTIME, nextCHANNEL;
870 if (nextIJK < currIJK) {
873 }
else if (nextIJK == currIJK) {
874 if (nextBCID < currBCID) {
877 }
else if (nextBCID == currBCID) {
878 if (nextTIME < currTIME) {
881 }
else if (nextTIME == currTIME) {
882 if (nextCHANNEL <= currCHANNEL) {
890 }
else if (currIJK == 6) {
892 if (nextIJK == currIJK) {
893 if (nextBCID != currBCID || nextTIME != currTIME) {
897 if (nextCHANNEL <= currCHANNEL) {
902 }
else if (nextIJK == 7) {
905 }
else if (currIJK == 7) {
916 cout <<
"checkBodyOrder output= " <<
output <<
" with " << hex << pnext->hit << dec << endl;
924 if (
debugPrint) cout <<
" CheckBodyOrder; IJK 6 exists but the related IJK 7 has been found " << endl;
925 }
else if (currIJK == 7 && prevIJK != 6) {
927 if (
debugPrint) cout <<
" CheckBodyOrder; IJK 7 exists but the related IJK 6 has been found " << endl;
◆ checkCRC8()
◆ checkFragment()
ubit16 MatrixReadOut::checkFragment |
( |
| ) |
|
◆ computeCR()
ubit16 MatrixReadOut::computeCR |
( |
| ) |
|
|
private |
◆ deleteCMABody()
void MatrixReadOut::deleteCMABody |
( |
| ) |
|
◆ display()
void MatrixReadOut::display |
( |
std::ostream & |
stream | ) |
|
◆ displayBody()
void MatrixReadOut::displayBody |
( |
std::ostream & |
stream | ) |
|
◆ displayFooter()
void MatrixReadOut::displayFooter |
( |
std::ostream & |
stream | ) |
|
◆ displayHeader()
void MatrixReadOut::displayHeader |
( |
std::ostream & |
stream | ) |
|
◆ displaySubHeader()
void MatrixReadOut::displaySubHeader |
( |
std::ostream & |
stream | ) |
|
◆ doMatrix()
void MatrixReadOut::doMatrix |
( |
Matrix * |
CMpointer | ) |
|
Definition at line 963 of file MatrixReadOut.cxx.
972 const ubit16 ROOffset = 2;
990 stripaddress = CHANNEL;
995 stripaddress = CHANNEL;
1000 stripaddress = CHANNEL;
1005 stripaddress = CHANNEL;
1010 stripaddress = CHANNEL;
1015 stripaddress = CHANNEL;
1017 default:
throw std::runtime_error(
"MatrixReadOut::doMatrix: IJK= " +
std::to_string(IJK) +
" out of RANGE");
1022 absTime = 25. * ((
float)
BCID + ((
float)(
TIME - ROOffset)) / 8.);
◆ getCMAHit()
◆ getFooter()
◆ getHeader()
◆ getSubHeader()
◆ initialize()
void MatrixReadOut::initialize |
( |
uint |
NOBXS | ) |
|
|
private |
◆ makeCMABody()
void MatrixReadOut::makeCMABody |
( |
| ) |
|
|
private |
Definition at line 299 of file MatrixReadOut.cxx.
305 throw std::runtime_error(
"MatrixReadOut::makeCMABody: m_CM object does not exist");
◆ makeCMABodyHit()
ubit16 MatrixReadOut::makeCMABodyHit |
( |
| ) |
|
|
private |
Definition at line 336 of file MatrixReadOut.cxx.
350 for (ijk = 0; ijk < 6; ijk++) {
361 if (ijk == 0 || ijk == 2 || ijk == 3)
370 for (lijk = 0; lijk < 32; lijk++) {
375 if (ijk == 3 || ijk == 5)
l = lijk + 32;
416 IJK = 2 * j +
l / 32 + 2;
429 CMABodyval[2] =
TIME;
431 CMABodyval[4] = CHANNEL;
442 throw std::runtime_error(
"MatrixReadOut::makeCMABodyHit: m_CM object does not exist");
◆ makeCMABodyTrg()
ubit16 MatrixReadOut::makeCMABodyTrg |
( |
| ) |
|
|
private |
Definition at line 447 of file MatrixReadOut.cxx.
484 CMABodyval[2] =
TIME;
486 CMABodyval[4] = CHANNEL;
500 over_h = over_h << 2;
503 CHANNEL = (over_h | thresh_h);
512 CMABodyval[2] =
TIME;
514 CMABodyval[4] = CHANNEL;
524 throw std::runtime_error(
"MatrixReadOut::makeHeader: m_CM object does not exist");
◆ makeFooter()
void MatrixReadOut::makeFooter |
( |
| ) |
|
|
private |
Definition at line 309 of file MatrixReadOut.cxx.
313 throw std::runtime_error(
"MatrixReadOut::makeFooter: m_CM object does not exist");
◆ makeFragment()
void MatrixReadOut::makeFragment |
( |
| ) |
|
|
private |
◆ makeHeader()
void MatrixReadOut::makeHeader |
( |
| ) |
|
|
private |
Definition at line 274 of file MatrixReadOut.cxx.
287 throw std::runtime_error(
"MatrixReadOut::makeHeader: m_CM object does not exist");
◆ makeNewHit() [1/2]
void MatrixReadOut::makeNewHit |
( |
ubit16 |
newHit | ) |
|
|
private |
◆ makeNewHit() [2/2]
Definition at line 579 of file MatrixReadOut.cxx.
580 CMROData *newElement;
581 newElement =
new CMROData;
582 newElement->hit = newHit;
583 newElement->next =
next;
◆ makeSubHeader()
void MatrixReadOut::makeSubHeader |
( |
| ) |
|
|
private |
Definition at line 291 of file MatrixReadOut.cxx.
295 throw std::runtime_error(
"MatrixReadOut::makeSubHeader: m_CM object does not exist");
◆ makeTestPattern()
void MatrixReadOut::makeTestPattern |
( |
ubit16 |
mode, |
|
|
ubit16 |
ktimes, |
|
|
int |
eventNum |
|
) |
| |
Definition at line 1037 of file MatrixReadOut.cxx.
1038 std::cout <<
" makeTestPattern " << std::endl;
1043 vhdlinput.open(
"vhdl.input", ios::app);
1044 if (!vhdlinput) { cout <<
" File for vhdl analysis not opened. " << endl <<
" ==================================" << endl << endl; };
1046 const ubit16 maxchan = 100;
1047 const ubit16 maxtimes = 200;
1049 float times[maxtimes] = {0};
1051 strcpy(plane[0],
"I0");
1052 strcpy(plane[1],
"I1");
1053 strcpy(plane[2],
"J0");
1054 strcpy(plane[3],
"J1");
1060 float timeover = 999999.;
1062 float timelast = -timeover;
1064 std::cout <<
this << std::endl;
1067 float timemin = timeover;
1070 int ijk = MRS.
ijk();
1079 if (timemin == timeover) {
1082 ubit16 this_time_counter = 0;
1085 int ijk = MRS.
ijk();
1089 if (
time == timemin && ntimes < maxtimes) {
1090 if (!this_time_counter) ntimes++;
1091 this_time_counter++;
1097 else if (ijk == 2 || ijk == 3)
1099 else if (ijk == 4 || ijk == 5)
1102 if (IJ[ntimes - 1][ijk_index] < maxchan) {
1103 IJ[ntimes - 1][ijk_index]++;
1104 channels[ntimes - 1][ijk_index][IJ[ntimes - 1][ijk_index] - 1] =
channel;
1117 vhdlinput <<
" RUN " <<
run <<
" EVENT " << eventNum <<
" CMID " << cmid <<
" WINDOW " << NBunch;
1118 vhdlinput <<
" LINES " << (ntimes + ktimes) << std::endl;
1121 vhdlinput <<
" TIME " <<
times[
l] <<
" ";
1123 vhdlinput << plane[
i][0] << plane[
i][1] <<
" " << IJ[
l][
i] <<
" ";
1126 vhdlinput << std::endl;
◆ name()
const std::string& BaseObject::name |
( |
| ) |
const |
|
inlineinherited |
◆ numberOfBodyWords()
ubit16 MatrixReadOut::numberOfBodyWords |
( |
| ) |
|
|
inline |
◆ numberOfFragmentWords()
ubit16 MatrixReadOut::numberOfFragmentWords |
( |
| ) |
|
|
inline |
◆ operator=()
◆ overwriteHeader()
void MatrixReadOut::overwriteHeader |
( |
ubit16 |
thisRecord | ) |
|
|
inline |
◆ overwriteSubHeader()
void MatrixReadOut::overwriteSubHeader |
( |
ubit16 |
thisRecord | ) |
|
|
inline |
◆ Print()
virtual void BaseObject::Print |
( |
std::ostream & |
, |
|
|
bool |
|
|
) |
| const |
|
inlinevirtualinherited |
Reimplemented in CMAparameters, RPC_CondCabling::CMApivotdata, RPC_CondCabling::CMAcablingdata, RPC_CondCabling::RPCchamberdata, RPC_CondCabling::WiredORdata, RPC_CondCabling::RPCchamber, CMApatterns, RPC_CondCabling::WiredOR, MuonSimuTrack, RPCdigit, CMAtrigger, PADpatterns, CMAdata, SLpatterns, SLdata, PADdata, RPCtrigDataObject, and bitPATTERN.
Definition at line 25 of file BaseObject.h.
◆ readCMABody()
void MatrixReadOut::readCMABody |
( |
ubit16 * |
Body | ) |
|
◆ readCMABodyCurrent()
ubit16 MatrixReadOut::readCMABodyCurrent |
( |
| ) |
|
◆ readCMAWord()
ubit16 MatrixReadOut::readCMAWord |
( |
| ) |
|
◆ readFooter()
ubit16 MatrixReadOut::readFooter |
( |
| ) |
|
◆ readHeader()
ubit16 MatrixReadOut::readHeader |
( |
| ) |
|
◆ readSubHeader()
ubit16 MatrixReadOut::readSubHeader |
( |
| ) |
|
◆ reComputeFooter()
void MatrixReadOut::reComputeFooter |
( |
| ) |
|
|
inline |
◆ reset()
void MatrixReadOut::reset |
( |
uint |
NOBXS | ) |
|
◆ setManager()
◆ sortAndMakeNewHit()
void MatrixReadOut::sortAndMakeNewHit |
( |
ubit16 |
newHit | ) |
|
|
private |
Definition at line 591 of file MatrixReadOut.cxx.
638 throw std::runtime_error(
"duplicazione di hit???");
◆ tag()
◆ topCMABody()
void MatrixReadOut::topCMABody |
( |
| ) |
|
◆ writeCMABody()
◆ writeFooter()
void MatrixReadOut::writeFooter |
( |
| ) |
|
◆ writeHeader()
void MatrixReadOut::writeHeader |
( |
ubit16 |
CMcode | ) |
|
◆ writeRecord()
void MatrixReadOut::writeRecord |
( |
ubit16 |
thisRecord, |
|
|
bool |
last |
|
) |
| |
◆ writeSubHeader()
void MatrixReadOut::writeSubHeader |
( |
| ) |
|
◆ operator<< [1/2]
std::ostream& operator<< |
( |
std::ostream & |
stream, |
|
|
MatrixReadOut & |
p |
|
) |
| |
|
friend |
◆ operator<< [2/2]
std::ostream& operator<< |
( |
std::ostream & |
stream, |
|
|
MatrixReadOut * |
p |
|
) |
| |
|
friend |
◆ ReadOutManager
friend class ReadOutManager |
|
friend |
◆ m_addressOfWordScanned
ubit16 MatrixReadOut::m_addressOfWordScanned {} |
|
private |
◆ m_Body
◆ m_BodyCurr
◆ m_BodyLast
◆ m_BS
ubit16* MatrixReadOut::m_BS {} |
|
private |
◆ m_BunchFrom
ubit16 MatrixReadOut::m_BunchFrom {} |
|
private |
◆ m_BunchTo
ubit16 MatrixReadOut::m_BunchTo {} |
|
private |
◆ m_checkCR
ubit16 MatrixReadOut::m_checkCR {} |
|
private |
◆ m_checkFooterNum
ubit16 MatrixReadOut::m_checkFooterNum {} |
|
private |
◆ m_checkFooterPos
ubit16 MatrixReadOut::m_checkFooterPos {} |
|
private |
◆ m_checkHeaderNum
ubit16 MatrixReadOut::m_checkHeaderNum {} |
|
private |
◆ m_checkHeaderPos
ubit16 MatrixReadOut::m_checkHeaderPos {} |
|
private |
◆ m_checkSubHeaderNum
ubit16 MatrixReadOut::m_checkSubHeaderNum {} |
|
private |
◆ m_checkSubHeaderPos
ubit16 MatrixReadOut::m_checkSubHeaderPos {} |
|
private |
◆ m_checkUnkown
ubit16 MatrixReadOut::m_checkUnkown {} |
|
private |
◆ m_CM
Matrix* MatrixReadOut::m_CM {} |
|
private |
◆ m_data_version
◆ m_FEL1ID
ubit16 MatrixReadOut::m_FEL1ID {} |
|
private |
◆ m_first8bitsON
ubit16 MatrixReadOut::m_first8bitsON {} |
|
private |
◆ m_Footer
ubit16 MatrixReadOut::m_Footer {} |
|
private |
◆ m_Header
ubit16 MatrixReadOut::m_Header {} |
|
private |
◆ m_MROS
◆ m_myBoss
◆ m_name
std::string BaseObject::m_name |
|
privateinherited |
◆ m_NBunch
ubit16 MatrixReadOut::m_NBunch {} |
|
private |
◆ m_nchan
ubit16 MatrixReadOut::m_nchan[2] {} |
|
private |
◆ m_nclock
ubit16 MatrixReadOut::m_nclock {} |
|
private |
◆ m_NDLLCYC
ubit16 MatrixReadOut::m_NDLLCYC {} |
|
private |
◆ m_numberOfWordsInBody
ubit16 MatrixReadOut::m_numberOfWordsInBody {} |
|
private |
◆ m_numberOfWordsInFrag
ubit16 MatrixReadOut::m_numberOfWordsInFrag {} |
|
private |
◆ m_ROOffset
ubit16 MatrixReadOut::m_ROOffset {} |
|
private |
◆ m_SubHeader
ubit16 MatrixReadOut::m_SubHeader {} |
|
private |
◆ m_tag
◆ m_timeSeparation
ubit16 MatrixReadOut::m_timeSeparation {} |
|
private |
The documentation for this class was generated from the following files:
ubit16 makeBody(ubit16 *inputData)
void putData(int sidemat, int layer, int stripaddress, float time)
void initialize(uint NOBXS)
ubit16 m_checkSubHeaderNum
ubit16 decodeFragment(ubit16 inputWord, char &field)
MatrixReadOut::DataVersion m_data_version
ubit16 numberOfFragmentWords()
MatrixReadOutStructure getHeader()
void displaySubHeader(std::ostream &stream)
int getProjection() const
ubit16 m_addressOfWordScanned
ubit16 m_numberOfWordsInFrag
ubit16 m_checkSubHeaderPos
void displayFooter(std::ostream &stream)
ubit16 checkBodyOrder(bool debugPrint=false)
void setBCzero(ubit16 offset)
ubit16 m_numberOfWordsInBody
ubit16 makeFooter(ubit16 inputData)
void displayHeader(std::ostream &stream)
ubit16 readCMABodyCurrent()
ubit16 makeHeader(ubit16 *inputData)
void displayBody(std::ostream &stream)
std::string to_string(const DetectorType &type)
MatrixReadOutStructure getCMAHit(int index)
BaseObject(ObjectType, const std::string &)
def time(flags, cells_name, *args, **kw)
void sortAndMakeNewHit(ubit16 newHit)
void writeHeader(ubit16 CMcode)
void makeNewHit(ubit16 newHit)
MatrixReadOutStructure m_MROS
unsigned short int ubit16
std::string debugPrint(const IDC_Container *container, unsigned numprint=25)
Diagnostic output of Identifiable Containers.
CMAword rodat[2][2][64][2]
Note array lengths using hardcoded values rather than to depend on NOBXS as they were in the past (as...
ubit16 checkCRC8(ubit16 foot)
ReadOutManager * m_myBoss