00001 #ifndef DTHitQualityUtils_H
00002 #define DTHitQualityUtils_H
00003
00014 #include "DataFormats/GeometryVector/interface/LocalVector.h"
00015 #include "DataFormats/GeometryVector/interface/LocalPoint.h"
00016 #include "DataFormats/DetId/interface/DetId.h"
00017 #include "DataFormats/MuonDetId/interface/DTWireId.h"
00018 #include "SimDataFormats/TrackingHit/interface/PSimHitContainer.h"
00019
00020 #include <map>
00021
00022 class PSimHit;
00023 class DTGeometry;
00024
00025 class DTHitQualityUtils {
00026 public:
00027
00029 DTHitQualityUtils();
00030
00031
00033 virtual ~DTHitQualityUtils();
00034
00037 static std::map<DTWireId, edm::PSimHitContainer > mapSimHitsPerWire(const edm::PSimHitContainer& simhits) ;
00039 static std::map<DTWireId, const PSimHit*> mapMuSimHitsPerWire(const std::map<DTWireId, edm::PSimHitContainer>& simHitWireMap) ;
00041 static const PSimHit* findMuSimHit(const edm::PSimHitContainer& hits);
00043 static std::pair<const PSimHit*, const PSimHit*> findMuSimSegment(const std::map<DTWireId, const PSimHit*>& mapWireAndMuSimHit) ;
00045 static std::pair<LocalVector, LocalPoint> findMuSimSegmentDirAndPos(const std::pair<const PSimHit*, const PSimHit*>& inAndOutSimHit,
00046 const DetId detId, const DTGeometry *muonGeom);
00048 static std::pair<double, double> findSegmentAlphaAndBeta(const LocalVector& direction);
00049
00050
00051 static bool debug;
00052
00053
00054 protected:
00055
00056 private:
00057
00058 };
00059 #endif