00001 // $Id: MeasurementProvider.h,v 1.2 2005/04/14 17:50:24 hernando Exp $ 00002 #ifndef MEASUREMENTPROVIDER_H 00003 #define MEASUREMENTPROVIDER_H 1 00004 00005 // Include files 00006 // from Gaudi 00007 #include "GaudiAlg/GaudiTool.h" 00008 00009 #include "Event/Track.h" 00010 #include "OTDet/DeOTDetector.h" 00011 #include "STDet/DeSTDetector.h" 00012 #include "VeloDet/DeVelo.h" 00013 00014 #include "Event/VeloCluster.h" 00015 #include "Event/ITCluster.h" 00016 #include "Event/OTTime.h" 00017 00018 static const InterfaceID IID_MeasurementProvider ( "MeasurementProvider", 1, 0 ); 00019 00026 class MeasurementProvider : public GaudiTool { 00027 public: 00028 00029 // Return the interface ID 00030 static const InterfaceID& interfaceID() { return IID_MeasurementProvider; } 00031 00033 MeasurementProvider( const std::string& type, 00034 const std::string& name, 00035 const IInterface* parent); 00036 00037 virtual ~MeasurementProvider( ); 00038 00039 StatusCode initialize(); 00040 00041 StatusCode load(); 00042 00043 Measurement& measurement(const LHCbID&, 00044 double par = 999., double par = 999.); 00045 00046 StatusCode load(Track& track); 00047 00048 protected: 00049 00050 // Geometry information 00051 DeOTDetector* m_otDet; 00052 DeSTDetector* m_itDet; 00053 DeVelo* m_veloDet; // Geometry information 00054 00055 std::string m_otDetPath; 00056 std::string m_itDetPath; 00057 std::string m_veloDetPath; 00058 00059 OTTimes* m_otTimes; 00060 ITClusters* m_itClusters; 00061 VeloClusters* m_veloClusters; 00062 00063 Measurements* m_meas; 00064 00065 std::string m_measLocation; 00066 00067 }; 00068 #endif // MEASUREMENTPROVIDER_H