27 setName (
"StorageFifoAcquisition" );
29 setTitle(
"Proto40MHz_v1 Storage Fifo" );
42 debug(
"StorageFifoAcquisition" ,
"initialize");
45 info(
"____________________________");
46 info(
"Proto 40 MHZ - Storage FIFO Acquisition");
53 warning(
"StorageFifoAcquisition",
"No Proto40MHz_v1 board found. Interrupt." );
57 for (
int i=0; i<8; ++i){
59 m_h[m_depthmax*i+d]=0;
73 for (
int i=0; i<8; ++i){
74 if ((channel>>i)&1==1){
75 for (
unsigned int d=0; d<
m_depth; ++d){
76 sprintf(name,
"Ch_%i_%i",i,d);
77 sprintf(title,
"Ch %i - %i",i,d);
81 sprintf(name,
"Ch_%i_sigma",i);
82 sprintf(title,
"Ch %i Sigma",i);
83 m_sh[i]=
new TH1D(name, title, m_depth , 0., m_depth);
85 sprintf(name,
"Ch_%i_average",i);
86 sprintf(title,
"Ch %i Average",i);
87 m_ah[i]=
new TH1D(name, title, m_depth , 0., m_depth);
99 debug(
"StorageFifoAcquisition" ,
"execute");
106 int val[12],
data[12];
107 for (
unsigned int d=0; d<
m_depth; ++d){
121 data[0]=val[0]+((val[1]&0xf)<<8);
122 data[1]=(val[1]>>4)+(val[2]<<4);
123 data[2]=val[3]+((val[4]&0xf)<<8);
124 data[3]=(val[4]>>4)+(val[5]<<4);
125 data[4]=val[6]+((val[7]&0xf)<<8);
126 data[5]=(val[7]>>4)+(val[8]<<4);
127 data[6]=val[9]+((val[10]&0xf)<<8);
128 data[7]=(val[10]>>4)+(val[11]<<4);
129 for (
int i=0; i<8; ++i){
130 if ((channel>>i)&1==1){
131 m_h[m_depth*i+d]->Fill(data[i]);
143 for (
int i=0; i<8; ++i){
144 if ((channel>>i)&1==1){
145 for (
unsigned int d=0; d<
m_depth; ++d){
146 m_ah[i]->Fill(i,
m_h[m_depth*i+d]->GetMean());
147 m_sh[i]->Fill(i,
m_h[m_depth*i+d]->GetRMS());
159 warning(
"Cannot acquire more than 512 consecutive events. Interrupt.");
171 channels=(channels&0xFF);
172 warning(
"Channels coding not appropriate. Truncated at 0xFF.");
void info(std::string mymsg)
virtual StatusCode execute()
static const unsigned int m_depthmax
StatusCode setSoftwareTrigger(bool)
void setName(std::string name)
StatusCode setFifoDepth(unsigned int)
StatusCode setDepth(unsigned int)
virtual StatusCode read()
void setType(std::string type)
TH1D * m_h[8 *m_depthmax]
void debug(std::string mymsg)
virtual StatusCode finalize()
void setTitle(std::string title)
virtual StatusCode initialize()
StorageFifoAcquisition()
Standard constructor.
virtual ~StorageFifoAcquisition()
Destructor.
StatusCode setWriteStorageFifoUsb(bool)
void warning(std::string mymsg)
StatusCode setEnableADC(unsigned int, bool)
StatusCode setChannels(unsigned int)