Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 11:58:31

0001 #ifndef RecoLocalMuon_DTTTrigBaseSync_H
0002 #define RecoLocalMuon_DTTTrigBaseSync_H
0003 
0004 /** \class DTTTrigBaseSync
0005  *  Base class to define the offsets for 1D DT RecHit building
0006  *
0007  *  \author G. Cerminara - INFN Torino
0008  */
0009 
0010 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
0011 
0012 class DTLayer;
0013 class DTWireId;
0014 
0015 namespace edm {
0016   class EventSetup;
0017 }
0018 
0019 class DTTTrigBaseSync {
0020 public:
0021   /// Constructor
0022   DTTTrigBaseSync();
0023 
0024   /// Destructor
0025   virtual ~DTTTrigBaseSync();
0026 
0027   // Operations
0028 
0029   /// Pass the Event Setup to the synchronization module at each event
0030   virtual void setES(const edm::EventSetup& setup) = 0;
0031 
0032   /// Time (ns) to be subtracted to the digi time.
0033   /// Parameters are the layer and the wireId to which the
0034   /// digi is referred and the estimation of
0035   /// the 3D hit position (globPos)
0036   double offset(const DTLayer* layer, const DTWireId& wireId, const GlobalPoint& globalPos) const;
0037 
0038   /// Time (ns) to be subtracted to the digi time.
0039   /// It does not take into account TOF and signal propagation along the wire
0040   virtual double offset(const DTWireId& wireId) const = 0;
0041 
0042   /// Time to be subtracted to the digi time,
0043   /// Parameters are the layer and the wireId to which the
0044   /// digi is referred and the estimation of
0045   /// the 3D hit position (globPos)
0046   /// It also returns the different contributions separately:
0047   ///     - tTrig is the offset (t_trig)
0048   ///     - wirePropCorr is the delay for signal propagation along the wire
0049   ///     - tofCorr is the correction due to the particle TOF
0050   virtual double offset(const DTLayer* layer,
0051                         const DTWireId& wireId,
0052                         const GlobalPoint& globalPos,
0053                         double& tTrig,
0054                         double& wirePropCorr,
0055                         double& tofCorr) const = 0;
0056 
0057   /// Time (ns) to be subtracted to the digi time for emulation purposes
0058   /// It does not take into account TOF and signal propagation along the wire
0059   virtual double emulatorOffset(const DTWireId& wireId) const;
0060 
0061   /// Time (ns) to be subtracted to the digi time for emulation purposes
0062   /// It does not take into account TOF and signal propagation along the wire
0063   /// It also returns the different contributions separately:
0064   ///     - tTrig is the offset (t_trig)
0065   ///     - t0cell is the t0 from pulses
0066   virtual double emulatorOffset(const DTWireId& wireId, double& tTrig, double& t0cell) const = 0;
0067 };
0068 #endif