SFrame 3.6
|
This is an example cycle using SCycleBase. It can be used out of the box on lxplus or any computer havin access to /afs/cern.ch/.
// Dear emacs, this is -*- c++ -*- // $Id: FirstCycle.h 229 2010-12-01 11:35:33Z krasznaa $ /*************************************************************************** * @Project: SFrame - ROOT-based analysis framework for ATLAS * @Package: User * * @author Stefan Ask <Stefan.Ask@cern.ch> - Manchester * @author David Berge <David.Berge@cern.ch> - CERN * @author Johannes Haller <Johannes.Haller@cern.ch> - Hamburg * @author A. Krasznahorkay <Attila.Krasznahorkay@cern.ch> - CERN/Debrecen * ***************************************************************************/ #ifndef SFRAME_USER_FirstCycle_H #define SFRAME_USER_FirstCycle_H // STL include(s): #include <vector> #include <string> // Local include(s): #include "core/include/SCycleBase.h" #include "plug-ins/include/SParticle.h" #include "plug-ins/include/SSummedVar.h" class FirstCycle : public SCycleBase { public: FirstCycle(); virtual void BeginCycle() throw( SError ); virtual void EndCycle() throw( SError ); virtual void BeginInputData( const SInputData& ) throw( SError ); virtual void EndInputData ( const SInputData& ) throw( SError ); virtual void BeginMasterInputData( const SInputData& ) throw( SError ); virtual void EndMasterInputData ( const SInputData& ) throw( SError ); virtual void BeginInputFile( const SInputData& ) throw( SError ); virtual void ExecuteEvent( const SInputData&, Double_t weight ) throw( SError ); private: // // Names of the input/output trees: // std::string m_recoTreeName; std::string m_metaTreeName; enum ValHistsType { GENERAL, ELECTRON, MUON, JETS }; void FillValidationHists( ValHistsType, const TString& status ); // // Example properties // std::string m_stringVariable; int m_intVariable; double m_doubleVariable; bool m_boolVariable; std::vector< int > m_intVecVariable; std::vector< double > m_doubleVecVariable; std::vector< std::string > m_stringVecVariable; std::vector< bool > m_boolVecVariable; // // The input variables // Int_t m_El_N; std::vector< double >* m_El_p_T; std::vector< double >* m_El_eta; std::vector< double >* m_El_phi; std::vector< double >* m_El_E; // // The output variables // int m_o_example_variable; std::vector< double > m_o_El_p_T; std::vector< SParticle > m_o_El; // // Metadata tree with separate entries for each electron: // TTree* m_electronTree; Double_t m_meta_El_p_T; Double_t m_meta_El_eta; Double_t m_meta_El_phi; Double_t m_meta_El_E; // // Some counters: // SSummedVar< Int_t > m_allEvents; SSummedVar< Int_t > m_passedEvents; SSummedVar< std::vector< Int_t > > m_test; ClassDef( FirstCycle , 0 ); }; // class FirstCycle #endif // SFRAME_USER_FirstCycle_H