00001 // $Id: MeasurementProvider.h,v 1.1 2005/05/24 09:52:44 erodrigu Exp $ 00002 #ifndef TRACKTOOLS_MEASUREMENTPROVIDER_H 00003 #define TRACKTOOLS_MEASUREMENTPROVIDER_H 1 00004 00005 // Include files 00006 // ------------- 00007 // from Gaudi 00008 #include "GaudiAlg/GaudiTool.h" 00009 00010 // from TrackEvent 00011 #include "Event/Track.h" 00012 00013 // from XxxEvent 00014 #include "Event/VeloCluster.h" 00015 #include "Event/ITCluster.h" 00016 #include "Event/OTTime.h" 00017 00018 // from XxxDet 00019 #include "OTDet/DeOTDetector.h" 00020 #include "STDet/DeSTDetector.h" 00021 #include "VeloDet/DeVelo.h" 00022 00023 00024 static const InterfaceID IID_MeasurementProvider ( "MeasurementProvider", 1, 0 ); 00025 00032 class MeasurementProvider : public GaudiTool { 00033 public: 00034 00035 // Return the interface ID 00036 static const InterfaceID& interfaceID() { return IID_MeasurementProvider; } 00037 00039 MeasurementProvider( const std::string& type, 00040 const std::string& name, 00041 const IInterface* parent); 00042 00043 virtual ~MeasurementProvider( ); 00044 00045 StatusCode initialize(); 00046 00047 void load(); 00048 00049 StatusCode load( Track& track ); 00050 00051 Measurement& measurement( const LHCbID&, 00052 double par0 = 999., 00053 double par1 = 999.); 00054 00055 protected: 00056 00057 // Geometry information 00058 DeOTDetector* m_otDet; 00059 DeSTDetector* m_itDet; 00060 DeVelo* m_veloDet; 00061 00062 std::string m_otDetPath; 00063 std::string m_itDetPath; 00064 std::string m_veloDetPath; 00065 00066 OTTimes* m_otTimes; 00067 ITClusters* m_itClusters; 00068 VeloClusters* m_veloClusters; 00069 00070 std::string m_measLocation; 00071 00072 }; 00073 #endif // TRACKTOOLS_MEASUREMENTPROVIDER_H