Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:05:20

0001 #ifndef DataFormats_TrackerRecHit2D_MTDTrackingRecHit_h
0002 #define DataFormats_TrackerRecHit2D_MTDTrackingRecHit_h
0003 
0004 /// A 2D TrackerRecHit with time and time error information
0005 
0006 #include <cassert>
0007 #include "DataFormats/TrackerRecHit2D/interface/TrackerSingleRecHit.h"
0008 #include "DataFormats/FTLRecHit/interface/FTLRecHitCollections.h"
0009 
0010 class MTDTrackingRecHit : public TrackerSingleRecHit {
0011 public:
0012   MTDTrackingRecHit() : TrackerSingleRecHit() {}
0013 
0014   MTDTrackingRecHit(const LocalPoint& p, const LocalError& e, const GeomDet& idet, const FTLClusterRef& objref)
0015       : TrackerSingleRecHit(p, e, idet, trackerHitRTTI::mipTiming, objref) {}
0016 
0017   MTDTrackingRecHit* clone() const override { return new MTDTrackingRecHit(*this); }
0018 
0019   // things to specialize from BaseTrackerRecHit
0020   bool isPhase2() const final { return true; }
0021   void getKfComponents(KfComponentsHolder& holder) const final;
0022 
0023   int dimension() const final { return 2; }
0024 
0025   //specific timing stuff
0026   float energy() const { return omniCluster().mtdCluster().energy(); }
0027   float time() const { return omniCluster().mtdCluster().time(); }
0028   float timeError() const { return omniCluster().mtdCluster().timeError(); }
0029 };
0030 
0031 // Instantiations and specializations for FTLRecHitRef and reco::CaloClusterPtr
0032 #include "DataFormats/Common/interface/DetSetVector.h"
0033 typedef edmNew::DetSetVector<MTDTrackingRecHit> MTDTrackingDetSetVector;
0034 
0035 #endif