/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Event/TrigEvent/TrigEvent-00-01-02/src/TrigGTL.cxx

Go to the documentation of this file.
00001 #include <iostream>
00002 #include "TrigEvent/TrigGTL.h"
00003 
00004 TrigGTL::TrigGTL(char* name) 
00005 {
00006   m_name = name;
00007 }
00008 
00009 void TrigGTL::initialize()
00010 {
00011   for(int i = 0; i < 48; i++)
00012   {
00013     m_dataGroup12_One[i]  = 0;
00014     m_dataGroup12_Zero[i] = 0;
00015     m_dataGroup34_One[i]  = 0;
00016     m_dataGroup34_Zero[i] = 0;
00017     if(i < 24) {
00018       m_dataGroup5_One[i]   = 0;
00019       m_dataGroup5_Zero[i]  = 0;
00020     }
00021   }
00022 }
00023 
00024 void TrigGTL::setGTLTrigData( uint32_t boardId, uint32_t window, uint32_t datasize, const uint32_t* data) {
00025 
00026   if(boardId != 0xD3) std::cerr << "ERROR: You set the wrong board data to TrigGTL!!!" << std::endl;
00027   if(datasize%window != 0) std::cerr << "WARNING: The data in GTL maybe not complete!!!" << std::endl;
00028  
00029   for(uint32_t i = 0; i < datasize; i++) {
00030     uint32_t dataId = ((data[i] >> 24) & 0x7);
00031     for(uint32_t j = 0, mask = 1; j < 24; j++, mask <<= 1) {
00032       if(dataId == 1) {
00033         if((data[i] & mask) != 0) {
00034           m_dataGroup12_One[j]    += 1;
00035         }
00036         if(m_dataGroup12_One[j] == 0) m_dataGroup12_Zero[j] += 1;
00037       }
00038       if(dataId == 2) {
00039         if((data[i] & mask) != 0) {
00040           m_dataGroup12_One[j+24] += 1;
00041         }
00042         if(m_dataGroup12_One[j+24] == 0) m_dataGroup12_Zero[j+24] += 1;
00043       }
00044       if(dataId == 3) {
00045         if((data[i] & mask) != 0) {
00046           m_dataGroup34_One[j]    += 1;
00047         }
00048         if(m_dataGroup34_One[j] == 0) m_dataGroup34_Zero[j] += 1;
00049       }
00050       if(dataId == 4) {
00051         if((data[i] & mask) != 0) {
00052           m_dataGroup34_One[j+24] += 1; 
00053         }
00054         if(m_dataGroup34_One[j+24] == 0) m_dataGroup34_Zero[j+24] += 1;
00055       }
00056       if(dataId == 5) {
00057         if((data[i] & mask) != 0) {
00058           m_dataGroup5_One[j]     += 1; 
00059         }
00060         if(m_dataGroup5_One[j] == 0) m_dataGroup5_Zero[j] += 1;
00061       }
00062     }
00063   }
00064 }

Generated on Tue Nov 29 23:11:43 2016 for BOSS_7.0.2 by  doxygen 1.4.7