/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Validation/ValidRecTofTrack/ValidRecTofTrack-00-00-01/src/ValidRecTofTrackAlg.cxx

Go to the documentation of this file.
00001 #include "ValidRecTofTrack/ValidRecTofTrackAlg.h"
00002 #include "GaudiKernel/MsgStream.h"
00003 #include "GaudiKernel/SmartDataPtr.h"
00004 #include "GaudiKernel/IHistogramSvc.h"
00005 
00006 #include "TofRecEvent/RecTofTrack.h"
00007 #include "DstEvent/TofHitStatus.h"
00008 
00009 
00010 ValidRecTofTrackAlg::ValidRecTofTrackAlg(const std::string& name, ISvcLocator* pSvcLocator) : Algorithm(name, pSvcLocator) { }
00011 
00012 StatusCode ValidRecTofTrackAlg::initialize(){
00013   MsgStream log( msgSvc(), name() );
00014   log << MSG::INFO << "ValidRecTofTrackAlg initialize !" << endreq;
00015 
00016   NTuplePtr nt1(ntupleSvc(),"FILE201/tof");
00017   if ( nt1 ) m_tuple_tof = nt1;
00018   else {
00019     m_tuple_tof=ntupleSvc()->book("FILE201/tof",CLID_ColumnWiseTuple,"Validation of TOF" );
00020     if( m_tuple_tof ) {
00021       m_tuple_tof->addItem("run",     m_run        );
00022       m_tuple_tof->addItem("evt",     m_event      );
00023       m_tuple_tof->addItem("toftrk",  m_tofTrackID );
00024       m_tuple_tof->addItem("trk",     m_trackID    );
00025       m_tuple_tof->addItem("tofid",   m_tofID      );
00026       m_tuple_tof->addItem("status",  m_status     );
00027       m_tuple_tof->addItem("raw",     m_raw        );
00028       m_tuple_tof->addItem("readout", m_readout    );
00029       m_tuple_tof->addItem("counter", m_counter    );
00030       m_tuple_tof->addItem("cluster", m_cluster    );
00031       m_tuple_tof->addItem("barrel",  m_barrel     );
00032       m_tuple_tof->addItem("east",    m_east       );
00033       m_tuple_tof->addItem("layer",   m_layer      );
00034       m_tuple_tof->addItem("ncounter",m_ncounter   );
00035       m_tuple_tof->addItem("neast",   m_neast      );
00036       m_tuple_tof->addItem("nwest",   m_nwest      );
00037       m_tuple_tof->addItem("path",    m_path       );
00038       m_tuple_tof->addItem("zrhit",   m_zrhit      );
00039       m_tuple_tof->addItem("ph",      m_ph         );
00040       m_tuple_tof->addItem("tof",     m_tof        );
00041       m_tuple_tof->addItem("etof",    m_errtof     );
00042       m_tuple_tof->addItem("beta",    m_beta       );
00043       m_tuple_tof->addItem("texpe",   m_texpe      );
00044       m_tuple_tof->addItem("texpmu",  m_texpmu     );
00045       m_tuple_tof->addItem("texppi",  m_texppi     );
00046       m_tuple_tof->addItem("texpk",   m_texpk      );
00047       m_tuple_tof->addItem("texpp",   m_texpp      );
00048       m_tuple_tof->addItem("toffe",   m_toffe      );
00049       m_tuple_tof->addItem("toffmu",  m_toffmu     );
00050       m_tuple_tof->addItem("toffpi",  m_toffpi     );
00051       m_tuple_tof->addItem("toffk",   m_toffk      );
00052       m_tuple_tof->addItem("toffp",   m_toffp      );
00053       m_tuple_tof->addItem("toffpb",  m_toffpb     );
00054       m_tuple_tof->addItem("sige",    m_sigmae     );
00055       m_tuple_tof->addItem("sigmu",   m_sigmamu    );
00056       m_tuple_tof->addItem("sigpi",   m_sigmapi    );
00057       m_tuple_tof->addItem("sigk",    m_sigmak     );
00058       m_tuple_tof->addItem("sigp",    m_sigmap     );
00059       m_tuple_tof->addItem("sigpb",   m_sigmapb    );
00060       m_tuple_tof->addItem("qual",    m_quality    );
00061       m_tuple_tof->addItem("t0",      m_t0         );
00062       m_tuple_tof->addItem("et0",     m_errt0      );
00063       m_tuple_tof->addItem("ez",      m_errz       );
00064       m_tuple_tof->addItem("phi",     m_phi        );
00065       m_tuple_tof->addItem("ephi",    m_errphi     );
00066       m_tuple_tof->addItem("e",       m_energy     );
00067       m_tuple_tof->addItem("ee",      m_errenergy  );
00068     }
00069   }
00070 
00071   log << MSG::INFO << "Finish ValidRecTofTrackAlg initialize!" << endreq;
00072   return StatusCode::SUCCESS;
00073 }
00074 
00075 
00076 StatusCode ValidRecTofTrackAlg::execute() {
00077    MsgStream log(msgSvc(), name());
00078    SmartDataPtr<RecTofTrackCol> tofTracks(eventSvc(),"/Event/Recon/RecTofTrackCol");
00079    if( ! tofTracks ) {
00080          log << MSG::ERROR << "Unable to retrieve RecTofTrackCol" << endreq;
00081          return  StatusCode::FAILURE;
00082    } 
00083    else {
00084      log << MSG::DEBUG << "RecTofTrackCol retrieved of size "<< tofTracks->size() << endreq;
00085      for(RecTofTrackCol::iterator it=tofTracks->begin(); it!=tofTracks->end(); it++) {
00086        m_run   = 0.0;
00087        m_event = 0.0;
00088        m_tofTrackID = (*it)->tofTrackID();
00089        m_trackID    = (*it)->trackID();
00090        m_tofID      = (*it)->tofID();
00091        unsigned int status = (*it)->status();
00092        TofHitStatus* tofhits = new TofHitStatus;
00093        tofhits->setStatus( status );
00094        m_status     = (*it)->status();
00095        m_raw        = tofhits->is_raw();
00096        m_readout    = tofhits->is_readout();
00097        m_counter    = tofhits->is_counter();
00098        m_cluster    = tofhits->is_cluster();
00099        m_barrel     = tofhits->is_barrel();
00100        m_east       = tofhits->is_east();
00101        m_layer      = tofhits->layer();
00102        m_ncounter   = tofhits->ncounter();
00103        m_neast      = tofhits->neast();
00104        m_nwest      = tofhits->nwest();
00105        delete tofhits;
00106        m_path       = (*it)->path();
00107        m_zrhit      = (*it)->zrhit();
00108        m_ph         = (*it)->ph();
00109        m_tof        = (*it)->tof();
00110        m_errtof     = (*it)->errtof();
00111        m_beta       = (*it)->beta();
00112        m_texpe      = (*it)->texpElectron();
00113        m_texpmu     = (*it)->texpMuon();
00114        m_texppi     = (*it)->texpPion();
00115        m_texpk      = (*it)->texpKaon();
00116        m_texpp      = (*it)->texpProton();
00117        m_toffe      = (*it)->toffsetElectron();
00118        m_toffmu     = (*it)->toffsetMuon();
00119        m_toffpi     = (*it)->toffsetPion();
00120        m_toffk      = (*it)->toffsetKaon();
00121        m_toffp      = (*it)->toffsetProton();
00122        m_toffpb     = (*it)->toffsetAntiProton();
00123        m_sigmae    = (*it)->sigmaElectron();
00124        m_sigmamu   = (*it)->sigmaMuon();
00125        m_sigmapi   = (*it)->sigmaPion();
00126        m_sigmak    = (*it)->sigmaKaon();
00127        m_sigmap    = (*it)->sigmaProton();
00128        m_sigmapb   = (*it)->sigmaAntiProton();
00129        m_quality    = (*it)->quality();
00130        m_t0         = (*it)->t0();
00131        m_errt0      = (*it)->errt0();
00132        m_errz       = (*it)->errz();
00133        m_phi        = (*it)->phi();
00134        m_errphi     = (*it)->errphi();
00135        m_energy     = (*it)->energy();
00136        m_errenergy     = (*it)->errenergy();
00137 
00138        m_tuple_tof->write();
00139      }
00140    }
00141    return StatusCode::SUCCESS;
00142 }
00143 
00144 
00145 StatusCode ValidRecTofTrackAlg::finalize() {
00146   MsgStream log(msgSvc(), name());
00147   log << MSG::INFO << "Finalizing..." << endreq;
00148   return StatusCode::SUCCESS;
00149 }

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