| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

MainAlgorithm Namespace Reference


Namespaces

namespace  __init__

Functions

 MainAlgorithm (const string &name, ISvcLocator *pSvcLocator)
StatusCode initialize ()
StatusCode execute ()
StatusCode finalize ()
 ~MainAlgorithm ()

Function Documentation

MainAlgorithm::MainAlgorithm ( const string &  name,
ISvcLocator pSvcLocator 
)

Definition at line 10 of file MainAlgorithm.cc.

00011               :GaudiAlgorithm(name, pSvcLocator)
00012 {
00013   info()<< "Construct:MainAlgorithm()!"<< endreq;
00014 
00015   m_roBSvc  = 0;
00016   m_execNum = 0;
00017 }

StatusCode MainAlgorithm::initialize (  ) 

Definition at line 19 of file MainAlgorithm.cc.

00020 {
00021   StatusCode sc = this->GaudiAlgorithm::initialize();
00022   if(sc.isFailure()) 
00023   { 
00024     error()<< "Error when initializing  GaudiAlgorithm"<< endreq;
00025     return sc;
00026   }
00027 
00028   //Prepare the sub algorithm--DigitalizeAlg
00029   Algorithm* subAlg = 0; 
00030   sc = createSubAlgorithm("DigitalizeAlg", "DigitalizeAlg", subAlg);
00031   if(sc.isFailure()) 
00032   {
00033     error()<< "Error creating Sub-Algorithm: DigitalizeAlg!" << endreq;
00034     return sc;
00035   }
00036   //m_digitAlg = dynamic_cast< DigitalizeAlg* >(subAlg);
00037   m_digitAlg = (DigitalizeAlg*)subAlg;
00038   if(!m_digitAlg)
00039   {
00040     error()<< "Can not converte Algorithm* to DigitalizeAlg* !"<< endreq;
00041     return StatusCode::SUCCESS;
00042   }
00043 
00044   //Initialize the ROBufferSvc
00045   IService* isvc = 0;
00046   sc = serviceLocator()->service("ROBufferSvc", isvc, true);
00047   if(sc.isFailure()) 
00048   {
00049     error()<< "Service:ROBufferSvc could not be retrieved"<< endreq;
00050     return sc;
00051   }
00052   isvc->addRef();
00053   sc = isvc->queryInterface(IROBufferSvc::interfaceID(), (void**)&m_roBSvc);
00054   if(sc.isFailure()) 
00055   {
00056     error()<< "ROBufferSvc does not implement IROBufferSvc."<< endreq;
00057     return sc;
00058   }
00059 
00060   info()<< "MainAlgorithm initialize()!"<< endreq;
00061 
00062   return StatusCode::SUCCESS;
00063 }

StatusCode MainAlgorithm::execute (  ) 

Definition at line 65 of file MainAlgorithm.cc.

00066 {
00067   //In one execute(), output one ReadoutHeader!
00068   info()<< "Now into MainAlgorithm "<< m_execNum<< " executation!"<< endreq;
00069 
00070   for( ; ; )
00071   {
00072     //If the MixHeader buffer is empty, notice the DigitalizeAlg
00073     if(0 == m_roBSvc->getMBufferSize())
00074     {
00075       info()<< "The MixHeader buffer is empty!"<< endreq;
00076       //Fill the MixHeader buffer
00077       StatusCode sc = m_digitAlg->execute();
00078       if(sc.isFailure())
00079       {
00080         error()<< "Error in DigitalizeAlg::execute()!"<< endreq;
00081         return StatusCode::FAILURE;
00082       }
00083       continue;
00084     }
00085     //If the MixHeader buffer is not empty, get one ReadoutHeader directly
00086     else
00087     {
00088       ReadoutHeader* roh = 0;
00089       roh = m_roBSvc->getROHeader();
00090       if(!roh)
00091       {
00092         error()<< "Failed to get one ReadoutHeader!"<< endreq;
00093         return StatusCode::FAILURE;
00094       }
00095 
00096       info()<< "Put the ReadoutHeader: "<< roh<< " into TES!"<< endreq;
00097       this->put(evtSvc(), roh, ReadoutHeaderLocation::Default);
00098       break;
00099     }
00100   }
00101 
00102   m_execNum++;
00103   info()<< "MainAlgorithm execute() finalized!" << endreq;
00104 
00105   return StatusCode::SUCCESS;
00106 }

StatusCode MainAlgorithm::finalize (  ) 

Definition at line 108 of file MainAlgorithm.cc.

00109 {
00110   info()<< "MainAlgorithm finalize()!"<< endreq;
00111   return StatusCode::SUCCESS;
00112 }

MainAlgorithm::~MainAlgorithm (  ) 

Definition at line 114 of file MainAlgorithm.cc.

00115 {
00116   info()<< "Destructor:~MainAlgorithm()!"<< endreq;
00117 }

| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:52:35 2011 for MainAlgorithm by doxygen 1.4.7