Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-18 02:44:54

0001 #ifndef DataFormats_Run3ScoutingElectron_h
0002 #define DataFormats_Run3ScoutingElectron_h
0003 
0004 #include <vector>
0005 #include <cstdint>
0006 
0007 // Class for holding electron information, for use in data scouting
0008 // IMPORTANT: the content of this class should be changed only in backwards compatible ways!
0009 class Run3ScoutingElectron {
0010 public:
0011   //constructor with values for all data fields
0012   Run3ScoutingElectron(float pt,
0013                        float eta,
0014                        float phi,
0015                        float m,
0016                        std::vector<float> trkd0,
0017                        std::vector<float> trkdz,
0018                        std::vector<float> trkpt,
0019                        std::vector<float> trketa,
0020                        std::vector<float> trkphi,
0021                        std::vector<float> trkchi2overndf,
0022                        float dEtaIn,
0023                        float dPhiIn,
0024                        float sigmaIetaIeta,
0025                        float hOverE,
0026                        float ooEMOop,
0027                        int missingHits,
0028                        std::vector<int> trkcharge,
0029                        float ecalIso,
0030                        float hcalIso,
0031                        float trackIso,
0032                        float r9,
0033                        float sMin,
0034                        float sMaj,
0035                        uint32_t seedId,
0036                        std::vector<float> energyMatrix,
0037                        std::vector<uint32_t> detIds,
0038                        std::vector<float> timingMatrix,
0039                        bool rechitZeroSuppression)
0040       : pt_(pt),
0041         eta_(eta),
0042         phi_(phi),
0043         m_(m),
0044         trkd0_(std::move(trkd0)),
0045         trkdz_(std::move(trkdz)),
0046         trkpt_(std::move(trkpt)),
0047         trketa_(std::move(trketa)),
0048         trkphi_(std::move(trkphi)),
0049         trkchi2overndf_(std::move(trkchi2overndf)),
0050         dEtaIn_(dEtaIn),
0051         dPhiIn_(dPhiIn),
0052         sigmaIetaIeta_(sigmaIetaIeta),
0053         hOverE_(hOverE),
0054         ooEMOop_(ooEMOop),
0055         missingHits_(missingHits),
0056         trkcharge_(std::move(trkcharge)),
0057         ecalIso_(ecalIso),
0058         hcalIso_(hcalIso),
0059         trackIso_(trackIso),
0060         r9_(r9),
0061         sMin_(sMin),
0062         sMaj_(sMaj),
0063         seedId_(seedId),
0064         energyMatrix_(std::move(energyMatrix)),
0065         detIds_(std::move(detIds)),
0066         timingMatrix_(std::move(timingMatrix)),
0067         rechitZeroSuppression_(rechitZeroSuppression) {}
0068   //default constructor
0069   Run3ScoutingElectron()
0070       : pt_(0),
0071         eta_(0),
0072         phi_(0),
0073         m_(0),
0074         trkd0_(0),
0075         trkdz_(0),
0076         trkpt_(0),
0077         trketa_(0),
0078         trkphi_(0),
0079         trkchi2overndf_(0),
0080         dEtaIn_(0),
0081         dPhiIn_(0),
0082         sigmaIetaIeta_(0),
0083         hOverE_(0),
0084         ooEMOop_(0),
0085         missingHits_(0),
0086         trkcharge_(0),
0087         ecalIso_(0),
0088         hcalIso_(0),
0089         trackIso_(0),
0090         r9_(0),
0091         sMin_(0),
0092         sMaj_(0),
0093         seedId_(0),
0094         rechitZeroSuppression_(false) {}
0095 
0096   //accessor functions
0097   float pt() const { return pt_; }
0098   float eta() const { return eta_; }
0099   float phi() const { return phi_; }
0100   float m() const { return m_; }
0101   std::vector<float> const& trkd0() const { return trkd0_; }
0102   std::vector<float> const& trkdz() const { return trkdz_; }
0103   std::vector<float> const& trkpt() const { return trkpt_; }
0104   std::vector<float> const& trketa() const { return trketa_; }
0105   std::vector<float> const& trkphi() const { return trkphi_; }
0106   std::vector<float> const& trkchi2overndf() const { return trkchi2overndf_; }
0107   float dEtaIn() const { return dEtaIn_; }
0108   float dPhiIn() const { return dPhiIn_; }
0109   float sigmaIetaIeta() const { return sigmaIetaIeta_; }
0110   float hOverE() const { return hOverE_; }
0111   float ooEMOop() const { return ooEMOop_; }
0112   int missingHits() const { return missingHits_; }
0113   std::vector<int> const& trkcharge() const { return trkcharge_; }
0114   float ecalIso() const { return ecalIso_; }
0115   float hcalIso() const { return hcalIso_; }
0116   float trackIso() const { return trackIso_; }
0117   float r9() const { return r9_; }
0118   float sMin() const { return sMin_; }
0119   float sMaj() const { return sMaj_; }
0120   uint32_t seedId() const { return seedId_; }
0121   std::vector<float> const& energyMatrix() const { return energyMatrix_; }
0122   std::vector<uint32_t> const& detIds() const { return detIds_; }
0123   std::vector<float> const& timingMatrix() const { return timingMatrix_; }
0124   bool rechitZeroSuppression() const { return rechitZeroSuppression_; }
0125 
0126 private:
0127   float pt_;
0128   float eta_;
0129   float phi_;
0130   float m_;
0131   std::vector<float> trkd0_;
0132   std::vector<float> trkdz_;
0133   std::vector<float> trkpt_;
0134   std::vector<float> trketa_;
0135   std::vector<float> trkphi_;
0136   std::vector<float> trkchi2overndf_;
0137   float dEtaIn_;
0138   float dPhiIn_;
0139   float sigmaIetaIeta_;
0140   float hOverE_;
0141   float ooEMOop_;
0142   int missingHits_;
0143   std::vector<int> trkcharge_;
0144   float ecalIso_;
0145   float hcalIso_;
0146   float trackIso_;
0147   float r9_;
0148   float sMin_;
0149   float sMaj_;
0150   uint32_t seedId_;
0151   std::vector<float> energyMatrix_;
0152   std::vector<uint32_t> detIds_;
0153   std::vector<float> timingMatrix_;
0154   bool rechitZeroSuppression_;
0155 };
0156 
0157 typedef std::vector<Run3ScoutingElectron> Run3ScoutingElectronCollection;
0158 
0159 #endif