Namespaces | |
namespace | __init__ |
namespace | AdExample |
namespace | AdSimple |
Functions | |
ReconAlg (const std::string &name, ISvcLocator *pSvcLocator) | |
~ReconAlg () | |
StatusCode | initialize () |
StatusCode | execute () |
StatusCode | finalize () |
ReconAlg::ReconAlg | ( | const std::string & | name, | |
ISvcLocator * | pSvcLocator | |||
) |
Definition at line 12 of file ReconAlg.cc.
00013 : DybAlgorithm<DayaBay::RecHeader>(name,pSvcLocator) 00014 { 00015 declareProperty("calibLocation", 00016 m_calibLocation=DayaBay::CalibReadoutHeaderLocation::Default, 00017 "CalibReadoutHeader location in the TES."); 00018 00019 declareProperty("ReconTools", m_reconToolNames, 00020 "List of Reconstruction tools"); 00021 00022 }
ReconAlg::~ReconAlg | ( | ) |
StatusCode ReconAlg::initialize | ( | ) |
Definition at line 28 of file ReconAlg.cc.
00029 { 00030 // Setup reconstruction styles and get tools 00031 for(unsigned int toolIdx = 0; toolIdx < m_reconToolNames.size(); toolIdx++){ 00032 std::string toolName = m_reconToolNames[toolIdx]; 00033 IReconTool* currentTool = 0; 00034 try { 00035 currentTool = tool<IReconTool>(toolName); 00036 } 00037 catch(const GaudiException& exg) { 00038 fatal() << "Failed to get Recon tool: \"" << toolName << "\"" << endreq; 00039 return StatusCode::FAILURE; 00040 } 00041 m_reconTools.push_back(currentTool); 00042 info() << "Added recon tool " << toolName << " to path " 00043 << this->Location() << endreq; 00044 } 00045 00046 return StatusCode::SUCCESS; 00047 }
StatusCode ReconAlg::execute | ( | ) |
Definition at line 49 of file ReconAlg.cc.
00050 { 00051 StatusCode sc; 00052 00053 // Create output rec header 00054 DayaBay::RecHeader* recHeader = MakeHeaderObject(); 00055 00056 // Get CalibHeader from TES 00057 DayaBay::CalibReadoutHeader* calibHeader = 00058 getTES<DayaBay::CalibReadoutHeader>(m_calibLocation); 00059 if(!calibHeader) { 00060 error() << "Get no CalibHeader from TES!!" << endreq; 00061 return StatusCode::FAILURE; 00062 } 00063 00064 Context context = calibHeader->context(); 00065 recHeader->setContext(context); 00066 recHeader->setEarliest(calibHeader->earliest()); 00067 recHeader->setLatest(calibHeader->latest()); 00068 00069 DayaBay::RecTrigger& recTrigger = recHeader->recTrigger(); 00070 00071 // Get Calibrated Readout 00072 const DayaBay::CalibReadout* calibReadout = calibHeader->calibReadout(); 00073 if(!calibReadout) { 00074 info() << "No CalibReadout retrieved this cycle." << endreq; 00075 recTrigger.setEnergyStatus(ReconStatus::kUnknown); 00076 recTrigger.setPositionStatus(ReconStatus::kUnknown); 00077 recTrigger.setDirectionStatus(ReconStatus::kUnknown); 00078 return StatusCode::SUCCESS; 00079 } 00080 00081 // Get detector / trigger information 00082 DayaBay::Detector det = calibReadout->detector(); 00083 unsigned int triggerNumber = calibReadout->triggerNumber(); 00084 const TimeStamp triggerTime = calibReadout->triggerTime(); 00085 const DayaBay::Trigger::TriggerType_t triggerType 00086 = calibReadout->triggerType(); 00087 00088 recTrigger.setDetector(det); 00089 recTrigger.setTriggerNumber(triggerNumber); 00090 recTrigger.setTriggerTime(triggerTime); 00091 recTrigger.setTriggerType(triggerType); 00092 00093 // Run the recon tools for this style 00094 for(unsigned int toolIdx = 0; toolIdx < m_reconTools.size(); toolIdx++){ 00095 sc = m_reconTools[toolIdx]->reconstruct(*calibReadout, recTrigger); 00096 if(sc != StatusCode::SUCCESS) return sc; 00097 } 00098 00099 return StatusCode::SUCCESS; 00100 }
StatusCode ReconAlg::finalize | ( | ) |
Definition at line 102 of file ReconAlg.cc.
00103 { 00104 return this->GaudiAlgorithm::finalize(); 00105 }