Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

MdcDumpCsmc Class Reference

#include <MdcDumpCsmc.h>

List of all members.

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]


Constructor & Destructor Documentation

MdcDumpCsmc::MdcDumpCsmc const std::string &  name,
ISvcLocator *  pSvcLocator
 

00023                                                                         : 
00024   Algorithm(name, pSvcLocator) {
00025     declareProperty("isSewed", isSewed = false);
00026   }

MdcDumpCsmc::MdcDumpCsmc const std::string &  name,
ISvcLocator *  pSvcLocator
 


Member Function Documentation

StatusCode MdcDumpCsmc::bookNTuple  )  [private]
 

StatusCode MdcDumpCsmc::bookNTuple  )  [private]
 

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 }

StatusCode MdcDumpCsmc::execute  ) 
 

StatusCode MdcDumpCsmc::execute  ) 
 

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 }

StatusCode MdcDumpCsmc::fillRecHits RecMdcHitCol hitCol  )  [private]
 

StatusCode MdcDumpCsmc::fillRecHits RecMdcHitCol hitCol  )  [private]
 

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 }

StatusCode MdcDumpCsmc::finalize  ) 
 

StatusCode MdcDumpCsmc::finalize  ) 
 

00074                                  {
00075   MsgStream log(msgSvc(), name());
00076   return StatusCode::SUCCESS;
00077 }

StatusCode MdcDumpCsmc::initialize  ) 
 

StatusCode MdcDumpCsmc::initialize  ) 
 

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 }


Member Data Documentation

bool MdcDumpCsmc::isSewed [private]
 

NTuple::Array<double> MdcDumpCsmc::m_act [private]
 

NTuple::Array<double> MdcDumpCsmc::m_act [private]
 

NTuple::Array<double> MdcDumpCsmc::m_Adc [private]
 

NTuple::Array<double> MdcDumpCsmc::m_Adc [private]
 

NTuple::Array<double> MdcDumpCsmc::m_chi2add [private]
 

NTuple::Array<double> MdcDumpCsmc::m_chi2add [private]
 

NTuple::Array<double> MdcDumpCsmc::m_doca [private]
 

NTuple::Array<double> MdcDumpCsmc::m_doca [private]
 

NTuple::Array<double> MdcDumpCsmc::m_driftD [private]
 

NTuple::Array<double> MdcDumpCsmc::m_driftD [private]
 

NTuple::Array<double> MdcDumpCsmc::m_driftT [private]
 

NTuple::Array<double> MdcDumpCsmc::m_driftT [private]
 

NTuple::Array<double> MdcDumpCsmc::m_entra [private]
 

NTuple::Array<double> MdcDumpCsmc::m_entra [private]
 

NTuple::Array<double> MdcDumpCsmc::m_flaglr [private]
 

NTuple::Array<double> MdcDumpCsmc::m_flaglr [private]
 

NTuple::Array<double> MdcDumpCsmc::m_gwire [private]
 

NTuple::Array<double> MdcDumpCsmc::m_gwire [private]
 

NTuple::Array<double> MdcDumpCsmc::m_hitStat [private]
 

NTuple::Array<double> MdcDumpCsmc::m_hitStat [private]
 

NTuple::Array<double> MdcDumpCsmc::m_hitTkId [private]
 

NTuple::Array<double> MdcDumpCsmc::m_hitTkId [private]
 

NTuple::Array<double> MdcDumpCsmc::m_layer [private]
 

NTuple::Array<double> MdcDumpCsmc::m_layer [private]
 

NTuple::Item<long> MdcDumpCsmc::m_nHit [private]
 

NTuple::Item<long> MdcDumpCsmc::m_nHit [private]
 

NTuple::Item<long> MdcDumpCsmc::m_nTk [private]
 

NTuple::Item<long> MdcDumpCsmc::m_nTk [private]
 

NTuple::Array<double> MdcDumpCsmc::m_resid [private]
 

NTuple::Array<double> MdcDumpCsmc::m_resid [private]
 

NTuple::Array<double> MdcDumpCsmc::m_Tdc [private]
 

NTuple::Array<double> MdcDumpCsmc::m_Tdc [private]
 

NTuple::Array<double> MdcDumpCsmc::m_tkStat [private]
 

NTuple::Array<double> MdcDumpCsmc::m_tkStat [private]
 

NTuple::Tuple* MdcDumpCsmc::m_tuple [private]
 

NTuple::Tuple* MdcDumpCsmc::m_tuple [private]
 

NTuple::Array<double> MdcDumpCsmc::m_wire [private]
 

NTuple::Array<double> MdcDumpCsmc::m_wire [private]
 

NTuple::Array<double> MdcDumpCsmc::m_zhit [private]
 

NTuple::Array<double> MdcDumpCsmc::m_zhit [private]
 

int MdcDumpCsmc::recTkNum [private]
 

int MdcDumpCsmc::tkStat [private]
 


The documentation for this class was generated from the following files:
Generated on Wed Feb 2 16:25:19 2011 for BOSS6.5.5 by  doxygen 1.3.9.1