00001 #include "MdcRawEvent/MdcDigi.h" 00002 00003 MdcDigi::MdcDigi(const Identifier& id, const unsigned int timeChannel, const unsigned int chargeChannel) : 00004 RawData(id, timeChannel, chargeChannel), 00005 m_overflow(0) { 00006 } 00007 00008 MdcDigi::MdcDigi(const unsigned int id) : 00009 RawData(id), 00010 m_overflow(0) { 00011 } 00012 00013 //mixing two digis 00014 MdcDigi& MdcDigi::operator+=(const MdcDigi &digi) 00015 { 00016 if(m_id != digi.identify()) // do nothing 00017 return *this; 00018 00019 if(digi.getTimeChannel() < m_timeChannel){ 00020 m_timeChannel=digi.getTimeChannel(); 00021 }else{ 00022 this->setTrackIndex(this->getTrackIndex() + 1999); // track index = 1000+tkId 00023 } 00024 /*if(digi.getChargeChannel() < 100000 ){ //maxium is around 30000, a very big number means actually no Q value 00025 m_chargeChannel += digi.getChargeChannel(); 00026 }*/ 00027 return *this; 00028 }