File indexing completed on 2024-04-06 12:04:05
0001 #ifndef DATAFORMATS_ECALUNCALIBRATEDRECHIT
0002 #define DATAFORMATS_ECALUNCALIBRATEDRECHIT
0003
0004 #include <vector>
0005 #include "DataFormats/DetId/interface/DetId.h"
0006 #include "DataFormats/EcalDigi/interface/EcalDataFrame.h"
0007
0008 class EcalUncalibratedRecHit {
0009 public:
0010 typedef DetId key_type;
0011
0012 enum Flags {
0013 kGood = -1,
0014 kPoorReco,
0015 kSaturated,
0016 kOutOfTime,
0017 kLeadingEdgeRecovered,
0018 kHasSwitchToGain6,
0019 kHasSwitchToGain1
0020
0021 };
0022
0023 EcalUncalibratedRecHit();
0024
0025 EcalUncalibratedRecHit(
0026 const DetId& id, float ampl, float ped, float jit, float chi2, uint32_t flags = 0, uint32_t aux = 0);
0027
0028 float amplitude() const { return amplitude_; }
0029 float amplitudeError() const { return amplitudeError_; }
0030 float pedestal() const { return pedestal_; }
0031 float jitter() const { return jitter_; }
0032 float chi2() const { return chi2_; }
0033 float outOfTimeAmplitude(int bx) const { return OOTamplitudes_[bx]; }
0034
0035 uint32_t flags() const { return flags_; }
0036 float jitterError() const;
0037 uint8_t jitterErrorBits() const;
0038 DetId id() const { return id_; }
0039
0040 void setAmplitude(float amplitude) { amplitude_ = amplitude; }
0041 void setAmplitudeError(float amplitudeerror) { amplitudeError_ = amplitudeerror; }
0042 void setPedestal(float pedestal) { pedestal_ = pedestal; }
0043 void setJitter(float jitter) { jitter_ = jitter; }
0044 void setChi2(float chi2) { chi2_ = chi2; }
0045 void setOutOfTimeAmplitude(int bx, float amplitude) { OOTamplitudes_[bx] = amplitude; }
0046
0047 void setJitterError(float jitterErr);
0048 void setFlags(uint32_t flags) { flags_ = flags; }
0049 void setId(DetId id) { id_ = id; }
0050 void setAux(uint32_t aux) { aux_ = aux; }
0051 void setFlagBit(Flags flag);
0052 bool checkFlag(Flags flag) const;
0053
0054 bool isSaturated() const;
0055 bool isJitterValid() const;
0056 bool isJitterErrorValid() const;
0057
0058
0059 float nonCorrectedTime() const;
0060 void setNonCorrectedTime(const float correctedJittter, const float nonCorrectedJitter);
0061
0062 private:
0063 float amplitude_;
0064 float amplitudeError_;
0065 float pedestal_;
0066 float jitter_;
0067 float chi2_;
0068
0069 float OOTamplitudes_[EcalDataFrame::MAXSAMPLES];
0070 float OOTchi2_;
0071 uint32_t flags_;
0072 uint32_t aux_;
0073 DetId id_;
0074 };
0075
0076 #endif