Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:05:09

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                        float rawEnergy,
0017                        float preshowerEnergy,
0018                        float corrEcalEnergyError,
0019                        std::vector<float> trkd0,
0020                        std::vector<float> trkdz,
0021                        std::vector<float> trkpt,
0022                        std::vector<float> trketa,
0023                        std::vector<float> trkphi,
0024                        std::vector<float> trkpMode,
0025                        std::vector<float> trketaMode,
0026                        std::vector<float> trkphiMode,
0027                        std::vector<float> trkqoverpModeError,
0028                        std::vector<float> trkchi2overndf,
0029                        float dEtaIn,
0030                        float dPhiIn,
0031                        float sigmaIetaIeta,
0032                        float hOverE,
0033                        float ooEMOop,
0034                        int missingHits,
0035                        std::vector<int> trkcharge,
0036                        float trackfbrem,
0037                        float ecalIso,
0038                        float hcalIso,
0039                        float trackIso,
0040                        float r9,
0041                        float sMin,
0042                        float sMaj,
0043                        uint32_t seedId,
0044                        uint32_t nClusters,
0045                        uint32_t nCrystals,
0046                        std::vector<float> energyMatrix,
0047                        std::vector<uint32_t> detIds,
0048                        std::vector<float> timingMatrix,
0049                        bool rechitZeroSuppression)
0050       : pt_(pt),
0051         eta_(eta),
0052         phi_(phi),
0053         m_(m),
0054         rawEnergy_(rawEnergy),
0055         preshowerEnergy_(preshowerEnergy),
0056         corrEcalEnergyError_(corrEcalEnergyError),
0057         trkd0_(std::move(trkd0)),
0058         trkdz_(std::move(trkdz)),
0059         trkpt_(std::move(trkpt)),
0060         trketa_(std::move(trketa)),
0061         trkphi_(std::move(trkphi)),
0062         trkpMode_(std::move(trkpMode)),
0063         trketaMode_(std::move(trketaMode)),
0064         trkphiMode_(std::move(trkphiMode)),
0065         trkqoverpModeError_(std::move(trkqoverpModeError)),
0066         trkchi2overndf_(std::move(trkchi2overndf)),
0067         dEtaIn_(dEtaIn),
0068         dPhiIn_(dPhiIn),
0069         sigmaIetaIeta_(sigmaIetaIeta),
0070         hOverE_(hOverE),
0071         ooEMOop_(ooEMOop),
0072         missingHits_(missingHits),
0073         trkcharge_(std::move(trkcharge)),
0074         trackfbrem_(trackfbrem),
0075         ecalIso_(ecalIso),
0076         hcalIso_(hcalIso),
0077         trackIso_(trackIso),
0078         r9_(r9),
0079         sMin_(sMin),
0080         sMaj_(sMaj),
0081         seedId_(seedId),
0082         nClusters_(nClusters),
0083         nCrystals_(nCrystals),
0084         energyMatrix_(std::move(energyMatrix)),
0085         detIds_(std::move(detIds)),
0086         timingMatrix_(std::move(timingMatrix)),
0087         rechitZeroSuppression_(rechitZeroSuppression) {}
0088   //default constructor
0089   Run3ScoutingElectron()
0090       : pt_(0),
0091         eta_(0),
0092         phi_(0),
0093         m_(0),
0094         rawEnergy_(0),
0095         preshowerEnergy_(0),
0096         corrEcalEnergyError_(0),
0097         trkd0_(0),
0098         trkdz_(0),
0099         trkpt_(0),
0100         trketa_(0),
0101         trkphi_(0),
0102         trkpMode_(0),
0103         trketaMode_(0),
0104         trkphiMode_(0),
0105         trkqoverpModeError_(0),
0106         trkchi2overndf_(0),
0107         dEtaIn_(0),
0108         dPhiIn_(0),
0109         sigmaIetaIeta_(0),
0110         hOverE_(0),
0111         ooEMOop_(0),
0112         missingHits_(0),
0113         trkcharge_(0),
0114         trackfbrem_(0),
0115         ecalIso_(0),
0116         hcalIso_(0),
0117         trackIso_(0),
0118         r9_(0),
0119         sMin_(0),
0120         sMaj_(0),
0121         seedId_(0),
0122         nClusters_(0),
0123         nCrystals_(0),
0124         rechitZeroSuppression_(false) {}
0125 
0126   //accessor functions
0127   float pt() const { return pt_; }
0128   float eta() const { return eta_; }
0129   float phi() const { return phi_; }
0130   float m() const { return m_; }
0131   float rawEnergy() const { return rawEnergy_; }
0132   float preshowerEnergy() const { return preshowerEnergy_; }
0133   float corrEcalEnergyError() const { return corrEcalEnergyError_; }
0134   std::vector<float> const& trkd0() const { return trkd0_; }
0135   std::vector<float> const& trkdz() const { return trkdz_; }
0136   std::vector<float> const& trkpt() const { return trkpt_; }
0137   std::vector<float> const& trketa() const { return trketa_; }
0138   std::vector<float> const& trkphi() const { return trkphi_; }
0139   std::vector<float> const& trkpMode() const { return trkpMode_; }
0140   std::vector<float> const& trketaMode() const { return trketaMode_; }
0141   std::vector<float> const& trkphiMode() const { return trkphiMode_; }
0142   std::vector<float> const& trkqoverpModeError() const { return trkqoverpModeError_; }
0143   std::vector<float> const& trkchi2overndf() const { return trkchi2overndf_; }
0144   float dEtaIn() const { return dEtaIn_; }
0145   float dPhiIn() const { return dPhiIn_; }
0146   float sigmaIetaIeta() const { return sigmaIetaIeta_; }
0147   float hOverE() const { return hOverE_; }
0148   float ooEMOop() const { return ooEMOop_; }
0149   int missingHits() const { return missingHits_; }
0150   std::vector<int> const& trkcharge() const { return trkcharge_; }
0151   float trackfbrem() const { return trackfbrem_; }
0152   float ecalIso() const { return ecalIso_; }
0153   float hcalIso() const { return hcalIso_; }
0154   float trackIso() const { return trackIso_; }
0155   float r9() const { return r9_; }
0156   float sMin() const { return sMin_; }
0157   float sMaj() const { return sMaj_; }
0158   uint32_t seedId() const { return seedId_; }
0159   uint32_t nClusters() const { return nClusters_; }
0160   uint32_t nCrystals() const { return nCrystals_; }
0161   std::vector<float> const& energyMatrix() const { return energyMatrix_; }
0162   std::vector<uint32_t> const& detIds() const { return detIds_; }
0163   std::vector<float> const& timingMatrix() const { return timingMatrix_; }
0164   bool rechitZeroSuppression() const { return rechitZeroSuppression_; }
0165 
0166 private:
0167   float pt_;
0168   float eta_;
0169   float phi_;
0170   float m_;
0171   float rawEnergy_;
0172   float preshowerEnergy_;
0173   float corrEcalEnergyError_;
0174   std::vector<float> trkd0_;
0175   std::vector<float> trkdz_;
0176   std::vector<float> trkpt_;
0177   std::vector<float> trketa_;
0178   std::vector<float> trkphi_;
0179   std::vector<float> trkpMode_;
0180   std::vector<float> trketaMode_;
0181   std::vector<float> trkphiMode_;
0182   std::vector<float> trkqoverpModeError_;
0183   std::vector<float> trkchi2overndf_;
0184   float dEtaIn_;
0185   float dPhiIn_;
0186   float sigmaIetaIeta_;
0187   float hOverE_;
0188   float ooEMOop_;
0189   int missingHits_;
0190   std::vector<int> trkcharge_;
0191   float trackfbrem_;
0192   float ecalIso_;
0193   float hcalIso_;
0194   float trackIso_;
0195   float r9_;
0196   float sMin_;
0197   float sMaj_;
0198   uint32_t seedId_;
0199   uint32_t nClusters_;
0200   uint32_t nCrystals_;
0201   std::vector<float> energyMatrix_;
0202   std::vector<uint32_t> detIds_;
0203   std::vector<float> timingMatrix_;
0204   bool rechitZeroSuppression_;
0205 };
0206 
0207 typedef std::vector<Run3ScoutingElectron> Run3ScoutingElectronCollection;
0208 
0209 #endif