Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:17:26

0001 #include "TimerStats.h"
0002 
0003 #include <cdbobjects/CDBTTree.h>
0004 
0005 #include <ffaobjects/EventHeader.h>
0006 
0007 #include <fun4all/Fun4AllReturnCodes.h>
0008 #include <fun4all/Fun4AllServer.h>
0009 #include <fun4all/SubsysReco.h>  // for SubsysReco
0010 
0011 #include <phool/PHCompositeNode.h>
0012 #include <phool/PHIODataNode.h>  // for PHIODataNode
0013 #include <phool/getClass.h>
0014 
0015 #include <map>  // for _Rb_tree_iterator
0016 
0017 TimerStats::TimerStats(const std::string &name)
0018   : SubsysReco(name)
0019 {
0020 }
0021 
0022 int TimerStats::InitRun(PHCompositeNode * /*topNode*/)
0023 {
0024   delete cdbttree; // make cppcheck happy, deleting a null ptr
0025   cdbttree = new CDBTTree(outfilename);
0026   return Fun4AllReturnCodes::EVENT_OK;
0027 }
0028 
0029 int TimerStats::process_event(PHCompositeNode *topNode)
0030 {
0031   iev++;
0032   Fun4AllServer *se = Fun4AllServer::instance();
0033   EventHeader *evtheader = findNode::getClass<EventHeader>(topNode, "EventHeader");
0034   if (evtheader)
0035   {
0036     iev = evtheader->get_EvtSequence();
0037   }
0038   else
0039   {
0040     iev++;
0041   }
0042   for (auto iter = se->timer_begin(); iter != se->timer_end(); ++iter)
0043   {
0044     cdbttree->SetFloatValue(iev, iter->first, iter->second.elapsed());
0045   }
0046   return Fun4AllReturnCodes::EVENT_OK;
0047 }
0048 
0049 int TimerStats::End(PHCompositeNode * /*topNode*/)
0050 {
0051   cdbttree->Commit();
0052   cdbttree->WriteCDBTTree();
0053   delete cdbttree;
0054   return Fun4AllReturnCodes::EVENT_OK;
0055 }