Go to the documentation of this file. 1 #ifndef EcalSelectiveReadoutValidation_H
2 #define EcalSelectiveReadoutValidation_H
60 template <
class T,
class U>
135 return (subdet ==
EB ? 34 : 52) * 8;
151 if (iDcc0 < 9 || iDcc0 >= 45) {
207 std::pair<int, int>
dccCh(
const DetId& xtalId)
const;
219 int iPhi0 = iPhi - 11;
291 const std::vector<int>& firWeights,
293 bool* saturated =
nullptr);
299 static std::vector<int>
getFIRWeights(
const std::vector<double>& normalizedWeights);
422 static const int nEeRus = 2 * (34 + 32 + 33 + 33 + 32 + 34 + 33 + 34 + 33);
861 int ruGraphX(
const EcalScDetId&
id)
const {
return id.ix() + (
id.zside() > 0 ? 20 : -40); }
903 #endif //EcalSelectiveReadoutValidation_H not defined
MonitorElement * meEbRecE_
MonitorElement * meEeRecEHitXtal_
void fill(MonitorElement *me, float x, float yw)
subdet_t
distinguishes barral and endcap of ECAL.
static const double rad2deg
Conversion factor from radian to degree.
MonitorElement * meDccVolFromData_
double getDccSrDependentPayload(int iDcc0, double nReadRus, double nReadXtals) const
int nEeZsErrors_
Counter of EE ZS errors (LI channel below ZS threshold)
void fill(MonitorElement *me, float x)
MonitorElement * meL1aRate_
MonitorElement * meTpVsEtSum_
MonitorElement * meEbRecEHitXtal_
void analyzeEE(const edm::Event &event, const edm::EventSetup &es)
MonitorElement * meEeNoise_
int cIndex2iTtEta(int i) const
int nDroppedFRO_
Counter of FRO-flagged RU dropped from data.
double getEeEventSize(double nReadXtals) const
double phi
number of sim hits
double getBytesPerCrystal() const
MonitorElement * meSRFlagsComputed_
MonitorElement * meSRFlagsConsistency_
MonitorElement * meDccLiVol_
std::string srpAlgoErrorLogFileName_
int xtalGraphY(const EBDetId &id) const
void compareSrfColl(const edm::Event &event, T &srfFromData, T &computedSrf)
MonitorElement * meHiTtf_
static const int nEndcaps
number of endcaps
double getL1aRate() const
MonitorElement * meEbSimE_
std::ofstream srpAlgoErrorLog_
Output ascii file for unconsistency on SR flags.
static const int nEeY
EE crystal grid size along Y.
CollHandle< EBDigiCollection > ebDigis_
MonitorElement * meTpMap_
double frame2EnergyForTp(const T &frame, int offset=0) const
MonitorElement * meDccHiVol_
std::set< std::string > histList_
static const int nEeDccs
number of DCCs for EE
MonitorElement * meLiTtf_
int cIndex2iXY(int iX0) const
const EcalElectronicsMapping * elecMap_
double eta
phi crystal position in degrees
static const int nEbRus
number of RUs for EB
MonitorElement * meTtfVsEtSum_
double ttEtSums[nTtEta][nTtPhi]
MonitorElement * meEeLiZsFir_
MonitorElement * meDroppedFROCnt_
const EcalTrigTowerConstituentsMap * triggerTowerMap_
void analyzeTP(const edm::Event &event, const edm::EventSetup &es)
MonitorElement * meIncompleteFROMap_
MonitorElement * meEbFullRoCnt_
CollHandle< RecHitCollection > ebRecHits_
MonitorElement * meVolBHI_
int iEta2cIndex(int iEta) const
MonitorElement * meEbRecVsSimE_
MonitorElement * meEbEMean_
MonitorElement * meChOcc_
void configFirWeights(const std::vector< double > &weightsForZsFIR)
MonitorElement * meEeEMean_
void checkSrApplication(const edm::Event &event, T &srfs)
int ruGraphX(const EcalTrigTowerDetId &id) const
bool gain12
eta crystal position
~EcalSelectiveReadoutValidation() override
Destructor.
MonitorElement * meDroppedFROMap_
MonitorElement * meCompleteZS_
MonitorElement * meEeHiZsFir_
MonitorElement * meZsErrType1Cnt_
int xtalGraphX(const EBDetId &id) const
CollHandle< EBSrFlagCollection > ebSrFlags_
static const int nEeX
EE crystal grid size along X.
MonitorElement * bookProfile2D(DQMStore::IBooker &, const std::string &name, const std::string &title, int nbinx, double xmin, double xmax, int nbiny, double ymin, double ymax, const char *option="")
void analyzeDataVolume(const edm::Event &e, const edm::EventSetup &es)
int xtalGraphY(const EEDetId &id) const
MonitorElement * meCompleteZSRateMap_
int simHit
energy reconstructed from zero-suppressed digi
MonitorElement * meDroppedFRORateMap_
void anaDigi(const T &frame, const U &srFlagColl)
MonitorElement * meEeZsErrType1Cnt_
void dqmBeginRun(edm::Run const &, edm::EventSetup const &) override
dqm::implementation::IBooker IBooker
int iXY2cIndex(int iX) const
double noZsRecE
sim hit energy sum
MonitorElement * meCompleteZSCnt_
std::pair< int, int > dccCh(const DetId &xtalId) const
int iTtPhi2cIndex(int iPhi) const
MonitorElement * meEeFixedPayload_
double getDccOverhead(subdet_t subdet) const
MonitorElement * meEbNoise_
bool gain12
eta crystal position
CollHandle< FEDRawDataCollection > fedRaw_
void dqmEndRun(const edm::Run &r, const edm::EventSetup &c) override
void bookHistograms(DQMStore::IBooker &i, edm::Run const &, edm::EventSetup const &) override
double getEbEventSize(double nReadXtals) const
MonitorElement * meVolELI_
static const int nOneEeTtEta
Number of Trigger Towers in an endcap along Eta.
int getRuCount(int iDcc0) const
int dccId(const EcalScDetId &detId) const
MonitorElement * meMiTtf_
static const int nEbDccs
number of DCCs for EB
MonitorElement * meEbHiZsFir_
int nEbZsErrors_
Counter of EB ZS errors (LI channel below ZS threshold)
MonitorElement * meVolEHI_
void readAllCollections(const edm::Event &e)
static const int nEeRus
number of RUs for EE
MonitorElement * book2D(DQMStore::IBooker &, const std::string &name, const std::string &title, int nxbins, double xmin, double xmax, int nybins, double ymin, double ymax)
double frame2Energy(const EcalDataFrame &frame) const
CollHandle< EESrFlagCollection > eeSrFlags_
EcalSelectiveReadoutValidation(const edm::ParameterSet &ps)
Constructor.
MonitorElement * meEbIncompleteRUZsFir_
MonitorElement * meEbZsErrCnt_
MonitorElement * meEbLiZsFir_
void fill(MonitorElement *me, float x, float y, float z, float w)
bool registerHist(const std::string &name, const std::string &title)
int cIndex2iPhi(int i) const
void setTtEtSums(const edm::EventSetup &es, const EBDigiCollection &ebDigis, const EEDigiCollection &eeDigis)
double noZsRecE
sim hit energy sum
MonitorElement * meSRFlagsFromData_
static const int minDccId_
static const int nEbEta
number of crystals along Eta in EB
MonitorElement * bookProfile(DQMStore::IBooker &, const std::string &name, const std::string &title, int nbins, double xmin, double xmax)
MonitorElement * meVolLI_
bool isRuComplete_[nDccs_][nDccChs_]
std::vector< int > firWeights_
int iPhi2cIndex(int iPhi) const
MonitorElement * meIncompleteFRORateMap_
CollHandle< RecHitCollection > eeRecHits_
CollHandle< EESrFlagCollection > eeComputedSrFlags_
static const int nTtEta
Number of Trigger Towers along Eta.
int ruGraphX(const EcalScDetId &id) const
static const int maxDccId_
double getDccEventSize(int iDcc0, double nReadXtals) const
static const int nTtPhi
Number of Trigger Towers along Phi.
MonitorElement * meEeNoZsRecVsSimE_
CollHandle< EEDigiCollection > eeDigis_
int ruGraphY(const EcalTrigTowerDetId &id) const
static const int nEbTtEta
Number of Trigger Towers in barrel along Eta.
MonitorElement * meFixedPayload_
std::string outputFile_
Output file for histograms.
MonitorElement * meEbNoZsRecVsSimE_
void updateL1aRate(const edm::Event &event)
double recE
energy reconstructed from unsuppressed digi
int nCompleteZS_
Counter of ZS-flagged RU fully read out.
MonitorElement * meEbZsErrType1Cnt_
void analyze(edm::Event const &e, edm::EventSetup const &c) override
Analyzes the event.
static int dccZsFIR(const EcalDataFrame &frame, const std::vector< int > &firWeights, int firstFIRSample, bool *saturated=nullptr)
MonitorElement * meIncompleteFRO_
int nEeFROCnt_
Counter of EE FRO-flagged RUs.
MonitorElement * meEeSimE_
bool logSrApplicationErrors_
static const unsigned nDccs_
Total number of DCCs.
MonitorElement * meFullRoRu_
CollHandle< std::vector< PCaloHit > > eeSimHits_
std::vector< double > weights_
int iTtEta2cIndex(int iEta) const
bool eeRuActive_[nEndcaps][nEeX/scEdge][nEeY/scEdge]
MonitorElement * meZs1Ru_
MonitorElement * meEeRecVsSimE_
CollHandle< EBSrFlagCollection > ebComputedSrFlags_
MonitorElement * bookFloat(DQMStore::IBooker &, const std::string &name)
std::vector< bool > logErrForDccs_
energiesEb_t ebEnergies[nEbEta][nEbPhi]
double eta
phi crystal position in degrees
int simHit
energy reconstructed from zero-suppressed digi
static const int scEdge
Number of crystals along a supercrystal edge.
int xtalGraphX(const EEDetId &id) const
static std::vector< int > getFIRWeights(const std::vector< double > &normalizedWeights)
void fill(MonitorElement *me, float x, float y, float zw)
static const int ebTtEdge
Number of crystals along an EB TT.
MonitorElement * book1D(DQMStore::IBooker &, const std::string &name, const std::string &title, int nbins, double xmin, double xmax)
static const int nDccRus_[nDccs_]
number of RUs for each DCC
int cIndex2iEta(int i) const
MonitorElement * meIncompleteFROCnt_
int nEbFROCnt_
Counter of EB FRO-flagged RUs.
static const int kByte_
number of bytes in 1 kByte:
MonitorElement * meZsErrCnt_
CollHandle< std::vector< PCaloHit > > ebSimHits_
int getCrystalCount(int iDcc, int iDccCh)
MonitorElement * meFullRoCnt_
std::ofstream srApplicationErrorLog_
Output ascii file for unconsistency between Xtals and RU Flags.
void printAvailableHists()
std::string srApplicationErrorLogFileName_
EcalRecHitCollection RecHitCollection
int nPerRu_[nDccs_][nDccChs_]
auto zw(V v) -> Vec2< typename std::remove_reference< decltype(v[0])>::type >
MonitorElement * meForcedRu_
MonitorElement * meForcedTtf_
MonitorElement * meDccVol_
int nIncompleteFRO_
Counter of FRO-flagged RU only partial data.
MonitorElement * meVolHI_
std::ofstream zsErrorLog_
File to log ZS and other errors.
CollHandle< EBDigiCollection > ebNoZsDigis_
static const int nMaxXtalPerRu
Number of crystals per Readout Unit excepted partial SCs.
MonitorElement * meEbFixedPayload_
CollHandle< EEDigiCollection > eeNoZsDigis_
MonitorElement * meDroppedFRO_
bool ebRuActive_[nEbEta/ebTtEdge][nEbPhi/ebTtEdge]
MonitorElement * meTtfVsTp_
double phi
number of sim hits
MonitorElement * meEeRecE_
int cIndex2iTtPhi(int i) const
EcalTrigTowerDetId readOutUnitOf(const EBDetId &xtalId) const
static const int nEbPhi
number of crystals along Phi in EB
MonitorElement * meEeZsErrCnt_
MonitorElement * meCompleteZSMap_
double recE
energy reconstructed from unsuppressed digi
int ruGraphY(const EcalScDetId &id) const
MonitorElement * meEeFullRoCnt_
static const unsigned nDccChs_
Number of input channels of a DCC.
energiesEe_t eeEnergies[nEndcaps][nEeX][nEeY]
std::map< std::string, std::string > availableHistList_
CollHandle< EcalTrigPrimDigiCollection > tps_
bool verbose_
Verbosity switch.
MonitorElement * meVolBLI_
bool collNotFoundWarn_
Switch for collection-not-found warning.
void analyzeEB(const edm::Event &event, const edm::EventSetup &es)