File indexing completed on 2024-04-06 12:31:59
0001 #ifndef Validation_DTRecHits_DTHitQualityUtils_h
0002 #define Validation_DTRecHits_DTHitQualityUtils_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #include "DataFormats/DetId/interface/DetId.h"
0013 #include "DataFormats/GeometryVector/interface/LocalPoint.h"
0014 #include "DataFormats/GeometryVector/interface/LocalVector.h"
0015 #include "DataFormats/MuonDetId/interface/DTWireId.h"
0016 #include "SimDataFormats/TrackingHit/interface/PSimHitContainer.h"
0017
0018 #include <atomic>
0019 #include <map>
0020
0021 class PSimHit;
0022 class DTGeometry;
0023
0024 namespace DTHitQualityUtils {
0025
0026
0027
0028
0029 std::map<DTWireId, edm::PSimHitContainer> mapSimHitsPerWire(const edm::PSimHitContainer &simhits);
0030
0031 std::map<DTWireId, const PSimHit *> mapMuSimHitsPerWire(
0032 const std::map<DTWireId, edm::PSimHitContainer> &simHitWireMap);
0033
0034 const PSimHit *findMuSimHit(const edm::PSimHitContainer &hits);
0035
0036
0037 std::pair<const PSimHit *, const PSimHit *> findMuSimSegment(
0038 const std::map<DTWireId, const PSimHit *> &mapWireAndMuSimHit);
0039
0040
0041 std::pair<LocalVector, LocalPoint> findMuSimSegmentDirAndPos(
0042 const std::pair<const PSimHit *, const PSimHit *> &inAndOutSimHit, const DetId detId, const DTGeometry &muonGeom);
0043
0044
0045
0046
0047 std::pair<double, double> findSegmentAlphaAndBeta(const LocalVector &direction);
0048
0049
0050 extern std::atomic<bool> debug;
0051
0052
0053 double sigmaAngle(double Angle, double sigma2TanAngle);
0054
0055 }
0056 #endif