00001 #include "ValidRecMucTrack/ValidRecMucTrackAlg.h"
00002 #include "GaudiKernel/MsgStream.h"
00003 #include "GaudiKernel/SmartDataPtr.h"
00004
00005
00006 #include "MucRecEvent/RecMucTrack.h"
00007
00008
00009 ValidRecMucTrackAlg::ValidRecMucTrackAlg(const std::string& name, ISvcLocator* pSvcLocator) :
00010 Algorithm(name, pSvcLocator) {
00011
00012 m_tuple1 = 0;
00013 }
00014
00015 StatusCode ValidRecMucTrackAlg::initialize(){
00016
00017 StatusCode status;
00018 MsgStream log( msgSvc(), name() );
00019 log << MSG::INFO << "Booking Histograms" << endreq;
00020
00021
00022 NTuplePtr nt1(ntupleSvc(), "FILE105/T");
00023 if ( nt1 ) m_tuple1 = nt1;
00024 else {
00025 m_tuple1 = ntupleSvc()->book ("FILE105/T", CLID_RowWiseTuple, "MucTrack parameter");
00026 if ( m_tuple1 ) {
00027 status = m_tuple1->addItem("depth",m_depth);
00028 status = m_tuple1->addItem("distance",m_distance);
00029 status = m_tuple1->addItem("deltaPhi",m_deltaPhi);
00030 status = m_tuple1->addItem("maxHits",m_maxHits);
00031 status = m_tuple1->addItem("numLayers",m_numLayers);
00032 status = m_tuple1->addItem("numHits",m_numHits);
00033 status = m_tuple1->addItem("chi2",m_chi2);
00034 status = m_tuple1->addItem("xPos",m_xPos);
00035 status = m_tuple1->addItem("yPos",m_yPos);
00036 status = m_tuple1->addItem("zPos",m_zPos);
00037 }
00038 else {
00039 log << MSG::ERROR << " Cannot book N-tuple:" << long(m_tuple1) << endmsg;
00040
00041 }
00042 }
00043 log << MSG::INFO << "Finished booking NTuples" << endmsg;
00044
00045
00046 return StatusCode::SUCCESS;
00047
00048
00049 }
00050
00051
00052 StatusCode ValidRecMucTrackAlg::execute() {
00053 MsgStream log(msgSvc(), name());
00054 SmartDataPtr<RecMucTrackCol> mucTracks(eventSvc(),"/Event/Recon/RecMucTrackCol");
00055 if( ! mucTracks )
00056 {
00057 log << MSG::ERROR << "Unable to retrieve RecMucTrackCol" << endreq;
00058 return StatusCode::FAILURE;
00059 } else {
00060 log << MSG::DEBUG << "RecMucTrackCol retrieved of size "<< mucTracks->size() << endreq;
00061 for(RecMucTrackCol::iterator it=mucTracks->begin(); it!=mucTracks->end(); it++)
00062 {
00063
00064 m_depth = (*it)->depth();
00065 m_distance = (*it)->distance();
00066 m_deltaPhi = (*it)->deltaPhi();
00067 m_maxHits = (*it)->maxHitsInLayer();
00068 m_numLayers= (*it)->numLayers();
00069 m_numHits = (*it)->numHits();
00070 m_chi2 = (*it)->chi2();
00071 m_xPos = (*it)->xPos();
00072 m_yPos = (*it)->yPos();
00073 m_zPos = (*it)->zPos();
00074
00075 StatusCode status1 = m_tuple1->write();
00076 if ( status1.isFailure() ) {
00077 log << MSG::ERROR << "Cannot fill Ntuple1" << endreq;
00078 }
00079 }
00080 }
00081 return StatusCode::SUCCESS;
00082 }
00083
00084
00085 StatusCode ValidRecMucTrackAlg::finalize() {
00086
00087 MsgStream log(msgSvc(), name());
00088 log << MSG::INFO << "Finalizing..." << endreq;
00089
00090 }
00091
00092
00093