Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:26:51

0001 #ifndef RecoMTD_TransientTrackingRecHit_MTDTransientTrackingRecHit_h
0002 #define RecoMTD_TransientTrackingRecHit_MTDTransientTrackingRecHit_h
0003 
0004 /** \class MTDTransientTrackingRecHit
0005  *
0006  *  A TransientTrackingRecHit for MTD.
0007  *
0008  *
0009  *   \author   L. Gray - FNAL
0010  *
0011  */
0012 
0013 #include "TrackingTools/TransientTrackingRecHit/interface/GenericTransientTrackingRecHit.h"
0014 #include "DataFormats/TrackingRecHit/interface/RecSegment.h"
0015 
0016 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0017 
0018 class MTDTransientTrackingRecHit final : public GenericTransientTrackingRecHit {
0019 public:
0020   using MTDRecHitPointer = std::shared_ptr<MTDTransientTrackingRecHit>;
0021   using ConstMTDRecHitPointer = std::shared_ptr<MTDTransientTrackingRecHit const>;
0022 
0023   typedef std::vector<MTDRecHitPointer> MTDRecHitContainer;
0024   typedef std::vector<ConstMTDRecHitPointer> ConstMTDRecHitContainer;
0025 
0026   ~MTDTransientTrackingRecHit() override {}
0027 
0028   /// if this rec hit is a BTL rec hit
0029   bool isBTL() const;
0030 
0031   /// if this rec hit is a ETL rec hit
0032   bool isETL() const;
0033 
0034   static RecHitPointer build(const GeomDet* geom, const TrackingRecHit* rh) {
0035     return RecHitPointer(new MTDTransientTrackingRecHit(geom, rh));
0036   }
0037 
0038   static MTDRecHitPointer specificBuild(const GeomDet* geom, const TrackingRecHit* rh) {
0039     LogDebug("MTDTransientTrackingRecHit") << "Getting specificBuild" << std::endl;
0040     return MTDRecHitPointer(new MTDTransientTrackingRecHit(geom, rh));
0041   }
0042 
0043   void invalidateHit();
0044 
0045 private:
0046   /// Construct from a TrackingRecHit and its GeomDet
0047   MTDTransientTrackingRecHit(const GeomDet* geom, const TrackingRecHit* rh);
0048 
0049   /// Copy ctor
0050   MTDTransientTrackingRecHit(const MTDTransientTrackingRecHit& other);
0051 
0052   MTDTransientTrackingRecHit* clone() const override { return new MTDTransientTrackingRecHit(*this); }
0053 };
0054 #endif