00001
00002
00003 #ifndef TRIGBUNCHCROSSINGTOOL_TRIGCONFBUNCHCROSSINGTOOL_H
00004 #define TRIGBUNCHCROSSINGTOOL_TRIGCONFBUNCHCROSSINGTOOL_H
00005
00006
00007 #include "GaudiKernel/ServiceHandle.h"
00008 #include "GaudiKernel/IIncidentListener.h"
00009 #include "GaudiKernel/IIncidentSvc.h"
00010
00011
00012 #include "TrigConfInterfaces/ILVL1ConfigSvc.h"
00013
00014
00015 #include "TrigBunchCrossingTool/BunchCrossingToolBase.h"
00016 #include "BunchCrossingConfProviderBase.h"
00017
00018 namespace Trig {
00019
00038 class TrigConfBunchCrossingTool : public virtual IIncidentListener,
00039 public BunchCrossingToolBase,
00040 public BunchCrossingConfProviderBase {
00041
00042 public:
00044 TrigConfBunchCrossingTool( const std::string& type, const std::string& name,
00045 const IInterface* parent );
00046
00048 virtual StatusCode initialize();
00049
00051 virtual void handle( const Incident& inc );
00052
00054 virtual configid_type configID() const;
00056 virtual std::vector< float > configuredIntensitiesBeam1() const;
00058 virtual std::vector< float > configuredIntensitiesBeam2() const;
00060 virtual std::vector< float > configuredUnpairedIntensitiesBeam1() const;
00062 virtual std::vector< float > configuredUnpairedIntensitiesBeam2() const;
00063
00064 private:
00066 StatusCode loadConfig();
00068 void printBunchGroups() const;
00069
00070 unsigned int m_bgId;
00071
00073 std::vector< std::string > m_filledBunchNames;
00074
00075 ServiceHandle< TrigConf::ILVL1ConfigSvc > m_configSvc;
00076 ServiceHandle< IIncidentSvc > m_incidentSvc;
00077
00078 };
00079
00080 }
00081
00082 #endif // TRIGBUNCHCROSSINGTOOL_TRIGCONFBUNCHCROSSINGTOOL_H