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

TofSimSvc Class Reference

#include <TofSimSvc.h>

Inheritance diagram for TofSimSvc:

ITofSimSvc ITofSimSvc List of all members.

Public Member Functions

const double BarAttenLength (unsigned int id)
const double BarAttenLength (unsigned int id)
const double BarConstant ()
const double BarConstant ()
const double BarGain1 (unsigned int id)
const double BarGain1 (unsigned int id)
const double BarGain2 (unsigned int id)
const double BarGain2 (unsigned int id)
const double BarHighThres ()
const double BarHighThres ()
const double BarLowThres ()
const double BarLowThres ()
const double BarPMTGain ()
const double BarPMTGain ()
void Dump ()
void Dump ()
const double EndAttenLength (unsigned int id)
const double EndAttenLength (unsigned int id)
const double EndConstant ()
const double EndConstant ()
const double EndGain (unsigned int id)
const double EndGain (unsigned int id)
const double EndHighThres ()
const double EndHighThres ()
const double EndLowThres ()
const double EndLowThres ()
const double EndNoiseSmear (unsigned int id)
const double EndNoiseSmear (unsigned int id)
const double EndNoiseSwitch ()
const double EndNoiseSwitch ()
const double EndPMTGain ()
const double EndPMTGain ()
virtual StatusCode finalize ()
virtual StatusCode finalize ()
void handle (const Incident &)
void handle (const Incident &)
virtual StatusCode initialize ()
virtual StatusCode initialize ()
virtual StatusCode queryInterface (const InterfaceID &riid, void **ppvUnknown)
virtual StatusCode queryInterface (const InterfaceID &riid, void **ppvUnknown)
 TofSimSvc (const std::string &name, ISvcLocator *svcloc)
 TofSimSvc (const std::string &name, ISvcLocator *svcloc)
 ~TofSimSvc ()
 ~TofSimSvc ()

Static Public Member Functions

const InterfaceID & interfaceID ()
const InterfaceID & interfaceID ()

Private Member Functions

StatusCode FillfromDatabase ()
StatusCode FillfromDatabase ()

Private Attributes

std::vector< BTofSim * > fBTofSim
std::vector< BTofSim * > fBTofSim
std::vector< ETofSim * > fETofSim
std::vector< ETofSim * > fETofSim
std::vector< TofConst * > fTofConst
std::vector< TofConst * > fTofConst
bool m_hasbeeninitialized
IDataProviderSvc * m_pSimDataSvc
IDataProviderSvc * m_pSimDataSvc
IntegerProperty m_run

Constructor & Destructor Documentation

TofSimSvc::TofSimSvc const std::string &  name,
ISvcLocator *  svcloc
 

00028                                                                  : Service(name, svcloc) {
00029   declareProperty("Run",m_run=1);
00030 }

TofSimSvc::~TofSimSvc  ) 
 

00080                      {
00081   MsgStream log(msgSvc(), name());
00082   log << MSG::INFO << name() << ": Destructor function of TofSimSvc" << endreq;
00083 
00084   for(vector<TofConst*>::iterator it1 = fTofConst.begin(); it1 != fTofConst.end(); it1++) { delete (*it1); }
00085   fTofConst.clear();
00086   for(vector<BTofSim*>::iterator it2 = fBTofSim.begin(); it2 != fBTofSim.end(); it2++) { delete (*it2); }
00087   fBTofSim.clear();
00088   for(vector<ETofSim*>::iterator it3 = fETofSim.begin(); it3 != fETofSim.end(); it3++) { delete (*it3); }
00089   fETofSim.clear();
00090 
00091   return;
00092 }

TofSimSvc::TofSimSvc const std::string &  name,
ISvcLocator *  svcloc
 

TofSimSvc::~TofSimSvc  ) 
 


Member Function Documentation

const double TofSimSvc::BarAttenLength unsigned int  id  )  [virtual]
 

Implements ITofSimSvc.

const double TofSimSvc::BarAttenLength unsigned int  id  )  [virtual]
 

Implements ITofSimSvc.

00229                                                       {
00230   if( id < 176 ) {
00231     return fBTofSim[id]->getAttenLength();
00232   }
00233   else {
00234     std::cout<<"TofSimSvc::BarAttenLength: bad id="<<id<<std::endl;
00235     return 0.0;
00236   }
00237 }

const double TofSimSvc::BarConstant  )  [virtual]
 

Implements ITofSimSvc.

const double TofSimSvc::BarConstant  )  [virtual]
 

Implements ITofSimSvc.

00187                                     {
00188   return fTofConst[0]->getBarConstant();
00189 }

const double TofSimSvc::BarGain1 unsigned int  id  )  [virtual]
 

Implements ITofSimSvc.

const double TofSimSvc::BarGain1 unsigned int  id  )  [virtual]
 

Implements ITofSimSvc.

00199                                                 {
00200   if( id < 176 ) {
00201     return fBTofSim[id]->getGain1();
00202   }
00203   else {
00204     std::cout<<"TofSimSvc::BarGain1: bad id="<<id<<std::endl;
00205     return 0.0;
00206   }
00207 }

const double TofSimSvc::BarGain2 unsigned int  id  )  [virtual]
 

Implements ITofSimSvc.

const double TofSimSvc::BarGain2 unsigned int  id  )  [virtual]
 

Implements ITofSimSvc.

00209                                                 {
00210   if( id < 176 ) {
00211     return fBTofSim[id]->getGain2();
00212   }
00213   else {
00214     std::cout<<"TofSimSvc::BarGain2: bad id="<<id<<std::endl;
00215     return 0.0;
00216   }
00217 }

const double TofSimSvc::BarHighThres  )  [virtual]
 

Implements ITofSimSvc.

const double TofSimSvc::BarHighThres  )  [virtual]
 

Implements ITofSimSvc.

00167                                      {
00168   return fTofConst[0]->getBarHighThres();
00169 }

const double TofSimSvc::BarLowThres  )  [virtual]
 

Implements ITofSimSvc.

const double TofSimSvc::BarLowThres  )  [virtual]
 

Implements ITofSimSvc.

00163                                     {
00164   return fTofConst[0]->getBarLowThres();
00165 }

const double TofSimSvc::BarPMTGain  )  [virtual]
 

Implements ITofSimSvc.

const double TofSimSvc::BarPMTGain  )  [virtual]
 

Implements ITofSimSvc.

00179                                    {
00180   return fTofConst[0]->getBarPMTGain();
00181 }

void TofSimSvc::Dump  )  [virtual]
 

Implements ITofSimSvc.

void TofSimSvc::Dump  )  [virtual]
 

Implements ITofSimSvc.

00144                     {
00145   std::cout<<"Now We can get the TOF Simulation Service"<<std::endl;
00146   return;
00147 }

const double TofSimSvc::EndAttenLength unsigned int  id  )  [virtual]
 

Implements ITofSimSvc.

const double TofSimSvc::EndAttenLength unsigned int  id  )  [virtual]
 

Implements ITofSimSvc.

00239                                                       {
00240   if( id < 96 ) {
00241     return fETofSim[id]->getAttenLength();
00242   }
00243   else {
00244     std::cout<<"TofSimSvc::EndAttenLength: bad id="<<id<<std::endl;
00245     return 0.0;
00246   }
00247 }

const double TofSimSvc::EndConstant  )  [virtual]
 

Implements ITofSimSvc.

const double TofSimSvc::EndConstant  )  [virtual]
 

Implements ITofSimSvc.

00191                                     {
00192   return fTofConst[0]->getEndConstant();
00193 }

const double TofSimSvc::EndGain unsigned int  id  )  [virtual]
 

Implements ITofSimSvc.

const double TofSimSvc::EndGain unsigned int  id  )  [virtual]
 

Implements ITofSimSvc.

00219                                                {
00220   if( id < 96 ) {
00221     return fETofSim[id]->getGain();
00222   }
00223   else {
00224     std::cout<<"TofSimSvc::EndGain: bad id="<<id<<std::endl;
00225     return 0.0;
00226   }
00227 }

const double TofSimSvc::EndHighThres  )  [virtual]
 

Implements ITofSimSvc.

const double TofSimSvc::EndHighThres  )  [virtual]
 

Implements ITofSimSvc.

00175                                      {
00176   return fTofConst[0]->getEndHighThres();
00177 }

const double TofSimSvc::EndLowThres  )  [virtual]
 

Implements ITofSimSvc.

const double TofSimSvc::EndLowThres  )  [virtual]
 

Implements ITofSimSvc.

00171                                     {
00172   return fTofConst[0]->getEndLowThres();
00173 }

const double TofSimSvc::EndNoiseSmear unsigned int  id  )  [virtual]
 

Implements ITofSimSvc.

const double TofSimSvc::EndNoiseSmear unsigned int  id  )  [virtual]
 

Implements ITofSimSvc.

00249                                                      {
00250   if( id < 96 ) {
00251     return fETofSim[id]->getNoiseSmear();
00252   }
00253   else {
00254     std::cout<<"TofSimSvc::EndNoiseSmear: bad id="<<id<<std::endl;
00255     return 0.0;
00256   }
00257 }

const double TofSimSvc::EndNoiseSwitch  )  [virtual]
 

Implements ITofSimSvc.

const double TofSimSvc::EndNoiseSwitch  )  [virtual]
 

Implements ITofSimSvc.

00195                                        {
00196   return fTofConst[0]->getEndNoiseSwitch();
00197 }

const double TofSimSvc::EndPMTGain  )  [virtual]
 

Implements ITofSimSvc.

const double TofSimSvc::EndPMTGain  )  [virtual]
 

Implements ITofSimSvc.

00183                                    {
00184   return fTofConst[0]->getEndPMTGain();
00185 }

StatusCode TofSimSvc::FillfromDatabase  )  [private]
 

StatusCode TofSimSvc::FillfromDatabase  )  [private]
 

00094                                       {
00095 
00096   MsgStream log(msgSvc(), name());    
00097   std::string fullPath = "/Calib/TofSim";
00098   log << MSG::INFO<<" Tof simulation fullPath = "<<fullPath<< endreq;
00099   SmartDataPtr<CalibData::TofSimData> test(m_pSimDataSvc, fullPath);
00100   if(!test){
00101     log << MSG::FATAL << "TofSimSvc could not find TofSimData in TDS!!" << endreq;
00102     return StatusCode::FAILURE;
00103   }       
00104 
00105   for(vector<TofConst*>::iterator it1 = fTofConst.begin(); it1 != fTofConst.end(); it1++) { delete (*it1); }
00106   fTofConst.clear();
00107   for(vector<BTofSim*>::iterator it2 = fBTofSim.begin(); it2 != fBTofSim.end(); it2++) { delete (*it2); }
00108   fBTofSim.clear();
00109   for(vector<ETofSim*>::iterator it3 = fETofSim.begin(); it3 != fETofSim.end(); it3++) { delete (*it3); }
00110   fETofSim.clear();
00111 
00112   TofConst* tofConst = new TofConst;
00113   tofConst->setBarLowThres( test->getBarLowThres() );
00114   tofConst->setBarHighThres( test->getBarHighThres() );
00115   tofConst->setEndLowThres( test->getEndLowThres() );
00116   tofConst->setEndHighThres( test->getEndHighThres() );
00117   tofConst->setBarPMTGain( test->getBarPMTGain() );
00118   tofConst->setEndPMTGain( test->getEndPMTGain() );
00119   tofConst->setBarConstant( test->getBarConstant() );
00120   tofConst->setEndConstant( test->getEndConstant() );
00121   tofConst->setEndNoiseSwitch( test->getEndNoiseSwitch() );
00122   fTofConst.push_back(tofConst);
00123 
00124   for( unsigned int id=0; id<176; id++ ) {
00125 //    std::cout<<test->getBarAttenLength(id)<<std::endl;
00126     BTofSim* btof = new BTofSim;
00127     btof->setGain( test->getBarGain(id) );
00128     btof->setRatio( test->getBarRatio(id) );
00129     btof->setAttenLength( test->getBarAttenLength(id) );
00130     fBTofSim.push_back(btof);
00131   }
00132 
00133   for( unsigned int id=0; id<96; id++ ) {
00134     ETofSim* etof = new ETofSim;
00135     etof->setGain( test->getEndGain(id) );
00136     etof->setAttenLength( test->getEndAttenLength(id) );
00137     etof->setNoiseSmear( test->getEndNoiseSmear(id) );
00138     fETofSim.push_back(etof);
00139   }
00140 
00141   return StatusCode::SUCCESS;
00142 }

virtual StatusCode TofSimSvc::finalize  )  [virtual]
 

StatusCode TofSimSvc::finalize  )  [virtual]
 

00074                                  {
00075   MsgStream log(msgSvc(), name());
00076   log << MSG::INFO << name() << ": End of Run" << endreq;
00077   return StatusCode::SUCCESS;
00078 }

void TofSimSvc::handle const Incident &   ) 
 

void TofSimSvc::handle const Incident &   ) 
 

00149                                          {
00150   MsgStream log( messageService(), name() );
00151   log << MSG::DEBUG << "handle: " << inc.type() << endreq;
00152 
00153   if ( inc.type() == "NewRun" ){
00154     log << MSG::DEBUG << "New Run" << endreq;
00155     StatusCode sc= FillfromDatabase();
00156     if(sc.isSuccess()){
00157       m_hasbeeninitialized=true;
00158     }
00159   }
00160   return;
00161 }

virtual StatusCode TofSimSvc::initialize  )  [virtual]
 

StatusCode TofSimSvc::initialize  )  [virtual]
 

00042                                    {
00043   m_hasbeeninitialized=false;
00044 
00045   MsgStream log(msgSvc(), name());
00046   log << MSG::INFO << name() << ": Start of run initialisation" << endreq;
00047   
00048   StatusCode sc = Service::initialize();
00049   if ( sc.isFailure() ) return sc;
00050 
00051   IIncidentSvc* incsvc;
00052   sc = service("IncidentSvc", incsvc);
00053   int priority = 100;
00054   if( sc.isSuccess() ){
00055     incsvc -> addListener(this, "NewRun", priority);
00056   }
00057 
00058   StatusCode scc;
00059   
00060   log<<MSG::INFO << "setProperties()" << endreq;
00061   scc = service("CalibDataSvc", m_pSimDataSvc, true);
00062   if ( !scc.isSuccess() ) {
00063     log<<MSG::ERROR<<"Could not get IDataProviderSvc interface of SimXmlCnvSvc"<<endreq;
00064     return scc;
00065   } else {
00066     log << MSG::DEBUG<< "Retrieved IDataProviderSvc interface of SimXmlCnvSvc"<<endreq;
00067   }
00068   // Get properties from the JobOptionsSvc
00069   scc = setProperties();
00070   
00071   return sc;
00072 }  

const InterfaceID& ITofSimSvc::interfaceID  )  [inline, static, inherited]
 

00013 { return IID_ITofSimSvc; }

const InterfaceID& ITofSimSvc::interfaceID  )  [inline, static, inherited]
 

00013 { return IID_ITofSimSvc; }

virtual StatusCode TofSimSvc::queryInterface const InterfaceID &  riid,
void **  ppvUnknown
[virtual]
 

StatusCode TofSimSvc::queryInterface const InterfaceID &  riid,
void **  ppvUnknown
[virtual]
 

00032                                                                                   {
00033   
00034   if ( IID_ITofSimSvc.versionMatch(riid) ) { 
00035     *ppvInterface = static_cast<ITofSimSvc*> (this); 
00036   } else { 
00037     return Service::queryInterface(riid, ppvInterface) ; 
00038   }
00039   return StatusCode::SUCCESS;
00040 }


Member Data Documentation

std::vector<BTofSim*> TofSimSvc::fBTofSim [private]
 

std::vector<BTofSim*> TofSimSvc::fBTofSim [private]
 

std::vector<ETofSim*> TofSimSvc::fETofSim [private]
 

std::vector<ETofSim*> TofSimSvc::fETofSim [private]
 

std::vector<TofConst*> TofSimSvc::fTofConst [private]
 

std::vector<TofConst*> TofSimSvc::fTofConst [private]
 

bool TofSimSvc::m_hasbeeninitialized [private]
 

IDataProviderSvc* TofSimSvc::m_pSimDataSvc [private]
 

IDataProviderSvc* TofSimSvc::m_pSimDataSvc [private]
 

IntegerProperty TofSimSvc::m_run [private]
 


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