Cat
Public Member Functions | Private Attributes | List of all members
FEB_v1 Class Reference

#include <inc/FEB_v1.h>

Inheritance diagram for FEB_v1:
Element Hierarchy Object Attrib

Public Member Functions

 FEB_v1 ()
 Standard constructor. More...
 
virtual ~FEB_v1 ()
 Destructor. More...
 
void help ()
 
StatusCode init ()
 
void reset ()
 
void resetSpi ()
 
void update ()
 
SeqPGAseqPga ()
 
StatusCode setSpyModeSeq (bool)
 
bool spyModeSeq ()
 
StatusCode setSpyModeFE (int, bool)
 
bool spyModeFE (int)
 
StatusCode setDisableSubtract (int, bool)
 
bool disableSubtract (int)
 
StatusCode setOldSubtract (int, bool)
 
bool oldSubtract (int)
 
StatusCode setThreshold (int, int)
 
int threshold (int)
 
StatusCode setLatency (int, int)
 
int latency (int)
 
StatusCode setInjectModeFE (int, bool)
 
bool injectModeFE (int)
 
StatusCode setProbeEnable (int, bool)
 
void probeEnable ()
 
StatusCode setSpareForTrigEnable (int, int)
 
int spareForTrigEnable (int)
 
StatusCode setTestDuration (int)
 
int testDuration (int fpga)
 
StatusCode setStopInjLoop (bool)
 
bool stopInjLoop (int)
 
StatusCode setEnableBXIDReset (bool)
 
bool enableBXIDReset ()
 
StatusCode setGain4 (int, int, bool)
 
StatusCode setPseudoADCEnable (int, int, bool)
 
StatusCode setPseudoPMEnable (int, int, bool)
 
StatusCode setGlobalPseudoPMEnable (int, bool)
 
StatusCode setClockFallingEdge (int, int, bool)
 
StatusCode setClock80MHzFallingEdge (bool)
 
StatusCode setCalibCte (int, int, int)
 
bool gain4 (int, int)
 
bool pseudoADCEnable (int, int)
 
bool pseudoPMEnable (int, int)
 
bool globalPseudoPMEnable (int)
 
bool clockFallingEdge (int, int)
 
bool clock80MHzFallingEdge ()
 
int calibCte (int, int)
 
StatusCode testSequence ()
 
StatusCode setExtTrig (bool trig)
 
bool extTrig ()
 
void readFifo (int, int, unsigned int *)
 
void readFifoSpyFE (int fe, int dump)
 
void readFifoLLTFE (int fe, int dump)
 
void readFifoInjectFE (int fe, int dump)
 
void readFifoLLT (int dump)
 
void maskLLT ()
 
void latencyLLT ()
 
StatusCode setMaskLLT (int, bool)
 
StatusCode setMaskLLTCorner (bool)
 
StatusCode setMaskLLTUpNb (int, bool)
 
StatusCode setMaskLLTSideNb (int, bool)
 
StatusCode setLatencyLLT (int)
 
StatusCode setLatencyLLTCorner (int)
 
StatusCode setLatencyLLTUpNb (int)
 
StatusCode setLatencyLLTSideNb (int)
 
StatusCode setOutputEport (int, int, int)
 
int latencyEport (int)
 
int clockPhaseEport (int)
 
StatusCode setOutputEport (int, int, int, int)
 
int latencyEport (int, int)
 
int clockPhaseEport (int, int)
 
void writeFifoSpyFE (int fe)
 
void writeFifoLLTFE (int fe)
 
void writeFifoInjectFE (int fe, int pattern)
 
void writeDataFifoInjectFE (int, int *, int *, int *, int *)
 
void writeFifoLLT ()
 
StatusCode resetFifoSpyFE (int)
 
StatusCode resetFifoInjectFE (int)
 
StatusCode resetFE (int)
 
int statusRegister (int)
 
Datadata ()
 
RAMramInj (int i)
 
RAMramSpy (int i)
 
StatusCode setGbtMode (int, int)
 
int gbtMode (int)
 
StatusCode setGbtDataPath (int, int, int, int)
 
int gbtDataPath (int)
 
StatusCode setGbtTrackMode (int, int)
 
int gbtTrackMode (int)
 
StatusCode setGbtTermEport (int, bool)
 
bool gbtTermEport (int)
 
StatusCode setGbt80MHzClkEport (int)
 
bool gbt80MHzClkEport (int)
 
StatusCode setGbtDLLEport (int)
 
void gbtDLLEport (int)
 
StatusCode setGbtEnableEport (int, bool)
 
bool gbtEnableEport (int)
 
int gbtStatus (int)
 
StatusCode setGbtClockStrength (int, int)
 
int gbtClockStrength (int)
 
StatusCode gbtDLLReset (int)
 
StatusCode gbtAcknowledgeConfig (int)
 
- Public Member Functions inherited from Element
 Element ()
 Standard constructor. More...
 
virtual ~Element ()
 Destructor. More...
 
void recursiveInitElement ()
 
void recursiveInitCommunications ()
 
StatusCode setConnection (Hierarchy *)
 
Hierarchyconnection ()
 
- Public Member Functions inherited from Hierarchy
 Hierarchy ()
 Standard constructor. More...
 
virtual ~Hierarchy ()
 Destructor. More...
 
void clear ()
 
void setParent (Hierarchy *parent)
 
Hierarchyparent ()
 
Hierarchyparent (std::string)
 
Hierarchyorigin ()
 
virtual void addChild (Hierarchy *element)
 
std::vector< Hierarchy * > children ()
 
Hierarchychild (std::string)
 
HierarchychildTyped (std::string)
 
unsigned long numberOfChildren ()
 
bool hasChildren ()
 
void delChild (Hierarchy *)
 
void delChild (std::string)
 
std::string path (std::string=std::string(""))
 
std::string pathTyped (std::string=std::string(""))
 
void tree (std::string indent=std::string(""))
 
void tree ()
 
- Public Member Functions inherited from Object
 Object ()
 Standard constructor. More...
 
virtual ~Object ()
 Destructor. More...
 
std::string name () const
 
std::string type ()
 
unsigned char id ()
 
std::string title ()
 
void msgSvc (int level, std::string msg, std::string name)
 
void msg (std::string mymsg)
 
void verbose (std::string mymsg)
 
void debug (std::string mymsg)
 
void info (std::string mymsg)
 
void warning (std::string mymsg)
 
void error (std::string mymsg)
 
void fatal (std::string mymsg)
 
void msg (std::string mymsg, std::string name)
 
void verbose (std::string mymsg, std::string name)
 
void debug (std::string mymsg, std::string name)
 
void info (std::string mymsg, std::string name)
 
void warning (std::string mymsg, std::string name)
 
void error (std::string mymsg, std::string name)
 
void fatal (std::string mymsg, std::string name)
 
void setName (std::string name)
 
void setType (std::string type)
 
void setId (unsigned char id)
 
void setTitle (std::string title)
 
void setDllName (std::string dllName)
 
std::string dllName ()
 
- Public Member Functions inherited from Attrib
 Attrib ()
 Standard constructor. More...
 
virtual ~Attrib ()
 Destructor. More...
 
bool is (int attribut)
 
void add (int attribut)
 
void remove (int attribut)
 
std::string attributs ()
 

Private Attributes

int m_fifoDepth
 
int m_seqAddress
 
int m_feAddress [8]
 
int m_gbtAddress [4]
 
int m_icecalAddress [8]
 
int m_fifoSpyAddress [3]
 
int m_fifoLLTAddress [3]
 
int m_fifoInjectAddress [3]
 
int m_fifoTrigAddress [3]
 
SeqPGAm_seqPga
 
unsigned int * m_fifo [3]
 
int * m_ch [4]
 
Datam_data
 
int m_mask0
 
int m_mask1
 
int m_mask2
 
int m_latency0
 
int m_latency1
 
int m_latency2
 
int m_latency3
 
RAMm_ramInj [3]
 
RAMm_ramSpy [3]
 
RAMm_fifoUsbTest
 

Additional Inherited Members

- Public Types inherited from Attrib
enum  Attribut {
  UNDEFINED, PASSIVE, ACTIVE, INTERFACE,
  IO, IODATA, ELEMENT, HARDWARE,
  PROCESSUS, SOFTWARE
}
 
- Protected Attributes inherited from Element
Hierarchym_connection
 
- Protected Attributes inherited from Attrib
std::string m_attribString [10]
 

Detailed Description

Author
Date
2006-10-23

Definition at line 21 of file FEB_v1.h.

Constructor & Destructor Documentation

◆ FEB_v1()

FEB_v1::FEB_v1 ( )

Standard constructor.

Definition at line 18 of file FEB_v1.cpp.

References Attrib::add(), Hierarchy::addChild(), Data::addDataStream(), Attrib::ELEMENT, Attrib::HARDWARE, itos(), m_ch, m_data, m_feAddress, m_fifo, m_fifoDepth, m_fifoInjectAddress, m_fifoLLTAddress, m_fifoSpyAddress, m_fifoTrigAddress, m_fifoUsbTest, m_gbtAddress, m_icecalAddress, m_ramInj, m_ramSpy, m_seqAddress, m_seqPga, seqPga(), IOobject::setAddress(), Object::setName(), RAM::setSize(), Object::setType(), and SeqPGA::usb().

18  {
19  setName("FEB_v1");
20  setType("FEB_v1");
22 
23  m_fifoDepth = 1024;
24 
25  m_feAddress[0] = 1;
26  m_feAddress[1] = 2;
27  m_feAddress[2] = 5;
28  m_feAddress[3] = 6;
29  m_feAddress[4] = 9;
30  m_feAddress[5] = 10;
31  m_feAddress[6] = 13;
32  m_feAddress[7] = 14;
33 
34  m_seqAddress = 17 ;
35 
36  m_gbtAddress[0] = 1;
37  m_gbtAddress[1] = 2;
38  m_gbtAddress[2] = 3;
39  m_gbtAddress[3] = 4;
40 
41  m_icecalAddress[0] = 3;
42  m_icecalAddress[1] = 4;
43  m_icecalAddress[2] = 7;
44  m_icecalAddress[3] = 8;
45  m_icecalAddress[4] = 11;
46  m_icecalAddress[5] = 12;
47  m_icecalAddress[6] = 15;
48  m_icecalAddress[7] = 16;
49 
50  m_fifoSpyAddress[0] = 20;
51  m_fifoSpyAddress[1] = 21;
52  m_fifoSpyAddress[2] = 22;
53 
54  m_fifoInjectAddress[0] = 23;
55  m_fifoInjectAddress[1] = 24;
56  m_fifoInjectAddress[2] = 25;
57 
58  m_fifoLLTAddress[0] = 26;
59  m_fifoLLTAddress[1] = 27;
60  m_fifoLLTAddress[2] = 29;
61 
62  m_fifoTrigAddress[0] = 10;
63  m_fifoTrigAddress[1] = 11;
64  m_fifoTrigAddress[2] = 17;
65 
66  m_seqPga =new SeqPGA();
67  m_seqPga->setName("SeqPGA");
69 
70  m_fifo[0] = new unsigned int[m_fifoDepth];
71  m_fifo[1] = new unsigned int[m_fifoDepth];
72  m_fifo[2] = new unsigned int[m_fifoDepth];
73 
74  m_ch[0] = new int[m_fifoDepth];
75  m_ch[1] = new int[m_fifoDepth];
76  m_ch[2] = new int[m_fifoDepth];
77  m_ch[3] = new int[m_fifoDepth];
78 
79  for (int i = 0; i<3; ++i){
80  m_ramInj[i] = new RAM();
81  m_ramSpy[i] = new RAM();
82  seqPga()->usb()->addChild(m_ramInj[i]);
83  seqPga()->usb()->addChild(m_ramSpy[i]);
84  m_ramInj[i]->setAddress(13); // for debug
86  m_ramInj[i]->setSize(16, m_fifoDepth);
87  m_ramSpy[i]->setSize(16, m_fifoDepth);
88  }
89 
90  m_fifoUsbTest = new RAM();
92  m_fifoUsbTest->setSize(16,256);
93  m_fifoUsbTest->setName("FifoUsbTest");
95 
96  m_data = new Data();
97  for (int ch=0; ch<32; ++ch){
98  m_data->addDataStream("ch"+itos(ch), "Channel "+itos(ch));
99  }
100  m_data->addDataStream("llt_fifo0", "llt_fifo0");
101  m_data->addDataStream("llt_fifo1", "llt_fifo1");
102 
103 }
std::string itos(int)
Definition: Tools.cpp:46
void addDataStream(std::string, std::string)
Definition: Data.cpp:31
Definition: RAM.h:16
RAM * m_ramSpy[3]
Definition: FEB_v1.h:200
int m_fifoLLTAddress[3]
Definition: FEB_v1.h:185
StatusCode setSize(unsigned int, unsigned int)
Definition: RAM.cpp:29
void add(int attribut)
Definition: Attrib.h:67
int m_fifoSpyAddress[3]
Definition: FEB_v1.h:184
void setName(std::string name)
Definition: Object.h:51
int m_fifoDepth
Definition: FEB_v1.h:179
int m_gbtAddress[4]
Definition: FEB_v1.h:182
int m_fifoInjectAddress[3]
Definition: FEB_v1.h:186
int m_seqAddress
Definition: FEB_v1.h:180
int m_icecalAddress[8]
Definition: FEB_v1.h:183
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
void setType(std::string type)
Definition: Object.h:52
unsigned int * m_fifo[3]
Definition: FEB_v1.h:189
UsbFTMLInterface * usb()
Definition: SeqPGA.h:75
void setAddress(U32 address)
Definition: IOobject.h:84
SeqPGA * seqPga()
Definition: FEB_v1.h:63
int m_feAddress[8]
Definition: FEB_v1.h:181
int * m_ch[4]
Definition: FEB_v1.h:190
virtual void addChild(Hierarchy *element)
Definition: Hierarchy.cpp:83
Definition: Data.h:16
Data * m_data
Definition: FEB_v1.h:191
RAM * m_fifoUsbTest
Definition: FEB_v1.h:201
RAM * m_ramInj[3]
Definition: FEB_v1.h:199
Definition: SeqPGA.h:23
int m_fifoTrigAddress[3]
Definition: FEB_v1.h:187

◆ ~FEB_v1()

FEB_v1::~FEB_v1 ( )
virtual

Destructor.

Definition at line 107 of file FEB_v1.cpp.

107  {
108 }

Member Function Documentation

◆ calibCte()

int FEB_v1::calibCte ( int  fe,
int  ch 
)

Definition at line 998 of file FEB_v1.cpp.

References Object::info(), itos(), m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), and SeqPGA::spiRead().

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

998  {
1000  int val = (m_seqPga->spiRead(4+ch))&0xFF;
1001  info("Calib Constante FE "+itos(fe)+" - Ch "+itos(ch)+" : "+itos(val),"FEB_v1::calibCte");
1002  return (bool)(val);
1003 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int m_feAddress[8]
Definition: FEB_v1.h:181
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ clock80MHzFallingEdge()

bool FEB_v1::clock80MHzFallingEdge ( )

Definition at line 971 of file FEB_v1.cpp.

References Object::info(), itos(), m_seqAddress, m_seqPga, SeqPGA::setSpiAdd(), and SeqPGA::spiRead().

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

971  {
973  int val = (m_seqPga->spiRead(1)>>4)&1;
974  info("clock 80MHz Falling Edge : "+itos(val),"FEB_v1::clock80MHzFallingEdge");
975  return (bool)(val);
976 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
int m_seqAddress
Definition: FEB_v1.h:180
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ clockFallingEdge()

bool FEB_v1::clockFallingEdge ( int  fe,
int  ch 
)

Definition at line 949 of file FEB_v1.cpp.

References Object::info(), itos(), m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), and SeqPGA::spiRead().

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

949  {
951  int val = (m_seqPga->spiRead(4+ch)>>8)&1;
952  info("clock Falling Edge FE "+itos(fe)+" - Ch "+itos(ch)+" : "+itos(val),"FEB_v1::clockFallingEdge");
953  return (bool)(val);
954 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int m_feAddress[8]
Definition: FEB_v1.h:181
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ clockPhaseEport() [1/2]

int FEB_v1::clockPhaseEport ( int  gbt)

Definition at line 1575 of file FEB_v1.cpp.

References m_seqAddress, m_seqPga, SeqPGA::setSpiAdd(), and SeqPGA::spiRead().

Referenced by BOOST_PYTHON_MODULE(), and extTrig().

1575  {
1577  return ((m_seqPga->spiRead(20+gbt)>>8)&0xFF);
1578 }
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
int m_seqAddress
Definition: FEB_v1.h:180
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ clockPhaseEport() [2/2]

int FEB_v1::clockPhaseEport ( int  fe,
int  ch 
)

Definition at line 1600 of file FEB_v1.cpp.

References m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), and SeqPGA::spiRead().

1600  {
1602  return ((m_seqPga->spiRead(14+ch)>>6)&0x3F);
1603 }
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int m_feAddress[8]
Definition: FEB_v1.h:181
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ data()

Data* FEB_v1::data ( )
inline

◆ disableSubtract()

bool FEB_v1::disableSubtract ( int  fe)

Definition at line 754 of file FEB_v1.cpp.

References Object::info(), itos(), m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), and SeqPGA::spiRead().

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

754  {
756  int val = (m_seqPga->spiRead(1)>>9)&1;
757  info("Disable Subtraction FE "+itos(fe)+": "+itos(val),"FEB_v1::disableSubtract");
758  return val;
759 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int m_feAddress[8]
Definition: FEB_v1.h:181
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ enableBXIDReset()

bool FEB_v1::enableBXIDReset ( )

Definition at line 773 of file FEB_v1.cpp.

References data(), m_seqAddress, m_seqPga, SeqPGA::setSpiAdd(), and SeqPGA::spiRead().

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

773  {
775  int data=m_seqPga->spiRead(1);
776  return ( data >>11 ) & 1;
777 }
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
int m_seqAddress
Definition: FEB_v1.h:180
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
Data * data()
Definition: FEB_v1.h:147
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ extTrig()

bool FEB_v1::extTrig ( )
inline

◆ gain4()

bool FEB_v1::gain4 ( int  fe,
int  ch 
)

Definition at line 845 of file FEB_v1.cpp.

References Object::info(), itos(), m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), and SeqPGA::spiRead().

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

845  {
847  int val = (m_seqPga->spiRead(4+ch)>>11)&1;
848  info("Gain4 FE "+itos(fe)+" - Ch "+itos(ch)+" : "+itos(val),"FEB_v1::gain4");
849  return (bool)(val);
850 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int m_feAddress[8]
Definition: FEB_v1.h:181
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ gbt80MHzClkEport()

bool FEB_v1::gbt80MHzClkEport ( int  gbt)

Definition at line 1373 of file FEB_v1.cpp.

References SeqPGA::i2cRead(), Object::info(), itos(), m_gbtAddress, m_seqPga, and SeqPGA::setI2cAdd().

Referenced by BOOST_PYTHON_MODULE(), and ramSpy().

1373  {
1375  int mode = m_seqPga->i2cRead(63);
1376  info("Eport clock for the GBT (63) "+itos(gbt)+" is "+itos(m_seqPga->i2cRead(63)));
1377  info("Eport clock for the GBT (87) "+itos(gbt)+" is "+itos(m_seqPga->i2cRead(87)));
1378  info("Eport clock for the GBT (111) "+itos(gbt)+" is "+itos(m_seqPga->i2cRead(111)));
1379  info("Eport clock for the GBT (135) "+itos(gbt)+" is "+itos(m_seqPga->i2cRead(135)));
1380  info("Eport clock for the GBT (159) "+itos(gbt)+" is "+itos(m_seqPga->i2cRead(159)));
1381  info("Eport clock for the GBT (183) "+itos(gbt)+" is "+itos(m_seqPga->i2cRead(183)));
1382  info("Eport clock for the GBT (207) "+itos(gbt)+" is "+itos(m_seqPga->i2cRead(207)));
1383  return mode;
1384 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
int m_gbtAddress[4]
Definition: FEB_v1.h:182
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode i2cRead()
Definition: SeqPGA.cpp:510
StatusCode setI2cAdd(unsigned long int)
Definition: SeqPGA.cpp:482

◆ gbtAcknowledgeConfig()

StatusCode FEB_v1::gbtAcknowledgeConfig ( int  gbt)

Definition at line 1656 of file FEB_v1.cpp.

References StatusCode::FAILURE, SeqPGA::i2cWrite(), StatusCode::isFailure(), itos(), m_gbtAddress, m_seqPga, SeqPGA::setI2cAdd(), StatusCode::SUCCESS, and Object::warning().

Referenced by BOOST_PYTHON_MODULE(), and ramSpy().

1656  {
1658  if (m_seqPga->i2cWrite(365, 170).isFailure()){
1659  warning("Cannot acknowledge configuration of GBT "+itos(gbt));
1660  return StatusCode::FAILURE;
1661  }
1662  return StatusCode::SUCCESS;
1663 }
std::string itos(int)
Definition: Tools.cpp:46
bool isFailure() const
Definition: StatusCode.h:68
int m_gbtAddress[4]
Definition: FEB_v1.h:182
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode setI2cAdd(unsigned long int)
Definition: SeqPGA.cpp:482
StatusCode i2cWrite()
Definition: SeqPGA.cpp:535
void warning(std::string mymsg)
Definition: Object.h:39

◆ gbtClockStrength()

int FEB_v1::gbtClockStrength ( int  gbt)

Definition at line 1542 of file FEB_v1.cpp.

References SeqPGA::i2cRead(), m_gbtAddress, m_seqPga, SeqPGA::setI2cAdd(), and Object::warning().

Referenced by BOOST_PYTHON_MODULE(), and ramSpy().

1542  {
1543  int ports[4]={ 269, 270, 271, 272 };
1545  int val0 = m_seqPga->i2cRead(ports[0])&0xF;
1546  int val1 = m_seqPga->i2cRead(ports[1])&0xF;
1547  int val2 = m_seqPga->i2cRead(ports[2])&0xF;
1548  int val3 = m_seqPga->i2cRead(ports[3])&0xF;
1549  if ( val1 != val0 || val2 != val0 || val3 != val0 ){
1550  warning("Output clock strength registers are not identical");
1551  return -1;
1552  }
1553  if ( (val0&0xF) != ((val0&0xF0)>>4)){
1554  warning("Output clock strength registers are not identical");
1555  return -1;
1556  }
1557  return val0&0xF;
1558 }
int m_gbtAddress[4]
Definition: FEB_v1.h:182
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode i2cRead()
Definition: SeqPGA.cpp:510
StatusCode setI2cAdd(unsigned long int)
Definition: SeqPGA.cpp:482
void warning(std::string mymsg)
Definition: Object.h:39

◆ gbtDataPath()

int FEB_v1::gbtDataPath ( int  gbt)

Definition at line 1239 of file FEB_v1.cpp.

References SeqPGA::i2cRead(), Object::info(), itos(), m_gbtAddress, m_seqPga, and SeqPGA::setI2cAdd().

Referenced by BOOST_PYTHON_MODULE(), and ramSpy().

1239  {
1241  int mode = m_seqPga->i2cRead(29);
1242  info("Data Path (A) of the GBT "+itos(gbt)+" is "+itos(mode));
1243  info("Data Path (B) of the GBT "+itos(gbt)+" is "+itos(m_seqPga->i2cRead(30)));
1244  info("Data Path (C) of the GBT "+itos(gbt)+" is "+itos(m_seqPga->i2cRead(31)));
1245  return mode;
1246 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
int m_gbtAddress[4]
Definition: FEB_v1.h:182
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode i2cRead()
Definition: SeqPGA.cpp:510
StatusCode setI2cAdd(unsigned long int)
Definition: SeqPGA.cpp:482

◆ gbtDLLEport()

void FEB_v1::gbtDLLEport ( int  gbt)

Definition at line 1467 of file FEB_v1.cpp.

References SeqPGA::i2cRead(), Object::info(), itos(), m_gbtAddress, m_seqPga, and SeqPGA::setI2cAdd().

Referenced by BOOST_PYTHON_MODULE(), and ramSpy().

1467  {
1469  info("Eport DLL Charge pump for the GBT (64) "+itos(gbt)+" is "+itos(m_seqPga->i2cRead(64)));
1470  info("Eport DLL Charge pump for the GBT (65) "+itos(gbt)+" is "+itos(m_seqPga->i2cRead(65)));
1471  info("Eport DLL Charge pump for the GBT (88) "+itos(gbt)+" is "+itos(m_seqPga->i2cRead(88)));
1472  info("Eport DLL Charge pump for the GBT (89) "+itos(gbt)+" is "+itos(m_seqPga->i2cRead(89)));
1473  info("Eport DLL Charge pump for the GBT (112) "+itos(gbt)+" is "+itos(m_seqPga->i2cRead(112)));
1474  info("Eport DLL Charge pump for the GBT (113) "+itos(gbt)+" is "+itos(m_seqPga->i2cRead(113)));
1475  info("Eport DLL Charge pump for the GBT (136) "+itos(gbt)+" is "+itos(m_seqPga->i2cRead(136)));
1476  info("Eport DLL Charge pump for the GBT (137) "+itos(gbt)+" is "+itos(m_seqPga->i2cRead(137)));
1477  info("Eport DLL Charge pump for the GBT (160) "+itos(gbt)+" is "+itos(m_seqPga->i2cRead(160)));
1478  info("Eport DLL Charge pump for the GBT (161) "+itos(gbt)+" is "+itos(m_seqPga->i2cRead(161)));
1479  info("Eport DLL Charge pump for the GBT (184) "+itos(gbt)+" is "+itos(m_seqPga->i2cRead(184)));
1480  info("Eport DLL Charge pump for the GBT (185) "+itos(gbt)+" is "+itos(m_seqPga->i2cRead(185)));
1481  info("Eport DLL Charge pump for the GBT (208) "+itos(gbt)+" is "+itos(m_seqPga->i2cRead(208)));
1482  info("Eport DLL Charge pump for the GBT (209) "+itos(gbt)+" is "+itos(m_seqPga->i2cRead(209)));
1483  info("Eport DLL Charge pump for the GBT (231) "+itos(gbt)+" is "+itos(m_seqPga->i2cRead(231)));
1484  info("Eport DLL Charge pump for the GBT (232) "+itos(gbt)+" is "+itos(m_seqPga->i2cRead(232)));
1485 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
int m_gbtAddress[4]
Definition: FEB_v1.h:182
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode i2cRead()
Definition: SeqPGA.cpp:510
StatusCode setI2cAdd(unsigned long int)
Definition: SeqPGA.cpp:482

◆ gbtDLLReset()

StatusCode FEB_v1::gbtDLLReset ( int  gbt)

Definition at line 1614 of file FEB_v1.cpp.

References StatusCode::FAILURE, SeqPGA::i2cRead(), SeqPGA::i2cWrite(), Object::info(), StatusCode::isFailure(), itos(), m_gbtAddress, m_seqPga, SeqPGA::setI2cAdd(), StatusCode::SUCCESS, and Object::warning().

Referenced by BOOST_PYTHON_MODULE(), and ramSpy().

1614  {
1616  int registers[8]={
1617  65, 89, 113, 137, 161, 185, 209, 232
1618  };
1619  int zero = 0;
1620  int one = 7;
1621  for ( int i =0; i<8; ++i){
1622  int val = m_seqPga->i2cRead(registers[i]);
1623  int val0 = val & (0b10001111);
1624  int val1 = val | (0b1110000);
1625  StatusCode stat1 = m_seqPga->i2cWrite(registers[i], val1);
1626  StatusCode stat0 = m_seqPga->i2cWrite(registers[i], val0);
1627  if (stat0.isFailure() || stat1.isFailure()){
1628  warning("Could not reset DLL register "+itos(registers[i])+" of GBT "+itos(gbt));
1629  return StatusCode::FAILURE;
1630  }
1631  }
1632  info("Reset of the DLL of GBT "+itos(gbt));
1633  return StatusCode::SUCCESS;
1634 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
bool isFailure() const
Definition: StatusCode.h:68
int m_gbtAddress[4]
Definition: FEB_v1.h:182
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode i2cRead()
Definition: SeqPGA.cpp:510
StatusCode setI2cAdd(unsigned long int)
Definition: SeqPGA.cpp:482
StatusCode i2cWrite()
Definition: SeqPGA.cpp:535
void warning(std::string mymsg)
Definition: Object.h:39

◆ gbtEnableEport()

bool FEB_v1::gbtEnableEport ( int  gbt)

Definition at line 1515 of file FEB_v1.cpp.

References SeqPGA::i2cRead(), Object::info(), itos(), m_gbtAddress, m_seqPga, and SeqPGA::setI2cAdd().

Referenced by BOOST_PYTHON_MODULE(), and ramSpy().

1515  {
1516  int ports[21]={81, 82, 83, 105, 106, 107, 129, 130, 131, 153, 154,
1517  155, 177, 178, 179, 201, 202, 203, 225, 226, 227};
1519  for (int i = 0; i<21; ++i){
1520  info("Eport enable ("+itos(ports[i])+") for the GBT "+itos(gbt)+" : "+itos(m_seqPga->i2cRead(ports[i])));
1521  }
1522  return m_seqPga->i2cRead(ports[0])&1;
1523 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
int m_gbtAddress[4]
Definition: FEB_v1.h:182
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode i2cRead()
Definition: SeqPGA.cpp:510
StatusCode setI2cAdd(unsigned long int)
Definition: SeqPGA.cpp:482

◆ gbtMode()

int FEB_v1::gbtMode ( int  gbt)

Definition at line 1202 of file FEB_v1.cpp.

References SeqPGA::i2cRead(), Object::info(), itos(), m_gbtAddress, m_seqPga, and SeqPGA::setI2cAdd().

Referenced by BOOST_PYTHON_MODULE(), and ramSpy().

1202  {
1203  std::string modes[4] = {
1204  "Normal operating mode",
1205  "Fixed pattern mode",
1206  "30 bit counter",
1207  "7 bit shift register"
1208  };
1210  int mode = m_seqPga->i2cRead(28);
1211  info("Tx mode of the GBT "+itos(gbt)+
1212  " is : "+modes[mode]+" ["+itos(mode)+"]");
1213  return mode;
1214 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
int m_gbtAddress[4]
Definition: FEB_v1.h:182
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode i2cRead()
Definition: SeqPGA.cpp:510
StatusCode setI2cAdd(unsigned long int)
Definition: SeqPGA.cpp:482

◆ gbtStatus()

int FEB_v1::gbtStatus ( int  gbt)

Definition at line 1640 of file FEB_v1.cpp.

References Object::error(), SeqPGA::i2cRead(), Object::info(), itos(), m_gbtAddress, m_seqPga, and SeqPGA::setI2cAdd().

Referenced by BOOST_PYTHON_MODULE(), and ramSpy().

1640  {
1642  int status_gbt = (m_seqPga->i2cRead(431) >> 2);
1643  if (status_gbt==24){
1644  info("GBT status is 0d"+ itos(status_gbt),"GBT Config");
1645  }
1646  else {
1647  error("GBT status is 0d"+ itos(status_gbt),"GBT Config");
1648  }
1649  return status_gbt;
1650 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
int m_gbtAddress[4]
Definition: FEB_v1.h:182
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
void error(std::string mymsg)
Definition: Object.h:40
StatusCode i2cRead()
Definition: SeqPGA.cpp:510
StatusCode setI2cAdd(unsigned long int)
Definition: SeqPGA.cpp:482

◆ gbtTermEport()

bool FEB_v1::gbtTermEport ( int  gbt)

Definition at line 1322 of file FEB_v1.cpp.

References SeqPGA::i2cRead(), Object::info(), itos(), m_gbtAddress, m_seqPga, and SeqPGA::setI2cAdd().

Referenced by BOOST_PYTHON_MODULE(), and ramSpy().

1322  {
1324  info("Eport termination of the GBT (320) "+itos(gbt)+" is "+itos(m_seqPga->i2cRead(320)&1));
1325  info("Eport termination of the GBT (321) "+itos(gbt)+" is "+itos(m_seqPga->i2cRead(321)&1));
1326  info("Eport termination of the GBT (322) "+itos(gbt)+" is "+itos(m_seqPga->i2cRead(322)&1));
1327  info("Eport termination of the GBT (323) "+itos(gbt)+" is "+itos(m_seqPga->i2cRead(323)&1));
1328  info("Eport termination of the GBT (324) "+itos(gbt)+" is "+itos(m_seqPga->i2cRead(324)&1));
1329  info("Eport termination of the GBT (325) "+itos(gbt)+" is "+itos(m_seqPga->i2cRead(325)&1));
1330  info("Eport termination of the GBT (326) "+itos(gbt)+" is "+itos(m_seqPga->i2cRead(326)&1));
1331  return m_seqPga->i2cRead(320)&1;
1332 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
int m_gbtAddress[4]
Definition: FEB_v1.h:182
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode i2cRead()
Definition: SeqPGA.cpp:510
StatusCode setI2cAdd(unsigned long int)
Definition: SeqPGA.cpp:482

◆ gbtTrackMode()

int FEB_v1::gbtTrackMode ( int  gbt)

Definition at line 1268 of file FEB_v1.cpp.

References SeqPGA::i2cRead(), Object::info(), itos(), m_gbtAddress, m_seqPga, and SeqPGA::setI2cAdd().

Referenced by BOOST_PYTHON_MODULE(), and ramSpy().

1268  {
1269  std::string str_mode[3]={
1270  "Static phase selection",
1271  "Training mode",
1272  "Automatic phase tracking"
1273  };
1275  int mode = m_seqPga->i2cRead(62);
1276  info("Track mode of the GBT "+itos(gbt)+" is : "+itos(mode)+" -> "+str_mode[mode&0b11]);
1277  return mode;
1278 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
int m_gbtAddress[4]
Definition: FEB_v1.h:182
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode i2cRead()
Definition: SeqPGA.cpp:510
StatusCode setI2cAdd(unsigned long int)
Definition: SeqPGA.cpp:482

◆ globalPseudoPMEnable()

bool FEB_v1::globalPseudoPMEnable ( int  fe)

Definition at line 922 of file FEB_v1.cpp.

References Object::info(), itos(), m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), and SeqPGA::spiRead().

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

922  {
924  int val = (m_seqPga->spiRead(1)>>10)&1;
925  info("Global Pseudo PM Enable FE "+itos(fe)+" : "+itos(val),"FEB_v1::globalPseudoPMEnable");
926  return (bool)(val);
927 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int m_feAddress[8]
Definition: FEB_v1.h:181
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ help()

void FEB_v1::help ( )
inlinevirtual

printout help for the element

Implements Element.

Definition at line 31 of file FEB_v1.h.

References Object::info(), and Object::name().

31 { info("FEB_v1 "+name()+". No help.","FEB_v1::help"); };
void info(std::string mymsg)
Definition: Object.h:38
std::string name() const
Definition: Object.h:28

◆ init()

StatusCode FEB_v1::init ( )
inlinevirtual

init the component

Returns
void

Implements Element.

Definition at line 37 of file FEB_v1.h.

References StatusCode::SUCCESS.

37  {
38  return StatusCode::SUCCESS;
39  };

◆ injectModeFE()

bool FEB_v1::injectModeFE ( int  fe)

Definition at line 818 of file FEB_v1.cpp.

References Object::info(), itos(), m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), and SeqPGA::spiRead().

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

818  {
820  int val = (m_seqPga->spiRead(1)>>10)&1;
821  info("Inject Mode FE "+itos(fe)+": "+itos(val),"FEB_v1::injectModeFE");
822  return (bool)(val);
823 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int m_feAddress[8]
Definition: FEB_v1.h:181
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ latency()

int FEB_v1::latency ( int  fe)

Definition at line 731 of file FEB_v1.cpp.

References Object::info(), itos(), m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), and SeqPGA::spiRead().

Referenced by BOOST_PYTHON_MODULE(), latencyLLT(), seqPga(), setLatencyLLT(), setLatencyLLTCorner(), setLatencyLLTSideNb(), and setLatencyLLTUpNb().

731  {
733  int val = (m_seqPga->spiRead(1))&(0xFF);
734  info("latency FE "+itos(fe)+": "+itos(val),"FEB_v1::latency");
735  return val;
736 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int m_feAddress[8]
Definition: FEB_v1.h:181
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ latencyEport() [1/2]

int FEB_v1::latencyEport ( int  gbt)

Definition at line 1580 of file FEB_v1.cpp.

References m_seqAddress, m_seqPga, SeqPGA::setSpiAdd(), and SeqPGA::spiRead().

Referenced by BOOST_PYTHON_MODULE(), and extTrig().

1580  {
1582  return (m_seqPga->spiRead(20+gbt)&0xFF);
1583 }
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
int m_seqAddress
Definition: FEB_v1.h:180
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ latencyEport() [2/2]

int FEB_v1::latencyEport ( int  fe,
int  ch 
)

Definition at line 1605 of file FEB_v1.cpp.

References m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), and SeqPGA::spiRead().

1605  {
1607  return (m_seqPga->spiRead(14+ch)&0x3F);
1608 }
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int m_feAddress[8]
Definition: FEB_v1.h:181
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ latencyLLT()

void FEB_v1::latencyLLT ( )

Definition at line 1009 of file FEB_v1.cpp.

References Object::info(), itos(), latency(), m_latency0, m_latency1, m_latency2, m_latency3, m_seqAddress, m_seqPga, SeqPGA::setSpiAdd(), and SeqPGA::spiRead().

Referenced by BOOST_PYTHON_MODULE(), and extTrig().

1009  {
1011  int latency = m_seqPga->spiRead(3);
1012  m_latency0=(latency>>12)&0xF;
1013  m_latency1=(latency>>8)&0xF;
1014  m_latency2=(latency>>4)&0xF;
1015  m_latency3=latency&0xF;
1016  info("LLT Channel latency : "+itos(m_latency0));
1017  info("LLT Up nb latency : "+itos(m_latency1));
1018  info("LLT Side nb latency : "+itos(m_latency2));
1019  info("LLT Corner latency : "+itos(m_latency3));
1020 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
int m_latency0
Definition: FEB_v1.h:195
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
int m_seqAddress
Definition: FEB_v1.h:180
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int latency(int)
Definition: FEB_v1.cpp:731
int m_latency1
Definition: FEB_v1.h:196
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337
int m_latency2
Definition: FEB_v1.h:197
int m_latency3
Definition: FEB_v1.h:198

◆ maskLLT()

void FEB_v1::maskLLT ( )

Definition at line 1091 of file FEB_v1.cpp.

References Object::info(), itos(), m_mask0, m_mask1, m_mask2, m_seqAddress, m_seqPga, SeqPGA::setSpiAdd(), and SeqPGA::spiRead().

Referenced by BOOST_PYTHON_MODULE(), and extTrig().

1091  {
1093  m_mask0=m_seqPga->spiRead(4);
1094  m_mask1=m_seqPga->spiRead(5);
1095  m_mask2=m_seqPga->spiRead(6);
1096  for (int i = 0; i<16; ++i){
1097  info("Channel "+itos(i)+" masked status : "+itos((m_mask0>>i)&1));
1098  }
1099  for (int i = 0; i<16; ++i){
1100  info("Channel "+itos(i+16)+" masked status : "+itos((m_mask1>>i)&1));
1101  }
1102  for (int i = 0; i<4; ++i){
1103  info("Up Neig "+itos(i)+" masked status : "+itos((m_mask2>>(i+12))&1));
1104  }
1105  for (int i = 0; i<8; ++i){
1106  info("Sd Neig "+itos(i)+" masked status : "+itos((m_mask2>>(i+4))&1));
1107  }
1108  info("Corner masked status : "+itos((m_mask2>>3)&1));
1109 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
int m_mask1
Definition: FEB_v1.h:193
int m_mask2
Definition: FEB_v1.h:194
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
int m_seqAddress
Definition: FEB_v1.h:180
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int m_mask0
Definition: FEB_v1.h:192
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ oldSubtract()

bool FEB_v1::oldSubtract ( int  fe)

Definition at line 795 of file FEB_v1.cpp.

References Object::info(), itos(), m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), and SeqPGA::spiRead().

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

795  {
797  int val = (m_seqPga->spiRead(1)>>8)&1;
798  info("Old Subtract "+itos(fe)+": "+itos(val),"FEB_v1::oldSubtract");
799  return val;
800 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int m_feAddress[8]
Definition: FEB_v1.h:181
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ probeEnable()

void FEB_v1::probeEnable ( )

Definition at line 620 of file FEB_v1.cpp.

References Object::info(), itos(), m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), and SeqPGA::spiRead().

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

620  {
621  for (int fe = 0; fe<8; ++fe){
623  int val = (m_seqPga->spiRead(2))&0xF;
624  info("Probe Enable FE "+itos(fe)+": "+itos(val),"FEB_v1::probeEnable");
625  }
626 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int m_feAddress[8]
Definition: FEB_v1.h:181
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ pseudoADCEnable()

bool FEB_v1::pseudoADCEnable ( int  fe,
int  ch 
)

Definition at line 872 of file FEB_v1.cpp.

References Object::info(), itos(), m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), and SeqPGA::spiRead().

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

872  {
874  int val = (m_seqPga->spiRead(4+ch)>>10)&1;
875  info("Pseudo ADC Enable FE "+itos(fe)+" - Ch "+itos(ch)+" : "+itos(val),"FEB_v1::pseudoADCEnable");
876  return (bool)(val);
877 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int m_feAddress[8]
Definition: FEB_v1.h:181
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ pseudoPMEnable()

bool FEB_v1::pseudoPMEnable ( int  fe,
int  ch 
)

Definition at line 899 of file FEB_v1.cpp.

References Object::info(), itos(), m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), and SeqPGA::spiRead().

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

899  {
901  int val = (m_seqPga->spiRead(4+ch)>>9)&1;
902  info("Pseudo PM Enable FE "+itos(fe)+" - Ch "+itos(ch)+" : "+itos(val),"FEB_v1::pseudoPMEnable");
903  return (bool)(val);
904 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int m_feAddress[8]
Definition: FEB_v1.h:181
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ ramInj()

RAM* FEB_v1::ramInj ( int  i)
inline

Definition at line 148 of file FEB_v1.h.

References m_ramInj.

Referenced by BOOST_PYTHON_MODULE().

148  {
149  return m_ramInj[i];
150  }
RAM * m_ramInj[3]
Definition: FEB_v1.h:199

◆ ramSpy()

RAM* FEB_v1::ramSpy ( int  i)
inline

◆ readFifo()

void FEB_v1::readFifo ( int  add,
int  subadd,
unsigned int *  fifo 
)

Definition at line 113 of file FEB_v1.cpp.

References m_fifoDepth, m_seqPga, and SeqPGA::spiRead().

Referenced by extTrig(), readFifoInjectFE(), readFifoLLT(), readFifoLLTFE(), and readFifoSpyFE().

113  {
114  m_seqPga->spiRead(subadd, m_fifoDepth, fifo);
115 }
int m_fifoDepth
Definition: FEB_v1.h:179
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ readFifoInjectFE()

void FEB_v1::readFifoInjectFE ( int  fe,
int  dump = 0 
)

Definition at line 236 of file FEB_v1.cpp.

References Object::info(), m_ch, m_feAddress, m_fifo, m_fifoInjectAddress, m_seqPga, readFifo(), setInjectModeFE(), SeqPGA::setSpiGBTSCA(), and testDuration().

Referenced by BOOST_PYTHON_MODULE(), and extTrig().

236  {
237  setInjectModeFE(fe, false);
238  m_seqPga->setSpiGBTSCA (false);
239  info("Reading fifo 0","FEB_v1::readFifoInjectFE");
241  info("Reading fifo 1","FEB_v1::readFifoInjectFE");
243  info("Reading fifo 2","FEB_v1::readFifoInjectFE");
245 
246  char buffer[100];
247  int depth = testDuration(fe);
248  for (int d=0; d<depth; ++d){
249  m_ch[0][d]=m_fifo[0][d]&0x0FFF;
250  m_ch[1][d]=(((m_fifo[0][d]&0xF000)>>12)+((m_fifo[1][d]&0x00FF)<<4))&0xFFF;
251  m_ch[2][d]=(((m_fifo[1][d]&0xFF00)>>8)+((m_fifo[2][d]&0x000F)<<8))&0xFFF;
252  m_ch[3][d]=((m_fifo[2][d]&0xFFF0)>>4)&0xFFF;
253  if (dump>0) {
254  sprintf(buffer,"%5d : %5d %5d %5d %5d | %5d %5d %5d", d,
255  m_ch[0][d], m_ch[1][d], m_ch[2][d], m_ch[3][d],
256  m_fifo[0][d], m_fifo[1][d], m_fifo[2][d]);
257  info(buffer,"FEB_v1::readFifoInjectFE");
258  }
259  }
260  setInjectModeFE(fe, true);
261 }
void info(std::string mymsg)
Definition: Object.h:38
int m_fifoInjectAddress[3]
Definition: FEB_v1.h:186
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int testDuration(int fpga)
Definition: FEB_v1.cpp:537
StatusCode setInjectModeFE(int, bool)
Definition: FEB_v1.cpp:806
unsigned int * m_fifo[3]
Definition: FEB_v1.h:189
int m_feAddress[8]
Definition: FEB_v1.h:181
int * m_ch[4]
Definition: FEB_v1.h:190
void readFifo(int, int, unsigned int *)
Definition: FEB_v1.cpp:113
StatusCode setSpiGBTSCA(bool)
Definition: SeqPGA.cpp:165

◆ readFifoLLT()

void FEB_v1::readFifoLLT ( int  dump = 0)

Definition at line 200 of file FEB_v1.cpp.

References Data::clear(), Data::dataFill(), Object::info(), m_data, m_fifo, m_fifoTrigAddress, m_seqAddress, m_seqPga, readFifo(), SeqPGA::setSpiGBTSCA(), and testDuration().

Referenced by BOOST_PYTHON_MODULE(), and extTrig().

200  {
201 
202  m_seqPga->setSpiGBTSCA (false) ;
203  info("Reading fifo 0","FEB_v1::readFifoLLT");
205  info("Reading fifo 1","FEB_v1::readFifoLLT");
207  info("Reading fifo 2","FEB_v1::readFifoLLT");
209 
210  char buffer[100];
211  int depth = testDuration(-1);
212 
213  m_data->clear(32);
214  m_data->clear(33);
215 
216  for (int d=0; d<depth; ++d){
217  m_data->dataFill(32, m_fifo[0][d]);
218  m_data->dataFill(33, m_fifo[1][d]);
219  if (dump>0) {
220  sprintf(buffer,
221  "%5d : ETtot=%4d ETmax=%4d [%2d] Mult=%2d Bx=%4d (%4d) | %5d %5d %5d",
222  d,
223  (m_fifo[0][d])&0x7FF, (m_fifo[1][d])&0x3FF,
224  (m_fifo[0][d]>>11)&0x1F,(m_fifo[1][d]>>10)&0x3F,
225  (m_fifo[2][d]>>10)&0x3F,(m_fifo[2][d])&0x3FF,
226  m_fifo[0][d], m_fifo[1][d], m_fifo[2][d]);
227  info(buffer,"FEB_v1::readFifoLLT");
228  }
229  }
230 }
void info(std::string mymsg)
Definition: Object.h:38
StatusCode dataFill(int, double)
Definition: Data.cpp:85
StatusCode clear(int)
Definition: Data.cpp:71
int m_seqAddress
Definition: FEB_v1.h:180
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int testDuration(int fpga)
Definition: FEB_v1.cpp:537
unsigned int * m_fifo[3]
Definition: FEB_v1.h:189
Data * m_data
Definition: FEB_v1.h:191
void readFifo(int, int, unsigned int *)
Definition: FEB_v1.cpp:113
int m_fifoTrigAddress[3]
Definition: FEB_v1.h:187
StatusCode setSpiGBTSCA(bool)
Definition: SeqPGA.cpp:165

◆ readFifoLLTFE()

void FEB_v1::readFifoLLTFE ( int  fe,
int  dump = 0 
)

Definition at line 160 of file FEB_v1.cpp.

References Data::clear(), Data::dataFill(), Object::info(), m_ch, m_data, m_feAddress, m_fifo, m_fifoLLTAddress, m_seqPga, readFifo(), SeqPGA::setSpiGBTSCA(), and testDuration().

Referenced by BOOST_PYTHON_MODULE(), and extTrig().

160  {
161 
162  m_seqPga->setSpiGBTSCA (false) ;
163  info("Reading fifo 0","FEB_v1::readFifoLLTFE");
165  info("Reading fifo 1","FEB_v1::readFifoLLTFE");
167  info("Reading fifo 2","FEB_v1::readFifoLLTFE");
169 
170  char buffer[100];
171 
172  int depth = testDuration(fe);
173 
174  for (int ch=0; ch<4; ++ch){
175  m_data->clear(4*fe+ch);
176  }
177 
178  for (int d=0; d<depth; ++d){
179  m_ch[0][d]=m_fifo[0][d]&0x3FF;
180  m_ch[1][d]=(((m_fifo[0][d])>>10)+((m_fifo[1][d]&0xF)<<6))&0x3FF;
181  m_ch[2][d]=((m_fifo[1][d]&0x3FF0)>>4);
182  m_ch[3][d]=m_fifo[2][d]&0x3FF;
183  for (int ch=0; ch<4; ++ch){
184  m_data->dataFill(4*fe+ch , m_ch[ch][d]);
185  }
186  if (dump>0) {
187  sprintf(buffer,"%5d : %5d %5d %5d %5d | %5d %5d %5d", d,
188  m_ch[0][d], m_ch[1][d], m_ch[2][d], m_ch[3][d],
189  m_fifo[0][d], m_fifo[1][d], m_fifo[2][d]);
190  info(buffer,"FEB_v1::readFifoLLTFE");
191  }
192  }
193 }
void info(std::string mymsg)
Definition: Object.h:38
StatusCode dataFill(int, double)
Definition: Data.cpp:85
int m_fifoLLTAddress[3]
Definition: FEB_v1.h:185
StatusCode clear(int)
Definition: Data.cpp:71
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int testDuration(int fpga)
Definition: FEB_v1.cpp:537
unsigned int * m_fifo[3]
Definition: FEB_v1.h:189
int m_feAddress[8]
Definition: FEB_v1.h:181
int * m_ch[4]
Definition: FEB_v1.h:190
Data * m_data
Definition: FEB_v1.h:191
void readFifo(int, int, unsigned int *)
Definition: FEB_v1.cpp:113
StatusCode setSpiGBTSCA(bool)
Definition: SeqPGA.cpp:165

◆ readFifoSpyFE()

void FEB_v1::readFifoSpyFE ( int  fe,
int  dump = 0 
)

Definition at line 121 of file FEB_v1.cpp.

References Data::clear(), Data::dataFill(), Object::debug(), Object::info(), m_ch, m_data, m_feAddress, m_fifo, m_fifoSpyAddress, m_seqPga, readFifo(), SeqPGA::setSpiAdd(), and testDuration().

Referenced by BOOST_PYTHON_MODULE(), and extTrig().

121  {
122 
124 
125  debug("Reading fifo 0","FEB_v1::readFifoSpyFE");
127  debug("Reading fifo 1","FEB_v1::readFifoSpyFE");
129  debug("Reading fifo 2","FEB_v1::readFifoSpyFE");
131 
132  char buffer[100];
133 
134  int depth = testDuration(fe);
135  for (int ch=0; ch<4; ++ch){
136  m_data->clear(4*fe+ch);
137  }
138 
139  for (int d=0; d<depth; ++d){
140  m_ch[0][d]=m_fifo[0][d]&0x0FFF;
141  m_ch[1][d]=(((m_fifo[0][d]&0xF000)>>12)+((m_fifo[1][d]&0x00FF)<<4))&0xFFF;
142  m_ch[2][d]=(((m_fifo[1][d]&0xFF00)>>8)+((m_fifo[2][d]&0x000F)<<8))&0xFFF;
143  m_ch[3][d]=(m_fifo[2][d]&0xFFF0)>>4;
144  for (int ch=0; ch<4; ++ch){
145  m_data->dataFill(4*fe+ch , m_ch[ch][d]);
146  }
147  if (dump>0) {
148  sprintf(buffer,"%5d : %5d %5d %5d %5d | %5d %5d %5d", d,
149  m_ch[0][d], m_ch[1][d], m_ch[2][d], m_ch[3][d],
150  m_fifo[0][d], m_fifo[1][d], m_fifo[2][d]);
151  info(buffer,"FEB_v1::readFifoSpyFE");
152  }
153  }
154 }
void info(std::string mymsg)
Definition: Object.h:38
StatusCode dataFill(int, double)
Definition: Data.cpp:85
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
int m_fifoSpyAddress[3]
Definition: FEB_v1.h:184
StatusCode clear(int)
Definition: Data.cpp:71
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int testDuration(int fpga)
Definition: FEB_v1.cpp:537
void debug(std::string mymsg)
Definition: Object.h:37
unsigned int * m_fifo[3]
Definition: FEB_v1.h:189
int m_feAddress[8]
Definition: FEB_v1.h:181
int * m_ch[4]
Definition: FEB_v1.h:190
Data * m_data
Definition: FEB_v1.h:191
void readFifo(int, int, unsigned int *)
Definition: FEB_v1.cpp:113

◆ reset()

void FEB_v1::reset ( )
inlinevirtual

Resets the Element so that is is in a standard and safe situation. Different from Element::init which configure the Element. Element::reset() is more an Emergency pull. It is often/usually called by the recursiveInitElement method at the start of the program.

Implements Element.

Definition at line 48 of file FEB_v1.h.

References Object::debug(), m_seqPga, Object::name(), and SeqPGA::reset().

48  {
49  m_seqPga->reset();
50  debug("FEB_v1 "+name()+" reset.","FEB_v1::reset");
51  };
void reset()
Definition: SeqPGA.h:54
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
void debug(std::string mymsg)
Definition: Object.h:37
std::string name() const
Definition: Object.h:28

◆ resetFE()

StatusCode FEB_v1::resetFE ( int  fe)

Definition at line 491 of file FEB_v1.cpp.

References Object::info(), itos(), m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), and SeqPGA::spiWrite().

Referenced by BOOST_PYTHON_MODULE(), and extTrig().

491  {
493  StatusCode val = (m_seqPga->spiWrite(11,0));
494  info("Reset FE "+itos(fe),"FEB_v1::resetFE");
495  return val;
496 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
int m_feAddress[8]
Definition: FEB_v1.h:181

◆ resetFifoInjectFE()

StatusCode FEB_v1::resetFifoInjectFE ( int  fe)

Definition at line 481 of file FEB_v1.cpp.

References Object::info(), itos(), m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), and SeqPGA::spiWrite().

Referenced by BOOST_PYTHON_MODULE(), and extTrig().

481  {
483  StatusCode val = (m_seqPga->spiWrite(13,0));
484  info("Reset FIFO Inject FE "+itos(fe),"FEB_v1::resetFifoInjectFE");
485  return val;
486 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
int m_feAddress[8]
Definition: FEB_v1.h:181

◆ resetFifoSpyFE()

StatusCode FEB_v1::resetFifoSpyFE ( int  fe)

Definition at line 471 of file FEB_v1.cpp.

References Object::debug(), itos(), m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), and SeqPGA::spiWrite().

Referenced by BOOST_PYTHON_MODULE(), and extTrig().

471  {
473  StatusCode val = (m_seqPga->spiWrite(12,0));
474  debug("Reset FIFO Spy FE "+itos(fe),"FEB_v1::resetFifoSpyFE");
475  return val;
476 }
std::string itos(int)
Definition: Tools.cpp:46
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
void debug(std::string mymsg)
Definition: Object.h:37
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
int m_feAddress[8]
Definition: FEB_v1.h:181

◆ resetSpi()

void FEB_v1::resetSpi ( )
inline

Definition at line 53 of file FEB_v1.h.

References Object::debug(), m_seqPga, Object::name(), and SeqPGA::resetSpi().

Referenced by BOOST_PYTHON_MODULE().

53  {
54  m_seqPga->resetSpi();
55  debug("FEB_v1 "+name()+" reset Spi.","FEB_v1::resetSpi");
56  };
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
void debug(std::string mymsg)
Definition: Object.h:37
std::string name() const
Definition: Object.h:28
void resetSpi()
Definition: SeqPGA.h:61

◆ seqPga()

SeqPGA* FEB_v1::seqPga ( )
inline

◆ setCalibCte()

StatusCode FEB_v1::setCalibCte ( int  fe,
int  ch,
int  value 
)

Definition at line 982 of file FEB_v1.cpp.

References data(), StatusCode::FAILURE, Object::info(), StatusCode::isFailure(), itos(), m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), SeqPGA::spiRead(), SeqPGA::spiWrite(), StatusCode::SUCCESS, and Object::warning().

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

982  {
983  if (ch>3){
984  warning("try to configure a channel that does not exist.","FEB_v1::setClockFallingEdge");
985  return StatusCode::FAILURE;
986  }
988  unsigned int data=m_seqPga->spiRead(4+ch);
989  data = data & (0xFF00);
990  data += value;
991  if (m_seqPga->spiWrite(4+ch,data).isFailure()){
992  return StatusCode::FAILURE;
993  }
994  info("set Calibration constant "+itos(fe)+" - Ch "+itos(fe)+" : "+itos(value),"FEB_v1::setCalibCte");
995  return StatusCode::SUCCESS;
996 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
bool isFailure() const
Definition: StatusCode.h:68
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
Data * data()
Definition: FEB_v1.h:147
int m_feAddress[8]
Definition: FEB_v1.h:181
void warning(std::string mymsg)
Definition: Object.h:39
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ setClock80MHzFallingEdge()

StatusCode FEB_v1::setClock80MHzFallingEdge ( bool  value)

Definition at line 959 of file FEB_v1.cpp.

References data(), StatusCode::FAILURE, Object::info(), StatusCode::isFailure(), itos(), m_seqAddress, m_seqPga, SeqPGA::setSpiAdd(), SeqPGA::spiRead(), SeqPGA::spiWrite(), and StatusCode::SUCCESS.

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

959  {
961  unsigned int data=m_seqPga->spiRead(1);
962  data &= 0xFFEF;
963  data |= (value<<4) & 0x10;
964  if (m_seqPga->spiWrite(1,data).isFailure()){
965  return StatusCode::FAILURE;
966  }
967  info("set Clock 80MHz Falling Edge : "+itos(value),"FEB_v1::setClock80MzFallingEdge");
968  return StatusCode::SUCCESS;
969 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
bool isFailure() const
Definition: StatusCode.h:68
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
int m_seqAddress
Definition: FEB_v1.h:180
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
Data * data()
Definition: FEB_v1.h:147
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ setClockFallingEdge()

StatusCode FEB_v1::setClockFallingEdge ( int  fe,
int  ch,
bool  value 
)

Definition at line 933 of file FEB_v1.cpp.

References data(), StatusCode::FAILURE, Object::info(), StatusCode::isFailure(), itos(), m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), SeqPGA::spiRead(), SeqPGA::spiWrite(), StatusCode::SUCCESS, and Object::warning().

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

933  {
934  if (ch>3){
935  warning("try to configure a channel that does not exist.","FEB_v1::setClockFallingEdge");
936  return StatusCode::FAILURE;
937  }
939  unsigned int data=m_seqPga->spiRead(4+ch);
940  if (value) data |= 1 << 8 ;
941  else data &= ~(1<<8) ;
942  if (m_seqPga->spiWrite(4+ch,data).isFailure()){
943  return StatusCode::FAILURE;
944  }
945  info("set Clock Falling Edge FPGA "+itos(fe)+" - Ch "+itos(ch)+" : "+itos(value),"FEB_v1::setClockFallingEdge");
946  return StatusCode::SUCCESS;
947 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
bool isFailure() const
Definition: StatusCode.h:68
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
Data * data()
Definition: FEB_v1.h:147
int m_feAddress[8]
Definition: FEB_v1.h:181
void warning(std::string mymsg)
Definition: Object.h:39
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ setDisableSubtract()

StatusCode FEB_v1::setDisableSubtract ( int  fe,
bool  value 
)

Definition at line 742 of file FEB_v1.cpp.

References data(), StatusCode::FAILURE, Object::info(), StatusCode::isFailure(), itos(), m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), SeqPGA::spiRead(), SeqPGA::spiWrite(), and StatusCode::SUCCESS.

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

742  {
744  unsigned int data=m_seqPga->spiRead(1);
745  data = data & 0xFDFF;
746  data += (value<<9);
747  if (m_seqPga->spiWrite(1,data).isFailure()){
748  return StatusCode::FAILURE;
749  }
750  info("set Disable Subtraction "+itos(fe)+": "+itos(value),"FEB_v1::setDisableSubtract");
751  return StatusCode::SUCCESS;
752 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
bool isFailure() const
Definition: StatusCode.h:68
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
Data * data()
Definition: FEB_v1.h:147
int m_feAddress[8]
Definition: FEB_v1.h:181
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ setEnableBXIDReset()

StatusCode FEB_v1::setEnableBXIDReset ( bool  value)

Definition at line 765 of file FEB_v1.cpp.

References data(), m_seqAddress, m_seqPga, SeqPGA::setSpiAdd(), SeqPGA::spiRead(), and SeqPGA::spiWrite().

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

765  {
767  unsigned int data=m_seqPga->spiRead(1);
768  if (value) data |= 2048 ;
769  else data &= ~2048 ;
770  return m_seqPga->spiWrite(1,data);
771 }
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
int m_seqAddress
Definition: FEB_v1.h:180
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
Data * data()
Definition: FEB_v1.h:147
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ setExtTrig()

StatusCode FEB_v1::setExtTrig ( bool  trig)
inline

Definition at line 110 of file FEB_v1.h.

References m_seqPga, and SeqPGA::setExtTrig().

Referenced by BOOST_PYTHON_MODULE().

110 { return m_seqPga->setExtTrig( trig ); }
StatusCode setExtTrig(bool)
Definition: SeqPGA.cpp:142
SeqPGA * m_seqPga
Definition: FEB_v1.h:188

◆ setGain4()

StatusCode FEB_v1::setGain4 ( int  fe,
int  ch,
bool  value 
)

Definition at line 829 of file FEB_v1.cpp.

References data(), StatusCode::FAILURE, Object::info(), StatusCode::isFailure(), itos(), m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), SeqPGA::spiRead(), SeqPGA::spiWrite(), StatusCode::SUCCESS, and Object::warning().

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

829  {
830  if (ch>3){
831  warning("try to configure a channel that does not exist.","FEB_v1::setGain4");
832  return StatusCode::FAILURE;
833  }
835  unsigned int data=m_seqPga->spiRead(4+ch);
836  if (value) data |= 1 << 11 ;
837  else data &= ~(1<<11) ;
838  if (m_seqPga->spiWrite(4+ch,data).isFailure()){
839  return StatusCode::FAILURE;
840  }
841  info("set Gain4 FE "+itos(fe)+" - Ch "+itos(ch)+" : "+itos(value),"FEB_v1::setGain4");
842  return StatusCode::SUCCESS;
843 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
bool isFailure() const
Definition: StatusCode.h:68
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
Data * data()
Definition: FEB_v1.h:147
int m_feAddress[8]
Definition: FEB_v1.h:181
void warning(std::string mymsg)
Definition: Object.h:39
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ setGbt80MHzClkEport()

StatusCode FEB_v1::setGbt80MHzClkEport ( int  gbt)

Definition at line 1338 of file FEB_v1.cpp.

References StatusCode::FAILURE, SeqPGA::i2cWrite(), Object::info(), StatusCode::isFailure(), itos(), m_gbtAddress, m_seqPga, SeqPGA::setI2cAdd(), StatusCode::SUCCESS, and Object::warning().

Referenced by BOOST_PYTHON_MODULE(), and ramSpy().

1338  {
1340  int wd = (1<<4)+(1<<2)+1;
1341  if (m_seqPga->i2cWrite(63, wd).isFailure()){
1342  warning("Cannot set GBT Eport clock at 80MHz for GBT "+itos(gbt));
1343  return StatusCode::FAILURE;
1344  }
1345  if (m_seqPga->i2cWrite(87, wd).isFailure()){
1346  warning("Cannot set GBT Eport clock at 80MHz for GBT "+itos(gbt));
1347  return StatusCode::FAILURE;
1348  }
1349  if (m_seqPga->i2cWrite(111, wd).isFailure()){
1350  warning("Cannot set GBT Eport clock at 80MHz for GBT "+itos(gbt));
1351  return StatusCode::FAILURE;
1352  }
1353  if (m_seqPga->i2cWrite(135, wd).isFailure()){
1354  warning("Cannot set GBT Eport clock at 80MHz for GBT "+itos(gbt));
1355  return StatusCode::FAILURE;
1356  }
1357  if (m_seqPga->i2cWrite(159, wd).isFailure()){
1358  warning("Cannot set GBT Eport clock at 80MHz for GBT "+itos(gbt));
1359  return StatusCode::FAILURE;
1360  }
1361  if (m_seqPga->i2cWrite(183, wd).isFailure()){
1362  warning("Cannot set GBT Eport clock at 80MHz for GBT "+itos(gbt));
1363  return StatusCode::FAILURE;
1364  }
1365  if (m_seqPga->i2cWrite(207, wd).isFailure()){
1366  warning("Cannot set GBT Eport clock at 80MHz for GBT "+itos(gbt));
1367  return StatusCode::FAILURE;
1368  }
1369  info("Setting Eport clock at 80MHz for the GBT "+itos(gbt));
1370  return StatusCode::SUCCESS;
1371 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
bool isFailure() const
Definition: StatusCode.h:68
int m_gbtAddress[4]
Definition: FEB_v1.h:182
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode setI2cAdd(unsigned long int)
Definition: SeqPGA.cpp:482
StatusCode i2cWrite()
Definition: SeqPGA.cpp:535
void warning(std::string mymsg)
Definition: Object.h:39

◆ setGbtClockStrength()

StatusCode FEB_v1::setGbtClockStrength ( int  gbt,
int  strength 
)

Definition at line 1528 of file FEB_v1.cpp.

References StatusCode::FAILURE, SeqPGA::i2cWrite(), Object::info(), StatusCode::isFailure(), itos(), m_gbtAddress, m_seqPga, SeqPGA::setI2cAdd(), StatusCode::SUCCESS, and Object::warning().

Referenced by BOOST_PYTHON_MODULE(), and ramSpy().

1528  {
1529  info("Setting the gbt "+itos(gbt)+" output clock strength to "+itos(strength));
1531  int wd = ((strength&0xF)<<4)+(strength&0xF);
1532  int ports[4]={ 269, 270, 271, 272 };
1533  for (int i=0; i<4; ++i){
1534  if (m_seqPga->i2cWrite(ports[i], wd).isFailure()){
1535  warning("Cannot set gbt output clock strength ("+itos(ports[i])+") of GBT "+itos(gbt));
1536  return StatusCode::FAILURE;
1537  }
1538  };
1539  return StatusCode::SUCCESS;
1540 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
bool isFailure() const
Definition: StatusCode.h:68
int m_gbtAddress[4]
Definition: FEB_v1.h:182
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode setI2cAdd(unsigned long int)
Definition: SeqPGA.cpp:482
StatusCode i2cWrite()
Definition: SeqPGA.cpp:535
void warning(std::string mymsg)
Definition: Object.h:39

◆ setGbtDataPath()

StatusCode FEB_v1::setGbtDataPath ( int  gbt,
int  tx0,
int  tx1,
int  tx2 
)

Definition at line 1220 of file FEB_v1.cpp.

References StatusCode::FAILURE, SeqPGA::i2cWrite(), Object::info(), StatusCode::isFailure(), itos(), m_gbtAddress, m_seqPga, SeqPGA::setI2cAdd(), StatusCode::SUCCESS, and Object::warning().

Referenced by BOOST_PYTHON_MODULE(), and ramSpy().

1220  {
1222  int wd = (tx2<<4)+(tx1<<2)+tx0;
1223  if (m_seqPga->i2cWrite(29, wd).isFailure()){
1224  warning("Cannot set data path (A) of the GBT "+itos(gbt));
1225  return StatusCode::FAILURE;
1226  }
1227  if (m_seqPga->i2cWrite(30, wd).isFailure()){
1228  warning("Cannot set data path (B) of the GBT "+itos(gbt));
1229  return StatusCode::FAILURE;
1230  }
1231  if (m_seqPga->i2cWrite(31, wd).isFailure()){
1232  warning("Cannot set data path (C) of the GBT "+itos(gbt));
1233  return StatusCode::FAILURE;
1234  }
1235  info("Setting data path of the GBT "+itos(gbt)+" to "+itos(wd));
1236  return StatusCode::SUCCESS;
1237 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
bool isFailure() const
Definition: StatusCode.h:68
int m_gbtAddress[4]
Definition: FEB_v1.h:182
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode setI2cAdd(unsigned long int)
Definition: SeqPGA.cpp:482
StatusCode i2cWrite()
Definition: SeqPGA.cpp:535
void warning(std::string mymsg)
Definition: Object.h:39

◆ setGbtDLLEport()

StatusCode FEB_v1::setGbtDLLEport ( int  gbt)

Definition at line 1390 of file FEB_v1.cpp.

References StatusCode::FAILURE, SeqPGA::i2cWrite(), Object::info(), StatusCode::isFailure(), itos(), m_gbtAddress, m_seqPga, SeqPGA::setI2cAdd(), StatusCode::SUCCESS, and Object::warning().

Referenced by BOOST_PYTHON_MODULE(), and ramSpy().

1390  {
1392  int wd1 = 0b1011;
1393  int wd0 = (wd1<<4)+wd1;
1394  if (m_seqPga->i2cWrite(64, wd0).isFailure()){
1395  warning("Cannot set DLL charge pump (64) for GBT "+itos(gbt));
1396  return StatusCode::FAILURE;
1397  }
1398  if (m_seqPga->i2cWrite(65, wd1).isFailure()){
1399  warning("Cannot set DLL charge pump (65) for GBT "+itos(gbt));
1400  return StatusCode::FAILURE;
1401  }
1402  if (m_seqPga->i2cWrite(88, wd0).isFailure()){
1403  warning("Cannot set DLL charge pump (88) for GBT "+itos(gbt));
1404  return StatusCode::FAILURE;
1405  }
1406  if (m_seqPga->i2cWrite(89, wd1).isFailure()){
1407  warning("Cannot set DLL charge pump (89) for GBT "+itos(gbt));
1408  return StatusCode::FAILURE;
1409  }
1410  if (m_seqPga->i2cWrite(112, wd0).isFailure()){
1411  warning("Cannot set DLL charge pump (112) for GBT "+itos(gbt));
1412  return StatusCode::FAILURE;
1413  }
1414  if (m_seqPga->i2cWrite(113, wd1).isFailure()){
1415  warning("Cannot set DLL charge pump (113) for GBT "+itos(gbt));
1416  return StatusCode::FAILURE;
1417  }
1418  if (m_seqPga->i2cWrite(136, wd0).isFailure()){
1419  warning("Cannot set DLL charge pump (136) for GBT "+itos(gbt));
1420  return StatusCode::FAILURE;
1421  }
1422  if (m_seqPga->i2cWrite(137, wd1).isFailure()){
1423  warning("Cannot set DLL charge pump (137) for GBT "+itos(gbt));
1424  return StatusCode::FAILURE;
1425  }
1426  if (m_seqPga->i2cWrite(160, wd0).isFailure()){
1427  warning("Cannot set DLL charge pump (160) for GBT "+itos(gbt));
1428  return StatusCode::FAILURE;
1429  }
1430  if (m_seqPga->i2cWrite(161, wd1).isFailure()){
1431  warning("Cannot set DLL charge pump (161) for GBT "+itos(gbt));
1432  return StatusCode::FAILURE;
1433  }
1434  if (m_seqPga->i2cWrite(184, wd0).isFailure()){
1435  warning("Cannot set DLL charge pump (184) for GBT "+itos(gbt));
1436  return StatusCode::FAILURE;
1437  }
1438  if (m_seqPga->i2cWrite(185, wd1).isFailure()){
1439  warning("Cannot set DLL charge pump (185) for GBT "+itos(gbt));
1440  return StatusCode::FAILURE;
1441  }
1442  if (m_seqPga->i2cWrite(208, wd0).isFailure()){
1443  warning("Cannot set DLL charge pump (208) for GBT "+itos(gbt));
1444  return StatusCode::FAILURE;
1445  }
1446  if (m_seqPga->i2cWrite(209, wd1).isFailure()){
1447  warning("Cannot set DLL charge pump (209) for GBT "+itos(gbt));
1448  return StatusCode::FAILURE;
1449  }
1450  if (m_seqPga->i2cWrite(231, wd0).isFailure()){
1451  warning("Cannot set DLL charge pump (231) for GBT "+itos(gbt));
1452  return StatusCode::FAILURE;
1453  }
1454  if (m_seqPga->i2cWrite(232, wd1).isFailure()){
1455  warning("Cannot set DLL charge pump (232) for GBT "+itos(gbt));
1456  return StatusCode::FAILURE;
1457  }
1458  if (m_seqPga->i2cWrite(233, 7).isFailure()){
1459  warning("Cannot set DLL charge pump (232) for GBT "+itos(gbt));
1460  return StatusCode::FAILURE;
1461  }
1462  info("Setting DLL Eport for the GBT "+itos(gbt));
1463  info("Setting Phase aligner lock detection mode for GBT "+itos(gbt));
1464  return StatusCode::SUCCESS;
1465 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
bool isFailure() const
Definition: StatusCode.h:68
int m_gbtAddress[4]
Definition: FEB_v1.h:182
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode setI2cAdd(unsigned long int)
Definition: SeqPGA.cpp:482
StatusCode i2cWrite()
Definition: SeqPGA.cpp:535
void warning(std::string mymsg)
Definition: Object.h:39

◆ setGbtEnableEport()

StatusCode FEB_v1::setGbtEnableEport ( int  gbt,
bool  enable 
)

Definition at line 1491 of file FEB_v1.cpp.

References StatusCode::FAILURE, SeqPGA::i2cWrite(), Object::info(), StatusCode::isFailure(), itos(), m_gbtAddress, m_seqPga, SeqPGA::setI2cAdd(), StatusCode::SUCCESS, and Object::warning().

Referenced by BOOST_PYTHON_MODULE(), and ramSpy().

1491  {
1493  int wd = 0xff;
1494  if (!enable){
1495  wd = 0;
1496  }
1497  int ports[21]={81, 82, 83, 105, 106, 107, 129, 130, 131, 153, 154,
1498  155, 177, 178, 179, 201, 202, 203, 225, 226, 227};
1499  for (int i=0; i<21; ++i){
1500  if (m_seqPga->i2cWrite(ports[i], wd).isFailure()){
1501  warning("Cannot set (en)able eport ("+itos(ports[i])+") of GBT "+itos(gbt));
1502  return StatusCode::FAILURE;
1503  }
1504  };
1505  if (enable){
1506  info("Enabling Eports for the GBT "+itos(gbt));
1507  }
1508  else
1509  {
1510  info("Disabling Eports for the GBT "+itos(gbt));
1511  }
1512  return StatusCode::SUCCESS;
1513 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
bool isFailure() const
Definition: StatusCode.h:68
int m_gbtAddress[4]
Definition: FEB_v1.h:182
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode setI2cAdd(unsigned long int)
Definition: SeqPGA.cpp:482
StatusCode i2cWrite()
Definition: SeqPGA.cpp:535
void warning(std::string mymsg)
Definition: Object.h:39

◆ setGbtMode()

StatusCode FEB_v1::setGbtMode ( int  gbt,
int  mode 
)

Definition at line 1184 of file FEB_v1.cpp.

References StatusCode::FAILURE, SeqPGA::i2cWrite(), Object::info(), StatusCode::isFailure(), itos(), m_gbtAddress, m_seqPga, SeqPGA::setI2cAdd(), StatusCode::SUCCESS, and Object::warning().

Referenced by BOOST_PYTHON_MODULE(), and ramSpy().

1184  {
1185  std::string modes[4] = {
1186  "Normal operating mode",
1187  "Fixed pattern mode",
1188  "30 bit counter",
1189  "7 bit shift register"
1190  };
1192  if (m_seqPga->i2cWrite(28, mode).isFailure()){
1193  warning("Cannot set Tx mode of the GBT "+itos(gbt)+
1194  " to "+modes[mode]+" ["+itos(mode)+"]");
1195  return StatusCode::FAILURE;
1196  }
1197  info("Setting Tx mode of the GBT "+itos(gbt)+
1198  " to "+modes[mode]+" ["+itos(mode)+"]");
1199  return StatusCode::SUCCESS;
1200 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
bool isFailure() const
Definition: StatusCode.h:68
int m_gbtAddress[4]
Definition: FEB_v1.h:182
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode setI2cAdd(unsigned long int)
Definition: SeqPGA.cpp:482
StatusCode i2cWrite()
Definition: SeqPGA.cpp:535
void warning(std::string mymsg)
Definition: Object.h:39

◆ setGbtTermEport()

StatusCode FEB_v1::setGbtTermEport ( int  gbt,
bool  term 
)

Definition at line 1284 of file FEB_v1.cpp.

References StatusCode::FAILURE, SeqPGA::i2cWrite(), Object::info(), StatusCode::isFailure(), itos(), m_gbtAddress, m_seqPga, SeqPGA::setI2cAdd(), StatusCode::SUCCESS, and Object::warning().

Referenced by BOOST_PYTHON_MODULE(), and ramSpy().

1284  {
1286  int wd = 0xff;
1287  if (!term){
1288  wd = 0;
1289  }
1290  if (m_seqPga->i2cWrite(320, wd).isFailure()){
1291  warning("Cannot set GBT Term Eport 320 of the GBT "+itos(gbt));
1292  return StatusCode::FAILURE;
1293  }
1294  if (m_seqPga->i2cWrite(321, wd).isFailure()){
1295  warning("Cannot set GBT Term Eport 320 of the GBT "+itos(gbt));
1296  return StatusCode::FAILURE;
1297  }
1298  if (m_seqPga->i2cWrite(322, wd).isFailure()){
1299  warning("Cannot set GBT Term Eport 320 of the GBT "+itos(gbt));
1300  return StatusCode::FAILURE;
1301  }
1302  if (m_seqPga->i2cWrite(323, wd).isFailure()){
1303  warning("Cannot set GBT Term Eport 320 of the GBT "+itos(gbt));
1304  return StatusCode::FAILURE;
1305  }
1306  if (m_seqPga->i2cWrite(324, wd).isFailure()){
1307  warning("Cannot set GBT Term Eport 320 of the GBT "+itos(gbt));
1308  return StatusCode::FAILURE;
1309  }
1310  if (m_seqPga->i2cWrite(325, wd).isFailure()){
1311  warning("Cannot set GBT Term Eport 320 of the GBT "+itos(gbt));
1312  return StatusCode::FAILURE;
1313  }
1314  if (m_seqPga->i2cWrite(326, wd).isFailure()){
1315  warning("Cannot set GBT Term Eport 320 of the GBT "+itos(gbt));
1316  return StatusCode::FAILURE;
1317  }
1318  info("Setting Eport Termination of the GBT "+itos(gbt)+" to "+itos(wd&1));
1319  return StatusCode::SUCCESS;
1320 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
bool isFailure() const
Definition: StatusCode.h:68
int m_gbtAddress[4]
Definition: FEB_v1.h:182
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode setI2cAdd(unsigned long int)
Definition: SeqPGA.cpp:482
StatusCode i2cWrite()
Definition: SeqPGA.cpp:535
void warning(std::string mymsg)
Definition: Object.h:39

◆ setGbtTrackMode()

StatusCode FEB_v1::setGbtTrackMode ( int  gbt,
int  mode 
)

Definition at line 1252 of file FEB_v1.cpp.

References StatusCode::FAILURE, SeqPGA::i2cWrite(), Object::info(), StatusCode::isFailure(), itos(), m_gbtAddress, m_seqPga, SeqPGA::setI2cAdd(), StatusCode::SUCCESS, and Object::warning().

Referenced by BOOST_PYTHON_MODULE(), and ramSpy().

1252  {
1253  std::string str_mode[3]={
1254  "Static phase selection",
1255  "Training mode",
1256  "Automatic phase tracking"
1257  };
1259  int wd = (mode<<4)+(mode<<2)+mode;
1260  if (m_seqPga->i2cWrite(62, wd).isFailure()){
1261  warning("Cannot set GBT track mode of the GBT "+itos(gbt));
1262  return StatusCode::FAILURE;
1263  }
1264  info("Setting track mode of the GBT "+itos(gbt)+" to "+itos(wd)+" -> "+str_mode[mode&0b11]);
1265  return StatusCode::SUCCESS;
1266 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
bool isFailure() const
Definition: StatusCode.h:68
int m_gbtAddress[4]
Definition: FEB_v1.h:182
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode setI2cAdd(unsigned long int)
Definition: SeqPGA.cpp:482
StatusCode i2cWrite()
Definition: SeqPGA.cpp:535
void warning(std::string mymsg)
Definition: Object.h:39

◆ setGlobalPseudoPMEnable()

StatusCode FEB_v1::setGlobalPseudoPMEnable ( int  fe,
bool  value 
)

Definition at line 910 of file FEB_v1.cpp.

References data(), StatusCode::FAILURE, Object::info(), StatusCode::isFailure(), itos(), m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), SeqPGA::spiRead(), SeqPGA::spiWrite(), and StatusCode::SUCCESS.

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

910  {
912  unsigned int data=m_seqPga->spiRead(1);
913  if (value) data |= 1 << 10 ;
914  else data &= ~(1<<10) ;
915  if (m_seqPga->spiWrite(1,data).isFailure()){
916  return StatusCode::FAILURE;
917  }
918  info("set GlobalPseudoPMEnable FE "+itos(fe)+" : "+itos(value),"FEB_v1::setGlobalPseudoPMEnable");
919  return StatusCode::SUCCESS;
920 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
bool isFailure() const
Definition: StatusCode.h:68
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
Data * data()
Definition: FEB_v1.h:147
int m_feAddress[8]
Definition: FEB_v1.h:181
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ setInjectModeFE()

StatusCode FEB_v1::setInjectModeFE ( int  fe,
bool  value 
)

Definition at line 806 of file FEB_v1.cpp.

References data(), StatusCode::FAILURE, Object::info(), StatusCode::isFailure(), itos(), m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), SeqPGA::spiRead(), SeqPGA::spiWrite(), and StatusCode::SUCCESS.

Referenced by BOOST_PYTHON_MODULE(), readFifoInjectFE(), and seqPga().

806  {
808  unsigned int data=m_seqPga->spiRead(1);
809  if (value) data |= 1 << 10 ;
810  else data &= ~(1<<10) ;
811  if (m_seqPga->spiWrite(1,data).isFailure()){
812  return StatusCode::FAILURE;
813  }
814  info("set Inject Mode FE "+itos(fe)+": "+itos(value),"FEB_v1::injectModeFE");
815  return StatusCode::SUCCESS;
816 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
bool isFailure() const
Definition: StatusCode.h:68
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
Data * data()
Definition: FEB_v1.h:147
int m_feAddress[8]
Definition: FEB_v1.h:181
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ setLatency()

StatusCode FEB_v1::setLatency ( int  fe,
int  value 
)

Definition at line 719 of file FEB_v1.cpp.

References data(), StatusCode::FAILURE, Object::info(), StatusCode::isFailure(), itos(), m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), SeqPGA::spiRead(), SeqPGA::spiWrite(), and StatusCode::SUCCESS.

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

719  {
721  unsigned int data=m_seqPga->spiRead(1);
722  data = data & 0xFF00;
723  data += value&0xFF;
724  if (m_seqPga->spiWrite(1,data).isFailure()){
725  return StatusCode::FAILURE;
726  }
727  info("set Latency "+itos(fe)+": "+itos(value),"FEB_v1::setLatency");
728  return StatusCode::SUCCESS;
729 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
bool isFailure() const
Definition: StatusCode.h:68
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
Data * data()
Definition: FEB_v1.h:147
int m_feAddress[8]
Definition: FEB_v1.h:181
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ setLatencyLLT()

StatusCode FEB_v1::setLatencyLLT ( int  val)

Definition at line 1026 of file FEB_v1.cpp.

References StatusCode::FAILURE, StatusCode::isFailure(), latency(), m_latency0, m_seqAddress, m_seqPga, SeqPGA::setSpiAdd(), SeqPGA::spiRead(), SeqPGA::spiWrite(), and StatusCode::SUCCESS.

Referenced by BOOST_PYTHON_MODULE(), and extTrig().

1026  {
1028  int latency = m_seqPga->spiRead(3);
1029  latency &=0xFFF;
1030  latency |=((val&0xF)<<12);
1031  if (m_seqPga->spiWrite(3,latency).isFailure()){
1032  return StatusCode::FAILURE;
1033  }
1034  m_latency0=val;
1035  return StatusCode::SUCCESS;
1036 }
bool isFailure() const
Definition: StatusCode.h:68
int m_latency0
Definition: FEB_v1.h:195
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
int m_seqAddress
Definition: FEB_v1.h:180
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int latency(int)
Definition: FEB_v1.cpp:731
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ setLatencyLLTCorner()

StatusCode FEB_v1::setLatencyLLTCorner ( int  val)

Definition at line 1074 of file FEB_v1.cpp.

References StatusCode::FAILURE, StatusCode::isFailure(), latency(), m_latency3, m_seqAddress, m_seqPga, SeqPGA::setSpiAdd(), SeqPGA::spiRead(), SeqPGA::spiWrite(), and StatusCode::SUCCESS.

Referenced by BOOST_PYTHON_MODULE(), and extTrig().

1074  {
1076  int latency = m_seqPga->spiRead(3);
1077  latency &=0xFFF0;
1078  latency |=val&0xF;
1079  if (m_seqPga->spiWrite(3,latency).isFailure()){
1080  return StatusCode::FAILURE;
1081  }
1082  m_latency3=val;
1083  return StatusCode::SUCCESS;
1084 }
bool isFailure() const
Definition: StatusCode.h:68
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
int m_seqAddress
Definition: FEB_v1.h:180
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int latency(int)
Definition: FEB_v1.cpp:731
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337
int m_latency3
Definition: FEB_v1.h:198

◆ setLatencyLLTSideNb()

StatusCode FEB_v1::setLatencyLLTSideNb ( int  val)

Definition at line 1058 of file FEB_v1.cpp.

References StatusCode::FAILURE, StatusCode::isFailure(), latency(), m_latency2, m_seqAddress, m_seqPga, SeqPGA::setSpiAdd(), SeqPGA::spiRead(), SeqPGA::spiWrite(), and StatusCode::SUCCESS.

Referenced by BOOST_PYTHON_MODULE(), and extTrig().

1058  {
1060  int latency = m_seqPga->spiRead(3);
1061  latency &=0xFF0F;
1062  latency |=((val&0xF)<<4);
1063  if (m_seqPga->spiWrite(3,latency).isFailure()){
1064  return StatusCode::FAILURE;
1065  }
1066  m_latency2=val;
1067  return StatusCode::SUCCESS;
1068 }
bool isFailure() const
Definition: StatusCode.h:68
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
int m_seqAddress
Definition: FEB_v1.h:180
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int latency(int)
Definition: FEB_v1.cpp:731
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337
int m_latency2
Definition: FEB_v1.h:197

◆ setLatencyLLTUpNb()

StatusCode FEB_v1::setLatencyLLTUpNb ( int  val)

Definition at line 1042 of file FEB_v1.cpp.

References StatusCode::FAILURE, StatusCode::isFailure(), latency(), m_latency1, m_seqAddress, m_seqPga, SeqPGA::setSpiAdd(), SeqPGA::spiRead(), SeqPGA::spiWrite(), and StatusCode::SUCCESS.

Referenced by BOOST_PYTHON_MODULE(), and extTrig().

1042  {
1044  int latency = m_seqPga->spiRead(3);
1045  latency &=0xF0FF;
1046  latency |=((val&0xF)<<8);
1047  if (m_seqPga->spiWrite(3,latency).isFailure()){
1048  return StatusCode::FAILURE;
1049  }
1050  m_latency1=val;
1051  return StatusCode::SUCCESS;
1052 }
bool isFailure() const
Definition: StatusCode.h:68
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
int m_seqAddress
Definition: FEB_v1.h:180
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int latency(int)
Definition: FEB_v1.cpp:731
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
int m_latency1
Definition: FEB_v1.h:196
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ setMaskLLT()

StatusCode FEB_v1::setMaskLLT ( int  ch,
bool  val 
)

Definition at line 1115 of file FEB_v1.cpp.

References StatusCode::FAILURE, StatusCode::isFailure(), m_mask0, m_mask1, m_seqAddress, m_seqPga, SeqPGA::setSpiAdd(), SeqPGA::spiRead(), SeqPGA::spiWrite(), and StatusCode::SUCCESS.

Referenced by BOOST_PYTHON_MODULE(), and extTrig().

1115  {
1117  if (ch<16) {
1118  m_mask0=m_seqPga->spiRead(4);
1119  if (val) m_mask0 |= 1 << ch ;
1120  else m_mask0 &= ~(1<<ch) ;
1121  if (m_seqPga->spiWrite(4,m_mask0).isFailure()){
1122  return StatusCode::FAILURE;
1123  }
1124  return StatusCode::SUCCESS;
1125  }
1126  else if (ch<32) {
1127  m_mask1=m_seqPga->spiRead(5);
1128  if (val) m_mask1 |= 1 << (ch-16) ;
1129  else m_mask1 &= ~(1<<(ch-16)) ;
1130  if (m_seqPga->spiWrite(5,m_mask1).isFailure()){
1131  return StatusCode::FAILURE;
1132  }
1133  return StatusCode::SUCCESS;
1134  }
1135  return StatusCode::FAILURE;
1136 }
bool isFailure() const
Definition: StatusCode.h:68
int m_mask1
Definition: FEB_v1.h:193
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
int m_seqAddress
Definition: FEB_v1.h:180
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int m_mask0
Definition: FEB_v1.h:192
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ setMaskLLTCorner()

StatusCode FEB_v1::setMaskLLTCorner ( bool  val)

Definition at line 1141 of file FEB_v1.cpp.

References StatusCode::FAILURE, StatusCode::isFailure(), m_mask2, m_seqAddress, m_seqPga, SeqPGA::setSpiAdd(), SeqPGA::spiRead(), SeqPGA::spiWrite(), and StatusCode::SUCCESS.

Referenced by BOOST_PYTHON_MODULE(), and extTrig().

1141  {
1143  m_mask2=m_seqPga->spiRead(6);
1144  if (val) m_mask2 |= (1 << 3) ;
1145  else m_mask2 &= ~(1<<3) ;
1146  if (m_seqPga->spiWrite(6,m_mask2).isFailure()){
1147  return StatusCode::FAILURE;
1148  }
1149  return StatusCode::SUCCESS;
1150 }
bool isFailure() const
Definition: StatusCode.h:68
int m_mask2
Definition: FEB_v1.h:194
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
int m_seqAddress
Definition: FEB_v1.h:180
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ setMaskLLTSideNb()

StatusCode FEB_v1::setMaskLLTSideNb ( int  ch,
bool  val 
)

Definition at line 1169 of file FEB_v1.cpp.

References StatusCode::FAILURE, StatusCode::isFailure(), m_mask2, m_seqAddress, m_seqPga, SeqPGA::setSpiAdd(), SeqPGA::spiRead(), SeqPGA::spiWrite(), and StatusCode::SUCCESS.

Referenced by BOOST_PYTHON_MODULE(), and extTrig().

1169  {
1171  m_mask2=m_seqPga->spiRead(6);
1172  if (val) m_mask2 |= (1 << (4+ch)) ;
1173  else m_mask2 &= ~(1<< (4+ch)) ;
1174  if (m_seqPga->spiWrite(6,m_mask2).isFailure()){
1175  return StatusCode::FAILURE;
1176  }
1177  return StatusCode::SUCCESS;
1178 }
bool isFailure() const
Definition: StatusCode.h:68
int m_mask2
Definition: FEB_v1.h:194
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
int m_seqAddress
Definition: FEB_v1.h:180
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ setMaskLLTUpNb()

StatusCode FEB_v1::setMaskLLTUpNb ( int  ch,
bool  val 
)

Definition at line 1155 of file FEB_v1.cpp.

References StatusCode::FAILURE, StatusCode::isFailure(), m_mask2, m_seqAddress, m_seqPga, SeqPGA::setSpiAdd(), SeqPGA::spiRead(), SeqPGA::spiWrite(), and StatusCode::SUCCESS.

Referenced by BOOST_PYTHON_MODULE(), and extTrig().

1155  {
1157  m_mask2=m_seqPga->spiRead(6);
1158  if (val) m_mask2 |= (1 << (12+ch)) ;
1159  else m_mask2 &= ~(1<< (12+ch)) ;
1160  if (m_seqPga->spiWrite(6,m_mask2).isFailure()){
1161  return StatusCode::FAILURE;
1162  }
1163  return StatusCode::SUCCESS;
1164 }
bool isFailure() const
Definition: StatusCode.h:68
int m_mask2
Definition: FEB_v1.h:194
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
int m_seqAddress
Definition: FEB_v1.h:180
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ setOldSubtract()

StatusCode FEB_v1::setOldSubtract ( int  fe,
bool  value 
)

Definition at line 783 of file FEB_v1.cpp.

References data(), StatusCode::FAILURE, Object::info(), StatusCode::isFailure(), itos(), m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), SeqPGA::spiRead(), SeqPGA::spiWrite(), and StatusCode::SUCCESS.

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

783  {
785  unsigned int data=m_seqPga->spiRead(1);
786  data = data & 0xFEFF;
787  data += (value<<8);
788  if (m_seqPga->spiWrite(1,data).isFailure()){
789  return StatusCode::FAILURE;
790  }
791  info("set Old Subtraction mode "+itos(fe)+": "+itos(value),"FEB_v1::setOldSubtract");
792  return StatusCode::SUCCESS;
793 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
bool isFailure() const
Definition: StatusCode.h:68
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
Data * data()
Definition: FEB_v1.h:147
int m_feAddress[8]
Definition: FEB_v1.h:181
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ setOutputEport() [1/2]

StatusCode FEB_v1::setOutputEport ( int  gbt,
int  latency,
int  clock 
)

Definition at line 1564 of file FEB_v1.cpp.

References data(), StatusCode::FAILURE, Object::info(), StatusCode::isFailure(), itos(), m_seqAddress, m_seqPga, SeqPGA::setSpiAdd(), SeqPGA::spiWrite(), StatusCode::SUCCESS, and Object::warning().

Referenced by BOOST_PYTHON_MODULE(), and extTrig().

1564  {
1566  unsigned int data=(clock&0xFF)+((latency&0xFF)<<8);
1567  if (m_seqPga->spiWrite(20+gbt,data).isFailure()){
1568  warning("Cannot set Output EPort phase FPGA Seq - GBT "+itos(gbt)+" : "+itos(data),"FEB_v1::setOutputEPort");
1569  return StatusCode::FAILURE;
1570  }
1571  info("set Output EPort phase FPGA Seq - GBT "+itos(gbt)+" : "+itos(data),"FEB_v1::setOutputEPort");
1572  return StatusCode::SUCCESS;
1573 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
bool isFailure() const
Definition: StatusCode.h:68
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
int m_seqAddress
Definition: FEB_v1.h:180
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int latency(int)
Definition: FEB_v1.cpp:731
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
Data * data()
Definition: FEB_v1.h:147
void warning(std::string mymsg)
Definition: Object.h:39

◆ setOutputEport() [2/2]

StatusCode FEB_v1::setOutputEport ( int  fe,
int  ch,
int  latency,
int  clock 
)

Definition at line 1589 of file FEB_v1.cpp.

References data(), StatusCode::FAILURE, Object::info(), StatusCode::isFailure(), itos(), m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), SeqPGA::spiWrite(), StatusCode::SUCCESS, and Object::warning().

1589  {
1591  unsigned int data=(clock&0x3F)+((latency&0x3F)<<6);
1592  if (m_seqPga->spiWrite(14+ch,data).isFailure()){
1593  warning("Cannot set Output EPort phase FPGA"+itos(fe)+" - Ch "+itos(ch)+" : "+itos(data),"FEB_v1::setOutputEPort");
1594  return StatusCode::FAILURE;
1595  }
1596  info("set Output EPort phase FPGA "+itos(fe)+" - Ch "+itos(ch)+" : "+itos(data),"FEB_v1::setOutputEPort");
1597  return StatusCode::SUCCESS;
1598 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
bool isFailure() const
Definition: StatusCode.h:68
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int latency(int)
Definition: FEB_v1.cpp:731
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
Data * data()
Definition: FEB_v1.h:147
int m_feAddress[8]
Definition: FEB_v1.h:181
void warning(std::string mymsg)
Definition: Object.h:39

◆ setProbeEnable()

StatusCode FEB_v1::setProbeEnable ( int  fe,
bool  enable 
)

Definition at line 603 of file FEB_v1.cpp.

References Object::info(), m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), SeqPGA::spiRead(), and SeqPGA::spiWrite().

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

603  {
605  int val = m_seqPga->spiRead(2);
606  if (enable) {
607  info("Enabling Seq PGA probes","FEB_v1::setProbeEnable");
608  val |= 0xF;
609  }
610  else {
611  info("Disabling Seq PGA probes","FEB_v1::setProbeEnable");
612  val &=0xFFF0;
613  }
614  return m_seqPga->spiWrite(2,val);
615 }
void info(std::string mymsg)
Definition: Object.h:38
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
int m_feAddress[8]
Definition: FEB_v1.h:181
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ setPseudoADCEnable()

StatusCode FEB_v1::setPseudoADCEnable ( int  fe,
int  ch,
bool  value 
)

Definition at line 856 of file FEB_v1.cpp.

References data(), StatusCode::FAILURE, Object::info(), StatusCode::isFailure(), itos(), m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), SeqPGA::spiRead(), SeqPGA::spiWrite(), StatusCode::SUCCESS, and Object::warning().

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

856  {
857  if (ch>3){
858  warning("try to configure a channel that does not exist.","FEB_v1::setPseudoADCEnable");
859  return StatusCode::FAILURE;
860  }
862  unsigned int data=m_seqPga->spiRead(4+ch);
863  if (value) data |= 1 << 10 ;
864  else data &= ~(1<<10) ;
865  if (m_seqPga->spiWrite(4+ch,data).isFailure()){
866  return StatusCode::FAILURE;
867  }
868  info("set PseudoADCEnable "+itos(fe)+" - Ch "+itos(ch)+" : "+itos(value),"FEB_v1::setPseudoADCEnable");
869  return StatusCode::SUCCESS;
870 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
bool isFailure() const
Definition: StatusCode.h:68
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
Data * data()
Definition: FEB_v1.h:147
int m_feAddress[8]
Definition: FEB_v1.h:181
void warning(std::string mymsg)
Definition: Object.h:39
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ setPseudoPMEnable()

StatusCode FEB_v1::setPseudoPMEnable ( int  fe,
int  ch,
bool  value 
)

Definition at line 883 of file FEB_v1.cpp.

References data(), StatusCode::FAILURE, Object::info(), StatusCode::isFailure(), itos(), m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), SeqPGA::spiRead(), SeqPGA::spiWrite(), StatusCode::SUCCESS, and Object::warning().

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

883  {
884  if (ch>3){
885  warning("try to configure a channel that does not exist.","FEB_v1::setPseudoPMEnable");
886  return StatusCode::FAILURE;
887  }
889  unsigned int data=m_seqPga->spiRead(4+ch);
890  if (value) data |= 1 << 9 ;
891  else data &= ~(1<<9) ;
892  if (m_seqPga->spiWrite(4+ch,data).isFailure()){
893  return StatusCode::FAILURE;
894  }
895  info("set PseudoPMEnable FE "+itos(fe)+" - Ch "+itos(ch)+" : "+itos(value),"FEB_v1::setPseudoPMEnable");
896  return StatusCode::SUCCESS;
897 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
bool isFailure() const
Definition: StatusCode.h:68
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
Data * data()
Definition: FEB_v1.h:147
int m_feAddress[8]
Definition: FEB_v1.h:181
void warning(std::string mymsg)
Definition: Object.h:39
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ setSpareForTrigEnable()

StatusCode FEB_v1::setSpareForTrigEnable ( int  fe,
int  enable 
)

Definition at line 631 of file FEB_v1.cpp.

References Object::info(), itos(), m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), SeqPGA::spiRead(), and SeqPGA::spiWrite().

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

631  {
633  int val = m_seqPga->spiRead(2) & 0xFF0F;
634  info("SetSpareForTrig FE "+itos(fe)+" : "+itos(enable),"FEB_v1::setSpareForTrigEnable");
635  val |= (enable<<4)&0xF0;
636  return m_seqPga->spiWrite(2,val);
637 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
int m_feAddress[8]
Definition: FEB_v1.h:181
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ setSpyModeFE()

StatusCode FEB_v1::setSpyModeFE ( int  fe,
bool  value 
)

Definition at line 672 of file FEB_v1.cpp.

References data(), StatusCode::FAILURE, Object::info(), StatusCode::isFailure(), itos(), m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), SeqPGA::spiRead(), SeqPGA::spiWrite(), and StatusCode::SUCCESS.

Referenced by BOOST_PYTHON_MODULE(), seqPga(), and writeFifoSpyFE().

672  {
674  unsigned int data=m_seqPga->spiRead(1);
675  if (value) data |= 1 << 14 ;
676  else data &= ~(1<<14) ;
677  if (m_seqPga->spiWrite(1,data).isFailure()){
678  return StatusCode::FAILURE;
679  }
680  info("set Spy Mode FE "+itos(fe)+" : "+itos(value)+" setup0="+itos(data),"FEB_v1::spyModeFE");
681  return StatusCode::SUCCESS;
682 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
bool isFailure() const
Definition: StatusCode.h:68
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
Data * data()
Definition: FEB_v1.h:147
int m_feAddress[8]
Definition: FEB_v1.h:181
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ setSpyModeSeq()

StatusCode FEB_v1::setSpyModeSeq ( bool  value)

Definition at line 653 of file FEB_v1.cpp.

References data(), m_seqAddress, m_seqPga, SeqPGA::setSpiAdd(), SeqPGA::spiRead(), and SeqPGA::spiWrite().

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

653  {
655  unsigned int data=m_seqPga->spiRead(1);
656  if (value) data |= 32 ;
657  else data &= ~32 ;
658  return m_seqPga->spiWrite(1,data);
659 }
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
int m_seqAddress
Definition: FEB_v1.h:180
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
Data * data()
Definition: FEB_v1.h:147
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ setStopInjLoop()

StatusCode FEB_v1::setStopInjLoop ( bool  stoploop)

Definition at line 558 of file FEB_v1.cpp.

References data(), StatusCode::FAILURE, StatusCode::isFailure(), itos(), m_feAddress, m_seqAddress, m_seqPga, SeqPGA::setSpiAdd(), SeqPGA::spiRead(), SeqPGA::spiWrite(), StatusCode::SUCCESS, and Object::warning().

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

558  {
560  int data = m_seqPga->spiRead(12);
561  data &= 0x0FFF;
562  data |= (stoploop<<12);
563  if (m_seqPga->spiWrite(12,data).isFailure()){
564  warning("Cannot write test sequence loop for Seq pga ","FEB_v1::setStopInjLoop");
565  return StatusCode::FAILURE;
566  }
567  for (int fe=0; fe<8; ++fe){
569  data = m_seqPga->spiRead(3);
570  data &= 0x0FFF;
571  data |= (stoploop<<12);
572  if (m_seqPga->spiWrite(3,data).isFailure()){
573  warning("Cannot write test loop for FE pga "+ itos(fe),
574  "FEB_v1::setStopInjLoop");
575  return StatusCode::FAILURE;
576  }
577  }
578  return StatusCode::SUCCESS;
579 }
std::string itos(int)
Definition: Tools.cpp:46
bool isFailure() const
Definition: StatusCode.h:68
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
int m_seqAddress
Definition: FEB_v1.h:180
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
Data * data()
Definition: FEB_v1.h:147
int m_feAddress[8]
Definition: FEB_v1.h:181
void warning(std::string mymsg)
Definition: Object.h:39
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ setTestDuration()

StatusCode FEB_v1::setTestDuration ( int  duration)

Definition at line 511 of file FEB_v1.cpp.

References data(), StatusCode::FAILURE, StatusCode::isFailure(), itos(), m_feAddress, m_seqAddress, m_seqPga, SeqPGA::setSpiAdd(), SeqPGA::spiRead(), SeqPGA::spiWrite(), StatusCode::SUCCESS, and Object::warning().

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

511  {
513  int data = m_seqPga->spiRead(12);
514  data &= 0xFC00;
515  data |= (duration&0x3FF);
516  if (m_seqPga->spiWrite(12,data).isFailure()){
517  warning("Cannot write test sequence duration for Seq pga ","FEB_v1::setTestDuration");
518  return StatusCode::FAILURE;
519  }
520  for (int fe=0; fe<8; ++fe){
522  data = m_seqPga->spiRead(3);
523  data &= 0xFC00;
524  data |= (duration&0x3FF);
525  if (m_seqPga->spiWrite(3,data).isFailure()){
526  warning("Cannot write test sequence duration for FE pga "+ itos(fe),
527  "FEB_v1::setTestDuration");
528  return StatusCode::FAILURE;
529  }
530  }
531  return StatusCode::SUCCESS;
532 }
std::string itos(int)
Definition: Tools.cpp:46
bool isFailure() const
Definition: StatusCode.h:68
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
int m_seqAddress
Definition: FEB_v1.h:180
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
Data * data()
Definition: FEB_v1.h:147
int m_feAddress[8]
Definition: FEB_v1.h:181
void warning(std::string mymsg)
Definition: Object.h:39
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ setThreshold()

StatusCode FEB_v1::setThreshold ( int  fe,
int  value 
)

Definition at line 695 of file FEB_v1.cpp.

References data(), StatusCode::FAILURE, Object::info(), StatusCode::isFailure(), itos(), m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), SeqPGA::spiRead(), SeqPGA::spiWrite(), and StatusCode::SUCCESS.

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

695  {
697  unsigned int data=m_seqPga->spiRead(1);
698  data = data & 0xc7FF;
699  data += (value<<11);
700 
701  if (m_seqPga->spiWrite(1,data).isFailure()){
702  return StatusCode::FAILURE;
703  }
704  info("set Threshold "+itos(fe)+": "+itos(value),"FEB_v1::setThreshold");
705  return StatusCode::SUCCESS;
706 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
bool isFailure() const
Definition: StatusCode.h:68
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
Data * data()
Definition: FEB_v1.h:147
int m_feAddress[8]
Definition: FEB_v1.h:181
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ spareForTrigEnable()

int FEB_v1::spareForTrigEnable ( int  fe)

Definition at line 642 of file FEB_v1.cpp.

References Object::info(), itos(), m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), and SeqPGA::spiRead().

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

642  {
644  int val = ((m_seqPga->spiRead(2))&0xF0)>>4;
645  info("spareForTrigEnable for FE "+itos(fe)+" : "+itos(val),"FEB_v1::probeEnable");
646  return val;
647 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int m_feAddress[8]
Definition: FEB_v1.h:181
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ spyModeFE()

bool FEB_v1::spyModeFE ( int  fe)

Definition at line 684 of file FEB_v1.cpp.

References Object::info(), itos(), m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), and SeqPGA::spiRead().

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

684  {
686  int val = (m_seqPga->spiRead(1)>>14)&1;
687  info("Spy Mode FE "+itos(fe)+": "+itos(val),"FEB_v1::spyModeFE");
688  return val;
689 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int m_feAddress[8]
Definition: FEB_v1.h:181
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ spyModeSeq()

bool FEB_v1::spyModeSeq ( )

Definition at line 661 of file FEB_v1.cpp.

References Object::info(), itos(), m_seqAddress, m_seqPga, SeqPGA::setSpiAdd(), and SeqPGA::spiRead().

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

661  {
663  int val = m_seqPga->spiRead(1)&&32 ;
664  info("Spy Mode Seq: "+itos(val),"FEB_v1::spyModeSeq");
665  return val;
666 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
int m_seqAddress
Definition: FEB_v1.h:180
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ statusRegister()

int FEB_v1::statusRegister ( int  fe)

Definition at line 501 of file FEB_v1.cpp.

References Object::info(), itos(), m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), and SeqPGA::spiRead().

Referenced by BOOST_PYTHON_MODULE(), and extTrig().

501  {
503  int val = (m_seqPga->spiRead(10));
504  info("Status register FE "+itos(fe)+": "+itos(val),"FEB_v1::statusRegister");
505  return val;
506 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int m_feAddress[8]
Definition: FEB_v1.h:181
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ stopInjLoop()

bool FEB_v1::stopInjLoop ( int  fpga)

Definition at line 584 of file FEB_v1.cpp.

References Object::info(), itos(), m_feAddress, m_seqAddress, m_seqPga, SeqPGA::setSpiAdd(), and SeqPGA::spiRead().

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

584  {
585  bool val;
586  if (fpga==-1){
588  val = (m_seqPga->spiRead(12)>>12)&0x1;
589  info("Test Length Seq stop Loop: "+itos(val),"FEB_v1::stopInjLoop");
590  return val;
591  }
592  else {
594  val = (m_seqPga->spiRead(3)>>12)&0x1;
595  info("Test Length FE stop Loop : "+itos(fpga)+" "+itos(val),"FEB_v1::stopInjLoop");
596  return val;
597  }
598 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
int m_seqAddress
Definition: FEB_v1.h:180
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int m_feAddress[8]
Definition: FEB_v1.h:181
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ testDuration()

int FEB_v1::testDuration ( int  fpga)

Definition at line 537 of file FEB_v1.cpp.

References Object::debug(), itos(), m_feAddress, m_fifoDepth, m_seqAddress, m_seqPga, SeqPGA::setSpiAdd(), and SeqPGA::spiRead().

Referenced by BOOST_PYTHON_MODULE(), readFifoInjectFE(), readFifoLLT(), readFifoLLTFE(), readFifoSpyFE(), seqPga(), writeDataFifoInjectFE(), writeFifoInjectFE(), writeFifoLLT(), writeFifoLLTFE(), and writeFifoSpyFE().

537  {
538  int val=-1;
539  if (fpga==-1){
541  val = (m_seqPga->spiRead(12))&0x3FF;
542  debug("Test Length Seq: "+itos(val),"FEB_v1::testDuration");
543  m_fifoDepth = val;
544  return val;
545  }
546  else {
548  val = (m_seqPga->spiRead(3))&0x3FF;
549  debug("Test Length FE: "+itos(fpga)+" "+itos(val),"FEB_v1::testDuration");
550  m_fifoDepth = val;
551  return val;
552  }
553 }
std::string itos(int)
Definition: Tools.cpp:46
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
int m_fifoDepth
Definition: FEB_v1.h:179
int m_seqAddress
Definition: FEB_v1.h:180
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
void debug(std::string mymsg)
Definition: Object.h:37
int m_feAddress[8]
Definition: FEB_v1.h:181
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ testSequence()

StatusCode FEB_v1::testSequence ( )
inline

Definition at line 108 of file FEB_v1.h.

References m_seqPga, and SeqPGA::testSequence().

Referenced by BOOST_PYTHON_MODULE().

108 { return m_seqPga->testSequence(); }
StatusCode testSequence()
Definition: SeqPGA.h:96
SeqPGA * m_seqPga
Definition: FEB_v1.h:188

◆ threshold()

int FEB_v1::threshold ( int  fe)

Definition at line 708 of file FEB_v1.cpp.

References Object::info(), itos(), m_feAddress, m_seqPga, SeqPGA::setSpiAdd(), and SeqPGA::spiRead().

Referenced by BOOST_PYTHON_MODULE(), and seqPga().

708  {
710  int val = (m_seqPga->spiRead(1)>>11)&7;
711  info("threshold FE"+itos(fe)+": "+itos(val),"FEB_v1::threshold");
712  return val;
713 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int m_feAddress[8]
Definition: FEB_v1.h:181
StatusCode spiRead(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:337

◆ update()

void FEB_v1::update ( )
inlinevirtual

Update the Element configuration from the actual hardware

Implements Element.

Definition at line 61 of file FEB_v1.h.

References Object::info(), and Object::name().

Referenced by AppFrame.AppFrame::deleteHardware(), ConfFrame.ConfFrame::onChange(), GraphFrame.GraphFrame::onChange(), CfgFrame.CfgFrame::onChange(), ConfFrame.ConfFrame::onEdit(), AppFrame.AppFrame::onLoad(), ConfFrame.ConfFrame::onReLoad(), GraphFrame.GraphFrame::onReLoad(), CfgFrame.CfgFrame::onReLoad(), and AppFrame.AppFrame::onReLoad().

61 {info("FEB_v1 "+name()+". Nothing to do.","FEB_v1::update");};
void info(std::string mymsg)
Definition: Object.h:38
std::string name() const
Definition: Object.h:28

◆ writeDataFifoInjectFE()

void FEB_v1::writeDataFifoInjectFE ( int  fe,
int *  ch0,
int *  ch1,
int *  ch2,
int *  ch3 
)

Definition at line 426 of file FEB_v1.cpp.

References Object::info(), m_feAddress, m_fifo, m_fifoInjectAddress, m_seqPga, SeqPGA::setSpiAdd(), SeqPGA::spiWrite(), and testDuration().

Referenced by BOOST_PYTHON_MODULE(), and extTrig().

426  {
428  int depth = testDuration(fe);
429 
430  info("Injection FIFO 0","FEB_v1::readFifoInjectFE");
431  for (int i=0; i<depth; ++i){m_fifo[0][i]=(ch0[i]&0xFFF)+((ch1[i]<<12)&0xF000);}
433  info("Injection FIFO 1","FEB_v1::readFifoInjectFE");
434  for (int i=0; i<depth; ++i){m_fifo[1][i]=((ch1[i]>>4)&0xFF)+((ch2[i]<<8)&0xFF00);}
436  info("Injection FIFO 2","FEB_v1::readFifoInjectFE");
437  for (int i=0; i<depth; ++i){m_fifo[2][i]=((ch2[i]>>8)&0xF)+((ch3[i]<<4)&0xFFF0);}
439 }
void info(std::string mymsg)
Definition: Object.h:38
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
int m_fifoInjectAddress[3]
Definition: FEB_v1.h:186
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int testDuration(int fpga)
Definition: FEB_v1.cpp:537
unsigned int * m_fifo[3]
Definition: FEB_v1.h:189
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
int m_feAddress[8]
Definition: FEB_v1.h:181

◆ writeFifoInjectFE()

void FEB_v1::writeFifoInjectFE ( int  fe,
int  pattern 
)

Definition at line 298 of file FEB_v1.cpp.

References Object::info(), m_feAddress, m_fifoInjectAddress, m_seqPga, SeqPGA::setSpiAdd(), SeqPGA::spiWrite(), testDuration(), and Object::warning().

Referenced by BOOST_PYTHON_MODULE(), and extTrig().

298  {
300  int depth = testDuration(fe);
301 
302  unsigned int buffer[depth];
303  warning("Spi write mode block disabled !!!","FEB_v1::writeFifoInjectFE");
304  switch(pattern){
305  default: info ("Incremented pattern injection","FEB_v1::writeFifoInjectFE"); break;
306  case 1: info ("ZERO pattern injection","FEB_v1::writeFifoInjectFE"); break;
307  case 2: info ("ZERO and ONE pattern injection","FEB_v1::writeFifoInjectFE"); break;
308  case 10: info ("Channel 0 - Static ONE pattern injection","FEB_v1::writeFifoInjectFE"); break;
309  case 11: info ("Channel 1 - Static ONE pattern injection","FEB_v1::writeFifoInjectFE"); break;
310  case 12: info ("Channel 2 - Static ONE pattern injection","FEB_v1::writeFifoInjectFE"); break;
311  case 13: info ("Channel 3 - Static ONE pattern injection","FEB_v1::writeFifoInjectFE"); break;
312  case 20: info ("Channel 0 - 1/3 ONE pattern injection","FEB_v1::writeFifoInjectFE"); break;
313  case 21: info ("Channel 1 - 1/3 ONE pattern injection","FEB_v1::writeFifoInjectFE"); break;
314  case 22: info ("Channel 2 - 1/3 ONE pattern injection","FEB_v1::writeFifoInjectFE"); break;
315  case 23: info ("Channel 3 - 1/3 ONE pattern injection","FEB_v1::writeFifoInjectFE"); break;
316  case 30: info ("Channel 0 - 1/3 0xAAA pattern injection","FEB_v1::writeFifoInjectFE"); break;
317  case 31: info ("Channel 1 - 1/3 0xAAA pattern injection","FEB_v1::writeFifoInjectFE"); break;
318  case 32: info ("Channel 2 - 1/3 0xAAA pattern injection","FEB_v1::writeFifoInjectFE"); break;
319  case 33: info ("Channel 3 - 1/3 0xAAA pattern injection","FEB_v1::writeFifoInjectFE"); break;
320  case 40: info ("Channel 0 - pow(2,i), i being the word index modulo 12","FEB_v1::writeFifoInjectFE"); break;
321  case 41: info ("Channel 1 - pow(2,i), i being the word index modulo 12","FEB_v1::writeFifoInjectFE"); break;
322  case 42: info ("Channel 2 - pow(2,i), i being the word index modulo 12","FEB_v1::writeFifoInjectFE"); break;
323  case 43: info ("Channel 3 - pow(2,i), i being the word index modulo 12","FEB_v1::writeFifoInjectFE"); break;
324  case 100: info ("Pulse mode - clock running at 40/16 MHz","FEB_v1::writeFifoInjectFE"); break;
325  }
326 
327  info("Injection FIFO 0","FEB_v1::writeFifoInjectFE");
328  for (int i=0; i<depth; ++i){
329  switch (pattern){
330  default: buffer[i]=(i+((i+1)<<12))&0xFFFF; break;
331  case 1: buffer[i]=(0)&0xFFFF; break;
332  case 2: buffer[i]=0xFFFF*(i&1); break;
333  case 10: buffer[i]=0x0FFF; break;
334  case 11: buffer[i]=0xF000; break;
335  case 12: buffer[i]=0; break;
336  case 13: buffer[i]=0; break;
337  case 20: i%4==0?buffer[i]=0x0FFF:buffer[i]=0; break;
338  case 21: i%4==0?buffer[i]=0xF000:buffer[i]=0; break;
339  case 22: buffer[i]=0; break;
340  case 23: buffer[i]=0; break;
341  case 30: i%4==0?buffer[i]=0x0AAA:buffer[i]=0; break;
342  case 31: i%4==0?buffer[i]=0xA000:buffer[i]=0; break;
343  case 32: buffer[i]=0; break;
344  case 33: buffer[i]=0; break;
345  case 40: buffer[i]=int(pow(2,i%12)); break;
346  case 41: buffer[i]=(int(pow(2,i%12))<<12)&0xFFFF; break;
347  case 42: buffer[i]=0; break;
348  case 43: buffer[i]=0; break;
349  case 50: buffer[i]=1; break;
350  case 51: buffer[i]=2; break;
351  case 52: buffer[i]=2048; break;
352  case 100: ((i>>4)&0x1)==0 ? buffer[i]=1 : buffer[i]=0; break;
353  }
354  }
355  for (int i=0; i<depth; ++i){
356  m_seqPga->spiWrite( m_fifoInjectAddress[0], buffer[i]);
357  }
358 
359  info("Injection FIFO 1","FEB_v1::writeFifoInjectFE");
360  for (int i=0; i<depth; ++i){
361  switch(pattern){
362  default: buffer[i]=((((i+1)>>4)&0xFF)+((i+2)<<8))&0xFFFF; break;
363  case 1: buffer[i]=(0)&0xFFFF; break;
364  case 2: buffer[i]=0xFFFF*(i&1); break;
365  case 10: buffer[i]=0; break;
366  case 11: buffer[i]=0x00FF; break;
367  case 12: buffer[i]=0xFF00; break;
368  case 13: buffer[i]=0; break;
369  case 20: buffer[i]=0; break;
370  case 21: i%4==0?buffer[i]=0x00FF:buffer[i]=0; break;
371  case 22: i%4==0?buffer[i]=0xFF00:buffer[i]=0; break;
372  case 23: buffer[i]=0; break;
373  case 30: buffer[i]=0; break;
374  case 31: i%4==0?buffer[i]=0x00AA:buffer[i]=0; break;
375  case 32: i%4==0?buffer[i]=0xAA00:buffer[i]=0; break;
376  case 33: buffer[i]=0; break;
377  case 40: buffer[i]=0; break;
378  case 41: buffer[i]=(int(pow(2,i%12))>>4)&0xFF; break;
379  case 42: buffer[i]=(int(pow(2,i%12))<<8)&0xFFFF; break;
380  case 43: buffer[i]=0; break;
381  case 50: buffer[i]=0; break;
382  case 51: buffer[i]=0; break;
383  case 52: buffer[i]=0; break;
384  case 100: buffer[i]=0; break;
385  }
386  }
387  for (int i=0; i<depth; ++i){
388  m_seqPga->spiWrite( m_fifoInjectAddress[1], buffer[i]);
389  }
390 
391  info("Injection FIFO 2","FEB_v1::writeFifoInjectFE");
392  for (int i=0; i<depth; ++i){
393  switch(pattern){
394  default: buffer[i]=((((i+2)>>8)&0xF)+((i+3)<<4))&0xFFFF; break;
395  case 1: buffer[i]=(0)&0xFFFF; break;
396  case 2: buffer[i]=0xFFFF*(i&1); break;
397  case 10: buffer[i]=0; break;
398  case 11: buffer[i]=0; break;
399  case 12: buffer[i]=0x000F; break;
400  case 13: buffer[i]=0xFFF0; break;
401  case 20: buffer[i]=0; break;
402  case 21: buffer[i]=0; break;
403  case 22: i%4==0?buffer[i]=0x000F:buffer[i]=0; break;
404  case 23: i%4==0?buffer[i]=0xFFF0:buffer[i]=0; break;
405  case 30: buffer[i]=0; break;
406  case 31: buffer[i]=0; break;
407  case 32: i%4==0?buffer[i]=0x000A:buffer[i]=0; break;
408  case 33: i%4==0?buffer[i]=0xAAA0:buffer[i]=0; break;
409  case 40: buffer[i]=0; break;
410  case 41: buffer[i]=0; break;
411  case 42: buffer[i]=(int(pow(2,i%12))>>8)&0xF; break;
412  case 43: buffer[i]=(int(pow(2,i%12))<<4)&0xFFFF; break;
413  case 50: buffer[i]=0; break;
414  case 51: buffer[i]=0; break;
415  case 52: buffer[i]=0; break;
416  case 100: buffer[i]=0; break;
417  }
418  }
419  for (int i=0; i<depth; ++i){
420  m_seqPga->spiWrite( m_fifoInjectAddress[2], buffer[i]);
421  }
422 }
void info(std::string mymsg)
Definition: Object.h:38
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
int m_fifoInjectAddress[3]
Definition: FEB_v1.h:186
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int testDuration(int fpga)
Definition: FEB_v1.cpp:537
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
int m_feAddress[8]
Definition: FEB_v1.h:181
void warning(std::string mymsg)
Definition: Object.h:39

◆ writeFifoLLT()

void FEB_v1::writeFifoLLT ( )

Definition at line 283 of file FEB_v1.cpp.

References m_fifo, m_fifoTrigAddress, m_seqAddress, m_seqPga, SeqPGA::setSpiAdd(), SeqPGA::spiWrite(), and testDuration().

Referenced by BOOST_PYTHON_MODULE(), and extTrig().

283  {
285  int depth = testDuration(-1);
286 
287  for (int d=0; d<depth; ++d){
288  m_fifo[0][d]=d;
289  m_fifo[1][d]=d;
290  }
291  m_seqPga->spiWrite( m_fifoTrigAddress[0], depth, m_fifo[0] );
292  m_seqPga->spiWrite( m_fifoTrigAddress[1], depth, m_fifo[1] );
293 }
StatusCode setSpiAdd(unsigned long int)
Definition: SeqPGA.cpp:255
int m_seqAddress
Definition: FEB_v1.h:180
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int testDuration(int fpga)
Definition: FEB_v1.cpp:537
unsigned int * m_fifo[3]
Definition: FEB_v1.h:189
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
int m_fifoTrigAddress[3]
Definition: FEB_v1.h:187

◆ writeFifoLLTFE()

void FEB_v1::writeFifoLLTFE ( int  fe)

Definition at line 444 of file FEB_v1.cpp.

References testDuration(), and Object::warning().

Referenced by BOOST_PYTHON_MODULE(), and extTrig().

444  {
445  warning("This function is commented.");
446  int depth = testDuration(fe);
447  /*
448  m_seqPga->setSpiAdd( m_feAddress[fe] );
449  m_seqPga -> setSpiSubAdd( m_fifoLLTAddress[0] );
450  info("LLT FE FIFO 0","FEB_v1::readFifoLLTFE");
451  for (int d=0; d<depth; ++d){
452  m_seqPga -> setSpiDataTx(d);
453  m_seqPga -> transmitSpi();
454  }
455  m_seqPga -> setSpiSubAdd( m_fifoLLTAddress[1] );
456  for (int d=0; d<depth; ++d){
457  m_seqPga -> setSpiDataTx(d);
458  m_seqPga -> transmitSpi();
459  }
460  m_seqPga -> setSpiSubAdd( m_fifoLLTAddress[2] );
461  for (int d=0; d<depth; ++d){
462  m_seqPga -> setSpiDataTx(d);
463  m_seqPga -> transmitSpi();
464  }
465 */
466 }
int testDuration(int fpga)
Definition: FEB_v1.cpp:537
void warning(std::string mymsg)
Definition: Object.h:39

◆ writeFifoSpyFE()

void FEB_v1::writeFifoSpyFE ( int  fe)

Definition at line 266 of file FEB_v1.cpp.

References m_fifo, m_fifoSpyAddress, m_seqPga, setSpyModeFE(), SeqPGA::spiWrite(), and testDuration().

Referenced by BOOST_PYTHON_MODULE(), and extTrig().

266  {
267  setSpyModeFE(fe, false);
268  int depth = testDuration(fe);
269  for (int d=0; d<depth; ++d){
270  m_fifo[0][d]=d;
271  m_fifo[1][d]=d;
272  m_fifo[2][d]=d;
273  }
274  m_seqPga->spiWrite( m_fifoSpyAddress[0], depth, m_fifo[0] );
275  m_seqPga->spiWrite( m_fifoSpyAddress[1], depth, m_fifo[1] );
276  m_seqPga->spiWrite( m_fifoSpyAddress[2], depth, m_fifo[2] );
277  setSpyModeFE(fe, true);
278 }
int m_fifoSpyAddress[3]
Definition: FEB_v1.h:184
SeqPGA * m_seqPga
Definition: FEB_v1.h:188
int testDuration(int fpga)
Definition: FEB_v1.cpp:537
unsigned int * m_fifo[3]
Definition: FEB_v1.h:189
StatusCode spiWrite(unsigned int, unsigned int, unsigned int *)
Definition: SeqPGA.cpp:321
StatusCode setSpyModeFE(int, bool)
Definition: FEB_v1.cpp:672

Member Data Documentation

◆ m_ch

int* FEB_v1::m_ch[4]
private

Definition at line 190 of file FEB_v1.h.

Referenced by FEB_v1(), readFifoInjectFE(), readFifoLLTFE(), and readFifoSpyFE().

◆ m_data

Data* FEB_v1::m_data
private

Definition at line 191 of file FEB_v1.h.

Referenced by data(), FEB_v1(), readFifoLLT(), readFifoLLTFE(), and readFifoSpyFE().

◆ m_feAddress

int FEB_v1::m_feAddress[8]
private

◆ m_fifo

unsigned int* FEB_v1::m_fifo[3]
private

◆ m_fifoDepth

int FEB_v1::m_fifoDepth
private

Definition at line 179 of file FEB_v1.h.

Referenced by FEB_v1(), readFifo(), and testDuration().

◆ m_fifoInjectAddress

int FEB_v1::m_fifoInjectAddress[3]
private

Definition at line 186 of file FEB_v1.h.

Referenced by FEB_v1(), readFifoInjectFE(), writeDataFifoInjectFE(), and writeFifoInjectFE().

◆ m_fifoLLTAddress

int FEB_v1::m_fifoLLTAddress[3]
private

Definition at line 185 of file FEB_v1.h.

Referenced by FEB_v1(), and readFifoLLTFE().

◆ m_fifoSpyAddress

int FEB_v1::m_fifoSpyAddress[3]
private

Definition at line 184 of file FEB_v1.h.

Referenced by FEB_v1(), readFifoSpyFE(), and writeFifoSpyFE().

◆ m_fifoTrigAddress

int FEB_v1::m_fifoTrigAddress[3]
private

Definition at line 187 of file FEB_v1.h.

Referenced by FEB_v1(), readFifoLLT(), and writeFifoLLT().

◆ m_fifoUsbTest

RAM* FEB_v1::m_fifoUsbTest
private

Definition at line 201 of file FEB_v1.h.

Referenced by FEB_v1().

◆ m_gbtAddress

int FEB_v1::m_gbtAddress[4]
private

◆ m_icecalAddress

int FEB_v1::m_icecalAddress[8]
private

Definition at line 183 of file FEB_v1.h.

Referenced by FEB_v1().

◆ m_latency0

int FEB_v1::m_latency0
private

Definition at line 195 of file FEB_v1.h.

Referenced by latencyLLT(), and setLatencyLLT().

◆ m_latency1

int FEB_v1::m_latency1
private

Definition at line 196 of file FEB_v1.h.

Referenced by latencyLLT(), and setLatencyLLTUpNb().

◆ m_latency2

int FEB_v1::m_latency2
private

Definition at line 197 of file FEB_v1.h.

Referenced by latencyLLT(), and setLatencyLLTSideNb().

◆ m_latency3

int FEB_v1::m_latency3
private

Definition at line 198 of file FEB_v1.h.

Referenced by latencyLLT(), and setLatencyLLTCorner().

◆ m_mask0

int FEB_v1::m_mask0
private

Definition at line 192 of file FEB_v1.h.

Referenced by maskLLT(), and setMaskLLT().

◆ m_mask1

int FEB_v1::m_mask1
private

Definition at line 193 of file FEB_v1.h.

Referenced by maskLLT(), and setMaskLLT().

◆ m_mask2

int FEB_v1::m_mask2
private

Definition at line 194 of file FEB_v1.h.

Referenced by maskLLT(), setMaskLLTCorner(), setMaskLLTSideNb(), and setMaskLLTUpNb().

◆ m_ramInj

RAM* FEB_v1::m_ramInj[3]
private

Definition at line 199 of file FEB_v1.h.

Referenced by FEB_v1(), and ramInj().

◆ m_ramSpy

RAM* FEB_v1::m_ramSpy[3]
private

Definition at line 200 of file FEB_v1.h.

Referenced by FEB_v1(), and ramSpy().

◆ m_seqAddress

int FEB_v1::m_seqAddress
private

◆ m_seqPga

SeqPGA* FEB_v1::m_seqPga
private

Definition at line 188 of file FEB_v1.h.

Referenced by calibCte(), clock80MHzFallingEdge(), clockFallingEdge(), clockPhaseEport(), disableSubtract(), enableBXIDReset(), extTrig(), FEB_v1(), gain4(), gbt80MHzClkEport(), gbtAcknowledgeConfig(), gbtClockStrength(), gbtDataPath(), gbtDLLEport(), gbtDLLReset(), gbtEnableEport(), gbtMode(), gbtStatus(), gbtTermEport(), gbtTrackMode(), globalPseudoPMEnable(), injectModeFE(), latency(), latencyEport(), latencyLLT(), maskLLT(), oldSubtract(), probeEnable(), pseudoADCEnable(), pseudoPMEnable(), readFifo(), readFifoInjectFE(), readFifoLLT(), readFifoLLTFE(), readFifoSpyFE(), reset(), resetFE(), resetFifoInjectFE(), resetFifoSpyFE(), resetSpi(), seqPga(), setCalibCte(), setClock80MHzFallingEdge(), setClockFallingEdge(), setDisableSubtract(), setEnableBXIDReset(), setExtTrig(), setGain4(), setGbt80MHzClkEport(), setGbtClockStrength(), setGbtDataPath(), setGbtDLLEport(), setGbtEnableEport(), setGbtMode(), setGbtTermEport(), setGbtTrackMode(), setGlobalPseudoPMEnable(), setInjectModeFE(), setLatency(), setLatencyLLT(), setLatencyLLTCorner(), setLatencyLLTSideNb(), setLatencyLLTUpNb(), setMaskLLT(), setMaskLLTCorner(), setMaskLLTSideNb(), setMaskLLTUpNb(), setOldSubtract(), setOutputEport(), setProbeEnable(), setPseudoADCEnable(), setPseudoPMEnable(), setSpareForTrigEnable(), setSpyModeFE(), setSpyModeSeq(), setStopInjLoop(), setTestDuration(), setThreshold(), spareForTrigEnable(), spyModeFE(), spyModeSeq(), statusRegister(), stopInjLoop(), testDuration(), testSequence(), threshold(), writeDataFifoInjectFE(), writeFifoInjectFE(), writeFifoLLT(), and writeFifoSpyFE().


The documentation for this class was generated from the following files: