Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:31:32

0001 #ifndef KFSwitching1DUpdator_H_
0002 #define KFSwitching1DUpdator_H_
0003 
0004 /** \class KFSwitching1DUpdator
0005  *  A Kalman Updator that uses a KFUpdator for pixel and matched hits,
0006  *  and a KFStrip1DUpdator for simple strip hits. Ported from ORCA.
0007  *
0008  *  \author todorov, cerati
0009  */
0010 
0011 #include "TrackingTools/PatternTools/interface/TrajectoryStateUpdator.h"
0012 #include "TrackingTools/KalmanUpdators/interface/KFUpdator.h"
0013 #include "TrackingTools/KalmanUpdators/interface/KFStrip1DUpdator.h"
0014 #include "DataFormats/GeometryCommonDetAlgo/interface/DeepCopyPointerByClone.h"
0015 
0016 class KFSwitching1DUpdator final : public TrajectoryStateUpdator {
0017 private:
0018   typedef TrajectoryStateOnSurface TSOS;
0019 
0020 public:
0021   explicit KFSwitching1DUpdator(bool doEndCap = false) : theDoEndCap(doEndCap) {}
0022   ~KFSwitching1DUpdator() override {}
0023 
0024   /// update with a hit
0025   TSOS update(const TSOS& aTsos, const TrackingRecHit& aHit) const override;
0026 
0027   KFSwitching1DUpdator* clone() const override { return new KFSwitching1DUpdator(*this); }
0028 
0029 private:
0030   /// updator for 2D hits (matched or pixel)
0031   const KFUpdator& localUpdator() const { return theLocalUpdator; }
0032   /// updator for non-matched strip hits
0033   const KFStrip1DUpdator& stripUpdator() const { return theStripUpdator; }
0034 
0035 private:
0036   const KFUpdator theLocalUpdator;
0037   const KFStrip1DUpdator theStripUpdator;
0038 
0039   bool theDoEndCap;
0040 };
0041 
0042 #endif  // KFSwitching1DUpdator_H_