#include <MdcDumpCsmc.h>
Public Member Functions | |
StatusCode | execute () |
StatusCode | execute () |
StatusCode | finalize () |
StatusCode | finalize () |
StatusCode | initialize () |
StatusCode | initialize () |
MdcDumpCsmc (const std::string &name, ISvcLocator *pSvcLocator) | |
MdcDumpCsmc (const std::string &name, ISvcLocator *pSvcLocator) | |
Private Member Functions | |
StatusCode | bookNTuple () |
StatusCode | bookNTuple () |
StatusCode | fillRecHits (RecMdcHitCol &hitCol) |
StatusCode | fillRecHits (RecMdcHitCol &hitCol) |
Private Attributes | |
bool | isSewed |
NTuple::Array< double > | m_act |
NTuple::Array< double > | m_act |
NTuple::Array< double > | m_Adc |
NTuple::Array< double > | m_Adc |
NTuple::Array< double > | m_chi2add |
NTuple::Array< double > | m_chi2add |
NTuple::Array< double > | m_doca |
NTuple::Array< double > | m_doca |
NTuple::Array< double > | m_driftD |
NTuple::Array< double > | m_driftD |
NTuple::Array< double > | m_driftT |
NTuple::Array< double > | m_driftT |
NTuple::Array< double > | m_entra |
NTuple::Array< double > | m_entra |
NTuple::Array< double > | m_flaglr |
NTuple::Array< double > | m_flaglr |
NTuple::Array< double > | m_gwire |
NTuple::Array< double > | m_gwire |
NTuple::Array< double > | m_hitStat |
NTuple::Array< double > | m_hitStat |
NTuple::Array< double > | m_hitTkId |
NTuple::Array< double > | m_hitTkId |
NTuple::Array< double > | m_layer |
NTuple::Array< double > | m_layer |
NTuple::Item< long > | m_nHit |
NTuple::Item< long > | m_nHit |
NTuple::Item< long > | m_nTk |
NTuple::Item< long > | m_nTk |
NTuple::Array< double > | m_resid |
NTuple::Array< double > | m_resid |
NTuple::Array< double > | m_Tdc |
NTuple::Array< double > | m_Tdc |
NTuple::Array< double > | m_tkStat |
NTuple::Array< double > | m_tkStat |
NTuple::Tuple * | m_tuple |
NTuple::Tuple * | m_tuple |
NTuple::Array< double > | m_wire |
NTuple::Array< double > | m_wire |
NTuple::Array< double > | m_zhit |
NTuple::Array< double > | m_zhit |
int | recTkNum |
int | tkStat [2] |
|
00023 : 00024 Algorithm(name, pSvcLocator) { 00025 declareProperty("isSewed", isSewed = false); 00026 }
|
|
|
|
|
|
00079 { 00080 MsgStream log(msgSvc(), name()); 00081 StatusCode sc; 00082 00083 NTuplePtr nt1(ntupleSvc(), "MdcDumpCsmc/rec"); 00084 if ( nt1 ) { m_tuple = nt1;} 00085 else { 00086 m_tuple = ntupleSvc()->book ("MdcDumpCsmc/rec", CLID_ColumnWiseTuple, "rec csmc hits"); 00087 if ( m_tuple ) { 00088 sc = m_tuple->addItem ("nTk", m_nTk); 00089 sc = m_tuple->addItem ("nHit", m_nHit, 0, 10000); 00090 sc = m_tuple->addIndexedItem ("resid", m_nHit, m_resid); 00091 sc = m_tuple->addIndexedItem ("driftD", m_nHit, m_driftD); 00092 sc = m_tuple->addIndexedItem ("driftT", m_nHit, m_driftT); 00093 sc = m_tuple->addIndexedItem ("doca", m_nHit, m_doca); 00094 sc = m_tuple->addIndexedItem ("entra", m_nHit, m_entra); 00095 sc = m_tuple->addIndexedItem ("zhit", m_nHit, m_zhit); 00096 sc = m_tuple->addIndexedItem ("chi2add", m_nHit, m_chi2add); 00097 sc = m_tuple->addIndexedItem ("flaglr", m_nHit, m_flaglr); 00098 sc = m_tuple->addIndexedItem ("hitStat", m_nHit, m_hitStat); 00099 sc = m_tuple->addIndexedItem ("tdc", m_nHit, m_Tdc); 00100 sc = m_tuple->addIndexedItem ("adc", m_nHit, m_Adc); 00101 sc = m_tuple->addIndexedItem ("act", m_nHit, m_act); 00102 sc = m_tuple->addIndexedItem ("layer", m_nHit, m_layer); 00103 sc = m_tuple->addIndexedItem ("wire", m_nHit, m_wire); 00104 sc = m_tuple->addIndexedItem ("gwire", m_nHit, m_gwire); 00105 sc = m_tuple->addIndexedItem ("hitTkId", m_nHit, m_hitTkId); 00106 sc = m_tuple->addIndexedItem ("tkStat", m_nHit, m_tkStat); 00107 } else { 00108 log << MSG::ERROR << "Cannot book N-tuple:" << long(m_tuple) << endmsg; 00109 return StatusCode::FAILURE; 00110 } 00111 } 00112 return StatusCode::SUCCESS; 00113 }
|
|
|
|
00043 { 00044 setFilterPassed(false); 00045 MsgStream log(msgSvc(), name()); 00046 StatusCode sc = StatusCode::SUCCESS; 00047 00048 SmartDataPtr<RecMdcTrackCol> recMdcTrackCol(eventSvc(), "/Event/Recon/RecMdcTrackCol"); 00049 SmartDataPtr<RecMdcHitCol> recMdcHitCol(eventSvc(), "/Event/Recon/RecMdcHitCol"); 00050 if (!recMdcTrackCol || ! recMdcHitCol){ 00051 log << MSG::WARNING<< "Unable to retrieve recMdcTrackCol or recMdcHitCol" << endreq; 00052 return StatusCode::SUCCESS; 00053 }else{ 00054 recTkNum = recMdcTrackCol->size(); 00055 if (recTkNum>2) return StatusCode::SUCCESS; 00056 if (isSewed && (recTkNum>1)) return StatusCode::SUCCESS; 00057 } 00058 00059 //=============loop over tracks============== 00060 RecMdcTrackCol::iterator it = recMdcTrackCol->begin(); 00061 for(;it!=recMdcTrackCol->end(); it++ ) { 00062 int tkId = (*it)->trackId(); 00063 int stat = (*it)->stat(); 00064 if(isSewed && (stat)>-1) return StatusCode::SUCCESS; 00065 tkStat[tkId] = stat; 00066 } 00067 00068 //=============loop over hits============== 00069 fillRecHits(*recMdcHitCol); 00070 00071 return StatusCode::SUCCESS; 00072 }
|
|
|
|
00115 { 00116 00117 m_nTk = recTkNum; 00118 m_nHit = hitCol.size(); 00119 int ihit=0; 00120 RecMdcHitCol::iterator itHit = hitCol.begin(); 00121 for(;itHit != hitCol.end(); itHit++,ihit++ ) { 00122 RecMdcHit* h = *itHit; 00123 if ( !h ) continue; 00124 double m_lr = h->getFlagLR(); 00125 double ddrift = -999; 00126 double ddoca = -999; 00127 ddoca = h->getDoca(); 00128 if( 0 == m_lr ){ ddrift = h->getDriftDistLeft(); 00129 }else{ ddrift = h->getDriftDistRight();} 00130 m_resid[ihit] = fabs(ddrift) - fabs(ddoca); 00131 if( 0 == m_lr ){ m_resid[ihit] *= -1.0;} 00132 int tkId = h->getTrkId(); 00133 assert(tkId<2); 00134 m_hitTkId[ihit]= tkId; 00135 m_tkStat[ihit] = tkStat[tkId]; 00136 m_driftD[ihit] = ddrift; 00137 m_driftT[ihit] = h->getDriftT(); 00138 m_doca[ihit] = ddoca; 00139 m_entra[ihit] = h->getEntra(); 00140 m_zhit[ihit] = h->getZhit(); 00141 m_chi2add[ihit]= h->getChisqAdd(); 00142 m_flaglr[ihit] = h->getFlagLR(); 00143 m_hitStat[ihit]= h->getStat(); 00144 m_Tdc[ihit] = h->getTdc(); 00145 m_Adc[ihit] = h->getAdc(); 00146 m_act[ihit] = h->getStat(); 00147 int tlayer = MdcID::layer(h->getMdcId()); 00148 int twire = MdcID::wire(h->getMdcId()); 00149 m_layer[ihit] = tlayer; 00150 m_wire[ihit] = twire; 00151 m_gwire[ihit] = Constants::nWireBeforeLayer[tlayer] + twire; 00152 }//end of loop over hits 00153 m_tuple->write(); 00154 return StatusCode::SUCCESS; 00155 }
|
|
|
|
00074 { 00075 MsgStream log(msgSvc(), name()); 00076 return StatusCode::SUCCESS; 00077 }
|
|
|
|
00028 { 00029 MsgStream log(msgSvc(), name()); 00030 StatusCode sc = StatusCode::SUCCESS; 00031 00032 sc = bookNTuple(); 00033 if (!sc.isSuccess()) { 00034 log << MSG::WARNING << " Could not book NTuple" << endreq; 00035 return StatusCode::FAILURE; 00036 } 00037 00038 00039 return StatusCode::SUCCESS; 00040 }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|