00001 // $Id: MeasurementProvider.h,v 1.2 2005/06/29 14:41:19 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 LHCbKernel 00011 #include "Kernel/LHCbID.h" 00012 00013 // from TrackInterfaces 00014 #include "TrackInterfaces/IMeasurementProvider.h" // Interface 00015 00016 // from TrackEvent 00017 #include "Event/Track.h" 00018 00019 // from XxxEvent 00020 #include "Event/VeloCluster.h" 00021 #include "Event/ITCluster.h" 00022 #include "Event/OTTime.h" 00023 00024 // from XxxDet 00025 #include "OTDet/DeOTDetector.h" 00026 #include "STDet/DeSTDetector.h" 00027 #include "VeloDet/DeVelo.h" 00028 00029 00030 static const InterfaceID IID_MeasurementProvider ( "MeasurementProvider", 1, 0 ); 00031 00038 class MeasurementProvider : public GaudiTool, 00039 virtual public IMeasurementProvider { 00040 public: 00042 MeasurementProvider( const std::string& type, 00043 const std::string& name, 00044 const IInterface* parent); 00045 00046 virtual ~MeasurementProvider( ); 00047 00048 StatusCode initialize(); 00049 00050 void load(); 00051 00052 StatusCode load( Track& track ); 00053 00054 Measurement& measurement( const LHCbID&, 00055 double par0 = 999., 00056 double par1 = 999.); 00057 00058 protected: 00059 00060 // Geometry information 00061 DeOTDetector* m_otDet; 00062 DeSTDetector* m_itDet; 00063 DeVelo* m_veloDet; 00064 00065 std::string m_otDetPath; 00066 std::string m_itDetPath; 00067 std::string m_veloDetPath; 00068 00069 OTTimes* m_otTimes; 00070 ITClusters* m_itClusters; 00071 VeloClusters* m_veloClusters; 00072 00073 std::string m_measLocation; 00074 00075 }; 00076 #endif // TRACKTOOLS_MEASUREMENTPROVIDER_H