text: #ifndef TRACKINGTOOLS_TRANSIENTRECHITBUILDER_H
  #define TRACKINGTOOLS_TRANSIENTRECHITBUILDER_H
  
  #include "TrackingTools/TransientTrackingRecHit/interface/TValidTrackingRecHit.h"
  
  class TransientTrackingRecHitBuilder {
  public:
    typedef TransientTrackingRecHit::RecHitPointer RecHitPointer;
    typedef TransientTrackingRecHit::RecHitContainer RecHitContainer;
    virtual ~TransientTrackingRecHitBuilder() = default;
    /// build a tracking rechit from an existing rechit
    virtual RecHitPointer build(const TrackingRecHit* p) const = 0;
  
    /// build a tracking rechit refiting the rechit position and error according to the state estimate
    virtual RecHitPointer build(const TrackingRecHit* p, const TrajectoryStateOnSurface& state) const {
      return build(p);
    };
  };
  
  #endif
  