MdcMakeHits Class Reference

#include <MdcMakeHits.h>

List of all members.

Public Member Functions

 MdcMakeHits (const std::string &name, ISvcLocator *pSvcLocator)
StatusCode initialize ()
StatusCode execute ()
StatusCode finalize ()
StatusCode beginRun ()

Private Attributes

bool m_cosmicFit
bool m_doSag
uint32_t m_getDigiFlag
int m_maxMdcDigi
bool m_keepBadTdc
bool m_dropHot
bool m_keepUnmatch
int m_minMdcDigi
bool m_combineTracking
bool m_countPropTime
const MdcDetector_gm
const MdcCalibFunSvcm_mdcCalibFunSvc
RawDataProviderSvcm_rawDataProviderSvc


Detailed Description

Definition at line 11 of file MdcMakeHits.h.


Constructor & Destructor Documentation

MdcMakeHits::MdcMakeHits ( const std::string name,
ISvcLocator *  pSvcLocator 
)

Definition at line 36 of file MdcMakeHits.cxx.

References m_combineTracking, m_cosmicFit, m_countPropTime, m_doSag, m_dropHot, m_getDigiFlag, m_keepBadTdc, m_keepUnmatch, m_maxMdcDigi, and m_minMdcDigi.

00036                                                                         :
00037   Algorithm(name, pSvcLocator)
00038 {
00039   // Declare the properties  
00040   declareProperty("cosmicFit",    m_cosmicFit= false);
00041   declareProperty("doSag",        m_doSag= false);
00042   declareProperty("countPropTime",m_countPropTime = true);
00043 
00044   declareProperty("getDigiFlag",  m_getDigiFlag = 0);
00045   declareProperty("maxMdcDigi",   m_maxMdcDigi= 0);
00046   declareProperty("keepBadTdc",   m_keepBadTdc= 0);
00047   declareProperty("dropHot",      m_dropHot= 0);
00048   declareProperty("keepUnmatch",  m_keepUnmatch= 0);
00049   declareProperty("minMdcDigi",   m_minMdcDigi = 0);
00050   declareProperty("combineTracking",m_combineTracking = false);//yzhang 2010-05-28 
00051 
00052 #ifdef MDCPATREC_RESLAYER
00053   declareProperty("resLayer",  m_resLayer= -1);
00054 #endif
00055 }


Member Function Documentation

StatusCode MdcMakeHits::beginRun (  ) 

Definition at line 58 of file MdcMakeHits.cxx.

References _gm, MdcDetector::instance(), and m_doSag.

00058                                 {
00059   _gm = MdcDetector::instance(m_doSag);
00060   if(NULL == _gm) return StatusCode::FAILURE;
00061   return StatusCode::SUCCESS;
00062 }

StatusCode MdcMakeHits::execute (  ) 

Definition at line 90 of file MdcMakeHits.cxx.

References _gm, MdcHitMap::addHit(), MdcRawDataProvider::b_dropHot, MdcRawDataProvider::b_keepBadTdc, MdcRawDataProvider::b_keepUnmatch, Bes_Common::FATAL, RawDataProviderSvc::getMdcDigiVec(), Bes_Common::INFO, iter(), m_combineTracking, m_cosmicFit, m_countPropTime, m_dropHot, m_keepBadTdc, m_keepUnmatch, m_maxMdcDigi, m_mdcCalibFunSvc, m_minMdcDigi, m_rawDataProviderSvc, msgSvc(), MdcHit::setCalibSvc(), MdcHit::setCosmicFit(), MdcHit::setCountPropTime(), and Bes_Common::WARNING.

00090                                 {
00091   MsgStream log(msgSvc(), name());
00092   log << MSG::INFO << "in execute()" << endreq;
00093   StatusCode sc;
00094 
00095   DataObject *pnode = 0;
00096   sc = eventSvc()->retrieveObject("/Event/Hit",pnode);
00097   if(!sc.isSuccess()) {
00098     pnode = new DataObject;
00099     sc = eventSvc()->registerObject("/Event/Hit",pnode);
00100     if(!sc.isSuccess()) {
00101       log << MSG::FATAL << " Could not register hit branch" <<endreq;
00102       return StatusCode::FAILURE;
00103     }
00104   }
00105 
00106   SmartIF<IDataManagerSvc> dataManSvc(eventSvc()); 
00107   DataObject *hitCol;
00108   eventSvc()->findObject("/Event/Hit/MdcHitCol",hitCol);
00109   if(hitCol!= NULL) {
00110     dataManSvc->clearSubTree("/Event/Hit/MdcHitCol");
00111     eventSvc()->unregisterObject("/Event/Hit/MdcHitCol");
00112   }
00113   MdcHitCol *mdcHitCol = new MdcHitCol;
00114   sc = eventSvc()->registerObject("/Event/Hit/MdcHitCol",mdcHitCol);
00115   if(!sc.isSuccess()) {
00116     log << MSG::FATAL << " Could not register hit collection" <<endreq;
00117     return StatusCode::FAILURE;
00118   } 
00119 
00120   DataObject *hitMap;
00121   eventSvc()->findObject("/Event/Hit/MdcHitMap",hitMap);
00122   if(hitMap!= NULL) {
00123     dataManSvc->clearSubTree("/Event/Hit/MdcHitMap");
00124     eventSvc()->unregisterObject("/Event/Hit/MdcHitMap");
00125   }
00126   MdcHitMap *mdcHitMap = new MdcHitMap(*_gm);
00127   sc = eventSvc()->registerObject("/Event/Hit/MdcHitMap",mdcHitMap);
00128   if(!sc.isSuccess()) {
00129     log << MSG::FATAL << " Could not register hit map" <<endreq;
00130     return StatusCode::FAILURE;
00131   } 
00132 
00133   // retrieve Mdc digi vector form RawDataProviderSvc 
00134   uint32_t getDigiFlag = 0;
00135   getDigiFlag += m_maxMdcDigi;
00136   if(m_dropHot || m_combineTracking)getDigiFlag |= MdcRawDataProvider::b_dropHot;
00137   if(m_keepBadTdc)  getDigiFlag |= MdcRawDataProvider::b_keepBadTdc;
00138   if(m_keepUnmatch) getDigiFlag |= MdcRawDataProvider::b_keepUnmatch;
00139   MdcDigiVec mdcDigiVec = m_rawDataProviderSvc->getMdcDigiVec(getDigiFlag);
00140 
00141   //std::cout<<__FILE__<<" nDigi = "<<mdcDigiVec.size()<<  std::endl;
00142   if ((int)mdcDigiVec.size()<m_minMdcDigi){
00143     log << MSG::WARNING << " Skip this event for MdcDigiVec.size() < "<<m_minMdcDigi << endreq;
00144     return StatusCode::SUCCESS;
00145   }
00146 
00147   MdcDigiVec::iterator iter = mdcDigiVec.begin();
00148   for (;iter != mdcDigiVec.end(); iter++ ) {
00149     const MdcDigi* aDigi = *iter;
00150     MdcHit *hit = new MdcHit(aDigi, _gm);
00151     hit->setCalibSvc(m_mdcCalibFunSvc);
00152     hit->setCosmicFit(m_cosmicFit);
00153     hit->setCountPropTime(m_countPropTime);
00154 #ifdef MDCPATREC_RESLAYER
00155     hit->setResLayer(m_resLayer);
00156 #endif
00157     mdcHitCol->push_back(hit);
00158     mdcHitMap->addHit(*hit);
00159   }
00160   return StatusCode::SUCCESS;
00161 }

StatusCode MdcMakeHits::finalize (  ) 

Definition at line 164 of file MdcMakeHits.cxx.

References Bes_Common::INFO, and msgSvc().

00164                                  {
00165 
00166   MsgStream log(msgSvc(), name());
00167   log << MSG::INFO << "in finalize()" << endreq;
00168 
00169   return StatusCode::SUCCESS;
00170 }

StatusCode MdcMakeHits::initialize (  ) 

Definition at line 64 of file MdcMakeHits.cxx.

References Bes_Common::FATAL, Bes_Common::INFO, m_mdcCalibFunSvc, m_rawDataProviderSvc, and msgSvc().

00064                                   {
00065 
00066   MsgStream log(msgSvc(), name());
00067   log << MSG::INFO << "in initialize()" << endreq;
00068 
00069   StatusCode sc;
00070 
00071   IMdcCalibFunSvc* imdcCalibSvc; 
00072   sc = service ("MdcCalibFunSvc",imdcCalibSvc);
00073   m_mdcCalibFunSvc = dynamic_cast<MdcCalibFunSvc*> (imdcCalibSvc);
00074   if ( sc.isFailure() ){
00075     log << MSG::FATAL << "Could not load MdcCalibFunSvc!" << endreq;
00076   }
00077 
00078   IRawDataProviderSvc* irawDataProviderSvc;
00079   sc = service ("RawDataProviderSvc", irawDataProviderSvc);
00080   m_rawDataProviderSvc = dynamic_cast<RawDataProviderSvc*> (irawDataProviderSvc);
00081   if ( sc.isFailure() ){
00082     log << MSG::FATAL << "Could not load RawDataProviderSvc!" << endreq;
00083     return StatusCode::FAILURE;
00084   } 
00085 
00086   return StatusCode::SUCCESS;
00087 }


Member Data Documentation

const MdcDetector* MdcMakeHits::_gm [private]

Definition at line 33 of file MdcMakeHits.h.

Referenced by beginRun(), and execute().

bool MdcMakeHits::m_combineTracking [private]

Definition at line 30 of file MdcMakeHits.h.

Referenced by execute(), and MdcMakeHits().

bool MdcMakeHits::m_cosmicFit [private]

Definition at line 21 of file MdcMakeHits.h.

Referenced by execute(), and MdcMakeHits().

bool MdcMakeHits::m_countPropTime [private]

Definition at line 32 of file MdcMakeHits.h.

Referenced by execute(), and MdcMakeHits().

bool MdcMakeHits::m_doSag [private]

Definition at line 22 of file MdcMakeHits.h.

Referenced by beginRun(), and MdcMakeHits().

bool MdcMakeHits::m_dropHot [private]

Definition at line 27 of file MdcMakeHits.h.

Referenced by execute(), and MdcMakeHits().

uint32_t MdcMakeHits::m_getDigiFlag [private]

Definition at line 24 of file MdcMakeHits.h.

Referenced by MdcMakeHits().

bool MdcMakeHits::m_keepBadTdc [private]

Definition at line 26 of file MdcMakeHits.h.

Referenced by execute(), and MdcMakeHits().

bool MdcMakeHits::m_keepUnmatch [private]

Definition at line 28 of file MdcMakeHits.h.

Referenced by execute(), and MdcMakeHits().

int MdcMakeHits::m_maxMdcDigi [private]

Definition at line 25 of file MdcMakeHits.h.

Referenced by execute(), and MdcMakeHits().

const MdcCalibFunSvc* MdcMakeHits::m_mdcCalibFunSvc [private]

Definition at line 34 of file MdcMakeHits.h.

Referenced by execute(), and initialize().

int MdcMakeHits::m_minMdcDigi [private]

Definition at line 29 of file MdcMakeHits.h.

Referenced by execute(), and MdcMakeHits().

RawDataProviderSvc* MdcMakeHits::m_rawDataProviderSvc [private]

Definition at line 35 of file MdcMakeHits.h.

Referenced by execute(), and initialize().


Generated on Tue Nov 29 23:20:14 2016 for BOSS_7.0.2 by  doxygen 1.4.7