.. _program_listing_file_Root_IParticleHistsAlgo.cxx: Program Listing for File IParticleHistsAlgo.cxx =============================================== |exhale_lsh| :ref:`Return to documentation for file ` (``Root/IParticleHistsAlgo.cxx``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #include #include #include #include #include #include #include #include #include // this is needed to distribute the algorithm to the workers ClassImp(IParticleHistsAlgo) IParticleHistsAlgo :: IParticleHistsAlgo (std::string className) : Algorithm(className) { } EL::StatusCode IParticleHistsAlgo :: setupJob (EL::Job& job) { job.useXAOD(); xAOD::Init("IParticleHistsAlgo").ignore(); return EL::StatusCode::SUCCESS; } EL::StatusCode IParticleHistsAlgo :: histInitialize () { ANA_MSG_INFO( m_name ); ANA_CHECK( xAH::Algorithm::algInitialize()); return EL::StatusCode::SUCCESS; } EL::StatusCode IParticleHistsAlgo::AddHists( std::string name ) { std::string fullname(m_name); fullname += name; // add systematic IParticleHists* particleHists = new IParticleHists( fullname, m_detailStr, m_histPrefix, m_histTitle ); // add systematic particleHists->m_debug = msgLvl(MSG::DEBUG); ANA_CHECK( particleHists->initialize()); particleHists->record( wk() ); m_plots[name] = particleHists; return EL::StatusCode::SUCCESS; } EL::StatusCode IParticleHistsAlgo :: fileExecute () { return EL::StatusCode::SUCCESS; } EL::StatusCode IParticleHistsAlgo :: changeInput (bool /*firstFile*/) { return EL::StatusCode::SUCCESS; } EL::StatusCode IParticleHistsAlgo :: initialize () { ANA_MSG_DEBUG( m_name); // in case anything was missing or blank... if( m_inContainerName.empty() || m_detailStr.empty() ){ ANA_MSG_ERROR( "One or more required configuration values are empty"); return EL::StatusCode::FAILURE; } // only running 1 collection if(m_inputAlgo.empty()) { AddHists( "" ); } m_event = wk()->xaodEvent(); m_store = wk()->xaodStore(); return EL::StatusCode::SUCCESS; } EL::StatusCode IParticleHistsAlgo :: execute () { return execute(); } EL::StatusCode IParticleHistsAlgo :: postExecute () { return EL::StatusCode::SUCCESS; } EL::StatusCode IParticleHistsAlgo :: finalize () { ANA_MSG_DEBUG( m_name ); for( auto plots : m_plots ) { if(plots.second){ plots.second->finalize(); delete plots.second; } } return EL::StatusCode::SUCCESS; } EL::StatusCode IParticleHistsAlgo :: histFinalize () { ANA_CHECK( xAH::Algorithm::algFinalize()); return EL::StatusCode::SUCCESS; }