CTPPSLocalTrackLite

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 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
/****************************************************************************
*
* This is a part of TOTEM offline software.
* Authors:
*   Jan Kašpar (jan.kaspar@gmail.com)
*
****************************************************************************/

#ifndef DataFormats_CTPPSReco_CTPPSLocalTrackLite
#define DataFormats_CTPPSReco_CTPPSLocalTrackLite

#include <cstdint>

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

/**
 *\brief Local (=single RP) track with essential information only.
 **/
class CTPPSLocalTrackLite {
public:
  CTPPSLocalTrackLite()
      : rp_id_(0),
        x_(0.),
        x_unc_(-1.),
        y_(0.),
        y_unc_(-1.),
        tx_(999.),
        tx_unc_(-1.),
        ty_(999.),
        ty_unc_(-1.),
        chi2_norm_(-1.),
        pixel_track_reco_info_(CTPPSpixelLocalTrackReconstructionInfo::invalid),
        num_points_fit_(0),
        time_(0.),
        time_unc_(-1.) {}

  CTPPSLocalTrackLite(uint32_t pid,
                      float px,
                      float pxu,
                      float py,
                      float pyu,
                      float ptx,
                      float ptxu,
                      float pty,
                      float ptyu,
                      float pchiSquaredOverNDF,
                      CTPPSpixelLocalTrackReconstructionInfo ppixelTrack_reco_info,
                      unsigned short pNumberOfPointsUsedForFit,
                      float pt,
                      float ptu)
      : rp_id_(pid),
        x_(px),
        x_unc_(pxu),
        y_(py),
        y_unc_(pyu),
        tx_(ptx),
        tx_unc_(ptxu),
        ty_(pty),
        ty_unc_(ptyu),
        chi2_norm_(pchiSquaredOverNDF),
        pixel_track_reco_info_(ppixelTrack_reco_info),
        num_points_fit_(pNumberOfPointsUsedForFit),
        time_(pt),
        time_unc_(ptu) {}

  /// returns the RP id
  inline uint32_t rpId() const { return rp_id_; }

  /// returns the horizontal track position
  inline float x() const { return x_; }

  /// returns the horizontal track position uncertainty
  inline float xUnc() const { return x_unc_; }

  /// returns the vertical track position
  inline float y() const { return y_; }

  /// returns the vertical track position uncertainty
  inline float yUnc() const { return y_unc_; }

  /// returns the track time
  inline float time() const { return time_; }

  /// returns the track time uncertainty
  inline float timeUnc() const { return time_unc_; }

  /// returns the track horizontal angle
  inline float tx() const { return tx_; }

  /// returns the track horizontal angle uncertainty
  inline float txUnc() const { return tx_unc_; }

  /// returns the track vertical angle
  inline float ty() const { return ty_; }

  /// returns the track vertical angle uncertainty
  inline float tyUnc() const { return ty_unc_; }

  /// returns the track fit chi Squared over NDF
  inline float chiSquaredOverNDF() const { return chi2_norm_; }

  /// returns the track reconstruction info byte
  inline CTPPSpixelLocalTrackReconstructionInfo pixelTrackRecoInfo() const { return pixel_track_reco_info_; }

  /// returns the number of points used for fit
  inline unsigned short numberOfPointsUsedForFit() const { return num_points_fit_; }

protected:
  /// RP id
  uint32_t rp_id_;

  /// local track parameterization
  /// x = x0 + tx*(z-z0), y = y0 + ty*(z-z0)
  /// x0, y0, z-z0 in mm
  /// z0: position of the reference scoring plane (in the middle of the RP)

  /// horizontal hit position, mm
  float x_;
  /// uncertainty on horizontal hit position, mm
  float x_unc_;
  /// vertical hit position, mm
  float y_;
  /// uncertainty on vertical hit position, mm
  float y_unc_;
  /// horizontal angle, x = x0 + tx*(z-z0)
  float tx_;
  /// uncertainty on horizontal angle
  float tx_unc_;
  /// vertical angle, y = y0 + ty*(z-z0)
  float ty_;
  /// uncertainty on vertical angle
  float ty_unc_;
  /// fit \f$\chi^2\f$/NDF
  float chi2_norm_;

  /// Track information byte for bx-shifted runs:
  /// * notShiftedRun    -> Default value for tracks reconstructed in non-bx-shifted ROCs
  /// * allShiftedPlanes -> Track reconstructed in a bx-shifted ROC with bx-shifted planes only
  /// * noShiftedPlanes  -> Track reconstructed in a bx-shifted ROC with non-bx-shifted planes only
  /// * mixedPlanes      -> Track reconstructed in a bx-shifted ROC both with bx-shifted and non-bx-shifted planes
  /// * invalid          -> Dummy value. Assigned when pixelTrack_reco_info is not computed (i.e. non-pixel tracks)
  CTPPSpixelLocalTrackReconstructionInfo pixel_track_reco_info_;

  /// number of points used for fit
  unsigned short num_points_fit_;

  /// time information, ns
  float time_;
  /// uncertainty on time information, ns
  float time_unc_;
};

#endif