/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Event/HltEvent/HltEvent-00-02-07/src/HltInf.cxx

Go to the documentation of this file.
00001 #include "Identifier/HltID.h"
00002 #include "HltEvent/HltInf.h"
00003 #include <iostream>
00004 
00005 HltInf::HltInf(const unsigned int type, const unsigned int alg, 
00006                      const unsigned int cri,  const unsigned int ver, const float etot):
00007   DstHltInf(type,alg,cri,ver,etot),
00008   m_mdcData(0),m_tofData(0),m_emcData(0),m_mucData(0),m_conData(0){
00009 }
00010 
00011 HltInf::HltInf():
00012   DstHltInf(),
00013   m_mdcData(0),m_tofData(0),m_emcData(0),m_mucData(0),m_conData(0){
00014 }
00015 
00016 HltInf::~HltInf(){
00017 }
00018 
00019 HltInf::HltInf(const DstHltInf& aHlt):
00020   DstHltInf(aHlt),
00021   m_mdcData(0),m_tofData(0),m_emcData(0),m_mucData(0),m_conData(0){
00022 }
00023 
00024 HltInf& HltInf::operator=(const DstHltInf& aHlt){
00025   DstHltInf::operator=(aHlt);
00026   return *this;
00027 }
00028 
00029 bool HltInf::setData(const Identifier& id, uint32_t data){
00030  
00031   vector<uint32_t>::iterator iter;
00032   uint32_t size=0;
00033 
00034   if(HltID::is_mdc_inf(id)) {
00035     iter = m_mdcData.begin();
00036     size = m_mdcData.size();
00037   }
00038   else if(HltID::is_tof_inf(id)) {
00039     iter = m_tofData.begin();
00040     size = m_tofData.size();
00041   }
00042   else if(HltID::is_emc_inf(id)) {
00043     iter = m_emcData.begin();
00044     size = m_emcData.size();
00045   }
00046   else if(HltID::is_muc_inf(id)) {
00047     iter = m_mucData.begin();
00048     size = m_mucData.size();
00049   }
00050   else if(HltID::is_con_inf(id)) {
00051     iter = m_conData.begin();
00052     size = m_conData.size();
00053   }
00054   else              return false;
00055  
00056   uint32_t sub=HltID::id_sub(id);
00057 
00058   if(sub<size) {
00059     (*(iter+sub))=data;
00060     return true;
00061   }
00062   else {
00063     return false;
00064   }
00065 }
00066 
00067 vector<uint32_t>& HltInf::getDataVec(const Identifier& id) {
00068   if(HltID::is_mdc_inf(id))      return m_mdcData;
00069   else if(HltID::is_tof_inf(id)) return m_tofData;
00070   else if(HltID::is_emc_inf(id)) return m_emcData;
00071   else if(HltID::is_muc_inf(id)) return m_mucData;
00072   else if(HltID::is_con_inf(id)) return m_conData;
00073   else               return m_conData;  //default: return condition number 
00074 }
00075 
00076 vector<uint32_t>& HltInf::getDataVec(const uint32_t part) {
00077   return getDataVec(HltID::data_type_id(part));                                        
00078 }
00079 
00080 bool HltInf::getData(const Identifier& id, uint32_t* address) {
00081 
00082   vector<uint32_t>::iterator iter;
00083   uint32_t size=0;
00084  
00085   if(HltID::is_mdc_inf(id)) {
00086     iter = m_mdcData.begin();
00087     size = m_mdcData.size();
00088   }
00089   else if(HltID::is_tof_inf(id)) {
00090     iter = m_tofData.begin();
00091     size = m_tofData.size();
00092   }
00093   else if(HltID::is_emc_inf(id)) {
00094     iter = m_emcData.begin();
00095     size = m_emcData.size();
00096   }
00097   else if(HltID::is_muc_inf(id)) {
00098     iter = m_mucData.begin();
00099     size = m_mucData.size();
00100   }
00101   else if(HltID::is_con_inf(id)) {
00102     iter = m_conData.begin();
00103     size = m_conData.size();
00104   }
00105   else              return false;
00106 
00107   uint32_t sub=HltID::id_sub(id);
00108 
00109   if(sub<size) {
00110     *address = *(iter+sub);
00111     return true;
00112   }
00113   else {
00114     return false;
00115   }
00116 }
00117 
00118 void HltInf::print() const{
00119   std::cout << *this;
00120   std::cout << "MDC data:" << dec << m_mdcData.size() << std::endl;
00121   for(uint32_t i=0;i<m_mdcData.size();i++){
00122     std::cout << "   #"<<i<<"# ";
00123     std::cout << *((int*)&m_mdcData[i]) << "(" << *((float*)&m_mdcData[i]) << ")";
00124     if(i==m_mdcData.size()-1) std::cout << std::endl;              
00125   }
00126   std::cout << "TOF data:" << m_tofData.size() << std::endl;
00127   for(uint32_t i=0;i<m_tofData.size();i++){
00128     std::cout << "   #"<<i<<"# ";
00129     std::cout << *((int*)&m_tofData[i]) << "(" << *((float*)&m_tofData[i]) << ")";
00130     if(i==m_tofData.size()-1) std::cout << std::endl;
00131   }
00132   std::cout << "EMC data:" << m_emcData.size() << std::endl;
00133   for(uint32_t i=0;i<m_emcData.size();i++){
00134     std::cout << "   #"<<i<<"# ";
00135     std::cout << *((int*)&m_emcData[i]) << "(" << *((float*)&m_emcData[i]) << ")";
00136     if(i==m_emcData.size()-1) std::cout << std::endl;
00137   }
00138     std::cout << "MUC data:" << m_mucData.size() << std::endl;
00139   for(uint32_t i=0;i<m_mucData.size();i++){
00140     std::cout << "   #"<<i<<"# ";
00141     std::cout << *((int*)&m_mucData[i]) << "(" << *((float*)&m_mucData[i]) << ")";
00142     if(i==m_mucData.size()-1) std::cout << std::endl;
00143   }
00144   std::cout << "CON data:" << m_conData.size() << std::endl;
00145   for(uint32_t i=0;i<m_conData.size();i++){
00146     std::cout << "   #"<<i<<"# ";
00147     std::cout << *((int*)&m_conData[i]);
00148     if(i==m_conData.size()-1) std::cout << std::endl;
00149   }
00150   return;
00151 }
00152 
00153 ostream& operator<<(ostream & os, const HltInf& aHlt){
00154   os<<"-----HltInf-----:"<<endl;
00155   os<<"EventType:  "<<hex<<aHlt.getEventType()<<endl
00156     <<"AlgProcess: "<<aHlt.getAlgProcess()<<endl
00157     <<"CriteriaTab:"<<aHlt.getCriteriaTable()<<endl
00158     <<"EFVersion:  "<<aHlt.getVersion()<<endl
00159     <<"TotalEnergy:"<<aHlt.getTotalEnergy()<<endl;
00160   return os;
00161 }

Generated on Tue Nov 29 22:58:30 2016 for BOSS_7.0.2 by  doxygen 1.4.7