/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Reconstruction/MdcDummyAlg/MdcDummyAlg-00-02-10/src/MdcDummy.cxx

Go to the documentation of this file.
00001 #include "MdcDummyAlg/MdcDummy.h"
00002 #include "GaudiKernel/MsgStream.h"
00003 #include "GaudiKernel/AlgFactory.h"
00004 #include "GaudiKernel/ISvcLocator.h"
00005 #include "GaudiKernel/SmartDataPtr.h"
00006 #include "GaudiKernel/IDataProviderSvc.h"
00007 #include "GaudiKernel/PropertyMgr.h"
00008 #include "EventModel/EventHeader.h"
00009 #include "MdcRawEvent/MdcDigi.h"
00010 #include "TofRawEvent/TofDigi.h"
00011 #include "EmcRawEvent/EmcDigi.h"
00012 #include "McTruth/DecayMode.h"
00013 
00014 /*#include "McTruth/McParticle.h"
00015 
00016 #include "MdcGeomSvc/IMdcGeomSvc.h"
00017 #include "MdcGeomSvc/MdcGeoWire.h"
00018 #include "MdcGeomSvc/MdcGeoLayer.h"
00019 */
00020 #include <vector>
00021 #include <iostream>
00022 
00023 using namespace std;
00024 using namespace Event;
00025 
00027 
00028 MdcDummy::MdcDummy(const std::string& name, ISvcLocator* pSvcLocator) :
00029   Algorithm(name, pSvcLocator)
00030 {
00031   // Declare the properties  
00032   declareProperty("FittingMethod", m_fittingMethod = 2);
00033   declareProperty("ConfigFile",  m_configFile = "MDCConfig.xml");
00034 }
00035 
00036 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
00037 StatusCode MdcDummy::initialize(){
00038 
00039   MsgStream log(msgSvc(), name());
00040   log << MSG::INFO << "in initialize()" << endreq;
00041 
00042 
00043   return StatusCode::SUCCESS;
00044 }
00045 
00046 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
00047 StatusCode MdcDummy::execute() {
00048 
00049   MsgStream log(msgSvc(), name());
00050   log << MSG::INFO << "in execute()" << endreq;
00051 
00052   // Part 1: Get the event header, print out event and run number
00053   int event, run;
00054   
00055   SmartDataPtr<Event::EventHeader> eventHeader(eventSvc(),"/Event/EventHeader");
00056   if (!eventHeader) {
00057     log << MSG::FATAL << "Could not find Event Header" << endreq;
00058     return( StatusCode::FAILURE);
00059   }
00060   log << MSG::INFO << "MdcDummy: retrieved event: " << eventHeader->eventNumber()  << "  run: " <<  eventHeader->runNumber() << endreq;
00061   
00062   int digiId;
00063 
00064   //Part 2: Retrieve MC truth 
00065   SmartDataPtr<DecayMode> decayMode(eventSvc(),"/Event/MC/DecayMode");
00066   if (!decayMode) {
00067     log << MSG::FATAL << "Could not find DecayMode" << endreq;
00068     return( StatusCode::FAILURE);
00069   }
00070   unsigned int size = 10;
00071   int decayId[10];
00072   decayMode->getData(decayId, size);
00073  
00074   for (unsigned int index =0; index<10; index++) {
00075     log << MSG::INFO 
00076         << " Decay Mode  = " << decayId[index]
00077         << endreq;   
00078   }
00079 
00080   //Part 3: Retrieve MDC digi 
00081   SmartDataPtr<MdcDigiCol> mdcDigiCol(eventSvc(),"/Event/Digi/MdcDigiCol");
00082   if (!mdcDigiCol) {
00083     log << MSG::FATAL << "Could not find MDC digi" << endreq;
00084     return( StatusCode::FAILURE);
00085   }
00086  
00087   MdcDigiCol::iterator iter1 = mdcDigiCol->begin();
00088   digiId = 0; 
00089   for (;iter1 != mdcDigiCol->end(); iter1++, digiId++) {
00090     log << MSG::INFO << "MDC digit No: " << digiId << endreq;
00091  
00092     log << MSG::INFO 
00093         << " time_channel = " << (*iter1)->getTimeChannel()
00094         << " charge_channel = " << (*iter1)->getChargeChannel() 
00095         << endreq;   
00096   }
00097  
00098  
00099   //Part 4: Retrieve TOF digi 
00100   SmartDataPtr<TofDigiCol> tofDigiCol(eventSvc(),"/Event/Digi/TofDigiCol");
00101   if (!tofDigiCol) {
00102     log << MSG::FATAL << "Could not find TOF digi" << endreq;
00103     return( StatusCode::FAILURE);
00104   }
00105  
00106   TofDigiCol::iterator iter2 = tofDigiCol->begin();
00107   digiId = 0; 
00108   for (;iter2 != tofDigiCol->end(); iter2++, digiId++) {
00109     log << MSG::INFO << "TOF digit No: " << digiId << endreq;
00110 
00111   }
00112   
00113   //Part 5: Retrieve EMC digi 
00114   SmartDataPtr<EmcDigiCol> emcDigiCol(eventSvc(),"/Event/Digi/EmcDigiCol");
00115   if (!emcDigiCol) {
00116     log << MSG::FATAL << "Could not find EMC digi" << endreq;
00117     return( StatusCode::FAILURE);
00118   }
00119  
00120   EmcDigiCol::iterator iter3 = emcDigiCol->begin();
00121   digiId = 0; 
00122   for (;iter3 != emcDigiCol->end(); iter3++, digiId++) {
00123     log << MSG::INFO << "Emc digit No: " << digiId << endreq;
00124  
00125     log << MSG::INFO 
00126         << " time_channel = " << (*iter3)->getTimeChannel()
00127         << " charge_channel = " << (*iter3)->getChargeChannel() 
00128         << endreq;   
00129   }
00130  
00131 
00132   return StatusCode::SUCCESS;
00133 }
00134 
00135 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
00136 StatusCode MdcDummy::finalize() {
00137 
00138   MsgStream log(msgSvc(), name());
00139   log << MSG::INFO << "in finalize()" << endreq;
00140 
00141   return StatusCode::SUCCESS;
00142 }

Generated on Tue Nov 29 23:13:26 2016 for BOSS_7.0.2 by  doxygen 1.4.7