/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Event/RootEventData/RootEventData-00-03-80/src/TBossFullEvent.cxx

Go to the documentation of this file.
00001 #include "RootEventData/TBossFullEvent.h"
00002 #include "TClass.h"
00003 #include <iostream>
00004 
00005 ClassImp(TBossFullEvent)
00006 
00007 TBossFullEvent::TBossFullEvent()
00008    : m_mask(0),
00009      m_EvtHeader(0),
00010      m_digiEvt(0),
00011      m_dstEvt(0),
00012      m_mcEvt(0),
00013      m_trigEvt(0),
00014      m_hltEvt(0),
00015      m_rectrackEvt(0),
00016      m_evtRecObject(0)
00017 {
00018 }
00019 
00020 #define SafeDeleteObject(ObjType, var) \
00021    if ( m_mask & has##ObjType ) { \
00022       delete var; \
00023    }
00024 
00025 TBossFullEvent::~TBossFullEvent()
00026 {
00027    SafeDeleteObject(EvtHeader,     m_EvtHeader);
00028    SafeDeleteObject(DigiEvent,     m_digiEvt);
00029    SafeDeleteObject(DstEvent,      m_dstEvt);
00030    SafeDeleteObject(McEvent,       m_mcEvt);
00031    SafeDeleteObject(TrigEvent,     m_trigEvt);
00032    SafeDeleteObject(HltEvent,      m_hltEvt);
00033    SafeDeleteObject(RecTrackEvent, m_rectrackEvt);
00034    SafeDeleteObject(EvtRecObject,  m_evtRecObject);
00035 }
00036 
00037 #define SafePrintObject(ObjType, var) \
00038    if ( m_mask & has##ObjType ) { \
00039       var->Print(); \
00040    }
00041 
00042 void TBossFullEvent::Print(Option_t *option) const
00043 {
00044    std::cout << "=============================================" << std::endl
00045              << "TBossFullEvent mask: 0x" << std::hex << m_mask << std::dec << std::endl
00046              << "---------------------------------------------" << std::endl;
00047 
00048    SafePrintObject(EvtHeader,     m_EvtHeader);
00049    SafePrintObject(DigiEvent,     m_digiEvt);
00050    SafePrintObject(DstEvent,      m_dstEvt);
00051    SafePrintObject(McEvent,       m_mcEvt);
00052    SafePrintObject(TrigEvent,     m_trigEvt);
00053    SafePrintObject(HltEvent,      m_hltEvt);
00054    SafePrintObject(RecTrackEvent, m_rectrackEvt);
00055    SafePrintObject(EvtRecObject,  m_evtRecObject);
00056 
00057    std::cout << "=============================================" << std::endl;
00058 }
00059 
00060 void TBossFullEvent::copy(TBossFullEvent* obj)
00061 {
00062    m_mask          = obj->m_mask;
00063    m_EvtHeader     = obj->m_EvtHeader;
00064    m_digiEvt       = obj->m_digiEvt;
00065    m_dstEvt        = obj->m_dstEvt;
00066    m_mcEvt         = obj->m_mcEvt;
00067    m_trigEvt       = obj->m_trigEvt;
00068    m_hltEvt        = obj->m_hltEvt;
00069    m_rectrackEvt   = obj->m_rectrackEvt;
00070    m_evtRecObject  = obj->m_evtRecObject;
00071 }
00072 
00073 #define SafeReadObject(ObjType, var)  \
00074    if ( m_mask & has##ObjType ) { \
00075       var = (T##ObjType*)R__b.ReadObject(T##ObjType::Class()); \
00076    }
00077 
00078 #define SafeWriteObject(ObjType, var) \
00079    if ( m_mask & has##ObjType ) { \
00080       R__b.WriteObject(var); \
00081    }
00082 
00083 void TBossFullEvent::Streamer(TBuffer &R__b)
00084 {
00085    if ( R__b.IsReading() ) {
00086       R__b >> m_mask;
00087       SafeReadObject(EvtHeader,     m_EvtHeader);
00088       SafeReadObject(DigiEvent,     m_digiEvt);
00089       SafeReadObject(DstEvent,      m_dstEvt);
00090       SafeReadObject(McEvent,       m_mcEvt);
00091       SafeReadObject(TrigEvent,     m_trigEvt);
00092       SafeReadObject(HltEvent,      m_hltEvt);
00093       SafeReadObject(RecTrackEvent, m_rectrackEvt);
00094       SafeReadObject(EvtRecObject,  m_evtRecObject);
00095    }
00096    else {
00097       R__b << m_mask;
00098       SafeWriteObject(EvtHeader,     m_EvtHeader);
00099       SafeWriteObject(DigiEvent,     m_digiEvt);
00100       SafeWriteObject(DstEvent,      m_dstEvt);
00101       SafeWriteObject(McEvent,       m_mcEvt);
00102       SafeWriteObject(TrigEvent,     m_trigEvt);
00103       SafeWriteObject(HltEvent,      m_hltEvt);
00104       SafeWriteObject(RecTrackEvent, m_rectrackEvt);
00105       SafeWriteObject(EvtRecObject,  m_evtRecObject);
00106    }
00107 }

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