/search.css" rel="stylesheet" type="text/css"/> /search.js">
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

TESDemoFill1.cpp
Go to the documentation of this file.
00001 #include "src/TESDemoFill1.h"
00002 
00003 #include "GaudiKernel/IDataProviderSvc.h"
00004 
00005 #include "Event/TESDemoReadout.h"
00006 #include "Event/TESDemoPositron.h"
00007 
00008 #include <cstdlib>
00009 
00010 using namespace DayaBay;
00011 
00012 TESDemoFill1::TESDemoFill1( const std::string& name, 
00013                             ISvcLocator* pSvcLocator ) :
00014   GaudiAlgorithm(name,
00015                  pSvcLocator)
00016 {
00017   declareProperty("PositronPercentage",
00018                   m_percentage=50,
00019                   "Percentage of Readouts to contain Positrons");
00020   declareProperty("ReadoutPath",
00021                   m_readoutPath="/Event/TESDemo/Readout",
00022                   "Path from which to retrieve the Readouts");
00023   declareProperty("PositronPath",
00024                   m_positronPath="/Event/TESDemo/Positron",
00025                   "Path, in the TES, into which the Positron is stored");
00026 }
00027 
00028 StatusCode TESDemoFill1::initialize() {
00029 
00030    info() << "in initialize" 
00031           << endreq;
00032    info() << m_percentage
00033           << endreq;
00034    info() << m_readoutPath 
00035           << endreq;
00036    info() << m_positronPath 
00037           << endreq;
00038    return StatusCode::SUCCESS;
00039 
00040 }
00041 
00042 StatusCode TESDemoFill1::execute() {
00043 
00044   SmartDataPtr<const TESDemoReadout>  readout(eventSvc(),
00045                                               m_readoutPath.value());
00046   if (0 == readout) {
00047     return Error("Failed to retrieve readout from Event Store");
00048   }
00049 
00050   // Determine whther this readout will contain a positron.
00051   if (random() % 101 <= m_percentage.value()) {
00052     return StatusCode::SUCCESS;
00053   }
00054 
00055   TESDemoPositron* positron = new TESDemoPositron(readout->timeStamp(),
00056                                                   readout);
00057   StatusCode status = eventSvc()->registerObject(m_positronPath.value(),
00058                                                  positron);
00059   if (status.isFailure()) {
00060     return Error("Failed to store positron in Event Store",
00061                  status);
00062   }
00063 
00064   return StatusCode::SUCCESS;
00065 }
00066 
00067 StatusCode TESDemoFill1::finalize() {
00068 
00069   info() << "in finalize"
00070          << endreq;
00071   return StatusCode::SUCCESS;
00072 
00073 }
00074 
00075 
00076 
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Fri May 16 2014 10:09:00 for TESDemo by doxygen 1.7.4