TimingAlgorithm

TotemTimingRecHit

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
/****************************************************************************
 *
 * This is a part of CTPPS offline software.
 * Authors:
 *   Laurent Forthomme (laurent.forthomme@cern.ch)
 *   Nicola Minafra (nicola.minafra@cern.ch)
 *
 ****************************************************************************/

#ifndef DataFormats_CTPPSReco_TotemTimingRecHit
#define DataFormats_CTPPSReco_TotemTimingRecHit

#include "DataFormats/CTPPSReco/interface/CTPPSTimingRecHit.h"

/// Reconstructed hit in Totem UFSDetectors.
/// \note t: time computed using algorithm timingAlgorithm()
class TotemTimingRecHit : public CTPPSTimingRecHit {
public:
  enum TimingAlgorithm { NOT_SET, CFD, SMART, SIMPLE };
  static constexpr int NO_T_AVAILABLE = -100;

  TotemTimingRecHit()
      : CTPPSTimingRecHit(), sampicThresholdTime_(0), tPrecision_(0), amplitude_(0), baselineRMS_(0), mode_(NOT_SET) {}

  TotemTimingRecHit(float x,
                    float xWidth,
                    float y,
                    float yWidth,
                    float z,
                    float zWidth,
                    float t,
                    float sampicThresholdTime,
                    float tPrecision,
                    float amplitude,
                    float baselineRMS,
                    TimingAlgorithm mode)
      : CTPPSTimingRecHit(x, xWidth, y, yWidth, z, zWidth, t),
        sampicThresholdTime_(sampicThresholdTime),
        tPrecision_(tPrecision),
        amplitude_(amplitude),
        baselineRMS_(baselineRMS),
        mode_(mode) {}

  inline void setSampicThresholdTime(float stt) { sampicThresholdTime_ = stt; }
  inline float sampicThresholdTime() const { return sampicThresholdTime_; }

  inline void setTPrecision(float tPrecision) { tPrecision_ = tPrecision; }
  inline float tPrecision() const { return tPrecision_; }

  inline void setAmplitude(float amplitude) { amplitude_ = amplitude; }
  inline float amplitude() const { return amplitude_; }

  inline void setBaselineRMS(float brms) { baselineRMS_ = brms; }
  inline float baselineRMS() const { return baselineRMS_; }

  inline TimingAlgorithm timingAlgorithm() const { return mode_; }

private:
  float sampicThresholdTime_, tPrecision_;
  float amplitude_;
  float baselineRMS_;
  TimingAlgorithm mode_;
};

#endif