#include <MdcCalEvent.h>
Public Member Functions | |
void | clear () |
void | clear () |
bool | getEsCutFlag () const |
bool | getEsCutFlag () const |
int | getEsFlag () const |
int | getEsFlag () const |
int | getEvtNoOffline () const |
int | getEvtNoOffline () const |
int | getEvtNoOnline () const |
int | getEvtNoOnline () const |
int | getNesCutFlag () const |
int | getNesCutFlag () const |
int | getNRawHitTQ () const |
int | getNRawHitTQ () const |
int | getNTrk () const |
int | getNTrk () const |
MdcCalRecTrk * | getRecTrk (int index) const |
MdcCalRecTrk * | getRecTrk (int index) const |
double | getTes () const |
double | getTes () const |
void | setEvtNoOffline (int evtNo) |
void | setEvtNoOffline (int evtNo) |
void | setEvtNoOnline (int evtNo) |
void | setEvtNoOnline (int evtNo) |
StatusCode | setKalEvent () |
StatusCode | setKalEvent () |
void | setParam (MdcCalParams ¶m) |
void | setParam (MdcCalParams ¶m) |
StatusCode | setRecEvent () |
StatusCode | setRecEvent () |
Private Attributes | |
bool | m_esCutFg |
int | m_esFlag |
int | m_nEsCutFg |
int | m_nEvtOffline |
int | m_nEvtOnline |
int | m_nhitTQ |
MdcCalParams | m_param |
std::vector< MdcCalRecTrk * > | m_rectrk |
std::vector< MdcCalRecTrk * > | m_rectrk |
double | m_tes |
|
|
|
00178 { 00179 unsigned int i; 00180 for(i=0; i<m_rectrk.size(); i++){ 00181 delete m_rectrk[i]; 00182 } 00183 m_rectrk.clear(); 00184 }
|
|
00022 { return m_esCutFg; }
|
|
00022 { return m_esCutFg; }
|
|
00021 { return m_esFlag; }
|
|
00021 { return m_esFlag; }
|
|
00033 { return m_nEvtOffline; }
|
|
00033 { return m_nEvtOffline; }
|
|
00030 { return m_nEvtOnline; }
|
|
00030 { return m_nEvtOnline; }
|
|
00023 { return m_nEsCutFg; }
|
|
00023 { return m_nEsCutFg; }
|
|
00020 { return m_nhitTQ; }
|
|
00020 { return m_nhitTQ; }
|
|
00026 { return m_rectrk.size(); }
|
|
00026 { return m_rectrk.size(); }
|
|
00027 { return m_rectrk[index]; }
|
|
00027 { return m_rectrk[index]; }
|
|
00024 { return m_tes; }
|
|
00024 { return m_tes; }
|
|
00032 { m_nEvtOffline = evtNo; }
|
|
00032 { m_nEvtOffline = evtNo; }
|
|
00029 { m_nEvtOnline = evtNo; }
|
|
00029 { m_nEvtOnline = evtNo; }
|
|
|
|
00107 { 00108 IMessageSvc *msgSvc; 00109 Gaudi::svcLocator()->service("MessageSvc", msgSvc); 00110 MsgStream log(msgSvc, "MdcCalEvent"); 00111 log << MSG::INFO << "MdcCalEvent::setKalEvent" << endreq; 00112 00113 IDataProviderSvc* eventSvc = NULL; 00114 Gaudi::svcLocator()->service("EventDataSvc", eventSvc); 00115 00116 // retrieve Mdc digi 00117 SmartDataPtr<MdcDigiCol> mdcDigiCol(eventSvc,"/Event/Digi/MdcDigiCol"); 00118 if (!mdcDigiCol) { 00119 log << MSG::FATAL << "Could not find event" << endreq; 00120 } 00121 00122 MdcDigiCol::iterator iter = mdcDigiCol->begin(); 00123 m_nhitTQ = 0; 00124 for(; iter != mdcDigiCol->end(); iter++) { 00125 MdcDigi *aDigi = (*iter); 00126 unsigned fgOverFlow = (aDigi) -> getOverflow(); 00127 if ( ((fgOverFlow & 3) !=0 ) || ((fgOverFlow & 12) != 0) || 00128 (aDigi->getTimeChannel() == 0x7FFFFFFF) || 00129 (aDigi->getChargeChannel() == 0x7FFFFFFF) ) continue; 00130 m_nhitTQ++; 00131 } 00132 00133 // get EsTimeCol 00134 SmartDataPtr<RecEsTimeCol> aevtimeCol(eventSvc,"/Event/Recon/RecEsTimeCol"); 00135 if( (!aevtimeCol) || (aevtimeCol->size()==0) ){ 00136 m_tes = -9999.0; 00137 m_esFlag = -1; 00138 }else{ 00139 RecEsTimeCol::iterator iter_evt = aevtimeCol->begin(); 00140 for(; iter_evt!=aevtimeCol->end(); iter_evt++){ 00141 m_tes = (*iter_evt)->getTest(); 00142 m_esFlag = (*iter_evt)->getStat(); 00143 } 00144 } 00145 m_esCutFg = false; 00146 m_nEsCutFg = -1; 00147 bool flagTes = false; 00148 for(int iEs=0; iEs<m_param.nEsFlag; iEs++){ 00149 if(m_esFlag == m_param.esFlag[iEs]){ 00150 flagTes = true; 00151 m_nEsCutFg = iEs; 00152 break; 00153 } 00154 } 00155 if( flagTes && (m_tes > m_param.tesMin) && (m_tes < m_param.tesMax) ) m_esCutFg = true; 00156 00157 SmartDataPtr<RecMdcKalTrackCol> kaltrkCol(eventSvc,"/Event/Recon/RecMdcKalTrackCol"); 00158 if (!kaltrkCol) { 00159 log << MSG::FATAL << "Could not find RecMdcKalTrackCol" << endreq; 00160 return StatusCode::FAILURE; 00161 } 00162 00163 int i = 0; 00164 MdcCalRecTrk* rectrk; 00165 RecMdcKalTrackCol::iterator iter_trk = kaltrkCol->begin(); 00166 for(; iter_trk != kaltrkCol->end(); iter_trk++) { 00167 rectrk = new MdcCalRecTrk(m_param.particle); 00168 rectrk -> setKalTrk(iter_trk); 00169 m_rectrk.push_back(rectrk); 00170 00171 i++; 00172 } 00173 log << MSG::INFO << "KalTrack ntrk = " << i << endreq; 00174 00175 return StatusCode::SUCCESS; 00176 }
|
|
00015 { m_param = param; }
|
|
00015 { m_param = param; }
|
|
|
|
00036 { 00037 IMessageSvc *msgSvc; 00038 Gaudi::svcLocator()->service("MessageSvc", msgSvc); 00039 MsgStream log(msgSvc, "MdcCalEvent"); 00040 log << MSG::INFO << "MdcCalEvent::setRecEvent" << endreq; 00041 00042 IDataProviderSvc* eventSvc = NULL; 00043 Gaudi::svcLocator()->service("EventDataSvc", eventSvc); 00044 00045 // retrieve Mdc digi 00046 SmartDataPtr<MdcDigiCol> mdcDigiCol(eventSvc,"/Event/Digi/MdcDigiCol"); 00047 if (!mdcDigiCol) { 00048 log << MSG::FATAL << "Could not find event" << endreq; 00049 } 00050 00051 MdcDigiCol::iterator iter = mdcDigiCol->begin(); 00052 m_nhitTQ = 0; 00053 for(; iter != mdcDigiCol->end(); iter++) { 00054 MdcDigi *aDigi = (*iter); 00055 unsigned fgOverFlow = (aDigi) -> getOverflow(); 00056 if ( ((fgOverFlow & 3) !=0 ) || ((fgOverFlow & 12) != 0) || 00057 (aDigi->getTimeChannel() == 0x7FFFFFFF) || 00058 (aDigi->getChargeChannel() == 0x7FFFFFFF) ) continue; 00059 m_nhitTQ++; 00060 } 00061 00062 // get EsTimeCol 00063 SmartDataPtr<RecEsTimeCol> aevtimeCol(eventSvc,"/Event/Recon/RecEsTimeCol"); 00064 if( (!aevtimeCol) || (aevtimeCol->size()==0) ){ 00065 m_tes = -9999.0; 00066 m_esFlag = -1; 00067 }else{ 00068 RecEsTimeCol::iterator iter_evt = aevtimeCol->begin(); 00069 for(; iter_evt!=aevtimeCol->end(); iter_evt++){ 00070 m_tes = (*iter_evt)->getTest(); 00071 m_esFlag = (*iter_evt)->getStat(); 00072 } 00073 } 00074 m_esCutFg = false; 00075 m_nEsCutFg = -1; 00076 bool flagTes = false; 00077 for(int iEs=0; iEs<m_param.nEsFlag; iEs++){ 00078 if(m_esFlag == m_param.esFlag[iEs]){ 00079 flagTes = true; 00080 m_nEsCutFg = iEs; 00081 break; 00082 } 00083 } 00084 if( flagTes && (m_tes > m_param.tesMin) && (m_tes < m_param.tesMax) ) m_esCutFg = true; 00085 00086 SmartDataPtr<RecMdcTrackCol> newtrkCol(eventSvc, "/Event/Recon/RecMdcTrackCol"); 00087 if(!newtrkCol){ 00088 log << MSG::ERROR << "Could not find RecMdcTrackCol" << endreq; 00089 return ( StatusCode::FAILURE ); 00090 } 00091 00092 int i = 0; 00093 MdcCalRecTrk* rectrk; 00094 RecMdcTrackCol::iterator it_trk = newtrkCol->begin(); 00095 for(; it_trk != newtrkCol->end(); it_trk++){ 00096 rectrk = new MdcCalRecTrk(m_param.particle); 00097 rectrk -> setRecTrk(it_trk); 00098 m_rectrk.push_back(rectrk); 00099 00100 i++; 00101 } 00102 // log << MSG::WARNING << "RecTrack ntrk = " << i << endreq; 00103 00104 return StatusCode::SUCCESS; 00105 }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|