Run3ScoutingMuon

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 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304
#ifndef DataFormats_Scouting_Run3ScoutingMuon_h
#define DataFormats_Scouting_Run3ScoutingMuon_h

#include <vector>
#include "DataFormats/Scouting/interface/Run3ScoutingHitPatternPOD.h"

// Class for holding muon information, for use in data scouting
// IMPORTANT: the content of this class should be changed only in backwards compatible ways!
class Run3ScoutingMuon {
public:
  //constructor with values for all data fields
  Run3ScoutingMuon(float pt,
                   float eta,
                   float phi,
                   float m,
                   unsigned int type,
                   int charge,
                   float normalizedChi2,
                   float ecalIso,
                   float hcalIso,
                   float trackIso,
                   int nValidStandAloneMuonHits,
                   int nStandAloneMuonMatchedStations,
                   int nValidRecoMuonHits,
                   int nRecoMuonChambers,
                   int nRecoMuonChambersCSCorDT,
                   int nRecoMuonMatches,
                   int nRecoMuonMatchedStations,
                   unsigned int nRecoMuonExpectedMatchedStations,
                   unsigned int recoMuonStationMask,
                   int nRecoMuonMatchedRPCLayers,
                   unsigned int recoMuonRPClayerMask,
                   int nValidPixelHits,
                   int nValidStripHits,
                   int nPixelLayersWithMeasurement,
                   int nTrackerLayersWithMeasurement,
                   float trk_chi2,
                   float trk_ndof,
                   float trk_dxy,
                   float trk_dz,
                   float trk_qoverp,
                   float trk_lambda,
                   float trk_pt,
                   float trk_phi,
                   float trk_eta,
                   float trk_dxyError,
                   float trk_dzError,
                   float trk_qoverpError,
                   float trk_lambdaError,
                   float trk_phiError,
                   float trk_dsz,
                   float trk_dszError,
                   float trk_qoverp_lambda_cov,
                   float trk_qoverp_phi_cov,
                   float trk_qoverp_dxy_cov,
                   float trk_qoverp_dsz_cov,
                   float trk_lambda_phi_cov,
                   float trk_lambda_dxy_cov,
                   float trk_lambda_dsz_cov,
                   float trk_phi_dxy_cov,
                   float trk_phi_dsz_cov,
                   float trk_dxy_dsz_cov,
                   float trk_vx,
                   float trk_vy,
                   float trk_vz,
                   std::vector<int> vtxIndx,
                   Run3ScoutingHitPatternPOD trk_hitPattern)
      : pt_(pt),
        eta_(eta),
        phi_(phi),
        m_(m),
        type_(type),
        charge_(charge),
        normalizedChi2_(normalizedChi2),
        ecalIso_(ecalIso),
        hcalIso_(hcalIso),
        trackIso_(trackIso),
        nValidStandAloneMuonHits_(nValidStandAloneMuonHits),
        nStandAloneMuonMatchedStations_(nStandAloneMuonMatchedStations),
        nValidRecoMuonHits_(nValidRecoMuonHits),
        nRecoMuonChambers_(nRecoMuonChambers),
        nRecoMuonChambersCSCorDT_(nRecoMuonChambersCSCorDT),
        nRecoMuonMatches_(nRecoMuonMatches),
        nRecoMuonMatchedStations_(nRecoMuonMatchedStations),
        nRecoMuonExpectedMatchedStations_(nRecoMuonExpectedMatchedStations),
        recoMuonStationMask_(recoMuonStationMask),
        nRecoMuonMatchedRPCLayers_(nRecoMuonMatchedRPCLayers),
        recoMuonRPClayerMask_(recoMuonRPClayerMask),
        nValidPixelHits_(nValidPixelHits),
        nValidStripHits_(nValidStripHits),
        nPixelLayersWithMeasurement_(nPixelLayersWithMeasurement),
        nTrackerLayersWithMeasurement_(nTrackerLayersWithMeasurement),
        trk_chi2_(trk_chi2),
        trk_ndof_(trk_ndof),
        trk_dxy_(trk_dxy),
        trk_dz_(trk_dz),
        trk_qoverp_(trk_qoverp),
        trk_lambda_(trk_lambda),
        trk_pt_(trk_pt),
        trk_phi_(trk_phi),
        trk_eta_(trk_eta),
        trk_dxyError_(trk_dxyError),
        trk_dzError_(trk_dzError),
        trk_qoverpError_(trk_qoverpError),
        trk_lambdaError_(trk_lambdaError),
        trk_phiError_(trk_phiError),
        trk_dsz_(trk_dsz),
        trk_dszError_(trk_dszError),
        trk_qoverp_lambda_cov_(trk_qoverp_lambda_cov),
        trk_qoverp_phi_cov_(trk_qoverp_phi_cov),
        trk_qoverp_dxy_cov_(trk_qoverp_dxy_cov),
        trk_qoverp_dsz_cov_(trk_qoverp_dsz_cov),
        trk_lambda_phi_cov_(trk_lambda_phi_cov),
        trk_lambda_dxy_cov_(trk_lambda_dxy_cov),
        trk_lambda_dsz_cov_(trk_lambda_dsz_cov),
        trk_phi_dxy_cov_(trk_phi_dxy_cov),
        trk_phi_dsz_cov_(trk_phi_dsz_cov),
        trk_dxy_dsz_cov_(trk_dxy_dsz_cov),
        trk_vx_(trk_vx),
        trk_vy_(trk_vy),
        trk_vz_(trk_vz),
        vtxIndx_(std::move(vtxIndx)),
        trk_hitPattern_(std::move(trk_hitPattern)) {}
  //default constructor
  Run3ScoutingMuon()
      : pt_(0),
        eta_(0),
        phi_(0),
        m_(0),
        type_(0),
        charge_(0),
        normalizedChi2_(0),
        ecalIso_(0),
        hcalIso_(0),
        trackIso_(0),
        nValidStandAloneMuonHits_(0),
        nStandAloneMuonMatchedStations_(0),
        nValidRecoMuonHits_(0),
        nRecoMuonChambers_(0),
        nRecoMuonChambersCSCorDT_(0),
        nRecoMuonMatches_(0),
        nRecoMuonMatchedStations_(0),
        nRecoMuonExpectedMatchedStations_(0),
        recoMuonStationMask_(0),
        nRecoMuonMatchedRPCLayers_(0),
        recoMuonRPClayerMask_(0),
        nValidPixelHits_(0),
        nValidStripHits_(0),
        nPixelLayersWithMeasurement_(0),
        nTrackerLayersWithMeasurement_(0),
        trk_chi2_(0),
        trk_ndof_(0),
        trk_dxy_(0),
        trk_dz_(0),
        trk_qoverp_(0),
        trk_lambda_(0),
        trk_pt_(0),
        trk_phi_(0),
        trk_eta_(0),
        trk_dxyError_(0),
        trk_dzError_(0),
        trk_qoverpError_(0),
        trk_lambdaError_(0),
        trk_phiError_(0),
        trk_dsz_(0),
        trk_dszError_(0),
        trk_qoverp_lambda_cov_(0),
        trk_qoverp_phi_cov_(0),
        trk_qoverp_dxy_cov_(0),
        trk_qoverp_dsz_cov_(0),
        trk_lambda_phi_cov_(0),
        trk_lambda_dxy_cov_(0),
        trk_lambda_dsz_cov_(0),
        trk_phi_dxy_cov_(0),
        trk_phi_dsz_cov_(0),
        trk_dxy_dsz_cov_(0),
        trk_vx_(0),
        trk_vy_(0),
        trk_vz_(0),
        vtxIndx_(0) {}

  //accessor functions
  float pt() const { return pt_; }
  float eta() const { return eta_; }
  float phi() const { return phi_; }
  float m() const { return m_; }
  unsigned int type() const { return type_; }
  bool isGlobalMuon() const { return type_ & 1 << 1; }
  bool isTrackerMuon() const { return type_ & 1 << 2; }
  int charge() const { return charge_; }
  float normalizedChi2() const { return normalizedChi2_; }
  float ecalIso() const { return ecalIso_; }
  float hcalIso() const { return hcalIso_; }
  float trackIso() const { return trackIso_; }
  int nValidStandAloneMuonHits() const { return nValidStandAloneMuonHits_; }
  int nStandAloneMuonMatchedStations() const { return nStandAloneMuonMatchedStations_; }
  int nValidRecoMuonHits() const { return nValidRecoMuonHits_; }
  int nRecoMuonChambers() const { return nRecoMuonChambers_; }
  int nRecoMuonChambersCSCorDT() const { return nRecoMuonChambersCSCorDT_; }
  int nRecoMuonMatches() const { return nRecoMuonMatches_; }
  int nRecoMuonMatchedStations() const { return nRecoMuonMatchedStations_; }
  unsigned int nRecoMuonExpectedMatchedStations() const { return nRecoMuonExpectedMatchedStations_; }
  unsigned int recoMuonStationMask() const { return recoMuonStationMask_; }
  int nRecoMuonMatchedRPCLayers() const { return nRecoMuonMatchedRPCLayers_; }
  unsigned int recoMuonRPClayerMask() const { return recoMuonRPClayerMask_; }
  int nValidPixelHits() const { return nValidPixelHits_; }
  int nValidStripHits() const { return nValidStripHits_; }
  int nPixelLayersWithMeasurement() const { return nPixelLayersWithMeasurement_; }
  int nTrackerLayersWithMeasurement() const { return nTrackerLayersWithMeasurement_; }
  float trk_chi2() const { return trk_chi2_; }
  float trk_ndof() const { return trk_ndof_; }
  float trk_dxy() const { return trk_dxy_; }
  float trk_dz() const { return trk_dz_; }
  float trk_qoverp() const { return trk_qoverp_; }
  float trk_lambda() const { return trk_lambda_; }
  float trk_pt() const { return trk_pt_; }
  float trk_phi() const { return trk_phi_; }
  float trk_eta() const { return trk_eta_; }
  float trk_dxyError() const { return trk_dxyError_; }
  float trk_dzError() const { return trk_dzError_; }
  float trk_qoverpError() const { return trk_qoverpError_; }
  float trk_lambdaError() const { return trk_lambdaError_; }
  float trk_phiError() const { return trk_phiError_; }
  float trk_dsz() const { return trk_dsz_; }
  float trk_dszError() const { return trk_dszError_; }
  //add off-diagonal covariance matrix parameter, the above "Error" variables correspond to the diagonal, enum for Cov matrix (qoverp, lambda, phi, dxy, dsz), see https://github.com/cms-sw/cmssw/blob/CMSSW_11_2_X/DataFormats/TrackReco/src/TrackBase.cc for details
  float trk_qoverp_lambda_cov() const { return trk_qoverp_lambda_cov_; }
  float trk_qoverp_phi_cov() const { return trk_qoverp_phi_cov_; }
  float trk_qoverp_dxy_cov() const { return trk_qoverp_dxy_cov_; }
  float trk_qoverp_dsz_cov() const { return trk_qoverp_dsz_cov_; }
  float trk_lambda_phi_cov() const { return trk_lambda_phi_cov_; }
  float trk_lambda_dxy_cov() const { return trk_lambda_dxy_cov_; }
  float trk_lambda_dsz_cov() const { return trk_lambda_dsz_cov_; }
  float trk_phi_dxy_cov() const { return trk_phi_dxy_cov_; }
  float trk_phi_dsz_cov() const { return trk_phi_dsz_cov_; }
  float trk_dxy_dsz_cov() const { return trk_dxy_dsz_cov_; }
  float trk_vx() const { return trk_vx_; }
  float trk_vy() const { return trk_vy_; }
  float trk_vz() const { return trk_vz_; }
  std::vector<int> const& vtxIndx() const { return vtxIndx_; }
  Run3ScoutingHitPatternPOD const& trk_hitPattern() const { return trk_hitPattern_; }

private:
  float pt_;
  float eta_;
  float phi_;
  float m_;
  unsigned int type_;
  int charge_;
  float normalizedChi2_;
  float ecalIso_;
  float hcalIso_;
  float trackIso_;
  int nValidStandAloneMuonHits_;
  int nStandAloneMuonMatchedStations_;
  int nValidRecoMuonHits_;
  int nRecoMuonChambers_;
  int nRecoMuonChambersCSCorDT_;
  int nRecoMuonMatches_;
  int nRecoMuonMatchedStations_;
  unsigned int nRecoMuonExpectedMatchedStations_;
  unsigned int recoMuonStationMask_;
  int nRecoMuonMatchedRPCLayers_;
  unsigned int recoMuonRPClayerMask_;
  int nValidPixelHits_;
  int nValidStripHits_;
  int nPixelLayersWithMeasurement_;
  int nTrackerLayersWithMeasurement_;
  float trk_chi2_;
  float trk_ndof_;
  float trk_dxy_;
  float trk_dz_;
  float trk_qoverp_;
  float trk_lambda_;
  float trk_pt_;
  float trk_phi_;
  float trk_eta_;
  float trk_dxyError_;
  float trk_dzError_;
  float trk_qoverpError_;
  float trk_lambdaError_;
  float trk_phiError_;
  float trk_dsz_;
  float trk_dszError_;
  float trk_qoverp_lambda_cov_;
  float trk_qoverp_phi_cov_;
  float trk_qoverp_dxy_cov_;
  float trk_qoverp_dsz_cov_;
  float trk_lambda_phi_cov_;
  float trk_lambda_dxy_cov_;
  float trk_lambda_dsz_cov_;
  float trk_phi_dxy_cov_;
  float trk_phi_dsz_cov_;
  float trk_dxy_dsz_cov_;
  float trk_vx_;
  float trk_vy_;
  float trk_vz_;
  std::vector<int> vtxIndx_;
  Run3ScoutingHitPatternPOD trk_hitPattern_;
};

typedef std::vector<Run3ScoutingMuon> Run3ScoutingMuonCollection;

#endif