CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes
EcalSelectiveReadoutValidation Class Reference

#include <EcalSelectiveReadoutValidation.h>

Inheritance diagram for EcalSelectiveReadoutValidation:
DQMOneEDAnalyzer<> edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::Accumulator, Args... > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Classes

struct  energiesEb_t
 
struct  energiesEe_t
 

Public Member Functions

void bookHistograms (DQMStore::IBooker &i, edm::Run const &, edm::EventSetup const &) override
 
void dqmBeginRun (edm::Run const &, edm::EventSetup const &) override
 
 EcalSelectiveReadoutValidation (const edm::ParameterSet &ps)
 Constructor. More...
 
 ~EcalSelectiveReadoutValidation () override
 Destructor. More...
 
- Public Member Functions inherited from DQMOneEDAnalyzer<>
void accumulate (edm::Event const &event, edm::EventSetup const &setup) override
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
 DQMOneEDAnalyzer ()
 
void endRun (edm::Run const &, edm::EventSetup const &) final
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::Accumulator, Args... >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
std::vector< bool > const & recordProvenanceList () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase &&)=default
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Protected Member Functions

void analyze (edm::Event const &e, edm::EventSetup const &c) override
 Analyzes the event. More...
 
void dqmEndRun (const edm::Run &r, const edm::EventSetup &c) override
 
- Protected Member Functions inherited from DQMOneEDAnalyzer<>
virtual void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &)=0
 
- Protected Member Functions inherited from edm::ProducerBase
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 declare what type of product will make and with which optional label More...
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 

Private Types

typedef EcalRecHit RecHit
 
typedef EcalRecHitCollection RecHitCollection
 
enum  subdet_t { EB, EE }
 distinguishes barral and endcap of ECAL. More...
 

Private Member Functions

template<class T , class U >
void anaDigi (const T &frame, const U &srFlagColl)
 
void anaDigiInit ()
 
void analyzeDataVolume (const edm::Event &e, const edm::EventSetup &es)
 
void analyzeEB (const edm::Event &event, const edm::EventSetup &es)
 
void analyzeEE (const edm::Event &event, const edm::EventSetup &es)
 
void analyzeTP (const edm::Event &event, const edm::EventSetup &es)
 
MonitorElementbook1D (DQMStore::IBooker &, const std::string &name, const std::string &title, int nbins, double xmin, double xmax)
 
MonitorElementbook2D (DQMStore::IBooker &, const std::string &name, const std::string &title, int nxbins, double xmin, double xmax, int nybins, double ymin, double ymax)
 
MonitorElementbookFloat (DQMStore::IBooker &, const std::string &name)
 
MonitorElementbookProfile (DQMStore::IBooker &, const std::string &name, const std::string &title, int nbins, double xmin, double xmax)
 
MonitorElementbookProfile2D (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="")
 
template<class T >
void checkSrApplication (const edm::Event &event, T &srfs)
 
int cIndex2iEta (int i) const
 
int cIndex2iPhi (int i) const
 
int cIndex2iTtEta (int i) const
 
int cIndex2iTtPhi (int i) const
 
int cIndex2iXY (int iX0) const
 
template<class T >
void compareSrfColl (const edm::Event &event, T &srfFromData, T &computedSrf)
 
void configFirWeights (const std::vector< double > &weightsForZsFIR)
 
std::pair< int, int > dccCh (const DetId &xtalId) const
 
int dccId (const EcalScDetId &detId) const
 
int dccId (const EcalTrigTowerDetId &detId) const
 
void fill (MonitorElement *me, float x)
 
void fill (MonitorElement *me, float x, float y, float z, float w)
 
void fill (MonitorElement *me, float x, float y, float zw)
 
void fill (MonitorElement *me, float x, float yw)
 
double frame2Energy (const EcalDataFrame &frame) const
 
template<class T >
double frame2EnergyForTp (const T &frame, int offset=0) const
 
double getBytesPerCrystal () const
 
int getCrystalCount (int iDcc, int iDccCh)
 
double getDccEventSize (int iDcc0, double nReadXtals) const
 
double getDccOverhead (subdet_t subdet) const
 
double getDccSrDependentPayload (int iDcc0, double nReadRus, double nReadXtals) const
 
double getEbEventSize (double nReadXtals) const
 
double getEeEventSize (double nReadXtals) const
 
double getL1aRate () const
 
int getRuCount (int iDcc0) const
 
int iEta2cIndex (int iEta) const
 
void initAsciiFile ()
 
int iPhi2cIndex (int iPhi) const
 
int iTtEta2cIndex (int iEta) const
 
int iTtPhi2cIndex (int iPhi) const
 
int iXY2cIndex (int iX) const
 
void printAvailableHists ()
 
void readAllCollections (const edm::Event &e)
 
EcalTrigTowerDetId readOutUnitOf (const EBDetId &xtalId) const
 
EcalScDetId readOutUnitOf (const EEDetId &xtalId) const
 
bool registerHist (const std::string &name, const std::string &title)
 
void selectFedsForLog ()
 
void setTtEtSums (const edm::EventSetup &es, const EBDigiCollection &ebDigis, const EEDigiCollection &eeDigis)
 
void updateL1aRate (const edm::Event &event)
 
int ruGraphX (const EcalScDetId &id) const
 
int ruGraphY (const EcalScDetId &id) const
 
int ruGraphX (const EcalTrigTowerDetId &id) const
 
int ruGraphY (const EcalTrigTowerDetId &id) const
 
int xtalGraphX (const EEDetId &id) const
 
int xtalGraphY (const EEDetId &id) const
 
int xtalGraphX (const EBDetId &id) const
 
int xtalGraphY (const EBDetId &id) const
 

Static Private Member Functions

static int dccZsFIR (const EcalDataFrame &frame, const std::vector< int > &firWeights, int firstFIRSample, bool *saturated=nullptr)
 
static std::vector< int > getFIRWeights (const std::vector< double > &normalizedWeights)
 

Private Attributes

bool allHists_
 
std::map< std::string, std::string > availableHistList_
 
bool collNotFoundWarn_
 Switch for collection-not-found warning. More...
 
CollHandle< EBSrFlagCollectionebComputedSrFlags_
 
CollHandle< EBDigiCollectionebDigis_
 
energiesEb_t ebEnergies [nEbEta][nEbPhi]
 
CollHandle< EBDigiCollectionebNoZsDigis_
 
CollHandle< RecHitCollectionebRecHits_
 
bool ebRuActive_ [nEbEta/ebTtEdge][nEbPhi/ebTtEdge]
 
CollHandle< std::vector< PCaloHit > > ebSimHits_
 
CollHandle< EBSrFlagCollectionebSrFlags_
 
int ebZsThr_
 
CollHandle< EESrFlagCollectioneeComputedSrFlags_
 
CollHandle< EEDigiCollectioneeDigis_
 
energiesEe_t eeEnergies [nEndcaps][nEeX][nEeY]
 
CollHandle< EEDigiCollectioneeNoZsDigis_
 
CollHandle< RecHitCollectioneeRecHits_
 
bool eeRuActive_ [nEndcaps][nEeX/scEdge][nEeY/scEdge]
 
CollHandle< std::vector< PCaloHit > > eeSimHits_
 
CollHandle< EESrFlagCollectioneeSrFlags_
 
int eeZsThr_
 
const EcalElectronicsMappingelecMap_
 
CollHandle< FEDRawDataCollectionfedRaw_
 
int firstFIRSample_
 
std::vector< int > firWeights_
 
std::string histDir_
 
std::set< std::string > histList_
 
int ievt_
 
bool isRuComplete_ [nDccs_][nDccChs_]
 
int64_t l1aOfTmax
 
int64_t l1aOfTmin
 
bool l1aRateErr
 
bool localReco_
 
std::vector< bool > logErrForDccs_
 
bool logSrApplicationErrors_
 
bool logSrpAlgoErrors_
 
MonitorElementmeChOcc_
 
MonitorElementmeCompleteZS_
 
MonitorElementmeCompleteZSCnt_
 
MonitorElementmeCompleteZSMap_
 
MonitorElementmeCompleteZSRateMap_
 
MonitorElementmeDccHiVol_
 
MonitorElementmeDccLiVol_
 
MonitorElementmeDccVol_
 
MonitorElementmeDccVolFromData_
 
MonitorElementmeDroppedFRO_
 
MonitorElementmeDroppedFROCnt_
 
MonitorElementmeDroppedFROMap_
 
MonitorElementmeDroppedFRORateMap_
 
MonitorElementmeEbEMean_
 
MonitorElementmeEbFixedPayload_
 
MonitorElementmeEbFullRoCnt_
 
MonitorElementmeEbHiZsFir_
 
MonitorElementmeEbIncompleteRUZsFir_
 
MonitorElementmeEbLiZsFir_
 
MonitorElementmeEbNoise_
 
MonitorElementmeEbNoZsRecVsSimE_
 
MonitorElementmeEbRecE_
 
MonitorElementmeEbRecEHitXtal_
 
MonitorElementmeEbRecVsSimE_
 
MonitorElementmeEbSimE_
 
MonitorElementmeEbZsErrCnt_
 
MonitorElementmeEbZsErrType1Cnt_
 
MonitorElementmeEeEMean_
 
MonitorElementmeEeFixedPayload_
 
MonitorElementmeEeFullRoCnt_
 
MonitorElementmeEeHiZsFir_
 
MonitorElementmeEeLiZsFir_
 
MonitorElementmeEeNoise_
 
MonitorElementmeEeNoZsRecVsSimE_
 
MonitorElementmeEeRecE_
 
MonitorElementmeEeRecEHitXtal_
 
MonitorElementmeEeRecVsSimE_
 
MonitorElementmeEeSimE_
 
MonitorElementmeEeZsErrCnt_
 
MonitorElementmeEeZsErrType1Cnt_
 
MonitorElementmeFixedPayload_
 
MonitorElementmeForcedRu_
 
MonitorElementmeForcedTtf_
 
MonitorElementmeFullRoCnt_
 
MonitorElementmeFullRoRu_
 
MonitorElementmeHiTtf_
 
MonitorElementmeIncompleteFRO_
 
MonitorElementmeIncompleteFROCnt_
 
MonitorElementmeIncompleteFROMap_
 
MonitorElementmeIncompleteFRORateMap_
 
MonitorElementmeL1aRate_
 
MonitorElementmeLiTtf_
 
MonitorElementmeMiTtf_
 
MonitorElementmeSRFlagsComputed_
 
MonitorElementmeSRFlagsConsistency_
 
MonitorElementmeSRFlagsFromData_
 
MonitorElementmeTp_
 
MonitorElementmeTpMap_
 
MonitorElementmeTpVsEtSum_
 
MonitorElementmeTtf_
 
MonitorElementmeTtfVsEtSum_
 
MonitorElementmeTtfVsTp_
 
MonitorElementmeVol_
 
MonitorElementmeVolB_
 
MonitorElementmeVolBHI_
 
MonitorElementmeVolBLI_
 
MonitorElementmeVolE_
 
MonitorElementmeVolEHI_
 
MonitorElementmeVolELI_
 
MonitorElementmeVolHI_
 
MonitorElementmeVolLI_
 
MonitorElementmeZs1Ru_
 
MonitorElementmeZsErrCnt_
 
MonitorElementmeZsErrType1Cnt_
 
int nCompleteZS_
 Counter of ZS-flagged RU fully read out. More...
 
int nDroppedFRO_
 Counter of FRO-flagged RU dropped from data. More...
 
int nEb_
 
int nEbFROCnt_
 Counter of EB FRO-flagged RUs. More...
 
int nEbHI_
 
int nEbLI_
 
int nEbZsErrors_
 Counter of EB ZS errors (LI channel below ZS threshold) More...
 
int nEbZsErrorsType1_
 
int nEe_
 
int nEeFROCnt_
 Counter of EE FRO-flagged RUs. More...
 
int nEeHI_
 
int nEeLI_
 
int nEeZsErrors_
 Counter of EE ZS errors (LI channel below ZS threshold) More...
 
int nEeZsErrorsType1_
 
int nHiPerDcc_ [nDccs_]
 
int nHiRuPerDcc_ [nDccs_]
 
int nIncompleteFRO_
 Counter of FRO-flagged RU only partial data. More...
 
int nLiPerDcc_ [nDccs_]
 
int nLiRuPerDcc_ [nDccs_]
 
int nPerDcc_ [nDccs_]
 
int nPerRu_ [nDccs_][nDccChs_]
 
int nRuPerDcc_ [nDccs_]
 
std::string outputFile_
 Output file for histograms. More...
 
bool SkipInnerSC_
 
std::ofstream srApplicationErrorLog_
 Output ascii file for unconsistency between Xtals and RU Flags. More...
 
std::string srApplicationErrorLogFileName_
 
std::ofstream srpAlgoErrorLog_
 Output ascii file for unconsistency on SR flags. More...
 
std::string srpAlgoErrorLogFileName_
 
int64_t tmax
 
int64_t tmin
 
bool tpInGeV_
 
CollHandle< EcalTrigPrimDigiCollectiontps_
 
const EcalTrigTowerConstituentsMaptriggerTowerMap_
 
double ttEtSums [nTtEta][nTtPhi]
 
bool useEventRate_
 
bool verbose_
 Verbosity switch. More...
 
std::vector< double > weights_
 
bool withEbSimHit_
 
bool withEeSimHit_
 
std::ofstream zsErrorLog_
 File to log ZS and other errors. More...
 

Static Private Attributes

static const int ebTtEdge = 5
 Number of crystals along an EB TT. More...
 
static const int kByte_ = 1024
 number of bytes in 1 kByte: More...
 
static const int maxDccId_ = minDccId_ + nDccs_ - 1
 
static const int minDccId_ = 1
 
static const unsigned nDccChs_ = 68
 Number of input channels of a DCC. More...
 
static const int nDccRus_ [nDccs_]
 number of RUs for each DCC More...
 
static const unsigned nDccs_ = 54
 Total number of DCCs. More...
 
static const int nEbDccs = 36
 number of DCCs for EB More...
 
static const int nEbEta = 170
 number of crystals along Eta in EB More...
 
static const int nEbPhi = 360
 number of crystals along Phi in EB More...
 
static const int nEbRus = 36 * 68
 number of RUs for EB More...
 
static const int nEbTtEta = 34
 Number of Trigger Towers in barrel along Eta. More...
 
static const int nEeDccs = 18
 number of DCCs for EE More...
 
static const int nEeRus = 2 * (34 + 32 + 33 + 33 + 32 + 34 + 33 + 34 + 33)
 number of RUs for EE More...
 
static const int nEeX = 100
 EE crystal grid size along X. More...
 
static const int nEeY = 100
 EE crystal grid size along Y. More...
 
static const int nEndcaps = 2
 number of endcaps More...
 
static const int nMaxXtalPerRu = 25
 Number of crystals per Readout Unit excepted partial SCs. More...
 
static const int nOneEeTtEta = 11
 Number of Trigger Towers in an endcap along Eta. More...
 
static const int nTtEta = 2 * nOneEeTtEta + nEbTtEta
 Number of Trigger Towers along Eta. More...
 
static const int nTtPhi = 72
 Number of Trigger Towers along Phi. More...
 
static const double rad2deg = 45. / atan(1.)
 Conversion factor from radian to degree. More...
 
static const int scEdge = 5
 Number of crystals along a supercrystal edge. More...
 

Additional Inherited Members

- Public Types inherited from DQMOneEDAnalyzer<>
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > >
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Attributes inherited from DQMOneEDAnalyzer<>
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Definition at line 34 of file EcalSelectiveReadoutValidation.h.

Member Typedef Documentation

◆ RecHit

Definition at line 36 of file EcalSelectiveReadoutValidation.h.

◆ RecHitCollection

Definition at line 35 of file EcalSelectiveReadoutValidation.h.

Member Enumeration Documentation

◆ subdet_t

distinguishes barral and endcap of ECAL.

Enumerator
EB 
EE 

Definition at line 55 of file EcalSelectiveReadoutValidation.h.

55 { EB, EE };

Constructor & Destructor Documentation

◆ EcalSelectiveReadoutValidation()

EcalSelectiveReadoutValidation::EcalSelectiveReadoutValidation ( const edm::ParameterSet ps)

Constructor.

Definition at line 105 of file EcalSelectiveReadoutValidation.cc.

106  : collNotFoundWarn_(ps.getUntrackedParameter<bool>("warnIfCollectionNotFound", true)),
107  ebDigis_(ps.getParameter<edm::InputTag>("EbDigiCollection"), false, collNotFoundWarn_),
108  eeDigis_(ps.getParameter<edm::InputTag>("EeDigiCollection"), false, collNotFoundWarn_),
109  ebNoZsDigis_(ps.getParameter<edm::InputTag>("EbUnsuppressedDigiCollection"), false, false /*collNotFoundWarn_*/),
110  eeNoZsDigis_(ps.getParameter<edm::InputTag>("EeUnsuppressedDigiCollection"), false, false /*collNotFoundWarn_*/),
111  ebSrFlags_(ps.getParameter<edm::InputTag>("EbSrFlagCollection"), false, collNotFoundWarn_),
112  eeSrFlags_(ps.getParameter<edm::InputTag>("EeSrFlagCollection"), false, collNotFoundWarn_),
114  ps.getParameter<edm::InputTag>("EbSrFlagFromTTCollection"), false, false /*collNotFoundWarn_*/),
116  ps.getParameter<edm::InputTag>("EeSrFlagFromTTCollection"), false, false /*collNotFoundWarn_*/),
117  ebSimHits_(ps.getParameter<edm::InputTag>("EbSimHitCollection"), false, false /*collNotFoundWarn_*/),
118  eeSimHits_(ps.getParameter<edm::InputTag>("EeSimHitCollection"), false, false /*collNotFoundWarn_*/),
119  tps_(ps.getParameter<edm::InputTag>("TrigPrimCollection"), false, collNotFoundWarn_),
120  ebRecHits_(ps.getParameter<edm::InputTag>("EbRecHitCollection"), false, false /*collNotFoundWarn_*/),
121  eeRecHits_(ps.getParameter<edm::InputTag>("EeRecHitCollection"), false, false /*collNotFoundWarn_*/),
122  fedRaw_(ps.getParameter<edm::InputTag>("FEDRawCollection"), false, false /*collNotFoundWarn_*/),
123  tmax(0),
125  l1aOfTmin(0),
126  l1aOfTmax(0),
127  triggerTowerMap_(nullptr),
128  localReco_(ps.getParameter<bool>("LocalReco")),
129  weights_(ps.getParameter<vector<double> >("weights")),
130  tpInGeV_(ps.getParameter<bool>("tpInGeV")),
131  firstFIRSample_(ps.getParameter<int>("ecalDccZs1stSample")),
132  useEventRate_(ps.getParameter<bool>("useEventRate")),
133  logErrForDccs_(nDccs_, false),
134  ievt_(0),
135  allHists_(false),
136  histDir_(ps.getParameter<string>("histDir")),
137  withEeSimHit_(false),
138  withEbSimHit_(false) {
140  ebDigis_.setToken(collector);
141  eeDigis_.setToken(collector);
142  ebNoZsDigis_.setToken(collector);
143  eeNoZsDigis_.setToken(collector);
144  ebSrFlags_.setToken(collector);
145  eeSrFlags_.setToken(collector);
146  ebComputedSrFlags_.setToken(collector);
147  eeComputedSrFlags_.setToken(collector);
148  ebSimHits_.setToken(collector);
149  eeSimHits_.setToken(collector);
150  tps_.setToken(collector);
151  ebRecHits_.setToken(collector);
152  eeRecHits_.setToken(collector);
153  fedRaw_.setToken(collector);
154 
155  double ebZsThr = ps.getParameter<double>("ebZsThrADCCount");
156  double eeZsThr = ps.getParameter<double>("eeZsThrADCCount");
157 
158  ebZsThr_ = lround(ebZsThr * 4);
159  eeZsThr_ = lround(eeZsThr * 4);
160 
161  //File to log SRP algorithem inconsistency
162  srpAlgoErrorLogFileName_ = ps.getUntrackedParameter<string>("srpAlgoErrorLogFile", "");
164 
165  //File to log SRP decision application inconsistency
166  srApplicationErrorLogFileName_ = ps.getUntrackedParameter<string>("srApplicationErrorLogFile", "");
168 
169  //FIR ZS weights
170  configFirWeights(ps.getParameter<vector<double> >("dccWeights"));
171 
172  // DQM ROOT output
173  outputFile_ = ps.getUntrackedParameter<string>("outputFile", "");
174 
175  if (!outputFile_.empty()) {
176  LogInfo("OutputInfo") << " Ecal Digi Task histograms will be saved to '" << outputFile_.c_str() << "'";
177  } else {
178  LogInfo("OutputInfo") << " Ecal Digi Task histograms will NOT be saved";
179  }
180 
181  // verbosity switch
182  verbose_ = ps.getUntrackedParameter<bool>("verbose", false);
183 
184  // get hold of back-end interface
185 
186  vector<string> hists(ps.getUntrackedParameter<vector<string> >("histograms", vector<string>(1, "all")));
187 
188  for (vector<string>::iterator it = hists.begin(); it != hists.end(); ++it)
189  histList_.insert(*it);
190  if (histList_.find("all") != histList_.end())
191  allHists_ = true;
192 }

References allHists_, configFirWeights(), edm::EDConsumerBase::consumesCollector(), ebComputedSrFlags_, ebDigis_, ebNoZsDigis_, ebRecHits_, ebSimHits_, ebSrFlags_, ebZsThr_, eeComputedSrFlags_, eeDigis_, eeNoZsDigis_, eeRecHits_, eeSimHits_, eeSrFlags_, eeZsThr_, fedRaw_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), histList_, compare::hists, logSrApplicationErrors_, logSrpAlgoErrors_, outputFile_, CollHandle< T >::setToken(), srApplicationErrorLogFileName_, srpAlgoErrorLogFileName_, tps_, and verbose_.

◆ ~EcalSelectiveReadoutValidation()

EcalSelectiveReadoutValidation::~EcalSelectiveReadoutValidation ( )
override

Destructor.

Definition at line 835 of file EcalSelectiveReadoutValidation.cc.

835 {}

Member Function Documentation

◆ anaDigi()

template<class T , class U >
void EcalSelectiveReadoutValidation::anaDigi ( const T frame,
const U &  srFlagColl 
)
private

Accumulates statitics for data volume analysis. To be called for each ECAL digi. See anaDigiInit().

Definition at line 1663 of file EcalSelectiveReadoutValidation.cc.

1663  {
1664  const DetId& xtalId = frame.id();
1665  typedef typename U::key_type RuDetId;
1666  const RuDetId& ruId = readOutUnitOf(frame.id());
1667  typename U::const_iterator srf = srFlagColl.find(ruId);
1668 
1669  bool highInterest = false;
1670  int flag = 0;
1671 
1672  if (srf != srFlagColl.end()) {
1673  flag = srf->value() & ~EcalSrFlag::SRF_FORCED_MASK;
1674 
1675  highInterest = (flag == EcalSrFlag::SRF_FULL);
1676  }
1677 
1678  bool barrel = (xtalId.subdetId() == EcalBarrel);
1679 
1680  pair<int, int> ch = dccCh(xtalId);
1681 
1682  if (barrel) {
1683  ++nEb_;
1684  if (highInterest) {
1685  ++nEbHI_;
1686  } else { //low interest
1687  ++nEbLI_;
1688  }
1689  int iEta0 = iEta2cIndex(static_cast<const EBDetId&>(xtalId).ieta());
1690  int iPhi0 = iPhi2cIndex(static_cast<const EBDetId&>(xtalId).iphi());
1691  if (!ebRuActive_[iEta0 / ebTtEdge][iPhi0 / ebTtEdge]) {
1692  ++nRuPerDcc_[ch.first - minDccId_];
1693  if (highInterest) {
1694  ++nHiRuPerDcc_[ch.first - minDccId_];
1695  } else {
1696  ++nLiRuPerDcc_[ch.first - minDccId_];
1697  }
1698 
1699  ebRuActive_[iEta0 / ebTtEdge][iPhi0 / ebTtEdge] = true;
1700  }
1701  } else { //endcap
1702  ++nEe_;
1703  if (highInterest) {
1704  ++nEeHI_;
1705  } else { //low interest
1706  ++nEeLI_;
1707  }
1708  int iX0 = iXY2cIndex(static_cast<const EEDetId&>(frame.id()).ix());
1709  int iY0 = iXY2cIndex(static_cast<const EEDetId&>(frame.id()).iy());
1710  int iZ0 = static_cast<const EEDetId&>(frame.id()).zside() > 0 ? 1 : 0;
1711 
1712  if (!eeRuActive_[iZ0][iX0 / scEdge][iY0 / scEdge]) {
1713  ++nRuPerDcc_[ch.first - minDccId_];
1714  if (highInterest) {
1715  ++nHiRuPerDcc_[ch.first - minDccId_];
1716  } else {
1717  ++nLiRuPerDcc_[ch.first - minDccId_];
1718  }
1719 
1720  eeRuActive_[iZ0][iX0 / scEdge][iY0 / scEdge] = true;
1721  }
1722  }
1723 
1724  if (ch.second < 1 || ch.second > 68) {
1725  throw cms::Exception("EcalSelectiveReadoutValidation")
1726  << "Error in DCC channel retrieval for crystal with detId " << xtalId.rawId()
1727  << "DCC channel out of allowed range [1..68]\n";
1728  }
1729  ++nPerDcc_[ch.first - minDccId_];
1730  ++nPerRu_[ch.first - minDccId_][ch.second - 1];
1731  if (highInterest) {
1732  ++nHiPerDcc_[ch.first - minDccId_];
1733  } else { //low interest channel
1734  ++nLiPerDcc_[ch.first - minDccId_];
1735  }
1736 }

References Reference_intrackfit_cff::barrel, dccCh(), ebRuActive_, ebTtEdge, EcalBarrel, eeRuActive_, Exception, RemoveAddSevLevel::flag, amptDefault_cfi::frame, LEDCalibrationChannels::ieta, iEta2cIndex(), LEDCalibrationChannels::iphi, iPhi2cIndex(), iXY2cIndex(), minDccId_, nEb_, nEbHI_, nEbLI_, nEe_, nEeHI_, nEeLI_, nHiPerDcc_, nHiRuPerDcc_, nLiPerDcc_, nLiRuPerDcc_, nPerDcc_, nPerRu_, nRuPerDcc_, DetId::rawId(), readOutUnitOf(), scEdge, EcalSrFlag::SRF_FULL, DetId::subdetId(), and ecaldqm::zside().

Referenced by analyzeDataVolume().

◆ anaDigiInit()

void EcalSelectiveReadoutValidation::anaDigiInit ( )
private

Initializes statistics accumalator for data volume analysis. To be call at start of each event analysis.

Definition at line 1738 of file EcalSelectiveReadoutValidation.cc.

1738  {
1739  nEb_ = 0;
1740  nEe_ = 0;
1741  nEeLI_ = 0;
1742  nEeHI_ = 0;
1743  nEbLI_ = 0;
1744  nEbHI_ = 0;
1745  bzero(nPerDcc_, sizeof(nPerDcc_));
1746  bzero(nLiPerDcc_, sizeof(nLiPerDcc_));
1747  bzero(nHiPerDcc_, sizeof(nHiPerDcc_));
1748  bzero(nRuPerDcc_, sizeof(nRuPerDcc_));
1749  bzero(ebRuActive_, sizeof(ebRuActive_));
1750  bzero(eeRuActive_, sizeof(eeRuActive_));
1751  bzero(nPerRu_, sizeof(nPerRu_));
1752  bzero(nLiRuPerDcc_, sizeof(nLiRuPerDcc_));
1753  bzero(nHiRuPerDcc_, sizeof(nHiRuPerDcc_));
1754 }

References ebRuActive_, eeRuActive_, nEb_, nEbHI_, nEbLI_, nEe_, nEeHI_, nEeLI_, nHiPerDcc_, nHiRuPerDcc_, nLiPerDcc_, nLiRuPerDcc_, nPerDcc_, nPerRu_, and nRuPerDcc_.

Referenced by analyzeDataVolume().

◆ analyze()

void EcalSelectiveReadoutValidation::analyze ( edm::Event const &  e,
edm::EventSetup const &  c 
)
overrideprotectedvirtual

Analyzes the event.

Reimplemented from DQMOneEDAnalyzer<>.

Definition at line 219 of file EcalSelectiveReadoutValidation.cc.

219  {
221 
222  //retrieves event products:
224 
225  withEeSimHit_ = (!eeSimHits_->empty());
226  withEbSimHit_ = (!ebSimHits_->empty());
227 
228  if (ievt_ < 10) {
229  edm::LogInfo("EcalSrValid") << "Size of TP collection: " << tps_->size() << std::endl
230  << "Size of EB SRF collection read from data: " << ebSrFlags_->size() << std::endl
231  << "Size of EB SRF collection computed from data TTFs: " << ebComputedSrFlags_->size()
232  << std::endl
233  << "Size of EE SRF collection read from data: " << eeSrFlags_->size() << std::endl
234  << "Size of EE SRF collection computed from data TTFs: " << eeComputedSrFlags_->size()
235  << std::endl;
236  }
237 
238  if (ievt_ == 0) {
239  selectFedsForLog(); //note: must be called after readAllCollection
240  }
241 
242  //computes Et sum trigger tower crystals:
244 
245  //Data Volume
247 
248  //EB digis
249  //must be called after analyzeDataVolume because it uses
250  //isRuComplete_ array that this method fills
251  analyzeEB(event, es);
252 
253  //EE digis
254  //must be called after analyzeDataVolume because it uses
255  //isRuComplete_ array that this method fills
256  analyzeEE(event, es);
257 
261 
265 
269 
270  //TP
271  analyzeTP(event, es);
272 
273  if (!ebComputedSrFlags_->empty()) {
275  }
276  if (!eeComputedSrFlags_->empty()) {
278  }
279  nDroppedFRO_ = 0;
280  nIncompleteFRO_ = 0;
281  nCompleteZS_ = 0;
287  ++ievt_;
288 }

References analyzeDataVolume(), analyzeEB(), analyzeEE(), analyzeTP(), checkSrApplication(), compareSrfColl(), ebComputedSrFlags_, ebNoZsDigis_, ebSimHits_, ebSrFlags_, eeComputedSrFlags_, eeNoZsDigis_, eeSimHits_, eeSrFlags_, fill(), ievt_, meCompleteZSCnt_, meDroppedFROCnt_, meEbFullRoCnt_, meEbZsErrCnt_, meEbZsErrType1Cnt_, meEeFullRoCnt_, meEeZsErrCnt_, meEeZsErrType1Cnt_, meFullRoCnt_, meIncompleteFROCnt_, meZsErrCnt_, meZsErrType1Cnt_, nCompleteZS_, nDroppedFRO_, nEbFROCnt_, nEbZsErrors_, nEbZsErrorsType1_, nEeFROCnt_, nEeZsErrors_, nEeZsErrorsType1_, nIncompleteFRO_, readAllCollections(), selectFedsForLog(), setTtEtSums(), tps_, updateL1aRate(), withEbSimHit_, and withEeSimHit_.

◆ analyzeDataVolume()

void EcalSelectiveReadoutValidation::analyzeDataVolume ( const edm::Event e,
const edm::EventSetup es 
)
private

Data volume analysis. To be called for each event.

Parameters
eventEDM event
esevent setup

Definition at line 1609 of file EcalSelectiveReadoutValidation.cc.

1609  {
1610  anaDigiInit();
1611 
1612  //Complete RU, i.e. RU actually fully readout
1613  for (int iDcc = minDccId_; iDcc <= maxDccId_; ++iDcc) {
1614  for (int iCh = 1; iCh < nDccRus_[iDcc - minDccId_]; ++iCh) {
1615  isRuComplete_[iDcc - minDccId_][iCh - 1] = (nPerRu_[iDcc - minDccId_][iCh - 1] == getCrystalCount(iDcc, iCh));
1616  }
1617  }
1618 
1619  //Barrel
1620  for (unsigned int digis = 0; digis < ebDigis_->size(); ++digis) {
1621  EBDataFrame ebdf = (*ebDigis_)[digis];
1622  anaDigi(ebdf, *ebSrFlags_);
1623  }
1624 
1625  // Endcap
1626  for (unsigned int digis = 0; digis < eeDigis_->size(); ++digis) {
1627  EEDataFrame eedf = (*eeDigis_)[digis];
1628  anaDigi(eedf, *eeSrFlags_);
1629  }
1630 
1631  //histos
1632  for (unsigned iDcc0 = 0; iDcc0 < nDccs_; ++iDcc0) {
1633  fill(meDccVol_, iDcc0 + 1, getDccEventSize(iDcc0, nPerDcc_[iDcc0]) / kByte_);
1634  fill(meDccLiVol_, iDcc0 + 1, getDccSrDependentPayload(iDcc0, nLiRuPerDcc_[iDcc0], nLiPerDcc_[iDcc0]) / kByte_);
1635  fill(meDccHiVol_, iDcc0 + 1, getDccSrDependentPayload(iDcc0, nHiRuPerDcc_[iDcc0], nHiPerDcc_[iDcc0]) / kByte_);
1636  const FEDRawDataCollection& raw = *fedRaw_;
1637  fill(meDccVolFromData_, iDcc0 + 1, ((double)raw.FEDData(601 + iDcc0).size()) / kByte_);
1638  }
1639 
1640  //low interesest channels:
1641  double a = nEbLI_ * getBytesPerCrystal() / kByte_; //getEbEventSize(nEbLI_)/kByte_;
1642  fill(meVolBLI_, a);
1643  double b = nEeLI_ * getBytesPerCrystal() / kByte_; //getEeEventSize(nEeLI_)/kByte_;
1644  fill(meVolELI_, b);
1645  fill(meVolLI_, a + b);
1646 
1647  //high interest chanels:
1648  a = nEbHI_ * getBytesPerCrystal() / kByte_; //getEbEventSize(nEbHI_)/kByte_;
1649  fill(meVolBHI_, a);
1650  b = nEeHI_ * getBytesPerCrystal() / kByte_; //getEeEventSize(nEeHI_)/kByte_;
1651  fill(meVolEHI_, b);
1652  fill(meVolHI_, a + b);
1653 
1654  //any-interest channels:
1655  a = getEbEventSize(nEb_) / kByte_;
1656  fill(meVolB_, a);
1657  b = getEeEventSize(nEe_) / kByte_;
1658  fill(meVolE_, b);
1659  fill(meVol_, a + b);
1660 }

References a, anaDigi(), anaDigiInit(), b, ebDigis_, ebSrFlags_, eeDigis_, eeSrFlags_, FEDRawDataCollection::FEDData(), fedRaw_, fill(), getBytesPerCrystal(), getCrystalCount(), getDccEventSize(), getDccSrDependentPayload(), getEbEventSize(), getEeEventSize(), isRuComplete_, kByte_, maxDccId_, meDccHiVol_, meDccLiVol_, meDccVol_, meDccVolFromData_, meVol_, meVolB_, meVolBHI_, meVolBLI_, meVolE_, meVolEHI_, meVolELI_, meVolHI_, meVolLI_, minDccId_, nDccRus_, nDccs_, nEb_, nEbHI_, nEbLI_, nEe_, nEeHI_, nEeLI_, nHiPerDcc_, nHiRuPerDcc_, nLiPerDcc_, nLiRuPerDcc_, nPerDcc_, nPerRu_, FEDRawData::size(), and edm::DataFrameContainer::size().

Referenced by analyze().

◆ analyzeEB()

void EcalSelectiveReadoutValidation::analyzeEB ( const edm::Event event,
const edm::EventSetup es 
)
private

ECAL barrel data analysis. To be called for each event.

Parameters
eventEDM event
esevent setup

Definition at line 559 of file EcalSelectiveReadoutValidation.cc.

559  {
560  bool eventError = false;
561  nEbZsErrors_ = 0;
562  nEbZsErrorsType1_ = 0;
563  vector<pair<int, int> > xtalEtaPhi;
564 
565  xtalEtaPhi.reserve(nEbPhi * nEbEta);
566  for (int iEta0 = 0; iEta0 < nEbEta; ++iEta0) {
567  for (int iPhi0 = 0; iPhi0 < nEbPhi; ++iPhi0) {
569  ebEnergies[iEta0][iPhi0].recE = -numeric_limits<double>::max();
570  ebEnergies[iEta0][iPhi0].simE = 0; //must be zero.
571  ebEnergies[iEta0][iPhi0].simHit = 0;
572  ebEnergies[iEta0][iPhi0].gain12 = false;
573  xtalEtaPhi.push_back(pair<int, int>(iEta0, iPhi0));
574  }
575  }
576 
577  // get the barrel geometry:
578  edm::ESHandle<CaloGeometry> geoHandle;
579 
580  es.get<CaloGeometryRecord>().get(geoHandle);
581  const CaloSubdetectorGeometry* geometry_p = (*geoHandle).getSubdetectorGeometry(DetId::Ecal, EcalBarrel);
582  //CaloSubdetectorGeometry const& geometry = *geometry_p;
583 
584  //EB unsuppressed digis:
585  for (EBDigiCollection::const_iterator it = ebNoZsDigis_->begin(); it != ebNoZsDigis_->end(); ++it) {
586  const EBDataFrame& frame = *it;
587  int iEta0 = iEta2cIndex(static_cast<const EBDetId&>(frame.id()).ieta());
588  int iPhi0 = iPhi2cIndex(static_cast<const EBDetId&>(frame.id()).iphi());
589  if (iEta0 < 0 || iEta0 >= nEbEta) {
590  stringstream s;
591  s << "EcalSelectiveReadoutValidation: "
592  << "iEta0 (= " << iEta0 << ") is out of range ("
593  << "[0," << nEbEta - 1 << "]\n";
594  throw cms::Exception(s.str());
595  }
596  if (iPhi0 < 0 || iPhi0 >= nEbPhi) {
597  stringstream s;
598  s << "EcalSelectiveReadoutValidation: "
599  << "iPhi0 (= " << iPhi0 << ") is out of range ("
600  << "[0," << nEbPhi - 1 << "]\n";
601  throw cms::Exception(s.str());
602  }
603 
604  ebEnergies[iEta0][iPhi0].noZsRecE = frame2Energy(frame);
605  ebEnergies[iEta0][iPhi0].gain12 = true;
606  for (int i = 0; i < frame.size(); ++i) {
607  const int gain12Code = 0x1;
608  if (frame[i].gainId() != gain12Code)
609  ebEnergies[iEta0][iPhi0].gain12 = false;
610  }
611 
612  const GlobalPoint xtalPos = geometry_p->getGeometry(frame.id())->getPosition();
613 
614  ebEnergies[iEta0][iPhi0].phi = rad2deg * ((double)xtalPos.phi());
615  ebEnergies[iEta0][iPhi0].eta = xtalPos.eta();
616  } //next non-zs digi
617 
618  //EB sim hits
619  for (vector<PCaloHit>::const_iterator it = ebSimHits_->begin(); it != ebSimHits_->end(); ++it) {
620  const PCaloHit& simHit = *it;
621  EBDetId detId(simHit.id());
622  int iEta = detId.ieta();
623  int iEta0 = iEta2cIndex(iEta);
624  int iPhi = detId.iphi();
625  int iPhi0 = iPhi2cIndex(iPhi);
626  ebEnergies[iEta0][iPhi0].simE += simHit.energy();
627  ++ebEnergies[iEta0][iPhi0].simHit;
628  }
629 
630  bool crystalShot[nEbEta][nEbPhi];
631  pair<int, int> EBxtalCoor[nEbEta][nEbPhi];
632 
633  for (int iEta0 = 0; iEta0 < nEbEta; ++iEta0) {
634  for (int iPhi0 = 0; iPhi0 < nEbPhi; ++iPhi0) {
635  crystalShot[iEta0][iPhi0] = false;
636  EBxtalCoor[iEta0][iPhi0] = make_pair(0, 0);
637  }
638  }
639 
640  int nEbDigi = 0;
641 
642  for (EBDigiCollection::const_iterator it = ebDigis_->begin(); it != ebDigis_->end(); ++it) {
643  ++nEbDigi;
644  const EBDataFrame& frame = *it;
645  int iEta = static_cast<const EBDetId&>(frame.id()).ieta();
646  int iPhi = static_cast<const EBDetId&>(frame.id()).iphi();
647  int iEta0 = iEta2cIndex(iEta);
648  int iPhi0 = iPhi2cIndex(iPhi);
649  if (iEta0 < 0 || iEta0 >= nEbEta) {
650  throw(cms::Exception("EcalSelectiveReadoutValidation") << "iEta0 (= " << iEta0 << ") is out of range ("
651  << "[0," << nEbEta - 1 << "]");
652  }
653  if (iPhi0 < 0 || iPhi0 >= nEbPhi) {
654  throw(cms::Exception("EcalSelectiveReadoutValidation") << "iPhi0 (= " << iPhi0 << ") is out of range ("
655  << "[0," << nEbPhi - 1 << "]");
656  }
657  assert(iEta0 >= 0 && iEta0 < nEbEta);
658  assert(iPhi0 >= 0 && iPhi0 < nEbPhi);
659  if (!crystalShot[iEta0][iPhi0]) {
660  crystalShot[iEta0][iPhi0] = true;
661  EBxtalCoor[iEta0][iPhi0] = make_pair(xtalGraphX(frame.id()), xtalGraphY(frame.id()));
662  } else {
663  cout << "Error: several digi for same crystal!";
664  abort();
665  }
666  if (localReco_) {
667  ebEnergies[iEta0][iPhi0].recE = frame2Energy(frame);
668  }
669 
670  ebEnergies[iEta0][iPhi0].gain12 = true;
671  for (int i = 0; i < frame.size(); ++i) {
672  const int gain12Code = 0x1;
673  if (frame[i].gainId() != gain12Code) {
674  ebEnergies[iEta0][iPhi0].gain12 = false;
675  }
676  }
677 
679 
680  bool highInterest = false;
681 
682  // if(srf == ebSrFlags_->end()){
683  // throw cms::Exception("EcalSelectiveReadoutValidation")
684  // << __FILE__ << ":" << __LINE__ << ": SR flag not found";
685  //}
686 
687  if (srf != ebSrFlags_->end()) {
688  highInterest = ((srf->value() & ~EcalSrFlag::SRF_FORCED_MASK) == EcalSrFlag::SRF_FULL);
689  }
690 
691  if (highInterest) {
693  } else {
694  int v = dccZsFIR(frame, firWeights_, firstFIRSample_, nullptr);
695  fill(meEbLiZsFir_, v);
696  if (v < ebZsThr_) {
697  eventError = true;
698  ++nEbZsErrors_;
699  pair<int, int> ru = dccCh(frame.id());
700  if (isRuComplete_[ru.first][ru.second - 1])
702  if (nEbZsErrors_ < 3) {
703  srApplicationErrorLog_ << event.id() << ", "
704  << "RU " << frame.id() << ", "
705  << "DCC " << ru.first << " Ch : " << ru.second << ": "
706  << "LI channel under ZS threshold.\n";
707  }
708  if (nEbZsErrors_ == 3) {
709  srApplicationErrorLog_ << event.id() << ": "
710  << "more ZS errors for this event...\n";
711  }
712  }
713  }
714  } //next EB digi
715 
716  for (int iEta0 = 0; iEta0 < nEbEta; ++iEta0) {
717  for (int iPhi0 = 0; iPhi0 < nEbPhi; ++iPhi0)
718  fill(meChOcc_,
719  EBxtalCoor[iEta0][iPhi0].first,
720  EBxtalCoor[iEta0][iPhi0].second,
721  crystalShot[iEta0][iPhi0] ? 1. : 0.);
722  }
723 
724  if (!localReco_) {
725  for (RecHitCollection::const_iterator it = ebRecHits_->begin(); it != ebRecHits_->end(); ++it) {
726  ++nEbDigi;
727  const RecHit& hit = *it;
728  int iEta = static_cast<const EBDetId&>(hit.id()).ieta();
729  int iPhi = static_cast<const EBDetId&>(hit.id()).iphi();
730  int iEta0 = iEta2cIndex(iEta);
731  int iPhi0 = iPhi2cIndex(iPhi);
732  if (iEta0 < 0 || iEta0 >= nEbEta) {
733  LogError("EcalSrValid") << "iEta0 (= " << iEta0 << ") is out of range ("
734  << "[0," << nEbEta - 1 << "]\n";
735  }
736  if (iPhi0 < 0 || iPhi0 >= nEbPhi) {
737  LogError("EcalSrValid") << "iPhi0 (= " << iPhi0 << ") is out of range ("
738  << "[0," << nEbPhi - 1 << "]\n";
739  }
740  ebEnergies[iEta0][iPhi0].recE = hit.energy();
741  }
742  }
743 
744  for (unsigned int i = 0; i < xtalEtaPhi.size(); ++i) {
745  int iEta0 = xtalEtaPhi[i].first;
746  int iPhi0 = xtalEtaPhi[i].second;
747  energiesEb_t& energies = ebEnergies[iEta0][iPhi0];
748 
749  double recE = energies.recE;
750  if (recE != -numeric_limits<double>::max()) { //not zero suppressed
751  fill(meEbRecE_, ebEnergies[iEta0][iPhi0].recE);
752  fill(meEbEMean_, ievt_ + 1, recE);
753  } //not zero suppressed
754 
755  if (withEbSimHit_) {
756  if (!energies.simHit) { //noise only crystal channel
757  fill(meEbNoise_, energies.noZsRecE);
758  } else {
759  fill(meEbSimE_, energies.simE);
760  fill(meEbRecEHitXtal_, energies.recE);
761  }
762  fill(meEbRecVsSimE_, energies.simE, energies.recE);
763  fill(meEbNoZsRecVsSimE_, energies.simE, energies.noZsRecE);
764  }
765  }
766 
767  int EBZs1RuCount[2][17][72];
768  int EBFullRuCount[2][17][72];
769  int EBForcedRuCount[2][17][72];
770  std::pair<int, int> EBtowerCoor[2][17][72];
771  for (int iZ(0); iZ < 2; iZ++) {
772  for (int iEta(0); iEta < 17; iEta++) {
773  for (int iPhi(0); iPhi < 72; iPhi++) {
774  EBZs1RuCount[iZ][iEta][iPhi] = 0;
775  EBFullRuCount[iZ][iEta][iPhi] = 0;
776  EBForcedRuCount[iZ][iEta][iPhi] = 0;
777  }
778  }
779  }
780 
781  //SRF
782  nEbFROCnt_ = 0;
783  char ebSrfMark[2][17][72];
784  bzero(ebSrfMark, sizeof(ebSrfMark));
785  // int idbg = 0;
786  for (EBSrFlagCollection::const_iterator it = ebSrFlags_->begin(); it != ebSrFlags_->end(); ++it) {
787  const EBSrFlag& srf = *it;
788  int iEtaAbs = srf.id().ietaAbs();
789  int iPhi = srf.id().iphi();
790  int iZ = srf.id().zside();
791 
792  // cout << "--> " << ++idbg << iEtaAbs << " " << iPhi << " " << iZ
793  // << " " << srf.id() << "\n";
794 
795  if (iEtaAbs < 1 || iEtaAbs > 17 || iPhi < 1 || iPhi > 72)
796  throw cms::Exception("EcalSelectiveReadoutValidation")
797  << "Found a barrel SRF with an invalid det ID: " << srf.id() << ".\n";
798  ++ebSrfMark[iZ > 0 ? 1 : 0][iEtaAbs - 1][iPhi - 1];
799  if (ebSrfMark[iZ > 0 ? 1 : 0][iEtaAbs - 1][iPhi - 1] > 1)
800  throw cms::Exception("EcalSelectiveReadoutValidation") << "Duplicate SRF for RU " << srf.id() << ".\n";
801 
802  EBtowerCoor[iZ > 0 ? 1 : 0][iEtaAbs - 1][iPhi - 1] = std::pair<int, int>(srf.id().ieta(), srf.id().iphi());
803 
804  int flag = srf.value() & ~EcalSrFlag::SRF_FORCED_MASK;
805  if (flag == EcalSrFlag::SRF_ZS1) {
806  EBZs1RuCount[iZ > 0 ? 1 : 0][iEtaAbs - 1][iPhi - 1] += 1;
807  }
808  if (flag == EcalSrFlag::SRF_FULL) {
809  EBFullRuCount[iZ > 0 ? 1 : 0][iEtaAbs - 1][iPhi - 1] += 1;
810  ++nEbFROCnt_;
811  }
812  if (srf.value() & EcalSrFlag::SRF_FORCED_MASK) {
813  EBForcedRuCount[iZ > 0 ? 1 : 0][iEtaAbs - 1][iPhi - 1] += 1;
814  }
815  }
816  for (int iZ(0); iZ < 2; iZ++) {
817  for (int iEta(0); iEta < 17; iEta++) {
818  for (int iPhi(0); iPhi < 72; iPhi++) {
819  float x(EBtowerCoor[iZ][iEta][iPhi].first);
820  float y(EBtowerCoor[iZ][iEta][iPhi].second);
821  fill(meZs1Ru_, x, y, EBZs1RuCount[iZ][iEta][iPhi]);
822  fill(meFullRoRu_, x, y, EBFullRuCount[iZ][iEta][iPhi]);
823  fill(meForcedRu_, x, y, EBForcedRuCount[iZ][iEta][iPhi]);
824  }
825  }
826  }
827 
828  if (eventError)
829  srApplicationErrorLog_ << event.id() << ": " << nEbZsErrors_
830  << " ZS-flagged EB channels under "
831  "the ZS threshold, whose "
832  << nEbZsErrorsType1_ << " in a complete RU.\n";
833 }

References cms::cuda::assert(), edm::DataFrameContainer::begin(), gather_cfg::cout, dccCh(), dccZsFIR(), ebDigis_, ebEnergies, ebNoZsDigis_, ebRecHits_, ebSimHits_, ebSrFlags_, ebZsThr_, DetId::Ecal, EcalBarrel, edm::DataFrameContainer::end(), PV3DBase< T, PVType, FrameType >::eta(), EcalSelectiveReadoutValidation::energiesEb_t::eta, Exception, fill(), dqmdumpme::first, firstFIRSample_, firWeights_, RemoveAddSevLevel::flag, amptDefault_cfi::frame, frame2Energy(), EcalSelectiveReadoutValidation::energiesEb_t::gain12, ecalMGPA::gainId(), edm::EventSetup::get(), get, CaloSubdetectorGeometry::getGeometry(), mps_fire::i, EBSrFlag::id(), hit::id, EcalTrigTowerDetId::ieta(), L1TowerCalibrationProducer_cfi::iEta, LEDCalibrationChannels::ieta, iEta2cIndex(), EcalTrigTowerDetId::ietaAbs(), ievt_, EcalTrigTowerDetId::iphi(), LEDCalibrationChannels::iphi, iPhi2cIndex(), isRuComplete_, localReco_, SiStripPI::max, meChOcc_, meEbEMean_, meEbHiZsFir_, meEbLiZsFir_, meEbNoise_, meEbNoZsRecVsSimE_, meEbRecE_, meEbRecEHitXtal_, meEbRecVsSimE_, meEbSimE_, meForcedRu_, meFullRoRu_, meZs1Ru_, nEbEta, nEbFROCnt_, nEbPhi, nEbZsErrors_, nEbZsErrorsType1_, EcalSelectiveReadoutValidation::energiesEb_t::noZsRecE, PV3DBase< T, PVType, FrameType >::phi(), EcalSelectiveReadoutValidation::energiesEb_t::phi, rad2deg, readOutUnitOf(), EcalSelectiveReadoutValidation::energiesEb_t::recE, alignCSCRings::s, edm::second(), EcalSelectiveReadoutValidation::energiesEb_t::simE, rpcPointValidation_cfi::simHit, EcalSelectiveReadoutValidation::energiesEb_t::simHit, srApplicationErrorLog_, EcalSrFlag::SRF_FORCED_MASK, EcalSrFlag::SRF_FULL, EcalSrFlag::SRF_ZS1, findQualityFiles::v, EcalSrFlag::value(), withEbSimHit_, x, xtalGraphX(), xtalGraphY(), y, and EcalTrigTowerDetId::zside().

Referenced by analyze().

◆ analyzeEE()

void EcalSelectiveReadoutValidation::analyzeEE ( const edm::Event event,
const edm::EventSetup es 
)
private

ECAL endcap data analysis. To be called for each event.

Parameters
eventEDM event
esevent setup

Definition at line 290 of file EcalSelectiveReadoutValidation.cc.

290  {
291  bool eventError = false;
292  nEeZsErrors_ = 0;
293  nEeZsErrorsType1_ = 0;
294 
295  for (int iZ0 = 0; iZ0 < nEndcaps; ++iZ0) {
296  for (int iX0 = 0; iX0 < nEeX; ++iX0) {
297  for (int iY0 = 0; iY0 < nEeY; ++iY0) {
298  eeEnergies[iZ0][iX0][iY0].noZsRecE = -numeric_limits<double>::max();
299  eeEnergies[iZ0][iX0][iY0].recE = -numeric_limits<double>::max();
300  eeEnergies[iZ0][iX0][iY0].simE = 0; //must be set to zero.
301  eeEnergies[iZ0][iX0][iY0].simHit = 0;
302  eeEnergies[iZ0][iX0][iY0].gain12 = false;
303  }
304  }
305  }
306 
307  // gets the endcap geometry:
308  edm::ESHandle<CaloGeometry> geoHandle;
309  es.get<CaloGeometryRecord>().get(geoHandle);
310  const CaloSubdetectorGeometry* geometry_p = (*geoHandle).getSubdetectorGeometry(DetId::Ecal, EcalEndcap);
311  //CaloSubdetectorGeometry const& geometry = *geometry_p;
312 
313  //EE unsupressed digis:
314  for (unsigned int digis = 0; digis < eeNoZsDigis_->size(); ++digis) {
315  EEDataFrame frame = (*eeNoZsDigis_)[digis];
316  int iX0 = iXY2cIndex(frame.id().ix());
317  int iY0 = iXY2cIndex(frame.id().iy());
318  int iZ0 = frame.id().zside() > 0 ? 1 : 0;
319 
320  if (iX0 < 0 || iX0 >= nEeX) {
321  edm::LogError("EcalSrValid") << "iX0 (= " << iX0 << ") is out of range ("
322  << "[0," << nEeX - 1 << "]\n";
323  }
324  if (iY0 < 0 || iY0 >= nEeY) {
325  edm::LogError("EcalSrValid") << "iY0 (= " << iY0 << ") is out of range ("
326  << "[0," << nEeY - 1 << "]\n";
327  }
328  // cout << "EE no ZS energy computation..." ;
329  eeEnergies[iZ0][iX0][iY0].noZsRecE = frame2Energy(frame);
330 
331  eeEnergies[iZ0][iX0][iY0].gain12 = true;
332  for (int i = 0; i < frame.size(); ++i) {
333  const int gain12Code = 0x1;
334  if (frame[i].gainId() != gain12Code)
335  eeEnergies[iZ0][iX0][iY0].gain12 = false;
336  }
337 
338  const GlobalPoint xtalPos = geometry_p->getGeometry(frame.id())->getPosition();
339 
340  eeEnergies[iZ0][iX0][iY0].phi = rad2deg * ((double)xtalPos.phi());
341  eeEnergies[iZ0][iX0][iY0].eta = xtalPos.eta();
342  }
343 
344  //EE rec hits:
345  if (!localReco_) {
346  for (RecHitCollection::const_iterator it = eeRecHits_->begin(); it != eeRecHits_->end(); ++it) {
347  const RecHit& hit = *it;
348  int iX0 = iXY2cIndex(static_cast<const EEDetId&>(hit.id()).ix());
349  int iY0 = iXY2cIndex(static_cast<const EEDetId&>(hit.id()).iy());
350  int iZ0 = static_cast<const EEDetId&>(hit.id()).zside() > 0 ? 1 : 0;
351 
352  if (iX0 < 0 || iX0 >= nEeX) {
353  LogError("EcalSrValid") << "iX0 (= " << iX0 << ") is out of range ("
354  << "[0," << nEeX - 1 << "]\n";
355  }
356  if (iY0 < 0 || iY0 >= nEeY) {
357  LogError("EcalSrValid") << "iY0 (= " << iY0 << ") is out of range ("
358  << "[0," << nEeY - 1 << "]\n";
359  }
360  // cout << "EE no ZS energy computation..." ;
361  eeEnergies[iZ0][iX0][iY0].recE = hit.energy();
362  }
363  }
364 
365  //EE sim hits:
366  for (vector<PCaloHit>::const_iterator it = eeSimHits_->begin(); it != eeSimHits_->end(); ++it) {
367  const PCaloHit& simHit = *it;
368  EEDetId detId(simHit.id());
369  int iX = detId.ix();
370  int iX0 = iXY2cIndex(iX);
371  int iY = detId.iy();
372  int iY0 = iXY2cIndex(iY);
373  int iZ0 = detId.zside() > 0 ? 1 : 0;
374  eeEnergies[iZ0][iX0][iY0].simE += simHit.energy();
375  ++eeEnergies[iZ0][iX0][iY0].simHit;
376  }
377 
378  bool EEcrystalShot[nEeX][nEeY][2];
379  pair<int, int> EExtalCoor[nEeX][nEeY][2];
380 
381  for (int iEeZ = 0; iEeZ < 2; ++iEeZ) {
382  for (int iEeX = 0; iEeX < nEeX; ++iEeX) {
383  for (int iEeY = 0; iEeY < nEeY; ++iEeY) {
384  EEcrystalShot[iEeX][iEeY][iEeZ] = false;
385  EExtalCoor[iEeX][iEeY][iEeZ] = make_pair(0, 0);
386  }
387  }
388  }
389 
390  //EE suppressed digis
391  for (EEDigiCollection::const_iterator it = eeDigis_->begin(); it != eeDigis_->end(); ++it) {
392  const EEDataFrame& frame = *it;
393  int iX0 = iXY2cIndex(static_cast<const EEDetId&>(frame.id()).ix());
394  int iY0 = iXY2cIndex(static_cast<const EEDetId&>(frame.id()).iy());
395  int iZ0 = static_cast<const EEDetId&>(frame.id()).zside() > 0 ? 1 : 0;
396  if (iX0 < 0 || iX0 >= nEeX) {
397  LogError("EcalSrValid") << "iX0 (= " << iX0 << ") is out of range ("
398  << "[0," << nEeX - 1 << "]\n";
399  }
400  if (iY0 < 0 || iY0 >= nEeY) {
401  LogError("EcalSrValid") << "iY0 (= " << iY0 << ") is out of range ("
402  << "[0," << nEeY - 1 << "]\n";
403  }
404 
405  if (!EEcrystalShot[iX0][iY0][iZ0]) {
406  EEcrystalShot[iX0][iY0][iZ0] = true;
407  EExtalCoor[iX0][iY0][iZ0] = make_pair(xtalGraphX(frame.id()), xtalGraphY(frame.id()));
408  } else {
409  cout << "Error: several digi for same crystal!";
410  abort();
411  }
412 
413  if (localReco_) {
414  eeEnergies[iZ0][iX0][iY0].recE = frame2Energy(frame);
415  }
416 
417  eeEnergies[iZ0][iX0][iY0].gain12 = true;
418  for (int i = 0; i < frame.size(); ++i) {
419  const int gain12Code = 0x1;
420  if (frame[i].gainId() != gain12Code) {
421  eeEnergies[iZ0][iX0][iY0].gain12 = false;
422  }
423  }
424 
426 
427  bool highInterest = false;
428 
429  if (srf == eeSrFlags_->end())
430  continue;
431 
432  if (srf != eeSrFlags_->end()) {
433  highInterest = ((srf->value() & ~EcalSrFlag::SRF_FORCED_MASK) == EcalSrFlag::SRF_FULL);
434  }
435 
436  if (highInterest) {
438  } else {
439  int v = dccZsFIR(frame, firWeights_, firstFIRSample_, nullptr);
440  fill(meEeLiZsFir_, v);
441  if (v < eeZsThr_) {
442  eventError = true;
443  ++nEeZsErrors_;
444  pair<int, int> ru = dccCh(frame.id());
445  if (isRuComplete_[ru.first][ru.second - 1])
447  if (nEeZsErrors_ < 3) {
448  srApplicationErrorLog_ << event.id() << ", "
449  << "RU " << frame.id() << ", "
450  << "DCC " << ru.first << " Ch : " << ru.second << ": "
451  << "LI channel under ZS threshold.\n";
452  }
453  if (nEeZsErrors_ == 3) {
454  srApplicationErrorLog_ << event.id() << ": "
455  << "more ZS errors for this event...\n";
456  }
457  }
458  }
459  } //next ZS digi.
460 
461  for (int iEeZ = 0; iEeZ < 2; ++iEeZ) {
462  for (int iEeX = 0; iEeX < nEeX; ++iEeX) {
463  for (int iEeY = 0; iEeY < nEeY; ++iEeY) {
464  fill(meChOcc_,
465  EExtalCoor[iEeX][iEeY][iEeZ].first,
466  EExtalCoor[iEeX][iEeY][iEeZ].second,
467  EEcrystalShot[iEeX][iEeY][iEeZ] ? 1 : 0);
468  }
469  }
470  }
471 
472  for (int iZ0 = 0; iZ0 < nEndcaps; ++iZ0) {
473  for (int iX0 = 0; iX0 < nEeX; ++iX0) {
474  for (int iY0 = 0; iY0 < nEeY; ++iY0) {
475  double recE = eeEnergies[iZ0][iX0][iY0].recE;
476  if (recE == -numeric_limits<double>::max())
477  continue; //not a crystal or ZS
478  fill(meEeRecE_, eeEnergies[iZ0][iX0][iY0].recE);
479 
480  fill(meEeEMean_, ievt_ + 1, eeEnergies[iZ0][iX0][iY0].recE);
481 
482  if (withEeSimHit_) {
483  if (!eeEnergies[iZ0][iX0][iY0].simHit) { //noise only crystal channel
484  fill(meEeNoise_, eeEnergies[iZ0][iX0][iY0].noZsRecE);
485  } else {
486  fill(meEeSimE_, eeEnergies[iZ0][iX0][iY0].simE);
487  fill(meEeRecEHitXtal_, eeEnergies[iZ0][iX0][iY0].recE);
488  }
489  fill(meEeRecVsSimE_, eeEnergies[iZ0][iX0][iY0].simE, eeEnergies[iZ0][iX0][iY0].recE);
490  fill(meEeNoZsRecVsSimE_, eeEnergies[iZ0][iX0][iY0].simE, eeEnergies[iZ0][iX0][iY0].noZsRecE);
491  }
492  }
493  }
494  }
495 
496  int EEZs1RuCount[2][20][20];
497  int EEFullRuCount[2][20][20];
498  int EEForcedRuCount[2][20][20];
499  for (int iZ(0); iZ < 2; iZ++) {
500  for (int iX(0); iX < 20; iX++) {
501  for (int iY(0); iY < 20; iY++) {
502  EEZs1RuCount[iZ][iX][iY] = 0;
503  EEFullRuCount[iZ][iX][iY] = 0;
504  EEForcedRuCount[iZ][iX][iY] = 0;
505  }
506  }
507  }
508 
509  nEeFROCnt_ = 0;
510  char eeSrfMark[2][20][20];
511  bzero(eeSrfMark, sizeof(eeSrfMark));
512  //Filling RU histo
513  for (EESrFlagCollection::const_iterator it = eeSrFlags_->begin(); it != eeSrFlags_->end(); ++it) {
514  const EESrFlag& srf = *it;
515  // srf.id() is EcalScDetId; 1 <= ix <= 20 1 <= iy <= 20
516  int iX = srf.id().ix();
517  int iY = srf.id().iy();
518  int zside = srf.id().zside(); //-1 for EE-, +1 for EE+
519  if (iX < 1 || iY > 100)
520  throw cms::Exception("EcalSelectiveReadoutValidation")
521  << "Found an endcap SRF with an invalid det ID: " << srf.id() << ".\n";
522  ++eeSrfMark[zside > 0 ? 1 : 0][iX - 1][iY - 1];
523  if (eeSrfMark[zside > 0 ? 1 : 0][iX - 1][iY - 1] > 1)
524  throw cms::Exception("EcalSelectiveReadoutValidation") << "Duplicate SRF for supercrystal " << srf.id() << ".\n";
525  int flag = srf.value() & ~EcalSrFlag::SRF_FORCED_MASK;
526  if (flag == EcalSrFlag::SRF_ZS1) {
527  EEZs1RuCount[zside > 0 ? 1 : 0][iX - 1][iY - 1] += 1;
528  }
529 
530  if (flag == EcalSrFlag::SRF_FULL) {
531  EEFullRuCount[zside > 0 ? 1 : 0][iX - 1][iY - 1] += 1;
532  ++nEeFROCnt_;
533  }
534 
535  if (srf.value() & EcalSrFlag::SRF_FORCED_MASK) {
536  EEForcedRuCount[zside > 0 ? 1 : 0][iX - 1][iY - 1] += 1;
537  }
538  }
539  for (int iZ(0); iZ < 2; iZ++) {
540  int xOffset(iZ == 0 ? -40 : 20);
541  for (int iX(0); iX < 20; iX++) {
542  for (int iY(0); iY < 20; iY++) {
543  int GraphX = (iX + 1) + xOffset;
544  int GraphY = (iY + 1);
545  fill(meZs1Ru_, GraphX, GraphY, EEZs1RuCount[iZ][iX][iY]);
546  fill(meFullRoRu_, GraphX, GraphY, EEFullRuCount[iZ][iX][iY]);
547  fill(meForcedRu_, GraphX, GraphY, EEForcedRuCount[iZ][iX][iY]);
548  }
549  }
550  }
551 
552  if (eventError)
553  srApplicationErrorLog_ << event.id() << ": " << nEeZsErrors_
554  << " ZS-flagged EE channels under "
555  "the ZS threshold, whose "
556  << nEeZsErrorsType1_ << " in a complete RU.\n";
557 } //end of analyzeEE

References edm::DataFrameContainer::begin(), gather_cfg::cout, dccCh(), dccZsFIR(), DetId::Ecal, EcalEndcap, eeDigis_, eeEnergies, eeNoZsDigis_, eeRecHits_, eeSimHits_, eeSrFlags_, eeZsThr_, edm::DataFrameContainer::end(), PV3DBase< T, PVType, FrameType >::eta(), EcalSelectiveReadoutValidation::energiesEe_t::eta, Exception, fill(), dqmdumpme::first, firstFIRSample_, firWeights_, RemoveAddSevLevel::flag, amptDefault_cfi::frame, frame2Energy(), EcalSelectiveReadoutValidation::energiesEe_t::gain12, ecalMGPA::gainId(), edm::EventSetup::get(), get, CaloSubdetectorGeometry::getGeometry(), mps_fire::i, EESrFlag::id(), hit::id, ievt_, isRuComplete_, EcalScDetId::ix(), EEDetId::ix(), iXY2cIndex(), EcalScDetId::iy(), localReco_, SiStripPI::max, meChOcc_, meEeEMean_, meEeHiZsFir_, meEeLiZsFir_, meEeNoise_, meEeNoZsRecVsSimE_, meEeRecE_, meEeRecEHitXtal_, meEeRecVsSimE_, meEeSimE_, meForcedRu_, meFullRoRu_, meZs1Ru_, nEeFROCnt_, nEeX, nEeY, nEeZsErrors_, nEeZsErrorsType1_, nEndcaps, EcalSelectiveReadoutValidation::energiesEe_t::noZsRecE, PV3DBase< T, PVType, FrameType >::phi(), EcalSelectiveReadoutValidation::energiesEe_t::phi, rad2deg, readOutUnitOf(), EcalSelectiveReadoutValidation::energiesEe_t::recE, edm::second(), EcalSelectiveReadoutValidation::energiesEe_t::simE, rpcPointValidation_cfi::simHit, EcalSelectiveReadoutValidation::energiesEe_t::simHit, edm::DataFrameContainer::size(), srApplicationErrorLog_, EcalSrFlag::SRF_FORCED_MASK, EcalSrFlag::SRF_FULL, EcalSrFlag::SRF_ZS1, findQualityFiles::v, EcalSrFlag::value(), withEeSimHit_, phase1PixelTopology::xOffset, xtalGraphX(), xtalGraphY(), EcalScDetId::zside(), and ecaldqm::zside().

Referenced by analyze().

◆ analyzeTP()

void EcalSelectiveReadoutValidation::analyzeTP ( const edm::Event event,
const edm::EventSetup es 
)
private

Trigger primitive analysis. To be called for each event.

Parameters
eventEDM event
esevent setup

Definition at line 1486 of file EcalSelectiveReadoutValidation.cc.

1486  {
1487  int TTFlagCount[8];
1488  int LiTTFlagCount[nTtEta][nTtPhi];
1489  int MiTTFlagCount[nTtEta][nTtPhi];
1490  int HiTTFlagCount[nTtEta][nTtPhi];
1491  for (int iTTFlag(0); iTTFlag < 8; iTTFlag++) {
1492  TTFlagCount[iTTFlag] = 0;
1493  }
1494  for (int iTtEta(0); iTtEta < nTtEta; iTtEta++) {
1495  for (int iTtPhi(0); iTtPhi < nTtPhi; iTtPhi++) {
1496  LiTTFlagCount[iTtEta][iTtPhi] = 0;
1497  MiTTFlagCount[iTtEta][iTtPhi] = 0;
1498  HiTTFlagCount[iTtEta][iTtPhi] = 0;
1499  }
1500  }
1501  int tpEtCount[100];
1502  for (int iEt(0); iEt < 100; iEt++) {
1503  tpEtCount[iEt] = 0;
1504  }
1505 
1507  es.get<EcalTPGPhysicsConstRcd>().get(physHandle);
1508  const EcalTPGPhysicsConstMap& physMap = physHandle.product()->getMap();
1509 
1510  edm::ESHandle<EcalTPGLutGroup> lutGrpHandle;
1511  es.get<EcalTPGLutGroupRcd>().get(lutGrpHandle);
1512  const EcalTPGGroups::EcalTPGGroupsMap& lutGrpMap = lutGrpHandle.product()->getMap();
1513 
1514  edm::ESHandle<EcalTPGLutIdMap> lutMapHandle;
1515  es.get<EcalTPGLutIdMapRcd>().get(lutMapHandle);
1516  const EcalTPGLutIdMap::EcalTPGLutMap& lutMap = lutMapHandle.product()->getMap();
1517 
1518  EcalTPGPhysicsConstMapIterator ebItr(physMap.find(DetId(DetId::Ecal, EcalBarrel).rawId()));
1519  double lsb10bitsEB(ebItr == physMap.end() ? 0. : ebItr->second.EtSat / 1024.);
1520  EcalTPGPhysicsConstMapIterator eeItr(physMap.find(DetId(DetId::Ecal, EcalEndcap).rawId()));
1521  double lsb10bitsEE(eeItr == physMap.end() ? 0. : eeItr->second.EtSat / 1024.);
1522 
1523  for (EcalTrigPrimDigiCollection::const_iterator it = tps_->begin(); it != tps_->end(); ++it) {
1524  double tpEt;
1525  if (tpInGeV_) {
1526  EcalTrigTowerDetId const& towerId(it->id());
1527  unsigned int ADC = it->compressedEt();
1528 
1529  double lsb10bits(0.);
1530  if (towerId.subDet() == EcalBarrel)
1531  lsb10bits = lsb10bitsEB;
1532  else if (towerId.subDet() == EcalEndcap)
1533  lsb10bits = lsb10bitsEE;
1534 
1535  int tpg10bits = 0;
1536  EcalTPGGroups::EcalTPGGroupsMapItr itgrp = lutGrpMap.find(towerId.rawId());
1537  uint32_t lutGrp = 999;
1538  if (itgrp != lutGrpMap.end())
1539  lutGrp = itgrp->second;
1540 
1541  EcalTPGLutIdMap::EcalTPGLutMapItr itLut = lutMap.find(lutGrp);
1542  if (itLut != lutMap.end()) {
1543  const unsigned int* lut = (itLut->second).getLut();
1544  for (unsigned int i = 0; i < 1024; i++)
1545  if (ADC == (0xff & lut[i])) {
1546  tpg10bits = i;
1547  break;
1548  }
1549  }
1550 
1551  tpEt = lsb10bits * tpg10bits;
1552  } else {
1553  tpEt = it->compressedEt();
1554  }
1555  int iEta = it->id().ieta();
1556  int iEta0 = iTtEta2cIndex(iEta);
1557  int iPhi = it->id().iphi();
1558  int iPhi0 = iTtPhi2cIndex(iPhi);
1559  double etSum = ttEtSums[iEta0][iPhi0];
1560 
1561  int iE = meTp_->getTProfile()->FindFixBin(tpEt);
1562  if ((iE >= 0) && (iE < 100)) {
1563  ++tpEtCount[iE];
1564  } else {
1565  // FindFixBin might return an overflow bin (outside tpEtCount range).
1566  // To prevent a memory overflow / segfault, these values are ignored.
1567  //std::cout << "EcalSelectiveReadoutValidation: Invalid iE value: " << iE << std::endl;
1568  }
1569 
1570  fill(meTpVsEtSum_, etSum, tpEt);
1571  ++TTFlagCount[it->ttFlag()];
1572  if ((it->ttFlag() & 0x3) == 0) {
1573  LiTTFlagCount[iEta0][iPhi0] += 1;
1574  } else if ((it->ttFlag() & 0x3) == 1) {
1575  MiTTFlagCount[iEta0][iPhi0] += 1;
1576  } else if ((it->ttFlag() & 0x3) == 3) {
1577  HiTTFlagCount[iEta0][iPhi0] += 1;
1578  }
1579  if ((it->ttFlag() & 0x4)) {
1580  fill(meForcedTtf_, iEta, iPhi);
1581  }
1582 
1583  fill(meTtfVsTp_, tpEt, it->ttFlag());
1584  fill(meTtfVsEtSum_, etSum, it->ttFlag());
1585  fill(meTpMap_, iEta, iPhi, tpEt, 1.);
1586  }
1587 
1588  for (int ittflag(0); ittflag < 8; ittflag++) {
1589  fill(meTtf_, ittflag, TTFlagCount[ittflag]);
1590  }
1591  for (int iTtEta(0); iTtEta < nTtEta; iTtEta++) {
1592  for (int iTtPhi(0); iTtPhi < nTtPhi; iTtPhi++) {
1593  fill(meLiTtf_, cIndex2iTtEta(iTtEta), cIndex2iTtPhi(iTtPhi), LiTTFlagCount[iTtEta][iTtPhi]);
1594  fill(meMiTtf_, cIndex2iTtEta(iTtEta), cIndex2iTtPhi(iTtPhi), MiTTFlagCount[iTtEta][iTtPhi]);
1595  fill(meHiTtf_, cIndex2iTtEta(iTtEta), cIndex2iTtPhi(iTtPhi), HiTTFlagCount[iTtEta][iTtPhi]);
1596  }
1597  }
1598  if (tpInGeV_) {
1599  for (int iE(0); iE < 100; iE++) {
1600  fill(meTp_, iE, tpEtCount[iE]);
1601  }
1602  } else {
1603  for (int iE(0); iE < 40; iE++) {
1604  fill(meTp_, iE, tpEtCount[iE]);
1605  }
1606  }
1607 }

References cIndex2iTtEta(), cIndex2iTtPhi(), DetId::Ecal, EcalBarrel, EcalEndcap, fill(), edm::EventSetup::get(), get, EcalTPGLutIdMap::getMap(), EcalTPGGroups::getMap(), EcalTPGPhysicsConst::getMap(), dqm::impl::MonitorElement::getTProfile(), mps_fire::i, L1TowerCalibrationProducer_cfi::iEta, iTtEta2cIndex(), iTtPhi2cIndex(), meForcedTtf_, meHiTtf_, meLiTtf_, meMiTtf_, meTp_, meTpMap_, meTpVsEtSum_, meTtf_, meTtfVsEtSum_, meTtfVsTp_, nTtEta, nTtPhi, edm::ESHandle< T >::product(), ecaldqm::towerId(), tpInGeV_, tps_, and ttEtSums.

Referenced by analyze().

◆ book1D()

EcalSelectiveReadoutValidation::MonitorElement * EcalSelectiveReadoutValidation::book1D ( DQMStore::IBooker ibook,
const std::string &  name,
const std::string &  title,
int  nbins,
double  xmin,
double  xmax 
)
private

Definition at line 1986 of file EcalSelectiveReadoutValidation.cc.

1987  {
1988  if (!registerHist(name, title))
1989  return nullptr; //this histo is disabled
1990  MonitorElement* result = ibook.book1D(name, title, nbins, xmin, xmax);
1991  if (result == nullptr) {
1992  throw cms::Exception("Histo") << "Failed to book histogram " << name;
1993  }
1994  return result;
1995 }

References dqm::implementation::IBooker::book1D(), Exception, Skims_PA_cff::name, LaserClient_cfi::nbins, registerHist(), mps_fire::result, overlapproblemtsosanalyzer_cfi::title, TrackerOfflineValidation_Dqm_cff::xmax, and TrackerOfflineValidation_Dqm_cff::xmin.

Referenced by bookHistograms().

◆ book2D()

EcalSelectiveReadoutValidation::MonitorElement * EcalSelectiveReadoutValidation::book2D ( DQMStore::IBooker ibook,
const std::string &  name,
const std::string &  title,
int  nxbins,
double  xmin,
double  xmax,
int  nybins,
double  ymin,
double  ymax 
)
private

Definition at line 1997 of file EcalSelectiveReadoutValidation.cc.

2005  {
2006  if (!registerHist(name, title))
2007  return nullptr; //this histo is disabled
2008  MonitorElement* result = ibook.book2D(name, title, nxbins, xmin, xmax, nybins, ymin, ymax);
2009  if (result == nullptr) {
2010  throw cms::Exception("Histo") << "Failed to book histogram " << name;
2011  }
2012  return result;
2013 }

References dqm::implementation::IBooker::book2D(), Exception, Skims_PA_cff::name, registerHist(), mps_fire::result, overlapproblemtsosanalyzer_cfi::title, TrackerOfflineValidation_Dqm_cff::xmax, TrackerOfflineValidation_Dqm_cff::xmin, L1TOccupancyClient_cfi::ymax, and L1TOccupancyClient_cfi::ymin.

Referenced by bookHistograms().

◆ bookFloat()

EcalSelectiveReadoutValidation::MonitorElement * EcalSelectiveReadoutValidation::bookFloat ( DQMStore::IBooker ibook,
const std::string &  name 
)
private

Wrappers to the book methods of the DQMStore DQM histogramming interface.

Definition at line 1975 of file EcalSelectiveReadoutValidation.cc.

1976  {
1977  if (!registerHist(name, ""))
1978  return nullptr; //this histo is disabled
1979  MonitorElement* result = ibook.bookFloat(name);
1980  if (result == nullptr) {
1981  throw cms::Exception("DQM") << "Failed to book integer DQM monitor element" << name;
1982  }
1983  return result;
1984 }

References dqm::implementation::IBooker::bookFloat(), Exception, Skims_PA_cff::name, registerHist(), and mps_fire::result.

Referenced by bookHistograms().

◆ bookHistograms()

void EcalSelectiveReadoutValidation::bookHistograms ( DQMStore::IBooker i,
edm::Run const &  ,
edm::EventSetup const &   
)
override

Definition at line 855 of file EcalSelectiveReadoutValidation.cc.

857  {
858  ibooker.setCurrentFolder("EcalDigisV/SelectiveReadout");
859 
860  {
861  auto scope = DQMStore::IBooker::UseRunScope(ibooker);
862  meL1aRate_ = bookFloat(ibooker, "l1aRate_");
863  }
864 
865  meDccVol_ = bookProfile(ibooker,
866  "hDccVol", //"EcalDccEventSizeComputed",
867  "ECAL DCC event fragment size;Dcc id; "
868  "<Event size> (kB)",
869  nDccs_,
870  .5,
871  .5 + nDccs_);
872 
873  meDccLiVol_ = bookProfile(ibooker,
874  "hDccLiVol",
875  "LI channel payload per DCC;Dcc id; "
876  "<Event size> (kB)",
877  nDccs_,
878  .5,
879  .5 + nDccs_);
880 
881  meDccHiVol_ = bookProfile(ibooker,
882  "hDccHiVol",
883  "HI channel payload per DCC;Dcc id; "
884  "<Event size> (kB)",
885  nDccs_,
886  .5,
887  .5 + nDccs_);
888 
889  meDccVolFromData_ = bookProfile(ibooker,
890  "hDccVolFromData", //"EcalDccEventSize",
891  "ECAL DCC event fragment size;Dcc id; "
892  "<Event size> (kB)",
893  nDccs_,
894  .5,
895  .5 + nDccs_);
896 
897  meVolBLI_ = book1D(ibooker,
898  "hVolBLI", // "EBLowInterestPayload",
899  "ECAL Barrel low interest crystal data payload;"
900  "Event size (kB);Nevts",
901  100,
902  0.,
903  200.);
904 
905  meVolELI_ = book1D(ibooker,
906  "hVolELI", //"EELowInterestPayload",
907  "Endcap low interest crystal data payload;"
908  "Event size (kB);Nevts",
909  100,
910  0.,
911  200.);
912 
913  meVolLI_ = book1D(ibooker,
914  "hVolLI", //"EcalLowInterestPayload",
915  "ECAL low interest crystal data payload;"
916  "Event size (kB);Nevts",
917  100,
918  0.,
919  200.);
920 
921  meVolBHI_ = book1D(ibooker,
922  "hVolBHI", //"EBHighInterestPayload",
923  "Barrel high interest crystal data payload;"
924  "Event size (kB);Nevts",
925  100,
926  0.,
927  200.);
928 
929  meVolEHI_ = book1D(ibooker,
930  "hVolEHI", //"EEHighInterestPayload",
931  "Endcap high interest crystal data payload;"
932  "Event size (kB);Nevts",
933  100,
934  0.,
935  200.);
936 
937  meVolHI_ = book1D(ibooker,
938  "hVolHI", //"EcalHighInterestPayload",
939  "ECAL high interest crystal data payload;"
940  "Event size (kB);Nevts",
941  100,
942  0.,
943  200.);
944 
945  meVolB_ = book1D(ibooker,
946  "hVolB", //"EBEventSize",
947  "Barrel data volume;Event size (kB);Nevts",
948  100,
949  0.,
950  200.);
951 
952  meVolE_ = book1D(ibooker,
953  "hVolE", //"EEEventSize",
954  "Endcap data volume;Event size (kB);Nevts",
955  100,
956  0.,
957  200.);
958 
959  meVol_ = book1D(ibooker,
960  "hVol", //"EcalEventSize",
961  "ECAL data volume;Event size (kB);Nevts",
962  100,
963  0.,
964  200.);
965 
966  meChOcc_ = bookProfile2D(ibooker,
967  "h2ChOcc", //"EcalChannelOccupancy",
968  "ECAL crystal channel occupancy after zero suppression;"
969  "iX -200 / iEta / iX + 100;"
970  "iY / iPhi (starting from -10^{o}!);"
971  "Event count rate",
972  401,
973  -200.5,
974  200.5,
975  360,
976  .5,
977  360.5);
978 
979  //TP
980  string tpUnit;
981  if (tpInGeV_)
982  tpUnit = string("GeV");
983  else
984  tpUnit = string("TP hw unit");
985  string title;
986  title = string("Trigger primitive TT E_{T};E_{T} ") + tpUnit + string(";Event Count");
987  meTp_ = bookProfile(ibooker,
988  "hTp", //"EcalTriggerPrimitiveEt",
989  title,
990  (tpInGeV_ ? 100 : 40),
991  0.,
992  (tpInGeV_ ? 10. : 40.));
993 
994  meTtf_ = bookProfile(ibooker,
995  "hTtf", //"EcalTriggerTowerFlag",
996  "Trigger primitive TT flag;Flag number;Event count",
997  8,
998  -.5,
999  7.5);
1000 
1001  title = string("Trigger tower flag vs TP;E_{T}(TT) (") + tpUnit + string(");Flag number");
1002  meTtfVsTp_ = book2D(ibooker, "h2TtfVsTp", title, 100, 0., (tpInGeV_ ? 10. : 40.), 8, -.5, 7.5);
1003 
1004  meTtfVsEtSum_ = book2D(ibooker,
1005  "h2TtfVsEtSum",
1006  "Trigger tower flag vs #sumE_{T};"
1007  "E_{T}(TT) (GeV);"
1008  "TTF",
1009  100,
1010  0.,
1011  10.,
1012  8,
1013  -.5,
1014  7.5);
1015  title = string(
1016  "Trigger primitive Et (TP) vs #sumE_{T};"
1017  "E_{T} (sum) (GeV);"
1018  "E_{T} (TP) (") +
1019  tpUnit + string(")");
1020 
1021  meTpVsEtSum_ = book2D(ibooker, "h2TpVsEtSum", title, 100, 0., 10., 100, 0., (tpInGeV_ ? 10. : 40.));
1022 
1023  title = string(
1024  "Trigger primitive E_{T};"
1025  "iEta;"
1026  "iPhi;"
1027  "E_{T} (TP) (") +
1028  tpUnit + string(")");
1029  meTpMap_ = bookProfile2D(ibooker, "h2Tp", title, 57, -28.5, 28.5, 72, .5, 72.5);
1030 
1031  //SRF
1032  meFullRoRu_ = book2D(ibooker,
1033  "h2FRORu", //"EcalFullReadoutSRFlagMap",
1034  "Full Read-out readout unit;"
1035  "iX - 40 / iEta / iX + 20;"
1036  "iY / iPhi (iPhi = 1 at phi = 0 rad);"
1037  "Event count",
1038  80,
1039  -39.5,
1040  40.5,
1041  72,
1042  .5,
1043  72.5);
1044 
1045  meFullRoCnt_ = book1D(ibooker,
1046  "hFROCnt",
1047  "Number of Full-readout-flagged readout units;"
1048  "FRO RU count;Event count",
1049  300,
1050  -.5,
1051  299.5);
1052 
1053  meEbFullRoCnt_ = book1D(ibooker,
1054  "hEbFROCnt",
1055  "Number of EB Full-readout-flagged readout units;"
1056  "FRO RU count;Event count",
1057  200,
1058  -.5,
1059  199.5);
1060 
1061  meEeFullRoCnt_ = book1D(ibooker,
1062  "hEeFROCnt",
1063  "Number of EE Full-readout-flagged readout units;"
1064  "FRO RU count;Event count",
1065  200,
1066  -.5,
1067  199.5);
1068 
1069  meZs1Ru_ = book2D(ibooker,
1070  "h2Zs1Ru", //"EbZeroSupp1SRFlagMap",
1071  "Readout unit with ZS-thr-1 flag;"
1072  "iX - 40 / iEta / iX + 20;"
1073  "iY0 / iPhi0 (iPhi = 1 at phi = 0 rad);"
1074  "Event count",
1075  80,
1076  -39.5,
1077  40.5,
1078  72,
1079  .5,
1080  72.5);
1081 
1082  meForcedRu_ = book2D(ibooker,
1083  "h2ForcedRu", //"EcalReadoutUnitForcedBitMap",
1084  "ECAL readout unit with forced bit of SR flag on;"
1085  "iX - 40 / iEta / iX + 20;"
1086  "iY / iPhi (iPhi = 1 at phi = 0 rad);"
1087  "Event count",
1088  80,
1089  -39.5,
1090  40.5,
1091  72,
1092  .5,
1093  72.5);
1094 
1095  meLiTtf_ = bookProfile2D(ibooker,
1096  "h2LiTtf", //"EcalLowInterestTriggerTowerFlagMap",
1097  "Low interest trigger tower flags;"
1098  "iEta;"
1099  "iPhi;"
1100  "Event count",
1101  57,
1102  -28.5,
1103  28.5,
1104  72,
1105  .5,
1106  72.5);
1107 
1108  meMiTtf_ = bookProfile2D(ibooker,
1109  "h2MiTtf", //"EcalMidInterestTriggerTowerFlagMap",
1110  "Mid interest trigger tower flags;"
1111  "iEta;"
1112  "iPhi;"
1113  "Event count",
1114  57,
1115  -28.5,
1116  28.5,
1117  72,
1118  .5,
1119  72.5);
1120 
1121  meHiTtf_ = bookProfile2D(ibooker,
1122  "h2HiTtf", //"EcalHighInterestTriggerTowerFlagMap",
1123  "High interest trigger tower flags;"
1124  "iEta;"
1125  "iPhi;"
1126  "Event count",
1127  57,
1128  -28.5,
1129  28.5,
1130  72,
1131  .5,
1132  72.5);
1133 
1134  meForcedTtf_ = book2D(ibooker,
1135  "h2ForcedTtf", //"EcalTtfForcedBitMap",
1136  "Trigger tower flags with forced bit set;"
1137  "iEta;"
1138  "iPhi;"
1139  "Event count",
1140  57,
1141  -28.5,
1142  28.5,
1143  72,
1144  .5,
1145  72.5);
1146 
1147  const float ebMinNoise = -1.;
1148  const float ebMaxNoise = 1.;
1149 
1150  const float eeMinNoise = -1.;
1151  const float eeMaxNoise = 1.;
1152 
1153  const float ebMinE = ebMinNoise;
1154  const float ebMaxE = ebMaxNoise;
1155 
1156  const float eeMinE = eeMinNoise;
1157  const float eeMaxE = eeMaxNoise;
1158 
1159  const int evtMax = 500;
1160 
1161  meEbRecE_ = book1D(ibooker, "hEbRecE", "Crystal reconstructed energy;E (GeV);Event count", 100, ebMinE, ebMaxE);
1162 
1163  meEbEMean_ = bookProfile(ibooker, "hEbEMean", "EE <E_hit>;event #;<E_hit> (GeV)", evtMax, .5, evtMax + .5);
1164 
1165  meEbNoise_ = book1D(ibooker,
1166  "hEbNoise",
1167  "Crystal noise "
1168  "(rec E of crystal without deposited energy)"
1169  ";Rec E (GeV);Event count",
1170  100,
1171  ebMinNoise,
1172  ebMaxNoise);
1173 
1174  meEbLiZsFir_ = book1D(ibooker,
1175  "zsEbLiFIRemu",
1176  "Emulated ouput of ZS FIR filter for EB "
1177  "low interest crystals;"
1178  "ADC count*4;"
1179  "Event count",
1180  60,
1181  -30,
1182  30);
1183 
1184  meEbHiZsFir_ = book1D(ibooker,
1185  "zsEbHiFIRemu",
1186  "Emulated ouput of ZS FIR filter for EB "
1187  "high interest crystals;"
1188  "ADC count*4;"
1189  "Event count",
1190  60,
1191  -30,
1192  30);
1193 
1194  //TODO: Fill this histogram...
1195  // meEbIncompleteRUZsFir_ = book1D(ibooker, "zsEbIncompleteRUFIRemu",
1196  // "Emulated ouput of ZS FIR filter for EB "
1197  // "incomplete FRO-flagged RU;"
1198  // "ADC count*4;"
1199  // "Event count",
1200  // 60, -30, 30);
1201 
1202  meEbSimE_ = book1D(ibooker, "hEbSimE", "EB hit crystal simulated energy", 100, ebMinE, ebMaxE);
1203 
1204  meEbRecEHitXtal_ = book1D(ibooker, "hEbRecEHitXtal", "EB rec energy of hit crystals", 100, ebMinE, ebMaxE);
1205 
1206  meEbRecVsSimE_ = book2D(ibooker,
1207  "hEbRecVsSimE",
1208  "Crystal simulated vs reconstructed energy;"
1209  "Esim (GeV);Erec GeV);Event count",
1210  100,
1211  ebMinE,
1212  ebMaxE,
1213  100,
1214  ebMinE,
1215  ebMaxE);
1216 
1217  meEbNoZsRecVsSimE_ = book2D(ibooker,
1218  "hEbNoZsRecVsSimE",
1219  "Crystal no-zs simulated vs reconstructed "
1220  "energy;"
1221  "Esim (GeV);Erec GeV);Event count",
1222  100,
1223  ebMinE,
1224  ebMaxE,
1225  100,
1226  ebMinE,
1227  ebMaxE);
1228 
1229  meEeRecE_ = book1D(ibooker,
1230  "hEeRecE",
1231  "EE crystal reconstructed energy;E (GeV);"
1232  "Event count",
1233  100,
1234  eeMinE,
1235  eeMaxE);
1236 
1237  meEeEMean_ = bookProfile(ibooker, "hEeEMean", "<E_{EE hit}>;event;<E_{hit}> (GeV)", evtMax, .5, evtMax + .5);
1238 
1239  meEeNoise_ = book1D(ibooker,
1240  "hEeNoise",
1241  "EE crystal noise "
1242  "(rec E of crystal without deposited energy);"
1243  "E (GeV);Event count",
1244  200,
1245  eeMinNoise,
1246  eeMaxNoise);
1247 
1248  meEeLiZsFir_ = book1D(ibooker,
1249  "zsEeLiFIRemu",
1250  "Emulated ouput of ZS FIR filter for EE "
1251  "low interest crystals;"
1252  "ADC count*4;"
1253  "Event count",
1254  60,
1255  -30,
1256  30);
1257 
1258  meEeHiZsFir_ = book1D(ibooker,
1259  "zsEeHiFIRemu",
1260  "Emulated ouput of ZS FIR filter for EE "
1261  "high interest crystals;"
1262  "ADC count*4;"
1263  "Event count",
1264  60,
1265  -30,
1266  30);
1267 
1268  //TODO: Fill this histogram...
1269  // meEeIncompleteRUZsFir_ = book1D(ibooker, "zsEeIncompleteRUFIRemu",
1270  // "Emulated ouput of ZS FIR filter for EE "
1271  // "incomplete FRO-flagged RU;"
1272  // "ADC count*4;"
1273  // "Event count",
1274  // 60, -30, 30);
1275 
1276  meEeSimE_ = book1D(ibooker, "hEeSimE", "EE hit crystal simulated energy", 100, eeMinE, eeMaxE);
1277 
1278  meEeRecEHitXtal_ = book1D(ibooker, "hEeRecEHitXtal", "EE rec energy of hit crystals", 100, eeMinE, eeMaxE);
1279 
1280  meEeRecVsSimE_ = book2D(ibooker,
1281  "hEeRecVsSimE",
1282  "EE crystal simulated vs reconstructed energy;"
1283  "Esim (GeV);Erec GeV);Event count",
1284  100,
1285  eeMinE,
1286  eeMaxE,
1287  100,
1288  eeMinE,
1289  eeMaxE);
1290 
1291  meEeNoZsRecVsSimE_ = book2D(ibooker,
1292  "hEeNoZsRecVsSimE",
1293  "EE crystal no-zs simulated vs "
1294  "reconstructed "
1295  "energy;Esim (GeV);Erec GeV);Event count",
1296  100,
1297  eeMinE,
1298  eeMaxE,
1299  100,
1300  eeMinE,
1301  eeMaxE);
1302 
1303  meSRFlagsConsistency_ = book2D(ibooker,
1304  "hSRAlgoErrorMap",
1305  "TTFlags and SR Flags mismatch;"
1306  "iX - 40 / iEta / iX + 20;"
1307  "iY / iPhi (iPhi = 1 at phi = 0 rad);"
1308  "Event count",
1309  80,
1310  -39.5,
1311  40.5,
1312  72,
1313  .5,
1314  72.5);
1315 
1316  //Readout Units histos (interest/Ncrystals)
1317  meIncompleteFROMap_ = book2D(ibooker,
1318  "hIncompleteFROMap",
1319  "Incomplete full-readout-flagged readout units;"
1320  "iX - 40 / iEta / iX + 20;"
1321  "iY / iPhi (iPhi = 1 at phi = 0 rad);"
1322  "Event count",
1323  80,
1324  -39.5,
1325  40.5,
1326  72,
1327  .5,
1328  72.5);
1329 
1330  meIncompleteFROCnt_ = book1D(ibooker,
1331  "hIncompleteFROCnt",
1332  "Number of incomplete full-readout-flagged "
1333  "readout units;"
1334  "Number of RUs;Event count;",
1335  200,
1336  -.5,
1337  199.5);
1338 
1340  "hIncompleteFRORateMap",
1341  "Incomplete full-readout-flagged readout units;"
1342  "iX - 40 / iEta / iX + 20;"
1343  "iY / iPhi (iPhi = 1 at phi = 0 rad);"
1344  "Incomplete error rate",
1345  80,
1346  -39.5,
1347  40.5,
1348  72,
1349  .5,
1350  72.5);
1351 
1352  meDroppedFROMap_ = book2D(ibooker,
1353  "hDroppedFROMap",
1354  "Dropped full-readout-flagged readout units;"
1355  "iX - 40 / iEta / iX + 20;"
1356  "iY / iPhi (iPhi = 1 at phi = 0 rad);"
1357  "Event count",
1358  80,
1359  -39.5,
1360  40.5,
1361  72,
1362  .5,
1363  72.5);
1364 
1365  meDroppedFROCnt_ = book1D(ibooker,
1366  "hDroppedFROCnt",
1367  "Number of dropped full-readout-flagged "
1368  "RU count;RU count;Event count",
1369  200,
1370  -.5,
1371  199.5);
1372 
1373  meCompleteZSCnt_ = book1D(ibooker,
1374  "hCompleteZsCnt",
1375  "Number of zero-suppressed-flagged RU fully "
1376  "readout;"
1377  "RU count;Event count",
1378  200,
1379  -.5,
1380  199.5);
1381 
1382  stringstream buf;
1383  buf << "Number of LI EB channels below the " << ebZsThr_ / 4.
1384  << " ADC count ZS threshold;"
1385  "Channel count;Event count",
1386  meEbZsErrCnt_ = book1D(ibooker, "hEbZsErrCnt", buf.str(), 200, -.5, 199.5);
1387 
1388  buf.str("");
1389  buf << "Number of LI EE channels below the " << eeZsThr_ / 4.
1390  << " ADC count ZS theshold;"
1391  "Channel count;Event count",
1392  meEeZsErrCnt_ = book1D(ibooker, "hEeZsErrCnt", buf.str(), 200, -.5, 199.5);
1393 
1394  meZsErrCnt_ = book1D(ibooker,
1395  "hZsErrCnt",
1396  "Number of LI channels below the ZS threshold;"
1397  "Channel count;Event count",
1398  200,
1399  -.5,
1400  199.5);
1401 
1402  meEbZsErrType1Cnt_ = book1D(ibooker,
1403  "hEbZsErrType1Cnt",
1404  "Number of EB channels below the ZS "
1405  "threshold in a LI but fully readout RU;"
1406  "Channel count;Event count;",
1407  200,
1408  -.5,
1409  199.5);
1410 
1411  meEeZsErrType1Cnt_ = book1D(ibooker,
1412  "hEeZsErrType1Cnt",
1413  "Number EE channels below the ZS threshold"
1414  " in a LI but fully readout RU;"
1415  "Channel count;Event count",
1416  200,
1417  -.5,
1418  199.5);
1419 
1420  meZsErrType1Cnt_ = book1D(ibooker,
1421  "hZsErrType1Cnt",
1422  "Number of LI channels below the ZS threshold "
1423  "in a LI but fully readout RU;"
1424  "Channel count;Event count",
1425  200,
1426  -.5,
1427  199.5);
1428 
1430  "hDroppedFRORateMap",
1431  "Dropped full-readout-flagged readout units"
1432  "iX - 40 / iEta / iX + 20;"
1433  "iY / iPhi (iPhi = 1 at phi = 0 rad);"
1434  "Dropping rate",
1435  80,
1436  -39.5,
1437  40.5,
1438  72,
1439  .5,
1440  72.5);
1441 
1442  meCompleteZSMap_ = book2D(ibooker,
1443  "hCompleteZSMap",
1444  "Complete zero-suppressed-flagged readout units;"
1445  "iX - 40 / iEta / iX + 20;"
1446  "iY / iPhi (iPhi = 1 at phi = 0 rad);"
1447  "Event count",
1448  80,
1449  -39.5,
1450  40.5,
1451  72,
1452  .5,
1453  72.5);
1454 
1456  "hCompleteZSRate",
1457  "Complete zero-suppressed-flagged readout units;"
1458  "iX - 40 / iEta / iX + 20;"
1459  "iY / iPhi (iPhi = 1 at phi = 0 rad);"
1460  "Completeness rate",
1461  80,
1462  -39.5,
1463  40.5,
1464  72,
1465  .5,
1466  72.5);
1467 
1468  //print list of available histograms (must be called after
1469  //the bookXX methods):
1471 
1472  //check the histList parameter:
1473  stringstream s;
1474  for (set<string>::iterator it = histList_.begin(); it != histList_.end(); ++it) {
1475  if (*it != string("all") && availableHistList_.find(*it) == availableHistList_.end()) {
1476  s << (s.str().empty() ? "" : ", ") << *it;
1477  }
1478  }
1479  if (!s.str().empty()) {
1480  LogWarning("Configuration") << "Parameter 'histList' contains some unknown histogram(s). "
1481  "Check spelling. Following name were not found: "
1482  << s.str();
1483  }
1484 }

References availableHistList_, book1D(), book2D(), bookFloat(), bookProfile(), bookProfile2D(), visDQMUpload::buf, ebZsThr_, eeZsThr_, histList_, meChOcc_, meCompleteZSCnt_, meCompleteZSMap_, meCompleteZSRateMap_, meDccHiVol_, meDccLiVol_, meDccVol_, meDccVolFromData_, meDroppedFROCnt_, meDroppedFROMap_, meDroppedFRORateMap_, meEbEMean_, meEbFullRoCnt_, meEbHiZsFir_, meEbLiZsFir_, meEbNoise_, meEbNoZsRecVsSimE_, meEbRecE_, meEbRecEHitXtal_, meEbRecVsSimE_, meEbSimE_, meEbZsErrCnt_, meEbZsErrType1Cnt_, meEeEMean_, meEeFullRoCnt_, meEeHiZsFir_, meEeLiZsFir_, meEeNoise_, meEeNoZsRecVsSimE_, meEeRecE_, meEeRecEHitXtal_, meEeRecVsSimE_, meEeSimE_, meEeZsErrCnt_, meEeZsErrType1Cnt_, meForcedRu_, meForcedTtf_, meFullRoCnt_, meFullRoRu_, meHiTtf_, meIncompleteFROCnt_, meIncompleteFROMap_, meIncompleteFRORateMap_, meL1aRate_, meLiTtf_, meMiTtf_, meSRFlagsConsistency_, meTp_, meTpMap_, meTpVsEtSum_, meTtf_, meTtfVsEtSum_, meTtfVsTp_, meVol_, meVolB_, meVolBHI_, meVolBLI_, meVolE_, meVolEHI_, meVolELI_, meVolHI_, meVolLI_, meZs1Ru_, meZsErrCnt_, meZsErrType1Cnt_, nDccs_, printAvailableHists(), alignCSCRings::s, dqm::implementation::NavigatorBase::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, overlapproblemtsosanalyzer_cfi::title, and tpInGeV_.

◆ bookProfile()

EcalSelectiveReadoutValidation::MonitorElement * EcalSelectiveReadoutValidation::bookProfile ( DQMStore::IBooker ibook,
const std::string &  name,
const std::string &  title,
int  nbins,
double  xmin,
double  xmax 
)
private

Definition at line 2015 of file EcalSelectiveReadoutValidation.cc.

2016  {
2017  if (!registerHist(name, title))
2018  return nullptr; //this histo is disabled
2019  MonitorElement* result = ibook.bookProfile(name, title, nbins, xmin, xmax, 0, 0, 0);
2020  if (result == nullptr) {
2021  throw cms::Exception("Histo") << "Failed to book histogram " << name;
2022  }
2023  return result;
2024 }

References dqm::implementation::IBooker::bookProfile(), Exception, Skims_PA_cff::name, LaserClient_cfi::nbins, registerHist(), mps_fire::result, overlapproblemtsosanalyzer_cfi::title, TrackerOfflineValidation_Dqm_cff::xmax, and TrackerOfflineValidation_Dqm_cff::xmin.

Referenced by bookHistograms().

◆ bookProfile2D()

EcalSelectiveReadoutValidation::MonitorElement * EcalSelectiveReadoutValidation::bookProfile2D ( DQMStore::IBooker ibook,
const std::string &  name,
const std::string &  title,
int  nbinx,
double  xmin,
double  xmax,
int  nbiny,
double  ymin,
double  ymax,
const char *  option = "" 
)
private

Definition at line 2026 of file EcalSelectiveReadoutValidation.cc.

2035  {
2036  if (!registerHist(name, title))
2037  return nullptr; //this histo is disabled
2038  MonitorElement* result = ibook.bookProfile2D(name, title, nbinx, xmin, xmax, nbiny, ymin, ymax, 0, 0, 0, option);
2039  if (result == nullptr) {
2040  throw cms::Exception("Histo") << "Failed to book histogram " << name;
2041  }
2042  return result;
2043 }

References dqm::implementation::IBooker::bookProfile2D(), Exception, Skims_PA_cff::name, fileinputsource_cfi::option, registerHist(), mps_fire::result, overlapproblemtsosanalyzer_cfi::title, TrackerOfflineValidation_Dqm_cff::xmax, TrackerOfflineValidation_Dqm_cff::xmin, L1TOccupancyClient_cfi::ymax, and L1TOccupancyClient_cfi::ymin.

Referenced by bookHistograms().

◆ checkSrApplication()

template<class T >
void EcalSelectiveReadoutValidation::checkSrApplication ( const edm::Event event,
T srfs 
)
private

Checks application of SR decision by the DCC.

Parameters
eventevent currently analyzed.
srfsSelective readou flags

Definition at line 2323 of file EcalSelectiveReadoutValidation.cc.

2323  {
2324  typedef typename T::const_iterator SrFlagCollectionConstIt;
2325  typedef typename T::key_type MyRuDetIdType;
2326 
2327  for (SrFlagCollectionConstIt itSrf = srfs.begin(); itSrf != srfs.end(); ++itSrf) {
2328  int flag = itSrf->value() & ~EcalSrFlag::SRF_FORCED_MASK;
2329  pair<int, int> ru = dccCh(itSrf->id());
2330 
2331  if (flag == EcalSrFlag::SRF_FULL) {
2332  if (nPerRu_[ru.first - minDccId_][ru.second - 1] == getCrystalCount(ru.first, ru.second)) { //no error
2333  fill(meIncompleteFRORateMap_, ruGraphX(itSrf->id()), ruGraphY(itSrf->id()), 0);
2334  fill(meDroppedFRORateMap_, ruGraphX(itSrf->id()), ruGraphY(itSrf->id()), 0);
2335  } else if (nPerRu_[ru.first - minDccId_][ru.second - 1] == 0) { //tower dropped!
2336  fill(meIncompleteFRORateMap_, ruGraphX(itSrf->id()), ruGraphY(itSrf->id()), 0);
2337  fill(meDroppedFRORateMap_, ruGraphX(itSrf->id()), ruGraphY(itSrf->id()), 1);
2338  fill(meDroppedFROMap_, ruGraphX(itSrf->id()), ruGraphY(itSrf->id()), 1);
2339  ++nDroppedFRO_;
2340  srApplicationErrorLog_ << event.id() << ": Flag of RU " << itSrf->id() << " (DCC " << ru.first << " ch "
2341  << ru.second << ") is 'Full readout' "
2342  << "while none of its channel was read out\n";
2343  } else { //tower partially read out
2344  fill(meIncompleteFRORateMap_, ruGraphX(itSrf->id()), ruGraphY(itSrf->id()), 1);
2345  fill(meDroppedFRORateMap_, ruGraphX(itSrf->id()), ruGraphY(itSrf->id()), 0);
2346  fill(meIncompleteFROMap_, ruGraphX(itSrf->id()), ruGraphY(itSrf->id()), 1);
2347  ++nIncompleteFRO_;
2348  srApplicationErrorLog_ << event.id() << ": Flag of RU" << itSrf->id() << " (DCC " << ru.first << " ch "
2349  << ru.second << ") is 'Full readout' "
2350  << "while only " << nPerRu_[ru.first - minDccId_][ru.second - 1] << " / "
2351  << getCrystalCount(ru.first, ru.second) << " channels were read out.\n";
2352  }
2353  }
2354 
2356  if (nPerRu_[ru.first - minDccId_][ru.second - 1] == getCrystalCount(ru.first, ru.second)) {
2357  //ZS readout unit whose every channel was read
2358 
2359  fill(meCompleteZSMap_, ruGraphX(itSrf->id()), ruGraphY(itSrf->id()));
2360  fill(meCompleteZSRateMap_, ruGraphX(itSrf->id()), ruGraphY(itSrf->id()), 1);
2361 
2362  ++nCompleteZS_;
2363  } else {
2364  fill(meCompleteZSRateMap_, ruGraphX(itSrf->id()), ruGraphY(itSrf->id()), 0);
2365  }
2366  }
2367  }
2368 }

References dccCh(), fill(), RemoveAddSevLevel::flag, getCrystalCount(), meCompleteZSMap_, meCompleteZSRateMap_, meDroppedFROMap_, meDroppedFRORateMap_, meIncompleteFROMap_, meIncompleteFRORateMap_, minDccId_, nCompleteZS_, nDroppedFRO_, nIncompleteFRO_, nPerRu_, ruGraphX(), ruGraphY(), srApplicationErrorLog_, EcalSrFlag::SRF_FULL, EcalSrFlag::SRF_ZS1, and EcalSrFlag::SRF_ZS2.

Referenced by analyze().

◆ cIndex2iEta()

int EcalSelectiveReadoutValidation::cIndex2iEta ( int  i) const
inlineprivate

converse of iEta2cIndex() method.

Definition at line 236 of file EcalSelectiveReadoutValidation.h.

236 { return (i < 85) ? i - 85 : i - 84; }

References mps_fire::i.

Referenced by dccCh().

◆ cIndex2iPhi()

int EcalSelectiveReadoutValidation::cIndex2iPhi ( int  i) const
inlineprivate

converse of iPhi2cIndex() method.

Definition at line 240 of file EcalSelectiveReadoutValidation.h.

240 { return (i + 11) % 360; }

References mps_fire::i.

Referenced by dccCh().

◆ cIndex2iTtEta()

int EcalSelectiveReadoutValidation::cIndex2iTtEta ( int  i) const
inlineprivate

converse of iTtEta2cIndex() method.

Definition at line 263 of file EcalSelectiveReadoutValidation.h.

263 { return (i < 27) ? i - 28 : i - 27; }

References mps_fire::i.

Referenced by analyzeTP().

◆ cIndex2iTtPhi()

int EcalSelectiveReadoutValidation::cIndex2iTtPhi ( int  i) const
inlineprivate

converse of iTtPhi2cIndex() method.

Definition at line 267 of file EcalSelectiveReadoutValidation.h.

267 { return i + 1; }

References mps_fire::i.

Referenced by analyzeTP().

◆ cIndex2iXY()

int EcalSelectiveReadoutValidation::cIndex2iXY ( int  iX0) const
inlineprivate

converse of iXY2cIndex() method.

Definition at line 232 of file EcalSelectiveReadoutValidation.h.

232 { return iX0 + 1; }

◆ compareSrfColl()

template<class T >
void EcalSelectiveReadoutValidation::compareSrfColl ( const edm::Event event,
T srfFromData,
T computedSrf 
)
private

Compares two SR flag collection, flags read from data and computed flags. Descripencies are recorded in relevant histogram and log file.

Template Parameters
Tcollection type. Must be either an EESrFlagCollection or an EBSrFlagCollection.
Parameters
eventevent currently analyzed. Used in logs.
srfFromDataSR flag collection read from data
compareSrfSR flag collection computed from TTF by SRP emulation

Definition at line 2229 of file EcalSelectiveReadoutValidation.cc.

2229  {
2230  typedef typename T::const_iterator SrFlagCollectionConstIt;
2231  typedef typename T::key_type MyRuDetIdType;
2232  SrFlagCollectionConstIt itSrfFromData = srfFromData.begin();
2233  SrFlagCollectionConstIt itComputedSr = computedSrf.begin();
2234 
2235  while (itSrfFromData != srfFromData.end() || itComputedSr != computedSrf.end()) {
2236  MyRuDetIdType inconsistentRu = 0;
2237  bool inconsistent = false;
2238  if (itComputedSr == computedSrf.end() ||
2239  (itSrfFromData != srfFromData.end() && itSrfFromData->id() < itComputedSr->id())) {
2240  //computedSrf is missig a detid found in srfFromData
2241  pair<int, int> ch = dccCh(itSrfFromData->id());
2242  srpAlgoErrorLog_ << event.id() << ": " << itSrfFromData->id() << ", DCC " << ch.first << " ch " << ch.second
2243  << " found in data (SRF:" << itSrfFromData->flagName()
2244  << ") but not in the set of SRFs computed from the data TTF.\n";
2245  inconsistentRu = itSrfFromData->id();
2246  inconsistent = true;
2247  ++itSrfFromData;
2248  } else if (itSrfFromData == srfFromData.end() ||
2249  (itComputedSr != computedSrf.end() && itComputedSr->id() < itSrfFromData->id())) {
2250  //ebSrFlags is missing a detid found in computedSrf
2251  pair<int, int> ch = dccCh(itComputedSr->id());
2252  if (logErrForDccs_[ch.first - minDccId_]) {
2253  srpAlgoErrorLog_ << event.id() << ": " << itComputedSr->id() << ", DCC " << ch.first << " ch " << ch.second
2254  << " not found in data. Computed SRF: " << itComputedSr->flagName() << ".\n";
2255  inconsistentRu = itComputedSr->id();
2256  inconsistent = true;
2257  }
2258  ++itComputedSr;
2259  } else {
2260  //*itSrfFromData and *itComputedSr has same detid
2261  if (itComputedSr->value() != itSrfFromData->value()) {
2262  pair<int, int> ch = dccCh(itSrfFromData->id());
2263  srpAlgoErrorLog_ << event.id() << ", " << itSrfFromData->id() << ", DCC " << ch.first << " ch " << ch.second
2264  << ", SRF inconsistency: "
2265  << "from data: " << itSrfFromData->flagName()
2266  << ", computed from TTF: " << itComputedSr->flagName() << "\n";
2267  inconsistentRu = itComputedSr->id();
2268  inconsistent = true;
2269  }
2270  if (itComputedSr != computedSrf.end())
2271  ++itComputedSr;
2272  if (itSrfFromData != srfFromData.end())
2273  ++itSrfFromData;
2274  }
2275 
2276  if (inconsistent)
2277  fill(meSRFlagsConsistency_, ruGraphX(inconsistentRu), ruGraphY(inconsistentRu));
2278  }
2279 }

References dccCh(), fill(), logErrForDccs_, meSRFlagsConsistency_, minDccId_, ruGraphX(), ruGraphY(), and srpAlgoErrorLog_.

Referenced by analyze().

◆ configFirWeights()

void EcalSelectiveReadoutValidation::configFirWeights ( const std::vector< double > &  weightsForZsFIR)
private

Configure DCC ZS FIR weights. Heuristic is used to determine if input weights are normalized weights or integer weights in the hardware representation.

Parameters
weightsForZsFIRweights from configuration file

Definition at line 2161 of file EcalSelectiveReadoutValidation.cc.

2161  {
2162  bool notNormalized = false;
2163  bool notInt = false;
2164  for (unsigned i = 0; i < weightsForZsFIR.size(); ++i) {
2165  if (weightsForZsFIR[i] > 1.)
2166  notNormalized = true;
2167  if ((int)weightsForZsFIR[i] != weightsForZsFIR[i])
2168  notInt = true;
2169  }
2170  if (notInt && notNormalized) {
2171  throw cms::Exception("InvalidParameter") << "weigtsForZsFIR paramater values are not valid: they "
2172  << "must either be integer and uses the hardware representation "
2173  << "of the weights or less or equal than 1 and used the normalized "
2174  << "representation.";
2175  }
2176  LogInfo log("DccFir");
2177  if (notNormalized) {
2178  firWeights_ = vector<int>(weightsForZsFIR.size());
2179  for (unsigned i = 0; i < weightsForZsFIR.size(); ++i) {
2180  firWeights_[i] = (int)weightsForZsFIR[i];
2181  }
2182  } else {
2183  firWeights_ = getFIRWeights(weightsForZsFIR);
2184  }
2185 
2186  log << "Input weights for FIR: ";
2187  for (unsigned i = 0; i < weightsForZsFIR.size(); ++i) {
2188  log << weightsForZsFIR[i] << "\t";
2189  }
2190 
2191  double s2 = 0.;
2192  log << "\nActual FIR weights: ";
2193  for (unsigned i = 0; i < firWeights_.size(); ++i) {
2194  log << firWeights_[i] << "\t";
2195  s2 += firWeights_[i] * firWeights_[i];
2196  }
2197 
2198  s2 = sqrt(s2);
2199  log << "\nNormalized FIR weights after hw representation rounding: ";
2200  for (unsigned i = 0; i < firWeights_.size(); ++i) {
2201  log << firWeights_[i] / (double)(1 << 10) << "\t";
2202  }
2203 
2204  log << "\nFirst FIR sample: " << firstFIRSample_;
2205 }

References Exception, firstFIRSample_, firWeights_, getFIRWeights(), mps_fire::i, createfilelist::int, dqm-mbProfile::log, indexGen::s2, and mathSSE::sqrt().

Referenced by EcalSelectiveReadoutValidation().

◆ dccCh()

pair< int, int > EcalSelectiveReadoutValidation::dccCh ( const DetId xtalId) const
private

Retrieves the logical number of the DCC reading a given crystal channel.

Parameters
xtarIdcrystal channel identifier
Returns
the DCC logical number starting from 1. ‍/ unsigned dccNum(const DetId& xtalId) const;

/** Retrieves the DCC channel reading out a crystal, the crystals of a barrel trigger tower or the crystals, of an endcap supercrystal.

Parameters
xtarIdcrystal channel, barrel trigger tower or endcap supercrystal identifier
Returns
pair of (DCC ID, DCC channel)

Definition at line 1792 of file EcalSelectiveReadoutValidation.cc.

1792  {
1793  if (detId.det() != DetId::Ecal) {
1794  throw cms::Exception("InvalidParameter") << "Wrong type of DetId passed to the "
1795  "EcalSelectiveReadoutValidation::dccCh(const DetId&). "
1796  "An ECAL DetId was expected.\n";
1797  }
1798 
1799  DetId xtalId;
1800  switch (detId.subdetId()) {
1801  case EcalTriggerTower: //Trigger tower
1802  {
1803  const EcalTrigTowerDetId tt = detId;
1804  //pick up one crystal of the trigger tower: they are however all readout by
1805  //the same DCC channel in the barrel.
1806  //Arithmetic is easier on the "c" indices:
1807  const int iTtPhi0 = iTtPhi2cIndex(tt.iphi());
1808  const int iTtEta0 = iTtEta2cIndex(tt.ieta());
1809  const int oneXtalPhi0 = iTtPhi0 * 5;
1810  const int oneXtalEta0 = (iTtEta0 - nOneEeTtEta) * 5;
1811 
1812  xtalId = EBDetId(cIndex2iEta(oneXtalEta0), cIndex2iPhi(oneXtalPhi0));
1813  } break;
1814  case EcalEndcap:
1815  if (detId.rawId() & 0x8000) { //Supercrystal
1816  return elecMap_->getDCCandSC(EcalScDetId(detId));
1817  } else { //EE crystal
1818  xtalId = detId;
1819  }
1820  break;
1821  case EcalBarrel: //EB crystal
1822  xtalId = detId;
1823  break;
1824  default:
1825  throw cms::Exception("InvalidParameter")
1826  << "Wrong type of DetId passed to the method "
1827  "EcalSelectiveReadoutValidation::dccCh(const DetId&). "
1828  "A valid EcalTriggerTower, EcalBarrel or EcalEndcap DetId was expected. "
1829  "detid = "
1830  << xtalId.rawId() << ".\n";
1831  }
1832 
1833  const EcalElectronicsId& EcalElecId = elecMap_->getElectronicsId(xtalId);
1834 
1835  pair<int, int> result;
1836  result.first = EcalElecId.dccId();
1837 
1838  if (result.first < minDccId_ || result.second > maxDccId_) {
1839  throw cms::Exception("OutOfRange") << "Got an invalid DCC ID, DCCID = " << result.first << " for DetId 0x" << hex
1840  << detId.rawId() << " and 0x" << xtalId.rawId() << dec << "\n";
1841  }
1842 
1843  result.second = EcalElecId.towerId();
1844 
1845  if (result.second < 1 || result.second > 68) {
1846  throw cms::Exception("OutOfRange") << "Got an invalid DCC channel ID, DCC_CH = " << result.second << " for DetId 0x"
1847  << hex << detId.rawId() << " and 0x" << xtalId.rawId() << dec << "\n";
1848  }
1849 
1850  return result;
1851 }

References cIndex2iEta(), cIndex2iPhi(), EcalElectronicsId::dccId(), TauDecayModes::dec, DetId::det(), DetId::Ecal, EcalBarrel, EcalEndcap, EcalTriggerTower, elecMap_, Exception, EcalElectronicsMapping::getDCCandSC(), EcalElectronicsMapping::getElectronicsId(), iTtEta2cIndex(), iTtPhi2cIndex(), maxDccId_, minDccId_, nOneEeTtEta, DetId::rawId(), mps_fire::result, DetId::subdetId(), EcalElectronicsId::towerId(), and groupFilesInBlocks::tt.

Referenced by anaDigi(), analyzeEB(), analyzeEE(), checkSrApplication(), compareSrfColl(), and dccId().

◆ dccId() [1/2]

int EcalSelectiveReadoutValidation::dccId ( const EcalScDetId detId) const
private

Retrieves the ID of the DCC reading a readout unit

Parameters
detIddetid of the readout unit

Definition at line 2281 of file EcalSelectiveReadoutValidation.cc.

2281 { return elecMap_->getDCCandSC(detId).first; }

References elecMap_, and EcalElectronicsMapping::getDCCandSC().

Referenced by selectFedsForLog().

◆ dccId() [2/2]

int EcalSelectiveReadoutValidation::dccId ( const EcalTrigTowerDetId detId) const
private

Definition at line 2283 of file EcalSelectiveReadoutValidation.cc.

2283  {
2284  if (detId.ietaAbs() > 17) {
2285  throw cms::Exception("InvalidArgument")
2286  << "Argument of EcalSelectiveReadoutValidation::dccId(const EcalTrigTowerDetId&) "
2287  << "must be a barrel trigger tower Id\n";
2288  }
2289  return dccCh(detId).first;
2290 }

References dccCh(), Exception, and EcalTrigTowerDetId::ietaAbs().

◆ dccZsFIR()

int EcalSelectiveReadoutValidation::dccZsFIR ( const EcalDataFrame frame,
const std::vector< int > &  firWeights,
int  firstFIRSample,
bool *  saturated = nullptr 
)
staticprivate

Emulates the DCC zero suppression FIR filter. If one of the time sample is not in gain 12, numeric_limits<int>::max() is returned.

Parameters
framedata frame
firWeightsTAP weights
firstFIRSampleindex (starting from 1) of the first time sample to be used in the filter
saturatedif not null, *saturated is set to true if all the time sample are not in gain 12 and set to false otherwise.
Returns
FIR output or numeric_limits<int>::max().

Definition at line 2101 of file EcalSelectiveReadoutValidation.cc.

2104  {
2105  const int nFIRTaps = 6;
2106  //FIR filter weights:
2107  const vector<int>& w = firWeights;
2108 
2109  //accumulator used to compute weighted sum of samples
2110  int acc = 0;
2111  bool gain12saturated = false;
2112  const int gain12 = 0x01;
2113  const int lastFIRSample = firstFIRSample + nFIRTaps - 1;
2114  //LogDebug("DccFir") << "DCC FIR operation: ";
2115  int iWeight = 0;
2116  for (int iSample = firstFIRSample - 1; iSample < lastFIRSample; ++iSample, ++iWeight) {
2117  if (iSample >= 0 && iSample < frame.size()) {
2118  EcalMGPASample sample(frame[iSample]);
2119  if (sample.gainId() != gain12)
2120  gain12saturated = true;
2121  LogTrace("DccFir") << (iSample >= firstFIRSample ? "+" : "") << sample.adc() << "*(" << w[iWeight] << ")";
2122  acc += sample.adc() * w[iWeight];
2123  } else {
2124  edm::LogWarning("DccFir") << __FILE__ << ":" << __LINE__
2125  << ": Not enough samples in data frame or 'ecalDccZs1stSample' module "
2126  "parameter is not valid...";
2127  }
2128  }
2129  LogTrace("DccFir") << "\n";
2130  //discards the 8 LSBs
2131  //(shift operator cannot be used on negative numbers because
2132  // the result depends on compilator implementation)
2133  acc = (acc >= 0) ? (acc >> 8) : -(-acc >> 8);
2134  //ZS passed if weighted sum acc above ZS threshold or if
2135  //one sample has a lower gain than gain 12 (that is gain 12 output
2136  //is saturated)
2137 
2138  LogTrace("DccFir") << "acc: " << acc << "\n"
2139  << "saturated: " << (gain12saturated ? "yes" : "no") << "\n";
2140 
2141  if (saturated) {
2142  *saturated = gain12saturated;
2143  }
2144 
2145  return gain12saturated ? numeric_limits<int>::max() : acc;
2146 }

References amptDefault_cfi::frame, LogTrace, SiStripPI::max, simplePhotonAnalyzer_cfi::sample, and w.

Referenced by analyzeEB(), and analyzeEE().

◆ dqmBeginRun()

void EcalSelectiveReadoutValidation::dqmBeginRun ( edm::Run const &  r,
edm::EventSetup const &  es 
)
overridevirtual

Reimplemented from DQMOneEDAnalyzer<>.

Definition at line 837 of file EcalSelectiveReadoutValidation.cc.

837  {
838  // endcap mapping
840  es.get<IdealGeometryRecord>().get(hTriggerTowerMap);
841  triggerTowerMap_ = hTriggerTowerMap.product();
842 
843  //electronics map
845  es.get<EcalMappingRcd>().get(ecalmapping);
846  elecMap_ = ecalmapping.product();
847 
848  initAsciiFile();
849 }

References elecMap_, edm::EventSetup::get(), get, initAsciiFile(), edm::ESHandle< T >::product(), and triggerTowerMap_.

◆ dqmEndRun()

void EcalSelectiveReadoutValidation::dqmEndRun ( const edm::Run r,
const edm::EventSetup c 
)
overrideprotectedvirtual

Reimplemented from DQMOneEDAnalyzer<>.

Definition at line 851 of file EcalSelectiveReadoutValidation.cc.

851  {
853 }

References dqm::impl::MonitorElement::Fill(), getL1aRate(), and meL1aRate_.

◆ fill() [1/4]

void EcalSelectiveReadoutValidation::fill ( MonitorElement me,
float  x 
)
inlineprivate

Wrapper to fill methods of DQM monitor elements.

Definition at line 338 of file EcalSelectiveReadoutValidation.h.

338  {
339  if (me)
340  me->Fill(x);
341  }

References hlt_dqm_clientPB-live_cfg::me, and x.

Referenced by analyze(), analyzeDataVolume(), analyzeEB(), analyzeEE(), analyzeTP(), checkSrApplication(), and compareSrfColl().

◆ fill() [2/4]

void EcalSelectiveReadoutValidation::fill ( MonitorElement me,
float  x,
float  y,
float  z,
float  w 
)
inlineprivate

Definition at line 350 of file EcalSelectiveReadoutValidation.h.

350  {
351  if (me)
352  me->Fill(x, y, z, w);
353  }

References hlt_dqm_clientPB-live_cfg::me, w, x, y, and z.

◆ fill() [3/4]

void EcalSelectiveReadoutValidation::fill ( MonitorElement me,
float  x,
float  y,
float  zw 
)
inlineprivate

Definition at line 346 of file EcalSelectiveReadoutValidation.h.

346  {
347  if (me)
348  me->Fill(x, y, zw);
349  }

References hlt_dqm_clientPB-live_cfg::me, x, y, and zw().

◆ fill() [4/4]

void EcalSelectiveReadoutValidation::fill ( MonitorElement me,
float  x,
float  yw 
)
inlineprivate

Definition at line 342 of file EcalSelectiveReadoutValidation.h.

342  {
343  if (me)
344  me->Fill(x, yw);
345  }

References hlt_dqm_clientPB-live_cfg::me, and x.

◆ frame2Energy()

double EcalSelectiveReadoutValidation::frame2Energy ( const EcalDataFrame frame) const
private

Selective Readout decisions Validation

Parameters
eventEDM event
esevent setup ‍/ void SRFlagValidation(const edm::Event& event, const edm::EventSetup& es);

/** Energy reconstruction from ADC samples.

Parameters
framethe ADC sample of an ECA channel

Definition at line 1756 of file EcalSelectiveReadoutValidation.cc.

1756  {
1757  static std::atomic<bool> firstCall{true};
1758  bool expected = true;
1759  if (firstCall.compare_exchange_strong(expected, false)) {
1760  stringstream buf;
1761  buf << "Weights:";
1762  for (unsigned i = 0; i < weights_.size(); ++i) {
1763  buf << "\t" << weights_[i];
1764  }
1765  edm::LogInfo("EcalSrValid") << buf.str() << "\n";
1766  firstCall = false;
1767  }
1768  double adc2GeV = 0.;
1769 
1770  if (typeid(EBDataFrame) == typeid(frame)) { //barrel APD
1771  adc2GeV = .035;
1772  } else if (typeid(EEDataFrame) == typeid(frame)) { //endcap VPT
1773  adc2GeV = 0.06;
1774  } else {
1775  assert(false);
1776  }
1777 
1778  double acc = 0;
1779 
1780  const int n = min(frame.size(), (int)weights_.size());
1781 
1782  double gainInv[] = {12., 1., 6., 12.};
1783 
1784  for (int i = 0; i < n; ++i) {
1785  acc += weights_[i] * frame[i].adc() * gainInv[frame[i].gainId()] * adc2GeV;
1786  }
1787  return acc;
1788 }

References cms::cuda::assert(), visDQMUpload::buf, amptDefault_cfi::frame, mps_fire::i, createfilelist::int, min(), dqmiodumpmetadata::n, and weights_.

Referenced by analyzeEB(), and analyzeEE().

◆ frame2EnergyForTp()

template<class T >
double EcalSelectiveReadoutValidation::frame2EnergyForTp ( const T frame,
int  offset = 0 
) const
private

Energy reconstruction from ADC samples to be used for trigger primitive estimate.

Parameters
framethe ADC sample of an ECA channel
offsettime offset. To be used to evaluate energy of the event previous (offset=-1) and next (offset=+1) to the triggered one.

Definition at line 1943 of file EcalSelectiveReadoutValidation.cc.

1943  {
1944  //we have to start by 0 in order to handle offset=-1
1945  //(however Fenix FIR has AFAK only 5 taps)
1946  double weights[] = {0., -1 / 3., -1 / 3., -1 / 3., 0., 1.};
1947 
1948  double adc2GeV = 0.;
1949  if (typeid(frame) == typeid(EBDataFrame)) {
1950  adc2GeV = 0.035;
1951  } else if (typeid(frame) == typeid(EEDataFrame)) {
1952  adc2GeV = 0.060;
1953  } else { //T is an invalid type!
1954  //TODO: replace message by a cms exception
1955  throw cms::Exception("Severe Error") << __FILE__ << ":" << __LINE__ << ": "
1956  << "this is a bug. Please report it.\n";
1957  }
1958 
1959  double acc = 0;
1960 
1961  const int n = min<int>(frame.size(), sizeof(weights) / sizeof(weights[0]));
1962 
1963  double gainInv[] = {12., 1., 6., 12};
1964 
1965  for (int i = offset; i < n; ++i) {
1966  int iframe = i + offset;
1967  if (iframe >= 0 && iframe < frame.size()) {
1968  acc += weights[i] * frame[iframe].adc() * gainInv[frame[iframe].gainId()] * adc2GeV;
1969  }
1970  }
1971  //cout << "\n";
1972  return acc;
1973 }

References Exception, amptDefault_cfi::frame, mps_fire::i, dqmiodumpmetadata::n, hltrates_dqm_sourceclient-live_cfg::offset, and HLT_2018_cff::weights.

Referenced by setTtEtSums().

◆ getBytesPerCrystal()

double EcalSelectiveReadoutValidation::getBytesPerCrystal ( ) const
inlineprivate

Gets the number of bytes per crystal channel of the event part depending on the number of read crystal channels.

Returns
the number of bytes.

Definition at line 142 of file EcalSelectiveReadoutValidation.h.

142 { return 3 * 8; }

Referenced by analyzeDataVolume(), getDccSrDependentPayload(), getEbEventSize(), and getEeEventSize().

◆ getCrystalCount()

int EcalSelectiveReadoutValidation::getCrystalCount ( int  iDcc,
int  iDccCh 
)
private

Retrieves number of crystal channel read out by a DCC channel

Parameters
iDccDCC ID starting from 1
iDccChDCC channel starting from 1
Returns
crystal count

Definition at line 2370 of file EcalSelectiveReadoutValidation.cc.

2370  {
2371  if (iDcc < minDccId_ || iDcc > maxDccId_) { //invalid DCC
2372  return 0;
2373  } else if (10 <= iDcc && iDcc <= 45) { //EB
2374  return 25;
2375  } else { //EE
2376  int iDccPhi;
2377  if (iDcc < 10)
2378  iDccPhi = iDcc;
2379  else
2380  iDccPhi = iDcc - 45;
2381  switch (iDccPhi * 100 + iDccCh) {
2382  case 110:
2383  case 232:
2384  case 312:
2385  case 412:
2386  case 532:
2387  case 610:
2388  case 830:
2389  case 806:
2390  //inner partials at 12, 3, and 9 o'clock
2391  return 20;
2392  case 134:
2393  case 634:
2394  case 827:
2395  case 803:
2396  return 10;
2397  case 330:
2398  case 430:
2399  return 20;
2400  case 203:
2401  case 503:
2402  case 721:
2403  case 921:
2404  return 21;
2405  default:
2406  return 25;
2407  }
2408  }
2409 }

References maxDccId_.

Referenced by analyzeDataVolume(), and checkSrApplication().

◆ getDccEventSize()

double EcalSelectiveReadoutValidation::getDccEventSize ( int  iDcc0,
double  nReadXtals 
) const
inlineprivate

Gets the size of an DCC event fragment.

Parameters
iDcc0the DCC logical number starting from 0.
nReadXtalsnumber of read crystal channels.
Returns
the DCC event fragment size in bytes.

Definition at line 149 of file EcalSelectiveReadoutValidation.h.

149  {
150  subdet_t subdet;
151  if (iDcc0 < 9 || iDcc0 >= 45) {
152  subdet = EE;
153  } else {
154  subdet = EB;
155  }
156  // return getDccOverhead(subdet)+nReadXtals*getBytesPerCrystal()
157  // + getRuCount(iDcc0)*8;
158  return getDccOverhead(subdet) + getDccSrDependentPayload(iDcc0, getRuCount(iDcc0), nReadXtals);
159  }

References EB, EE, getDccOverhead(), getDccSrDependentPayload(), and getRuCount().

Referenced by analyzeDataVolume().

◆ getDccOverhead()

double EcalSelectiveReadoutValidation::getDccOverhead ( subdet_t  subdet) const
inlineprivate

Gets the size in bytes fixed-size part of a DCC event fragment.

Returns
the fixed size in bytes.

Definition at line 133 of file EcalSelectiveReadoutValidation.h.

133  {
134  // return (subdet==EB?34:25)*8;
135  return (subdet == EB ? 34 : 52) * 8;
136  }

References EB.

Referenced by getDccEventSize(), getEbEventSize(), and getEeEventSize().

◆ getDccSrDependentPayload()

double EcalSelectiveReadoutValidation::getDccSrDependentPayload ( int  iDcc0,
double  nReadRus,
double  nReadXtals 
) const
inlineprivate

Gets DCC event fragment payload depending on the channel selection made by the selective readout.

Parameters
iDcc0the DCC logical number starting from 0.
nReadRusnumber of read-out RUs
nReadXtalsnumber of read-out crystal channels.
Returns
the DCC event fragment payload in bytes.

Definition at line 168 of file EcalSelectiveReadoutValidation.h.

168  {
169  return nReadXtals * getBytesPerCrystal() + nReadRus * 8;
170  }

References getBytesPerCrystal().

Referenced by analyzeDataVolume(), and getDccEventSize().

◆ getEbEventSize()

double EcalSelectiveReadoutValidation::getEbEventSize ( double  nReadXtals) const
private

Computes the size of an ECAL barrel event fragment.

Parameters
nReadXtalsnumber of read crystal channels
Returns
the event fragment size in bytes

Definition at line 2077 of file EcalSelectiveReadoutValidation.cc.

2077  {
2078  double ruHeaderPayload = 0.;
2079  const int firstEbDcc0 = nEeDccs / 2;
2080  for (int iDcc0 = firstEbDcc0; iDcc0 < firstEbDcc0 + nEbDccs; ++iDcc0) {
2081  ruHeaderPayload += getRuCount(iDcc0) * 8.;
2082  }
2083 
2084  return getDccOverhead(EB) * nEbDccs + nReadXtals * getBytesPerCrystal() + ruHeaderPayload;
2085 }

References EB, getBytesPerCrystal(), getDccOverhead(), getRuCount(), nEbDccs, and nEeDccs.

Referenced by analyzeDataVolume().

◆ getEeEventSize()

double EcalSelectiveReadoutValidation::getEeEventSize ( double  nReadXtals) const
private

Computes the size of an ECAL endcap event fragment.

Parameters
nReadXtalsnumber of read crystal channels
Returns
the event fragment size in bytes

Definition at line 2087 of file EcalSelectiveReadoutValidation.cc.

2087  {
2088  double ruHeaderPayload = 0.;
2089  const unsigned firstEbDcc0 = nEeDccs / 2;
2090  for (unsigned iDcc0 = 0; iDcc0 < nDccs_; ++iDcc0) {
2091  //skip barrel:
2092  if (iDcc0 == firstEbDcc0)
2093  iDcc0 += nEbDccs;
2094  ruHeaderPayload += getRuCount(iDcc0) * 8.;
2095  }
2096  return getDccOverhead(EE) * nEeDccs + nReadXtals * getBytesPerCrystal() + ruHeaderPayload;
2097 }

References EE, getBytesPerCrystal(), getDccOverhead(), getRuCount(), nDccs_, nEbDccs, and nEeDccs.

Referenced by analyzeDataVolume().

◆ getFIRWeights()

std::vector< int > EcalSelectiveReadoutValidation::getFIRWeights ( const std::vector< double > &  normalizedWeights)
staticprivate

Computes the ZS FIR filter weights from the normalized weights.

Parameters
normalizedWeightsthe normalized weights
Returns
the computed ZS filter weights.

Definition at line 2148 of file EcalSelectiveReadoutValidation.cc.

2148  {
2149  const int nFIRTaps = 6;
2150  vector<int> firWeights(nFIRTaps, 0); //default weight: 0;
2151  const static int maxWeight = 0xEFF; //weights coded on 11+1 signed bits
2152  for (unsigned i = 0; i < min((size_t)nFIRTaps, normalizedWeights.size()); ++i) {
2153  firWeights[i] = lround(normalizedWeights[i] * (1 << 10));
2154  if (abs(firWeights[i]) > maxWeight) { //overflow
2155  firWeights[i] = firWeights[i] < 0 ? -maxWeight : maxWeight;
2156  }
2157  }
2158  return firWeights;
2159 }

References funct::abs(), mps_fire::i, and min().

Referenced by configFirWeights().

◆ getL1aRate()

double EcalSelectiveReadoutValidation::getL1aRate ( ) const
private

Gets L1A rate estimate.

See also
updateL1aRate(const edm::Event&)
Returns
L1A rate estimate

Definition at line 212 of file EcalSelectiveReadoutValidation.cc.

212  {
213  LogDebug("EcalSrValid") << __FILE__ << ":" << __LINE__ << ": "
214  << "Tmax = " << tmax << " x 25ns; Tmin = " << tmin << " x 25ns; L1A(Tmax) = " << l1aOfTmax
215  << "; L1A(Tmin) = " << l1aOfTmin << "\n";
216  return (double)(l1aOfTmax - l1aOfTmin) / ((tmax - tmin) * 25e-9);
217 }

References MillePedeFileConverter_cfg::e, l1aOfTmax, l1aOfTmin, LogDebug, tmax, and tmin.

Referenced by dqmEndRun().

◆ getRuCount()

int EcalSelectiveReadoutValidation::getRuCount ( int  iDcc0) const
private

Gets the number of readout unit read by a DCC. A readout unit correspond to an active DCC input channel.

Parameters
iDcc0DCC logical number starting from 0.

Definition at line 1790 of file EcalSelectiveReadoutValidation.cc.

1790 { return nRuPerDcc_[iDcc0]; }

References nRuPerDcc_.

Referenced by getDccEventSize(), getEbEventSize(), and getEeEventSize().

◆ iEta2cIndex()

int EcalSelectiveReadoutValidation::iEta2cIndex ( int  iEta) const
inlineprivate

Converts a std CMSSW crystal eta index to a c-array index (starting from zero and without hole).

Definition at line 212 of file EcalSelectiveReadoutValidation.h.

212 { return (iEta < 0) ? iEta + 85 : iEta + 84; }

References L1TowerCalibrationProducer_cfi::iEta.

Referenced by anaDigi(), and analyzeEB().

◆ initAsciiFile()

void EcalSelectiveReadoutValidation::initAsciiFile ( )
private

Definition at line 2207 of file EcalSelectiveReadoutValidation.cc.

2207  {
2208  if (logSrpAlgoErrors_) {
2210  if (!srpAlgoErrorLog_.good()) {
2211  throw cms::Exception("Output") << "Failed to open the log file '" << srpAlgoErrorLogFileName_
2212  << "' for SRP algorithm result check.\n";
2213  }
2214  }
2215 
2218  if (!srApplicationErrorLog_.good()) {
2219  throw cms::Exception("Output") << "Failed to open the log file '" << srApplicationErrorLogFileName_
2220  << "' for Selective Readout decision application check.\n";
2221  }
2222  }
2223 }

References Exception, logSrApplicationErrors_, logSrpAlgoErrors_, MillePedeFileConverter_cfg::out, srApplicationErrorLog_, srApplicationErrorLogFileName_, srpAlgoErrorLog_, srpAlgoErrorLogFileName_, and pileupReCalc_HLTpaths::trunc.

Referenced by dqmBeginRun().

◆ iPhi2cIndex()

int EcalSelectiveReadoutValidation::iPhi2cIndex ( int  iPhi) const
inlineprivate

Converts a std CMSSW crystal phi index to a c-array index (starting from zero and without hole).

Definition at line 217 of file EcalSelectiveReadoutValidation.h.

217  {
218  // return iPhi-1;
219  int iPhi0 = iPhi - 11;
220  if (iPhi0 < 0)
221  iPhi0 += 360;
222  return iPhi0;
223  }

Referenced by anaDigi(), and analyzeEB().

◆ iTtEta2cIndex()

int EcalSelectiveReadoutValidation::iTtEta2cIndex ( int  iEta) const
inlineprivate

Transforms CMSSW eta ECAL TT indices to indices starting at 0 to use for c-array or vector.

Parameters
iEtaCMSSW eta index (numbering -28...-1,28...56)
Returns
index in numbering from 0 to 55

Definition at line 247 of file EcalSelectiveReadoutValidation.h.

247 { return (iEta < 0) ? iEta + 28 : iEta + 27; }

References L1TowerCalibrationProducer_cfi::iEta.

Referenced by analyzeTP(), dccCh(), and setTtEtSums().

◆ iTtPhi2cIndex()

int EcalSelectiveReadoutValidation::iTtPhi2cIndex ( int  iPhi) const
inlineprivate

Transforms CMSSW phi ECAL crystal indices to indices starting at 0 to use for c-array or vector.

Parameters
iPhiCMSSW phi index (numbering 1...72)
Returns
index in numbering 0...71

Definition at line 254 of file EcalSelectiveReadoutValidation.h.

254  {
255  return iPhi - 1;
256  //int iPhi0 = iPhi - 3;
257  //if(iPhi0<0) iPhi0 += 72;
258  //return iPhi0;
259  }

Referenced by analyzeTP(), dccCh(), and setTtEtSums().

◆ iXY2cIndex()

int EcalSelectiveReadoutValidation::iXY2cIndex ( int  iX) const
inlineprivate

Converts a std CMSSW crystal x or y index to a c-array index (starting from zero and without hole).

Definition at line 228 of file EcalSelectiveReadoutValidation.h.

228 { return iX - 1; }

Referenced by anaDigi(), and analyzeEE().

◆ printAvailableHists()

void EcalSelectiveReadoutValidation::printAvailableHists ( )
private

Prints the list of available histograms (registered by the registerHist method), including disabled one.

Definition at line 2067 of file EcalSelectiveReadoutValidation.cc.

2067  {
2068  LogInfo log("HistoList");
2069  log << "Avalailable histograms (DQM monitor elements): \n";
2070  for (map<string, string>::iterator it = availableHistList_.begin(); it != availableHistList_.end(); ++it) {
2071  log << it->first << ": " << it->second << "\n";
2072  }
2073  log << "\nTo include an histogram add its name in the vstring parameter "
2074  "'histograms' of the EcalSelectiveReadoutValidation module\n";
2075 }

References availableHistList_, and dqm-mbProfile::log.

Referenced by bookHistograms().

◆ readAllCollections()

void EcalSelectiveReadoutValidation::readAllCollections ( const edm::Event e)
private

Reads the data collections from the event. Called at start of each event analysis.

Parameters
eventthe EDM event.

Definition at line 2050 of file EcalSelectiveReadoutValidation.cc.

2050  {
2051  ebRecHits_.read(event);
2052  eeRecHits_.read(event);
2053  ebDigis_.read(event);
2054  eeDigis_.read(event);
2057  ebSrFlags_.read(event);
2058  eeSrFlags_.read(event);
2059  ebComputedSrFlags_.read(event);
2060  eeComputedSrFlags_.read(event);
2063  tps_.read(event);
2064  fedRaw_.read(event);
2065 }

References ebComputedSrFlags_, ebDigis_, ebNoZsDigis_, ebRecHits_, ebSimHits_, ebSrFlags_, eeComputedSrFlags_, eeDigis_, eeNoZsDigis_, eeRecHits_, eeSimHits_, eeSrFlags_, fedRaw_, CollHandle< T >::read(), and tps_.

Referenced by analyze().

◆ readOutUnitOf() [1/2]

EcalTrigTowerDetId EcalSelectiveReadoutValidation::readOutUnitOf ( const EBDetId xtalId) const
private

Retrives the readout unit, a trigger tower in the barrel case, and a supercrystal in the endcap case, a given crystal belongs to.

Parameters
xtalIdidentifier of the crystal
Returns
identifer of the supercrystal or of the trigger tower.

Definition at line 1853 of file EcalSelectiveReadoutValidation.cc.

1853  {
1854  return triggerTowerMap_->towerOf(xtalId);
1855 }

References EcalTrigTowerConstituentsMap::towerOf(), and triggerTowerMap_.

Referenced by anaDigi(), analyzeEB(), and analyzeEE().

◆ readOutUnitOf() [2/2]

EcalScDetId EcalSelectiveReadoutValidation::readOutUnitOf ( const EEDetId xtalId) const
private

Definition at line 1857 of file EcalSelectiveReadoutValidation.cc.

1857  {
1858  const EcalElectronicsId& EcalElecId = elecMap_->getElectronicsId(xtalId);
1859  int iDCC = EcalElecId.dccId();
1860  int iDccChan = EcalElecId.towerId();
1861  const bool ignoreSingle = true;
1862  const vector<EcalScDetId> id = elecMap_->getEcalScDetId(iDCC, iDccChan, ignoreSingle);
1863  return !id.empty() ? id[0] : EcalScDetId();
1864 }

References EcalElectronicsId::dccId(), elecMap_, EcalElectronicsMapping::getEcalScDetId(), EcalElectronicsMapping::getElectronicsId(), and EcalElectronicsId::towerId().

◆ registerHist()

bool EcalSelectiveReadoutValidation::registerHist ( const std::string &  name,
const std::string &  title 
)
private

Register a histogram in the available histogram list and check if the histogram is enabled. Called by the histogram booking methods.

Returns
true if the histogram is enable, false otherwise

Definition at line 2045 of file EcalSelectiveReadoutValidation.cc.

2045  {
2046  availableHistList_.insert(pair<string, string>(name, title));
2047  return allHists_ || histList_.find(name) != histList_.end();
2048 }

References allHists_, availableHistList_, histList_, Skims_PA_cff::name, and overlapproblemtsosanalyzer_cfi::title.

Referenced by book1D(), book2D(), bookFloat(), bookProfile(), and bookProfile2D().

◆ ruGraphX() [1/2]

int EcalSelectiveReadoutValidation::ruGraphX ( const EcalScDetId id) const
inlineprivate

Functions to compute x and y coordinates of RU maps grouping endcap and barrel.

Definition at line 862 of file EcalSelectiveReadoutValidation.h.

862 { return id.ix() + (id.zside() > 0 ? 20 : -40); }

Referenced by checkSrApplication(), and compareSrfColl().

◆ ruGraphX() [2/2]

int EcalSelectiveReadoutValidation::ruGraphX ( const EcalTrigTowerDetId id) const
inlineprivate

Definition at line 866 of file EcalSelectiveReadoutValidation.h.

866 { return id.ieta(); }

◆ ruGraphY() [1/2]

int EcalSelectiveReadoutValidation::ruGraphY ( const EcalScDetId id) const
inlineprivate

Definition at line 864 of file EcalSelectiveReadoutValidation.h.

864 { return id.iy(); }

Referenced by checkSrApplication(), and compareSrfColl().

◆ ruGraphY() [2/2]

int EcalSelectiveReadoutValidation::ruGraphY ( const EcalTrigTowerDetId id) const
inlineprivate

Definition at line 868 of file EcalSelectiveReadoutValidation.h.

868 { return id.iphi(); }

◆ selectFedsForLog()

void EcalSelectiveReadoutValidation::selectFedsForLog ( )
private

Look in events whose DCC has SR flags and enable error logging for them. To be called with the processed first event. List of monitored DCCs is reported in the log file.

Definition at line 2292 of file EcalSelectiveReadoutValidation.cc.

2292  {
2293  logErrForDccs_ = vector<bool>(nDccs_, false);
2294 
2295  for (EBSrFlagCollection::const_iterator it = ebSrFlags_->begin(); it != ebSrFlags_->end(); ++it) {
2296  int iDcc = dccId(it->id()) - minDccId_;
2297 
2298  logErrForDccs_.at(iDcc) = true;
2299  }
2300 
2301  for (EESrFlagCollection::const_iterator it = eeSrFlags_->begin(); it != eeSrFlags_->end(); ++it) {
2302  int iDcc = dccId(it->id()) - minDccId_;
2303 
2304  logErrForDccs_.at(iDcc) = true;
2305  }
2306 
2307  stringstream buf;
2308  buf << "List of DCCs found in the first processed event: ";
2309  bool first = true;
2310  for (unsigned iDcc = 0; iDcc < nDccs_; ++iDcc) {
2311  if (logErrForDccs_[iDcc]) {
2312  buf << (first ? "" : ", ") << (iDcc + minDccId_);
2313  first = false;
2314  }
2315  }
2316  buf << "\nOnly DCCs from this list will be considered for error logging\n";
2317  srpAlgoErrorLog_ << buf.str();
2318  srApplicationErrorLog_ << buf.str();
2319  LogInfo("EcalSrValid") << buf.str();
2320 }

References visDQMUpload::buf, dccId(), ebSrFlags_, eeSrFlags_, dqmdumpme::first, logErrForDccs_, minDccId_, nDccs_, srApplicationErrorLog_, and srpAlgoErrorLog_.

Referenced by analyze().

◆ setTtEtSums()

void EcalSelectiveReadoutValidation::setTtEtSums ( const edm::EventSetup es,
const EBDigiCollection ebDigis,
const EEDigiCollection eeDigis 
)
private

Computes trigger primitive estimates. A sum of crystal deposited transverse energy is performed.

Parameters
esevent setup
ebDigisthe ECAL barrel unsuppressed digi to use for the computation
ebDigisthe ECAL endcap unsuppressed digi to use for the computation

Definition at line 1866 of file EcalSelectiveReadoutValidation.cc.

1868  {
1869  //ecal geometry:
1870  const CaloSubdetectorGeometry* eeGeometry = nullptr;
1871  const CaloSubdetectorGeometry* ebGeometry = nullptr;
1872  if (eeGeometry == nullptr || ebGeometry == nullptr) {
1873  edm::ESHandle<CaloGeometry> geoHandle;
1874  es.get<CaloGeometryRecord>().get(geoHandle);
1875  eeGeometry = (*geoHandle).getSubdetectorGeometry(DetId::Ecal, EcalEndcap);
1876  ebGeometry = (*geoHandle).getSubdetectorGeometry(DetId::Ecal, EcalBarrel);
1877  }
1878 
1879  //init etSum array:
1880  for (int iEta0 = 0; iEta0 < nTtEta; ++iEta0) {
1881  for (int iPhi0 = 0; iPhi0 < nTtPhi; ++iPhi0) {
1882  ttEtSums[iEta0][iPhi0] = 0.;
1883  }
1884  }
1885 
1886  for (EBDigiCollection::const_iterator it = ebDigis_->begin(); it != ebDigis_->end(); ++it) {
1887  const EBDataFrame& frame = *it;
1889 
1890  const int iTtEta0 = iTtEta2cIndex(ttId.ieta());
1891  const int iTtPhi0 = iTtPhi2cIndex(ttId.iphi());
1892  double theta = ebGeometry->getGeometry(frame.id())->getPosition().theta();
1893  double e = frame2EnergyForTp(frame);
1894  if ((frame2EnergyForTp(frame, -1) < e) && (frame2EnergyForTp(frame, 1) < e)) {
1895  ttEtSums[iTtEta0][iTtPhi0] += e * sin(theta);
1896  }
1897  }
1898 
1899  for (EEDigiCollection::const_iterator it = eeDigis.begin(); it != eeDigis.end(); ++it) {
1900  const EEDataFrame& frame = *it;
1902  const int iTtEta0 = iTtEta2cIndex(ttId.ieta());
1903  const int iTtPhi0 = iTtPhi2cIndex(ttId.iphi());
1904 
1905  double theta = eeGeometry->getGeometry(frame.id())->getPosition().theta();
1906  double e = frame2EnergyForTp(frame);
1907  if ((frame2EnergyForTp(frame, -1) < e) && (frame2EnergyForTp(frame, 1) < e)) {
1908  ttEtSums[iTtEta0][iTtPhi0] += e * sin(theta);
1909  }
1910  }
1911 
1912  //dealing with pseudo-TT in two inner EE eta-ring:
1913  int innerTTEtas[] = {0, 1, 54, 55};
1914  for (unsigned iRing = 0; iRing < sizeof(innerTTEtas) / sizeof(innerTTEtas[0]); ++iRing) {
1915  int iTtEta0 = innerTTEtas[iRing];
1916  //this detector eta-section is divided in only 36 phi bins
1917  //For this eta regions,
1918  //current tower eta numbering scheme is inconsistent. For geometry
1919  //version 133:
1920  //- TT are numbered from 0 to 72 for 36 bins
1921  //- some TT have an even index, some an odd index
1922  //For geometry version 125, there are 72 phi bins.
1923  //The code below should handle both geometry definition.
1924  //If there are 72 input trigger primitives for each inner eta-ring,
1925  //then the average of the trigger primitive of the two pseudo-TT of
1926  //a pair (nEta, nEta+1) is taken as Et of both pseudo TTs.
1927  //If there are only 36 input TTs for each inner eta ring, then half
1928  //of the present primitive of a pseudo TT pair is used as Et of both
1929  //pseudo TTs.
1930 
1931  for (unsigned iTtPhi0 = 0; iTtPhi0 < nTtPhi - 1; iTtPhi0 += 2) {
1932  double et = .5 * (ttEtSums[iTtEta0][iTtPhi0] + ttEtSums[iTtEta0][iTtPhi0 + 1]);
1933  //divides the TT into 2 phi bins in order to match with 72 phi-bins SRP
1934  //scheme or average the Et on the two pseudo TTs if the TT is already
1935  //divided into two trigger primitives.
1936  ttEtSums[iTtEta0][iTtPhi0] = et;
1937  ttEtSums[iTtEta0][iTtPhi0 + 1] = et;
1938  }
1939  }
1940 }

References edm::DataFrameContainer::begin(), MillePedeFileConverter_cfg::e, ebDigis_, DetId::Ecal, EcalBarrel, EcalEndcap, SimL1EmulatorDM_cff::eeDigis, edm::DataFrameContainer::end(), EgHLTOffHistBins_cfi::et, amptDefault_cfi::frame, frame2EnergyForTp(), edm::EventSetup::get(), get, CaloSubdetectorGeometry::getGeometry(), iTtEta2cIndex(), iTtPhi2cIndex(), nTtEta, nTtPhi, funct::sin(), theta(), EcalTrigTowerConstituentsMap::towerOf(), triggerTowerMap_, ttEtSums, and ecaldqm::ttId().

Referenced by analyze().

◆ updateL1aRate()

void EcalSelectiveReadoutValidation::updateL1aRate ( const edm::Event event)
private

Updates estimate of L1A rate

Parameters
eventEDM event

Definition at line 194 of file EcalSelectiveReadoutValidation.cc.

194  {
195  const int32_t bx = event.bunchCrossing();
196  if (bx < 1 || bx > 3564)
197  return;
198 
199  int64_t t = event.bunchCrossing() + (event.orbitNumber() - 1) * 3564;
200 
201  if (t < tmin) {
202  tmin = t;
203  l1aOfTmin = event.id().event();
204  }
205 
206  if (t > tmax) {
207  tmax = t;
208  l1aOfTmax = event.id().event();
209  }
210 }

References l1GtPatternGenerator_cfi::bx, l1aOfTmax, l1aOfTmin, OrderedSet::t, tmax, and tmin.

Referenced by analyze().

◆ xtalGraphX() [1/2]

int EcalSelectiveReadoutValidation::xtalGraphX ( const EBDetId id) const
inlineprivate

Definition at line 874 of file EcalSelectiveReadoutValidation.h.

874 { return id.ieta(); }

◆ xtalGraphX() [2/2]

int EcalSelectiveReadoutValidation::xtalGraphX ( const EEDetId id) const
inlineprivate

Definition at line 870 of file EcalSelectiveReadoutValidation.h.

870 { return id.ix() + (id.zside() > 0 ? 100 : -200); }

Referenced by analyzeEB(), and analyzeEE().

◆ xtalGraphY() [1/2]

int EcalSelectiveReadoutValidation::xtalGraphY ( const EBDetId id) const
inlineprivate

Definition at line 876 of file EcalSelectiveReadoutValidation.h.

876 { return id.iphi(); }

◆ xtalGraphY() [2/2]

int EcalSelectiveReadoutValidation::xtalGraphY ( const EEDetId id) const
inlineprivate

Definition at line 872 of file EcalSelectiveReadoutValidation.h.

872 { return id.iy(); }

Referenced by analyzeEB(), and analyzeEE().

Member Data Documentation

◆ allHists_

bool EcalSelectiveReadoutValidation::allHists_
private

When true, every histogram is enabled.

Definition at line 792 of file EcalSelectiveReadoutValidation.h.

Referenced by EcalSelectiveReadoutValidation(), and registerHist().

◆ availableHistList_

std::map<std::string, std::string> EcalSelectiveReadoutValidation::availableHistList_
private

List of available histograms. Filled by the booking methods. key: name, value: title.

Definition at line 801 of file EcalSelectiveReadoutValidation.h.

Referenced by bookHistograms(), printAvailableHists(), and registerHist().

◆ collNotFoundWarn_

bool EcalSelectiveReadoutValidation::collNotFoundWarn_
private

Switch for collection-not-found warning.

Definition at line 472 of file EcalSelectiveReadoutValidation.h.

◆ ebComputedSrFlags_

CollHandle<EBSrFlagCollection> EcalSelectiveReadoutValidation::ebComputedSrFlags_
private

◆ ebDigis_

CollHandle<EBDigiCollection> EcalSelectiveReadoutValidation::ebDigis_
private

The event product collections.

Definition at line 494 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume(), analyzeEB(), EcalSelectiveReadoutValidation(), readAllCollections(), and setTtEtSums().

◆ ebEnergies

energiesEb_t EcalSelectiveReadoutValidation::ebEnergies[nEbEta][nEbPhi]
private

Energy deposited in ECAL barrel crystals. Eta index starts from 0 at eta minimum and phi index starts at phi=0+ in CMS std coordinate system.

Definition at line 773 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEB().

◆ ebNoZsDigis_

CollHandle<EBDigiCollection> EcalSelectiveReadoutValidation::ebNoZsDigis_
private

◆ ebRecHits_

CollHandle<RecHitCollection> EcalSelectiveReadoutValidation::ebRecHits_
private

◆ ebRuActive_

bool EcalSelectiveReadoutValidation::ebRuActive_[nEbEta/ebTtEdge][nEbPhi/ebTtEdge]
private

For book keeping of RU actually read out (not fully zero suppressed)

Definition at line 750 of file EcalSelectiveReadoutValidation.h.

Referenced by anaDigi(), and anaDigiInit().

◆ ebSimHits_

CollHandle<std::vector<PCaloHit> > EcalSelectiveReadoutValidation::ebSimHits_
private

◆ ebSrFlags_

CollHandle<EBSrFlagCollection> EcalSelectiveReadoutValidation::ebSrFlags_
private

◆ ebTtEdge

const int EcalSelectiveReadoutValidation::ebTtEdge = 5
staticprivate

Number of crystals along an EB TT.

Definition at line 443 of file EcalSelectiveReadoutValidation.h.

Referenced by anaDigi().

◆ ebZsThr_

int EcalSelectiveReadoutValidation::ebZsThr_
private

ZS threshold in 1/4th ADC count for EB

Definition at line 673 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEB(), bookHistograms(), and EcalSelectiveReadoutValidation().

◆ eeComputedSrFlags_

CollHandle<EESrFlagCollection> EcalSelectiveReadoutValidation::eeComputedSrFlags_
private

◆ eeDigis_

CollHandle<EEDigiCollection> EcalSelectiveReadoutValidation::eeDigis_
private

◆ eeEnergies

energiesEe_t EcalSelectiveReadoutValidation::eeEnergies[nEndcaps][nEeX][nEeY]
private

Energy deposited in ECAL endcap crystals. Endcap index is 0 for EE- and 1 for EE+. X and Y index starts at x and y minimum in std CMS coordinate system.

Definition at line 779 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEE().

◆ eeNoZsDigis_

CollHandle<EEDigiCollection> EcalSelectiveReadoutValidation::eeNoZsDigis_
private

◆ eeRecHits_

CollHandle<RecHitCollection> EcalSelectiveReadoutValidation::eeRecHits_
private

◆ eeRuActive_

bool EcalSelectiveReadoutValidation::eeRuActive_[nEndcaps][nEeX/scEdge][nEeY/scEdge]
private

Definition at line 751 of file EcalSelectiveReadoutValidation.h.

Referenced by anaDigi(), and anaDigiInit().

◆ eeSimHits_

CollHandle<std::vector<PCaloHit> > EcalSelectiveReadoutValidation::eeSimHits_
private

◆ eeSrFlags_

CollHandle<EESrFlagCollection> EcalSelectiveReadoutValidation::eeSrFlags_
private

◆ eeZsThr_

int EcalSelectiveReadoutValidation::eeZsThr_
private

ZS threshold in 1/4th ADC count for EE

Definition at line 677 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEE(), bookHistograms(), and EcalSelectiveReadoutValidation().

◆ elecMap_

const EcalElectronicsMapping* EcalSelectiveReadoutValidation::elecMap_
private

Ecal electronics/geometrical mapping.

Definition at line 656 of file EcalSelectiveReadoutValidation.h.

Referenced by dccCh(), dccId(), dqmBeginRun(), and readOutUnitOf().

◆ fedRaw_

CollHandle<FEDRawDataCollection> EcalSelectiveReadoutValidation::fedRaw_
private

◆ firstFIRSample_

int EcalSelectiveReadoutValidation::firstFIRSample_
private

Time position of the first sample to use in zero suppession FIR filter. Numbering starts at 0.

Definition at line 686 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEB(), analyzeEE(), and configFirWeights().

◆ firWeights_

std::vector<int> EcalSelectiveReadoutValidation::firWeights_
private

Weights to be used for the ZS FIR filter

Definition at line 669 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEB(), analyzeEE(), and configFirWeights().

◆ histDir_

std::string EcalSelectiveReadoutValidation::histDir_
private

Histogram directory PATH in DQM or within the output ROOT file

Definition at line 796 of file EcalSelectiveReadoutValidation.h.

◆ histList_

std::set<std::string> EcalSelectiveReadoutValidation::histList_
private

List of enabled histograms. Special name "all" is used to indicate all available histograms.

Definition at line 788 of file EcalSelectiveReadoutValidation.h.

Referenced by bookHistograms(), EcalSelectiveReadoutValidation(), and registerHist().

◆ ievt_

int EcalSelectiveReadoutValidation::ievt_
private

Event sequence number

Definition at line 762 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), analyzeEB(), and analyzeEE().

◆ isRuComplete_

bool EcalSelectiveReadoutValidation::isRuComplete_[nDccs_][nDccChs_]
private

Definition at line 754 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume(), analyzeEB(), and analyzeEE().

◆ kByte_

const int EcalSelectiveReadoutValidation::kByte_ = 1024
staticprivate

number of bytes in 1 kByte:

Definition at line 397 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume().

◆ l1aOfTmax

int64_t EcalSelectiveReadoutValidation::l1aOfTmax
private

Definition at line 516 of file EcalSelectiveReadoutValidation.h.

Referenced by getL1aRate(), and updateL1aRate().

◆ l1aOfTmin

int64_t EcalSelectiveReadoutValidation::l1aOfTmin
private

Definition at line 515 of file EcalSelectiveReadoutValidation.h.

Referenced by getL1aRate(), and updateL1aRate().

◆ l1aRateErr

bool EcalSelectiveReadoutValidation::l1aRateErr
private

Definition at line 517 of file EcalSelectiveReadoutValidation.h.

◆ localReco_

bool EcalSelectiveReadoutValidation::localReco_
private

Local reconstruction switch: true to reconstruct locally the amplitude insted of using the Rec Hits.

Definition at line 661 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEB(), and analyzeEE().

◆ logErrForDccs_

std::vector<bool> EcalSelectiveReadoutValidation::logErrForDccs_
private

List of TCC masks for validation If tccMasks[iTcc-1] is false then TCC is considered to have been out of the run and related validations are skipped.

Definition at line 697 of file EcalSelectiveReadoutValidation.h.

Referenced by compareSrfColl(), and selectFedsForLog().

◆ logSrApplicationErrors_

bool EcalSelectiveReadoutValidation::logSrApplicationErrors_
private

Switch to log SR decision that fails to be applied on data: inconstitencies between SRF and number of read out crystals.

Definition at line 838 of file EcalSelectiveReadoutValidation.h.

Referenced by EcalSelectiveReadoutValidation(), and initAsciiFile().

◆ logSrpAlgoErrors_

bool EcalSelectiveReadoutValidation::logSrpAlgoErrors_
private

Switch to log in an ascii file inconsistencies found between SRFs read from data and SRFs obtained by rerunning SRP algorithm on TTFs.

Definition at line 833 of file EcalSelectiveReadoutValidation.h.

Referenced by EcalSelectiveReadoutValidation(), and initAsciiFile().

◆ maxDccId_

const int EcalSelectiveReadoutValidation::maxDccId_ = minDccId_ + nDccs_ - 1
staticprivate

Definition at line 410 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume(), dccCh(), and getCrystalCount().

◆ meChOcc_

MonitorElement* EcalSelectiveReadoutValidation::meChOcc_
private

Definition at line 536 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEB(), analyzeEE(), and bookHistograms().

◆ meCompleteZS_

MonitorElement* EcalSelectiveReadoutValidation::meCompleteZS_
private

Definition at line 587 of file EcalSelectiveReadoutValidation.h.

◆ meCompleteZSCnt_

MonitorElement* EcalSelectiveReadoutValidation::meCompleteZSCnt_
private

Definition at line 599 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meCompleteZSMap_

MonitorElement* EcalSelectiveReadoutValidation::meCompleteZSMap_
private

Definition at line 591 of file EcalSelectiveReadoutValidation.h.

Referenced by bookHistograms(), and checkSrApplication().

◆ meCompleteZSRateMap_

MonitorElement* EcalSelectiveReadoutValidation::meCompleteZSRateMap_
private

Definition at line 595 of file EcalSelectiveReadoutValidation.h.

Referenced by bookHistograms(), and checkSrApplication().

◆ meDccHiVol_

MonitorElement* EcalSelectiveReadoutValidation::meDccHiVol_
private

Definition at line 525 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume(), and bookHistograms().

◆ meDccLiVol_

MonitorElement* EcalSelectiveReadoutValidation::meDccLiVol_
private

Definition at line 524 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume(), and bookHistograms().

◆ meDccVol_

MonitorElement* EcalSelectiveReadoutValidation::meDccVol_
private

The histograms

Definition at line 523 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume(), and bookHistograms().

◆ meDccVolFromData_

MonitorElement* EcalSelectiveReadoutValidation::meDccVolFromData_
private

Definition at line 526 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume(), and bookHistograms().

◆ meDroppedFRO_

MonitorElement* EcalSelectiveReadoutValidation::meDroppedFRO_
private

Definition at line 586 of file EcalSelectiveReadoutValidation.h.

◆ meDroppedFROCnt_

MonitorElement* EcalSelectiveReadoutValidation::meDroppedFROCnt_
private

Definition at line 598 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meDroppedFROMap_

MonitorElement* EcalSelectiveReadoutValidation::meDroppedFROMap_
private

Definition at line 590 of file EcalSelectiveReadoutValidation.h.

Referenced by bookHistograms(), and checkSrApplication().

◆ meDroppedFRORateMap_

MonitorElement* EcalSelectiveReadoutValidation::meDroppedFRORateMap_
private

Definition at line 594 of file EcalSelectiveReadoutValidation.h.

Referenced by bookHistograms(), and checkSrApplication().

◆ meEbEMean_

MonitorElement* EcalSelectiveReadoutValidation::meEbEMean_
private

Definition at line 545 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEB(), and bookHistograms().

◆ meEbFixedPayload_

MonitorElement* EcalSelectiveReadoutValidation::meEbFixedPayload_
private

Event payload that do not depend on the number of crystals passing the SR

Definition at line 612 of file EcalSelectiveReadoutValidation.h.

◆ meEbFullRoCnt_

MonitorElement* EcalSelectiveReadoutValidation::meEbFullRoCnt_
private

Definition at line 572 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEbHiZsFir_

MonitorElement* EcalSelectiveReadoutValidation::meEbHiZsFir_
private

Definition at line 576 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEB(), and bookHistograms().

◆ meEbIncompleteRUZsFir_

MonitorElement* EcalSelectiveReadoutValidation::meEbIncompleteRUZsFir_
private

Definition at line 577 of file EcalSelectiveReadoutValidation.h.

◆ meEbLiZsFir_

MonitorElement* EcalSelectiveReadoutValidation::meEbLiZsFir_
private

Definition at line 575 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEB(), and bookHistograms().

◆ meEbNoise_

MonitorElement* EcalSelectiveReadoutValidation::meEbNoise_
private

Definition at line 546 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEB(), and bookHistograms().

◆ meEbNoZsRecVsSimE_

MonitorElement* EcalSelectiveReadoutValidation::meEbNoZsRecVsSimE_
private

Definition at line 550 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEB(), and bookHistograms().

◆ meEbRecE_

MonitorElement* EcalSelectiveReadoutValidation::meEbRecE_
private

Definition at line 544 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEB(), and bookHistograms().

◆ meEbRecEHitXtal_

MonitorElement* EcalSelectiveReadoutValidation::meEbRecEHitXtal_
private

Definition at line 548 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEB(), and bookHistograms().

◆ meEbRecVsSimE_

MonitorElement* EcalSelectiveReadoutValidation::meEbRecVsSimE_
private

Definition at line 549 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEB(), and bookHistograms().

◆ meEbSimE_

MonitorElement* EcalSelectiveReadoutValidation::meEbSimE_
private

Definition at line 547 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEB(), and bookHistograms().

◆ meEbZsErrCnt_

MonitorElement* EcalSelectiveReadoutValidation::meEbZsErrCnt_
private

Definition at line 600 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEbZsErrType1Cnt_

MonitorElement* EcalSelectiveReadoutValidation::meEbZsErrType1Cnt_
private

Definition at line 603 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEeEMean_

MonitorElement* EcalSelectiveReadoutValidation::meEeEMean_
private

Definition at line 553 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEE(), and bookHistograms().

◆ meEeFixedPayload_

MonitorElement* EcalSelectiveReadoutValidation::meEeFixedPayload_
private

Definition at line 613 of file EcalSelectiveReadoutValidation.h.

◆ meEeFullRoCnt_

MonitorElement* EcalSelectiveReadoutValidation::meEeFullRoCnt_
private

Definition at line 573 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEeHiZsFir_

MonitorElement* EcalSelectiveReadoutValidation::meEeHiZsFir_
private

Definition at line 580 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEE(), and bookHistograms().

◆ meEeLiZsFir_

MonitorElement* EcalSelectiveReadoutValidation::meEeLiZsFir_
private

Definition at line 579 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEE(), and bookHistograms().

◆ meEeNoise_

MonitorElement* EcalSelectiveReadoutValidation::meEeNoise_
private

Definition at line 554 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEE(), and bookHistograms().

◆ meEeNoZsRecVsSimE_

MonitorElement* EcalSelectiveReadoutValidation::meEeNoZsRecVsSimE_
private

Definition at line 558 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEE(), and bookHistograms().

◆ meEeRecE_

MonitorElement* EcalSelectiveReadoutValidation::meEeRecE_
private

Definition at line 552 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEE(), and bookHistograms().

◆ meEeRecEHitXtal_

MonitorElement* EcalSelectiveReadoutValidation::meEeRecEHitXtal_
private

Definition at line 556 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEE(), and bookHistograms().

◆ meEeRecVsSimE_

MonitorElement* EcalSelectiveReadoutValidation::meEeRecVsSimE_
private

Definition at line 557 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEE(), and bookHistograms().

◆ meEeSimE_

MonitorElement* EcalSelectiveReadoutValidation::meEeSimE_
private

Definition at line 555 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEE(), and bookHistograms().

◆ meEeZsErrCnt_

MonitorElement* EcalSelectiveReadoutValidation::meEeZsErrCnt_
private

Definition at line 601 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEeZsErrType1Cnt_

MonitorElement* EcalSelectiveReadoutValidation::meEeZsErrType1Cnt_
private

Definition at line 604 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meFixedPayload_

MonitorElement* EcalSelectiveReadoutValidation::meFixedPayload_
private

Definition at line 614 of file EcalSelectiveReadoutValidation.h.

◆ meForcedRu_

MonitorElement* EcalSelectiveReadoutValidation::meForcedRu_
private

Definition at line 562 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEB(), analyzeEE(), and bookHistograms().

◆ meForcedTtf_

MonitorElement* EcalSelectiveReadoutValidation::meForcedTtf_
private

Definition at line 567 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeTP(), and bookHistograms().

◆ meFullRoCnt_

MonitorElement* EcalSelectiveReadoutValidation::meFullRoCnt_
private

Definition at line 571 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meFullRoRu_

MonitorElement* EcalSelectiveReadoutValidation::meFullRoRu_
private

Definition at line 560 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEB(), analyzeEE(), and bookHistograms().

◆ meHiTtf_

MonitorElement* EcalSelectiveReadoutValidation::meHiTtf_
private

Definition at line 566 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeTP(), and bookHistograms().

◆ meIncompleteFRO_

MonitorElement* EcalSelectiveReadoutValidation::meIncompleteFRO_
private

Definition at line 585 of file EcalSelectiveReadoutValidation.h.

◆ meIncompleteFROCnt_

MonitorElement* EcalSelectiveReadoutValidation::meIncompleteFROCnt_
private

Definition at line 597 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meIncompleteFROMap_

MonitorElement* EcalSelectiveReadoutValidation::meIncompleteFROMap_
private

Definition at line 589 of file EcalSelectiveReadoutValidation.h.

Referenced by bookHistograms(), and checkSrApplication().

◆ meIncompleteFRORateMap_

MonitorElement* EcalSelectiveReadoutValidation::meIncompleteFRORateMap_
private

Definition at line 593 of file EcalSelectiveReadoutValidation.h.

Referenced by bookHistograms(), and checkSrApplication().

◆ meL1aRate_

MonitorElement* EcalSelectiveReadoutValidation::meL1aRate_
private

Estimate of L1A rate

Definition at line 619 of file EcalSelectiveReadoutValidation.h.

Referenced by bookHistograms(), and dqmEndRun().

◆ meLiTtf_

MonitorElement* EcalSelectiveReadoutValidation::meLiTtf_
private

Definition at line 564 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeTP(), and bookHistograms().

◆ meMiTtf_

MonitorElement* EcalSelectiveReadoutValidation::meMiTtf_
private

Definition at line 565 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeTP(), and bookHistograms().

◆ meSRFlagsComputed_

MonitorElement* EcalSelectiveReadoutValidation::meSRFlagsComputed_
private

Definition at line 582 of file EcalSelectiveReadoutValidation.h.

◆ meSRFlagsConsistency_

MonitorElement* EcalSelectiveReadoutValidation::meSRFlagsConsistency_
private

Definition at line 583 of file EcalSelectiveReadoutValidation.h.

Referenced by bookHistograms(), and compareSrfColl().

◆ meSRFlagsFromData_

MonitorElement* EcalSelectiveReadoutValidation::meSRFlagsFromData_
private

Definition at line 581 of file EcalSelectiveReadoutValidation.h.

◆ meTp_

MonitorElement* EcalSelectiveReadoutValidation::meTp_
private

Definition at line 538 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeTP(), and bookHistograms().

◆ meTpMap_

MonitorElement* EcalSelectiveReadoutValidation::meTpMap_
private

Definition at line 569 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeTP(), and bookHistograms().

◆ meTpVsEtSum_

MonitorElement* EcalSelectiveReadoutValidation::meTpVsEtSum_
private

Definition at line 542 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeTP(), and bookHistograms().

◆ meTtf_

MonitorElement* EcalSelectiveReadoutValidation::meTtf_
private

Definition at line 539 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeTP(), and bookHistograms().

◆ meTtfVsEtSum_

MonitorElement* EcalSelectiveReadoutValidation::meTtfVsEtSum_
private

Definition at line 541 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeTP(), and bookHistograms().

◆ meTtfVsTp_

MonitorElement* EcalSelectiveReadoutValidation::meTtfVsTp_
private

Definition at line 540 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeTP(), and bookHistograms().

◆ meVol_

MonitorElement* EcalSelectiveReadoutValidation::meVol_
private

Definition at line 527 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume(), and bookHistograms().

◆ meVolB_

MonitorElement* EcalSelectiveReadoutValidation::meVolB_
private

Definition at line 528 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume(), and bookHistograms().

◆ meVolBHI_

MonitorElement* EcalSelectiveReadoutValidation::meVolBHI_
private

Definition at line 533 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume(), and bookHistograms().

◆ meVolBLI_

MonitorElement* EcalSelectiveReadoutValidation::meVolBLI_
private

Definition at line 530 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume(), and bookHistograms().

◆ meVolE_

MonitorElement* EcalSelectiveReadoutValidation::meVolE_
private

Definition at line 529 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume(), and bookHistograms().

◆ meVolEHI_

MonitorElement* EcalSelectiveReadoutValidation::meVolEHI_
private

Definition at line 534 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume(), and bookHistograms().

◆ meVolELI_

MonitorElement* EcalSelectiveReadoutValidation::meVolELI_
private

Definition at line 531 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume(), and bookHistograms().

◆ meVolHI_

MonitorElement* EcalSelectiveReadoutValidation::meVolHI_
private

Definition at line 535 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume(), and bookHistograms().

◆ meVolLI_

MonitorElement* EcalSelectiveReadoutValidation::meVolLI_
private

Definition at line 532 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume(), and bookHistograms().

◆ meZs1Ru_

MonitorElement* EcalSelectiveReadoutValidation::meZs1Ru_
private

Definition at line 561 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEB(), analyzeEE(), and bookHistograms().

◆ meZsErrCnt_

MonitorElement* EcalSelectiveReadoutValidation::meZsErrCnt_
private

Definition at line 602 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meZsErrType1Cnt_

MonitorElement* EcalSelectiveReadoutValidation::meZsErrType1Cnt_
private

Definition at line 605 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and bookHistograms().

◆ minDccId_

const int EcalSelectiveReadoutValidation::minDccId_ = 1
staticprivate

◆ nCompleteZS_

int EcalSelectiveReadoutValidation::nCompleteZS_
private

Counter of ZS-flagged RU fully read out.

Definition at line 628 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and checkSrApplication().

◆ nDccChs_

const unsigned EcalSelectiveReadoutValidation::nDccChs_ = 68
staticprivate

Number of input channels of a DCC.

Definition at line 404 of file EcalSelectiveReadoutValidation.h.

◆ nDccRus_

const int EcalSelectiveReadoutValidation::nDccRus_
staticprivate

number of RUs for each DCC

Definition at line 425 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume().

◆ nDccs_

const unsigned EcalSelectiveReadoutValidation::nDccs_ = 54
staticprivate

Total number of DCCs.

Definition at line 400 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume(), bookHistograms(), getEeEventSize(), and selectFedsForLog().

◆ nDroppedFRO_

int EcalSelectiveReadoutValidation::nDroppedFRO_
private

Counter of FRO-flagged RU dropped from data.

Definition at line 622 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and checkSrApplication().

◆ nEb_

int EcalSelectiveReadoutValidation::nEb_
private

ECAL barrel read channel count

Definition at line 701 of file EcalSelectiveReadoutValidation.h.

Referenced by anaDigi(), anaDigiInit(), and analyzeDataVolume().

◆ nEbDccs

const int EcalSelectiveReadoutValidation::nEbDccs = 36
staticprivate

number of DCCs for EB

Definition at line 413 of file EcalSelectiveReadoutValidation.h.

Referenced by getEbEventSize(), and getEeEventSize().

◆ nEbEta

const int EcalSelectiveReadoutValidation::nEbEta = 170
staticprivate

number of crystals along Eta in EB

Definition at line 431 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEB().

◆ nEbFROCnt_

int EcalSelectiveReadoutValidation::nEbFROCnt_
private

Counter of EB FRO-flagged RUs.

Definition at line 631 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and analyzeEB().

◆ nEbHI_

int EcalSelectiveReadoutValidation::nEbHI_
private

ECAL barrel high interest read channel count

Definition at line 721 of file EcalSelectiveReadoutValidation.h.

Referenced by anaDigi(), anaDigiInit(), and analyzeDataVolume().

◆ nEbLI_

int EcalSelectiveReadoutValidation::nEbLI_
private

ECAL barrel low interest read channel count

Definition at line 717 of file EcalSelectiveReadoutValidation.h.

Referenced by anaDigi(), anaDigiInit(), and analyzeDataVolume().

◆ nEbPhi

const int EcalSelectiveReadoutValidation::nEbPhi = 360
staticprivate

number of crystals along Phi in EB

Definition at line 434 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEB().

◆ nEbRus

const int EcalSelectiveReadoutValidation::nEbRus = 36 * 68
staticprivate

number of RUs for EB

Definition at line 419 of file EcalSelectiveReadoutValidation.h.

◆ nEbTtEta

const int EcalSelectiveReadoutValidation::nEbTtEta = 34
staticprivate

Number of Trigger Towers in barrel along Eta.

Definition at line 452 of file EcalSelectiveReadoutValidation.h.

◆ nEbZsErrors_

int EcalSelectiveReadoutValidation::nEbZsErrors_
private

Counter of EB ZS errors (LI channel below ZS threshold)

Definition at line 637 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and analyzeEB().

◆ nEbZsErrorsType1_

int EcalSelectiveReadoutValidation::nEbZsErrorsType1_
private

Counter of EB ZS errors of type 1: LI channel below ZS threshold and in a RU which was fully readout

Definition at line 644 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and analyzeEB().

◆ nEe_

int EcalSelectiveReadoutValidation::nEe_
private

ECAL endcap read channel count

Definition at line 705 of file EcalSelectiveReadoutValidation.h.

Referenced by anaDigi(), anaDigiInit(), and analyzeDataVolume().

◆ nEeDccs

const int EcalSelectiveReadoutValidation::nEeDccs = 18
staticprivate

number of DCCs for EE

Definition at line 416 of file EcalSelectiveReadoutValidation.h.

Referenced by getEbEventSize(), and getEeEventSize().

◆ nEeFROCnt_

int EcalSelectiveReadoutValidation::nEeFROCnt_
private

Counter of EE FRO-flagged RUs.

Definition at line 634 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and analyzeEE().

◆ nEeHI_

int EcalSelectiveReadoutValidation::nEeHI_
private

ECAL endcap high interest read channel count

Definition at line 713 of file EcalSelectiveReadoutValidation.h.

Referenced by anaDigi(), anaDigiInit(), and analyzeDataVolume().

◆ nEeLI_

int EcalSelectiveReadoutValidation::nEeLI_
private

ECAL endcap low interest read channel count

Definition at line 709 of file EcalSelectiveReadoutValidation.h.

Referenced by anaDigi(), anaDigiInit(), and analyzeDataVolume().

◆ nEeRus

const int EcalSelectiveReadoutValidation::nEeRus = 2 * (34 + 32 + 33 + 33 + 32 + 34 + 33 + 34 + 33)
staticprivate

number of RUs for EE

Definition at line 422 of file EcalSelectiveReadoutValidation.h.

◆ nEeX

const int EcalSelectiveReadoutValidation::nEeX = 100
staticprivate

EE crystal grid size along X.

Definition at line 437 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEE().

◆ nEeY

const int EcalSelectiveReadoutValidation::nEeY = 100
staticprivate

EE crystal grid size along Y.

Definition at line 440 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEE().

◆ nEeZsErrors_

int EcalSelectiveReadoutValidation::nEeZsErrors_
private

Counter of EE ZS errors (LI channel below ZS threshold)

Definition at line 640 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and analyzeEE().

◆ nEeZsErrorsType1_

int EcalSelectiveReadoutValidation::nEeZsErrorsType1_
private

Counter of EE ZS errors of tyoe 1: LI channel below ZS threshold and in a RU which was fully readout

Definition at line 648 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and analyzeEE().

◆ nEndcaps

const int EcalSelectiveReadoutValidation::nEndcaps = 2
staticprivate

number of endcaps

Definition at line 428 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEE().

◆ nHiPerDcc_

int EcalSelectiveReadoutValidation::nHiPerDcc_[nDccs_]
private

read-out ECAL Hiugh interest channel count for each DCC:

Definition at line 733 of file EcalSelectiveReadoutValidation.h.

Referenced by anaDigi(), anaDigiInit(), and analyzeDataVolume().

◆ nHiRuPerDcc_

int EcalSelectiveReadoutValidation::nHiRuPerDcc_[nDccs_]
private

Count for each DCC of HI RUs with at leat one channel read out:

Definition at line 745 of file EcalSelectiveReadoutValidation.h.

Referenced by anaDigi(), anaDigiInit(), and analyzeDataVolume().

◆ nIncompleteFRO_

int EcalSelectiveReadoutValidation::nIncompleteFRO_
private

Counter of FRO-flagged RU only partial data.

Definition at line 625 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and checkSrApplication().

◆ nLiPerDcc_

int EcalSelectiveReadoutValidation::nLiPerDcc_[nDccs_]
private

read-out ECAL Low interest channel count for each DCC:

Definition at line 729 of file EcalSelectiveReadoutValidation.h.

Referenced by anaDigi(), anaDigiInit(), and analyzeDataVolume().

◆ nLiRuPerDcc_

int EcalSelectiveReadoutValidation::nLiRuPerDcc_[nDccs_]
private

Count for each DCC of LI RUs with at leat one channel read out:

Definition at line 741 of file EcalSelectiveReadoutValidation.h.

Referenced by anaDigi(), anaDigiInit(), and analyzeDataVolume().

◆ nMaxXtalPerRu

const int EcalSelectiveReadoutValidation::nMaxXtalPerRu = 25
staticprivate

Number of crystals per Readout Unit excepted partial SCs.

Definition at line 461 of file EcalSelectiveReadoutValidation.h.

◆ nOneEeTtEta

const int EcalSelectiveReadoutValidation::nOneEeTtEta = 11
staticprivate

Number of Trigger Towers in an endcap along Eta.

Definition at line 449 of file EcalSelectiveReadoutValidation.h.

Referenced by dccCh().

◆ nPerDcc_

int EcalSelectiveReadoutValidation::nPerDcc_[nDccs_]
private

read-out ECAL channel count for each DCC:

Definition at line 725 of file EcalSelectiveReadoutValidation.h.

Referenced by anaDigi(), anaDigiInit(), and analyzeDataVolume().

◆ nPerRu_

int EcalSelectiveReadoutValidation::nPerRu_[nDccs_][nDccChs_]
private

Number of crystal read for each DCC channel (aka readout unit).

Definition at line 758 of file EcalSelectiveReadoutValidation.h.

Referenced by anaDigi(), anaDigiInit(), analyzeDataVolume(), and checkSrApplication().

◆ nRuPerDcc_

int EcalSelectiveReadoutValidation::nRuPerDcc_[nDccs_]
private

Count for each DCC of RUs with at leat one channel read out:

Definition at line 737 of file EcalSelectiveReadoutValidation.h.

Referenced by anaDigi(), anaDigiInit(), and getRuCount().

◆ nTtEta

const int EcalSelectiveReadoutValidation::nTtEta = 2 * nOneEeTtEta + nEbTtEta
staticprivate

Number of Trigger Towers along Eta.

Definition at line 455 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeTP(), and setTtEtSums().

◆ nTtPhi

const int EcalSelectiveReadoutValidation::nTtPhi = 72
staticprivate

Number of Trigger Towers along Phi.

Definition at line 458 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeTP(), and setTtEtSums().

◆ outputFile_

std::string EcalSelectiveReadoutValidation::outputFile_
private

Output file for histograms.

Definition at line 469 of file EcalSelectiveReadoutValidation.h.

Referenced by EcalSelectiveReadoutValidation().

◆ rad2deg

const double EcalSelectiveReadoutValidation::rad2deg = 45. / atan(1.)
staticprivate

Conversion factor from radian to degree.

Definition at line 463 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEB(), and analyzeEE().

◆ scEdge

const int EcalSelectiveReadoutValidation::scEdge = 5
staticprivate

Number of crystals along a supercrystal edge.

Definition at line 446 of file EcalSelectiveReadoutValidation.h.

Referenced by anaDigi().

◆ SkipInnerSC_

bool EcalSelectiveReadoutValidation::SkipInnerSC_
private

Permits to skip inner SC

Definition at line 783 of file EcalSelectiveReadoutValidation.h.

◆ srApplicationErrorLog_

std::ofstream EcalSelectiveReadoutValidation::srApplicationErrorLog_
private

Output ascii file for unconsistency between Xtals and RU Flags.

Definition at line 486 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEB(), analyzeEE(), checkSrApplication(), initAsciiFile(), and selectFedsForLog().

◆ srApplicationErrorLogFileName_

std::string EcalSelectiveReadoutValidation::srApplicationErrorLogFileName_
private

Output ascii file name for unconsistency between SRFs and actual number of read-out crystals.

Definition at line 480 of file EcalSelectiveReadoutValidation.h.

Referenced by EcalSelectiveReadoutValidation(), and initAsciiFile().

◆ srpAlgoErrorLog_

std::ofstream EcalSelectiveReadoutValidation::srpAlgoErrorLog_
private

Output ascii file for unconsistency on SR flags.

Definition at line 483 of file EcalSelectiveReadoutValidation.h.

Referenced by compareSrfColl(), initAsciiFile(), and selectFedsForLog().

◆ srpAlgoErrorLogFileName_

std::string EcalSelectiveReadoutValidation::srpAlgoErrorLogFileName_
private

Output ascii file name for unconsistency between SRFs read from data and SRF obtained by rerunning SRP algorithm on TTFs.

Definition at line 476 of file EcalSelectiveReadoutValidation.h.

Referenced by EcalSelectiveReadoutValidation(), and initAsciiFile().

◆ tmax

int64_t EcalSelectiveReadoutValidation::tmax
private

For L1A rate estimate

Definition at line 513 of file EcalSelectiveReadoutValidation.h.

Referenced by getL1aRate(), and updateL1aRate().

◆ tmin

int64_t EcalSelectiveReadoutValidation::tmin
private

Definition at line 514 of file EcalSelectiveReadoutValidation.h.

Referenced by getL1aRate(), and updateL1aRate().

◆ tpInGeV_

bool EcalSelectiveReadoutValidation::tpInGeV_
private

Switch for uncompressing TP value

Definition at line 681 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeTP(), and bookHistograms().

◆ tps_

CollHandle<EcalTrigPrimDigiCollection> EcalSelectiveReadoutValidation::tps_
private

◆ triggerTowerMap_

const EcalTrigTowerConstituentsMap* EcalSelectiveReadoutValidation::triggerTowerMap_
private

ECAL trigger tower mapping

Definition at line 652 of file EcalSelectiveReadoutValidation.h.

Referenced by dqmBeginRun(), readOutUnitOf(), and setTtEtSums().

◆ ttEtSums

double EcalSelectiveReadoutValidation::ttEtSums[nTtEta][nTtPhi]
private

Trigger tower Et computed as sum the crystal Et. Indices stands for the eta and phi TT index starting from 0 at eta minimum and at phi=0+ in std CMS coordinate system.

Definition at line 768 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeTP(), and setTtEtSums().

◆ useEventRate_

bool EcalSelectiveReadoutValidation::useEventRate_
private

Switch to fill histograms with event rate instead of event count. Applies only to some histograms.

Definition at line 691 of file EcalSelectiveReadoutValidation.h.

◆ verbose_

bool EcalSelectiveReadoutValidation::verbose_
private

Verbosity switch.

Definition at line 466 of file EcalSelectiveReadoutValidation.h.

Referenced by EcalSelectiveReadoutValidation().

◆ weights_

std::vector<double> EcalSelectiveReadoutValidation::weights_
private

Weights for amplitude local reconstruction

Definition at line 665 of file EcalSelectiveReadoutValidation.h.

Referenced by frame2Energy().

◆ withEbSimHit_

bool EcalSelectiveReadoutValidation::withEbSimHit_
private

Indicates if EB sim hits are available

Definition at line 809 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and analyzeEB().

◆ withEeSimHit_

bool EcalSelectiveReadoutValidation::withEeSimHit_
private

Indicates if EE sim hits are available

Definition at line 805 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and analyzeEE().

◆ zsErrorLog_

std::ofstream EcalSelectiveReadoutValidation::zsErrorLog_
private

File to log ZS and other errors.

Definition at line 489 of file EcalSelectiveReadoutValidation.h.

EcalSelectiveReadoutValidation::meEbRecE_
MonitorElement * meEbRecE_
Definition: EcalSelectiveReadoutValidation.h:544
EcalSelectiveReadoutValidation::meEeRecEHitXtal_
MonitorElement * meEeRecEHitXtal_
Definition: EcalSelectiveReadoutValidation.h:556
EcalSelectiveReadoutValidation::meVolE_
MonitorElement * meVolE_
Definition: EcalSelectiveReadoutValidation.h:529
EcalSelectiveReadoutValidation::subdet_t
subdet_t
distinguishes barral and endcap of ECAL.
Definition: EcalSelectiveReadoutValidation.h:55
EcalSelectiveReadoutValidation::rad2deg
static const double rad2deg
Conversion factor from radian to degree.
Definition: EcalSelectiveReadoutValidation.h:463
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
EcalSelectiveReadoutValidation::meDccVolFromData_
MonitorElement * meDccVolFromData_
Definition: EcalSelectiveReadoutValidation.h:526
EcalSelectiveReadoutValidation::getDccSrDependentPayload
double getDccSrDependentPayload(int iDcc0, double nReadRus, double nReadXtals) const
Definition: EcalSelectiveReadoutValidation.h:168
EcalSelectiveReadoutValidation::nEeZsErrors_
int nEeZsErrors_
Counter of EE ZS errors (LI channel below ZS threshold)
Definition: EcalSelectiveReadoutValidation.h:640
EcalSelectiveReadoutValidation::fill
void fill(MonitorElement *me, float x)
Definition: EcalSelectiveReadoutValidation.h:338
DDAxes::y
EcalSelectiveReadoutValidation::energiesEe_t::simE
double simE
Definition: EcalSelectiveReadoutValidation.h:386
EcalSelectiveReadoutValidation::meL1aRate_
MonitorElement * meL1aRate_
Definition: EcalSelectiveReadoutValidation.h:619
EESrFlag
Definition: EESrFlag.h:13
EcalSelectiveReadoutValidation::meTpVsEtSum_
MonitorElement * meTpVsEtSum_
Definition: EcalSelectiveReadoutValidation.h:542
EcalSelectiveReadoutValidation::nEe_
int nEe_
Definition: EcalSelectiveReadoutValidation.h:705
HLT_2018_cff.weights
weights
Definition: HLT_2018_cff.py:87167
EcalSelectiveReadoutValidation::meEbRecEHitXtal_
MonitorElement * meEbRecEHitXtal_
Definition: EcalSelectiveReadoutValidation.h:548
EcalSelectiveReadoutValidation::analyzeEE
void analyzeEE(const edm::Event &event, const edm::EventSetup &es)
Definition: EcalSelectiveReadoutValidation.cc:290
EcalSelectiveReadoutValidation::meEeNoise_
MonitorElement * meEeNoise_
Definition: EcalSelectiveReadoutValidation.h:554
EcalSelectiveReadoutValidation::meTp_
MonitorElement * meTp_
Definition: EcalSelectiveReadoutValidation.h:538
EcalSelectiveReadoutValidation::cIndex2iTtEta
int cIndex2iTtEta(int i) const
Definition: EcalSelectiveReadoutValidation.h:263
mps_fire.i
i
Definition: mps_fire.py:355
EcalTrigTowerDetId::iphi
int iphi() const
get the tower iphi
Definition: EcalTrigTowerDetId.h:52
edm::SortedCollection::const_iterator
std::vector< T >::const_iterator const_iterator
Definition: SortedCollection.h:80
Reference_intrackfit_cff.barrel
list barrel
Definition: Reference_intrackfit_cff.py:37
EcalSelectiveReadoutValidation::nDroppedFRO_
int nDroppedFRO_
Counter of FRO-flagged RU dropped from data.
Definition: EcalSelectiveReadoutValidation.h:622
EBSrFlag::id
const EcalTrigTowerDetId & id() const override
Definition: EBSrFlag.h:36
EcalSelectiveReadoutValidation::getEeEventSize
double getEeEventSize(double nReadXtals) const
Definition: EcalSelectiveReadoutValidation.cc:2087
EcalSelectiveReadoutValidation::energiesEb_t::phi
double phi
number of sim hits
Definition: EcalSelectiveReadoutValidation.h:378
dqmiodumpmetadata.n
n
Definition: dqmiodumpmetadata.py:28
EcalSelectiveReadoutValidation::getBytesPerCrystal
double getBytesPerCrystal() const
Definition: EcalSelectiveReadoutValidation.h:142
EcalSelectiveReadoutValidation::meSRFlagsConsistency_
MonitorElement * meSRFlagsConsistency_
Definition: EcalSelectiveReadoutValidation.h:583
hit::id
unsigned int id
Definition: SiStripHitEffFromCalibTree.cc:92
EcalTPGLutIdMap::EcalTPGLutMap
std::map< uint32_t, EcalTPGLut > EcalTPGLutMap
Definition: EcalTPGLutIdMap.h:12
EcalSelectiveReadoutValidation::meDccLiVol_
MonitorElement * meDccLiVol_
Definition: EcalSelectiveReadoutValidation.h:524
EcalSelectiveReadoutValidation::srpAlgoErrorLogFileName_
std::string srpAlgoErrorLogFileName_
Definition: EcalSelectiveReadoutValidation.h:476
EcalSelectiveReadoutValidation::compareSrfColl
void compareSrfColl(const edm::Event &event, T &srfFromData, T &computedSrf)
Definition: EcalSelectiveReadoutValidation.cc:2229
EcalSelectiveReadoutValidation::meHiTtf_
MonitorElement * meHiTtf_
Definition: EcalSelectiveReadoutValidation.h:566
EcalSelectiveReadoutValidation::nEndcaps
static const int nEndcaps
number of endcaps
Definition: EcalSelectiveReadoutValidation.h:428
EcalTPGGroups::EcalTPGGroupsMapItr
std::map< uint32_t, uint32_t >::const_iterator EcalTPGGroupsMapItr
Definition: EcalTPGGroups.h:20
EcalSelectiveReadoutValidation::getL1aRate
double getL1aRate() const
Definition: EcalSelectiveReadoutValidation.cc:212
EcalSelectiveReadoutValidation::meEbSimE_
MonitorElement * meEbSimE_
Definition: EcalSelectiveReadoutValidation.h:547
edm::DataFrameContainer::const_iterator
boost::transform_iterator< IterHelp, boost::counting_iterator< int > > const_iterator
Definition: DataFrameContainer.h:61
EcalSelectiveReadoutValidation::srpAlgoErrorLog_
std::ofstream srpAlgoErrorLog_
Output ascii file for unconsistency on SR flags.
Definition: EcalSelectiveReadoutValidation.h:483
EcalSelectiveReadoutValidation::nEeY
static const int nEeY
EE crystal grid size along Y.
Definition: EcalSelectiveReadoutValidation.h:440
groupFilesInBlocks.tt
int tt
Definition: groupFilesInBlocks.py:144
EcalSelectiveReadoutValidation::ebDigis_
CollHandle< EBDigiCollection > ebDigis_
Definition: EcalSelectiveReadoutValidation.h:494
EcalSelectiveReadoutValidation::nPerDcc_
int nPerDcc_[nDccs_]
Definition: EcalSelectiveReadoutValidation.h:725
simplePhotonAnalyzer_cfi.sample
sample
Definition: simplePhotonAnalyzer_cfi.py:12
EcalSelectiveReadoutValidation::meTpMap_
MonitorElement * meTpMap_
Definition: EcalSelectiveReadoutValidation.h:569
EcalSelectiveReadoutValidation::frame2EnergyForTp
double frame2EnergyForTp(const T &frame, int offset=0) const
Definition: EcalSelectiveReadoutValidation.cc:1943
EcalSelectiveReadoutValidation::meDccHiVol_
MonitorElement * meDccHiVol_
Definition: EcalSelectiveReadoutValidation.h:525
EcalSelectiveReadoutValidation::histList_
std::set< std::string > histList_
Definition: EcalSelectiveReadoutValidation.h:788
EcalSelectiveReadoutValidation::nEeDccs
static const int nEeDccs
number of DCCs for EE
Definition: EcalSelectiveReadoutValidation.h:416
EcalTrigTowerDetId::ietaAbs
int ietaAbs() const
get the absolute value of the tower ieta
Definition: EcalTrigTowerDetId.h:36
EcalSelectiveReadoutValidation::meLiTtf_
MonitorElement * meLiTtf_
Definition: EcalSelectiveReadoutValidation.h:564
EcalSelectiveReadoutValidation::elecMap_
const EcalElectronicsMapping * elecMap_
Definition: EcalSelectiveReadoutValidation.h:656
min
T min(T a, T b)
Definition: MathUtil.h:58
ecaldqm::zside
int zside(DetId const &)
Definition: EcalDQMCommonUtils.cc:189
EcalSelectiveReadoutValidation::energiesEb_t::eta
double eta
phi crystal position in degrees
Definition: EcalSelectiveReadoutValidation.h:379
CaloGeometryRecord
Definition: CaloGeometryRecord.h:30
EcalSelectiveReadoutValidation::nEeHI_
int nEeHI_
Definition: EcalSelectiveReadoutValidation.h:713
FEDRawDataCollection
Definition: FEDRawDataCollection.h:18
EcalSelectiveReadoutValidation::meTtfVsEtSum_
MonitorElement * meTtfVsEtSum_
Definition: EcalSelectiveReadoutValidation.h:541
EcalSelectiveReadoutValidation::ttEtSums
double ttEtSums[nTtEta][nTtPhi]
Definition: EcalSelectiveReadoutValidation.h:768
EBDetId
Definition: EBDetId.h:17
EcalScDetId::zside
int zside() const
Definition: EcalScDetId.h:64
EBDataFrame
Definition: EBDataFrame.h:11
EcalElectronicsMapping::getEcalScDetId
std::vector< EcalScDetId > getEcalScDetId(int DCCid, int DCC_Channel, bool ignoreSingleCrystal=true) const
Definition: EcalElectronicsMapping.cc:799
EcalSelectiveReadoutValidation::meEeLiZsFir_
MonitorElement * meEeLiZsFir_
Definition: EcalSelectiveReadoutValidation.h:579
EcalSelectiveReadoutValidation::meDroppedFROCnt_
MonitorElement * meDroppedFROCnt_
Definition: EcalSelectiveReadoutValidation.h:598
gather_cfg.cout
cout
Definition: gather_cfg.py:144
EcalSelectiveReadoutValidation::analyzeTP
void analyzeTP(const edm::Event &event, const edm::EventSetup &es)
Definition: EcalSelectiveReadoutValidation.cc:1486
EcalSelectiveReadoutValidation::triggerTowerMap_
const EcalTrigTowerConstituentsMap * triggerTowerMap_
Definition: EcalSelectiveReadoutValidation.h:652
EcalSrFlag::value
int value() const
Definition: EcalSrFlag.h:44
EcalSelectiveReadoutValidation::meIncompleteFROMap_
MonitorElement * meIncompleteFROMap_
Definition: EcalSelectiveReadoutValidation.h:589
EcalSelectiveReadoutValidation::meEbFullRoCnt_
MonitorElement * meEbFullRoCnt_
Definition: EcalSelectiveReadoutValidation.h:572
edm::LogInfo
Definition: MessageLogger.h:254
EcalSelectiveReadoutValidation::ebRecHits_
CollHandle< RecHitCollection > ebRecHits_
Definition: EcalSelectiveReadoutValidation.h:505
l1GtPatternGenerator_cfi.bx
bx
Definition: l1GtPatternGenerator_cfi.py:18
ecaldqm::ttId
unsigned ttId(DetId const &)
Definition: EcalDQMCommonUtils.cc:101
EcalSelectiveReadoutValidation::meVolBHI_
MonitorElement * meVolBHI_
Definition: EcalSelectiveReadoutValidation.h:533
EcalSelectiveReadoutValidation::iEta2cIndex
int iEta2cIndex(int iEta) const
Definition: EcalSelectiveReadoutValidation.h:212
EcalSelectiveReadoutValidation::meEbRecVsSimE_
MonitorElement * meEbRecVsSimE_
Definition: EcalSelectiveReadoutValidation.h:549
EcalSelectiveReadoutValidation::meEbEMean_
MonitorElement * meEbEMean_
Definition: EcalSelectiveReadoutValidation.h:545
EcalSelectiveReadoutValidation::meChOcc_
MonitorElement * meChOcc_
Definition: EcalSelectiveReadoutValidation.h:536
cms::cuda::assert
assert(be >=bs)
edm::second
U second(std::pair< T, U > const &p)
Definition: ParameterSet.cc:215
EcalSelectiveReadoutValidation::configFirWeights
void configFirWeights(const std::vector< double > &weightsForZsFIR)
Definition: EcalSelectiveReadoutValidation.cc:2161
edm::EDConsumerBase::consumesCollector
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
Definition: EDConsumerBase.cc:71
EcalSelectiveReadoutValidation::meEeEMean_
MonitorElement * meEeEMean_
Definition: EcalSelectiveReadoutValidation.h:553
EcalSelectiveReadoutValidation::checkSrApplication
void checkSrApplication(const edm::Event &event, T &srfs)
Definition: EcalSelectiveReadoutValidation.cc:2323
EcalSelectiveReadoutValidation::energiesEe_t::gain12
bool gain12
eta crystal position
Definition: EcalSelectiveReadoutValidation.h:393
dqm::legacy::MonitorElement
Definition: MonitorElement.h:461
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
DDAxes::x
compare.hists
hists
Definition: compare.py:319
indexGen.s2
s2
Definition: indexGen.py:107
EcalSelectiveReadoutValidation::meDroppedFROMap_
MonitorElement * meDroppedFROMap_
Definition: EcalSelectiveReadoutValidation.h:590
EcalTrigTowerDetId
Definition: EcalTrigTowerDetId.h:14
EcalElectronicsId::dccId
int dccId() const
get the DCC (Ecal Local DCC value not global one) id
Definition: EcalElectronicsId.h:31
findQualityFiles.v
v
Definition: findQualityFiles.py:179
EcalSelectiveReadoutValidation::initAsciiFile
void initAsciiFile()
Definition: EcalSelectiveReadoutValidation.cc:2207
EEDetId::ix
int ix() const
Definition: EEDetId.h:77
EcalTrigTowerDetId::zside
int zside() const
get the z-side of the tower (1/-1)
Definition: EcalTrigTowerDetId.h:30
EcalSelectiveReadoutValidation::meEeHiZsFir_
MonitorElement * meEeHiZsFir_
Definition: EcalSelectiveReadoutValidation.h:580
EcalSelectiveReadoutValidation::meZsErrType1Cnt_
MonitorElement * meZsErrType1Cnt_
Definition: EcalSelectiveReadoutValidation.h:605
fileinputsource_cfi.option
option
Definition: fileinputsource_cfi.py:87
dqmdumpme.first
first
Definition: dqmdumpme.py:55
EcalSelectiveReadoutValidation::ebSrFlags_
CollHandle< EBSrFlagCollection > ebSrFlags_
Definition: EcalSelectiveReadoutValidation.h:498
EcalBarrel
Definition: EcalSubdetector.h:10
EcalSelectiveReadoutValidation::nEeX
static const int nEeX
EE crystal grid size along X.
Definition: EcalSelectiveReadoutValidation.h:437
EcalSelectiveReadoutValidation::bookProfile2D
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="")
Definition: EcalSelectiveReadoutValidation.cc:2026
EcalSelectiveReadoutValidation::analyzeDataVolume
void analyzeDataVolume(const edm::Event &e, const edm::EventSetup &es)
Definition: EcalSelectiveReadoutValidation.cc:1609
EcalSelectiveReadoutValidation::xtalGraphY
int xtalGraphY(const EEDetId &id) const
Definition: EcalSelectiveReadoutValidation.h:872
EcalSelectiveReadoutValidation::meCompleteZSRateMap_
MonitorElement * meCompleteZSRateMap_
Definition: EcalSelectiveReadoutValidation.h:595
EcalElectronicsId::towerId
int towerId() const
get the tower id
Definition: EcalElectronicsId.h:33
funct::sin
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
EcalSelectiveReadoutValidation::withEeSimHit_
bool withEeSimHit_
Definition: EcalSelectiveReadoutValidation.h:805
EcalSelectiveReadoutValidation::energiesEb_t::simHit
int simHit
energy reconstructed from zero-suppressed digi
Definition: EcalSelectiveReadoutValidation.h:377
LEDCalibrationChannels.iphi
iphi
Definition: LEDCalibrationChannels.py:64
EESrFlag::id
const EcalScDetId & id() const override
Definition: EESrFlag.h:37
EcalSelectiveReadoutValidation::meDroppedFRORateMap_
MonitorElement * meDroppedFRORateMap_
Definition: EcalSelectiveReadoutValidation.h:594
EcalSelectiveReadoutValidation::anaDigi
void anaDigi(const T &frame, const U &srFlagColl)
Definition: EcalSelectiveReadoutValidation.cc:1663
EcalSelectiveReadoutValidation::meEeZsErrType1Cnt_
MonitorElement * meEeZsErrType1Cnt_
Definition: EcalSelectiveReadoutValidation.h:604
DetId
Definition: DetId.h:17
alignCSCRings.s
s
Definition: alignCSCRings.py:92
EcalSelectiveReadoutValidation::nEbLI_
int nEbLI_
Definition: EcalSelectiveReadoutValidation.h:717
EcalSelectiveReadoutValidation::iXY2cIndex
int iXY2cIndex(int iX) const
Definition: EcalSelectiveReadoutValidation.h:228
EcalSelectiveReadoutValidation::energiesEe_t::noZsRecE
double noZsRecE
sim hit energy sum
Definition: EcalSelectiveReadoutValidation.h:387
EcalSelectiveReadoutValidation::meVolB_
MonitorElement * meVolB_
Definition: EcalSelectiveReadoutValidation.h:528
EcalSrFlag::SRF_ZS1
static const int SRF_ZS1
Definition: EcalSrFlag.h:18
EcalSelectiveReadoutValidation::meCompleteZSCnt_
MonitorElement * meCompleteZSCnt_
Definition: EcalSelectiveReadoutValidation.h:599
EcalSelectiveReadoutValidation::dccCh
std::pair< int, int > dccCh(const DetId &xtalId) const
Definition: EcalSelectiveReadoutValidation.cc:1792
EcalSelectiveReadoutValidation::iTtPhi2cIndex
int iTtPhi2cIndex(int iPhi) const
Definition: EcalSelectiveReadoutValidation.h:254
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
EcalSelectiveReadoutValidation::getDccOverhead
double getDccOverhead(subdet_t subdet) const
Definition: EcalSelectiveReadoutValidation.h:133
EcalSelectiveReadoutValidation::meEbNoise_
MonitorElement * meEbNoise_
Definition: EcalSelectiveReadoutValidation.h:546
EcalSelectiveReadoutValidation::tmin
int64_t tmin
Definition: EcalSelectiveReadoutValidation.h:514
L1TOccupancyClient_cfi.ymax
ymax
Definition: L1TOccupancyClient_cfi.py:43
EcalSelectiveReadoutValidation::energiesEb_t::gain12
bool gain12
eta crystal position
Definition: EcalSelectiveReadoutValidation.h:380
EcalSelectiveReadoutValidation::nLiPerDcc_
int nLiPerDcc_[nDccs_]
Definition: EcalSelectiveReadoutValidation.h:729
EcalSelectiveReadoutValidation::fedRaw_
CollHandle< FEDRawDataCollection > fedRaw_
Definition: EcalSelectiveReadoutValidation.h:507
rpcPointValidation_cfi.simHit
simHit
Definition: rpcPointValidation_cfi.py:24
w
const double w
Definition: UKUtility.cc:23
EcalSrFlag::SRF_ZS2
static const int SRF_ZS2
Definition: EcalSrFlag.h:21
EcalSelectiveReadoutValidation::anaDigiInit
void anaDigiInit()
Definition: EcalSelectiveReadoutValidation.cc:1738
EBSrFlag
Definition: EBSrFlag.h:13
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
EcalSelectiveReadoutValidation::getEbEventSize
double getEbEventSize(double nReadXtals) const
Definition: EcalSelectiveReadoutValidation.cc:2077
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
EcalSelectiveReadoutValidation::meVolELI_
MonitorElement * meVolELI_
Definition: EcalSelectiveReadoutValidation.h:531
DDAxes::z
EcalScDetId
Definition: EcalScDetId.h:24
EcalSelectiveReadoutValidation::nOneEeTtEta
static const int nOneEeTtEta
Number of Trigger Towers in an endcap along Eta.
Definition: EcalSelectiveReadoutValidation.h:449
EcalSelectiveReadoutValidation::getRuCount
int getRuCount(int iDcc0) const
Definition: EcalSelectiveReadoutValidation.cc:1790
EcalSelectiveReadoutValidation::dccId
int dccId(const EcalScDetId &detId) const
Definition: EcalSelectiveReadoutValidation.cc:2281
EcalSelectiveReadoutValidation::RecHit
EcalRecHit RecHit
Definition: EcalSelectiveReadoutValidation.h:36
EcalSelectiveReadoutValidation::meMiTtf_
MonitorElement * meMiTtf_
Definition: EcalSelectiveReadoutValidation.h:565
EcalSelectiveReadoutValidation::nEbHI_
int nEbHI_
Definition: EcalSelectiveReadoutValidation.h:721
edm::ESHandle< CaloGeometry >
ADC
Definition: ZdcTBAnalysis.h:46
EcalSelectiveReadoutValidation::nEbDccs
static const int nEbDccs
number of DCCs for EB
Definition: EcalSelectiveReadoutValidation.h:413
EcalSelectiveReadoutValidation::meEbHiZsFir_
MonitorElement * meEbHiZsFir_
Definition: EcalSelectiveReadoutValidation.h:576
EcalSelectiveReadoutValidation::eeZsThr_
int eeZsThr_
Definition: EcalSelectiveReadoutValidation.h:677
EcalSelectiveReadoutValidation::l1aOfTmin
int64_t l1aOfTmin
Definition: EcalSelectiveReadoutValidation.h:515
EcalElectronicsMapping::getElectronicsId
EcalElectronicsId getElectronicsId(const DetId &id) const
Get the electronics id for this det id.
Definition: EcalElectronicsMapping.cc:324
EcalSelectiveReadoutValidation::nEbZsErrors_
int nEbZsErrors_
Counter of EB ZS errors (LI channel below ZS threshold)
Definition: EcalSelectiveReadoutValidation.h:637
EcalSelectiveReadoutValidation::meVolEHI_
MonitorElement * meVolEHI_
Definition: EcalSelectiveReadoutValidation.h:534
LaserClient_cfi.nbins
nbins
Definition: LaserClient_cfi.py:51
EcalSelectiveReadoutValidation::readAllCollections
void readAllCollections(const edm::Event &e)
Definition: EcalSelectiveReadoutValidation.cc:2050
EcalSelectiveReadoutValidation::ebZsThr_
int ebZsThr_
Definition: EcalSelectiveReadoutValidation.h:673
theta
Geom::Theta< T > theta() const
Definition: Basic3DVectorLD.h:150
EcalSelectiveReadoutValidation::book2D
MonitorElement * book2D(DQMStore::IBooker &, const std::string &name, const std::string &title, int nxbins, double xmin, double xmax, int nybins, double ymin, double ymax)
Definition: EcalSelectiveReadoutValidation.cc:1997
EcalSelectiveReadoutValidation::frame2Energy
double frame2Energy(const EcalDataFrame &frame) const
Definition: EcalSelectiveReadoutValidation.cc:1756
EcalSelectiveReadoutValidation::eeSrFlags_
CollHandle< EESrFlagCollection > eeSrFlags_
Definition: EcalSelectiveReadoutValidation.h:499
EcalSelectiveReadoutValidation::selectFedsForLog
void selectFedsForLog()
Definition: EcalSelectiveReadoutValidation.cc:2292
EcalSelectiveReadoutValidation::meEbZsErrCnt_
MonitorElement * meEbZsErrCnt_
Definition: EcalSelectiveReadoutValidation.h:600
Point3DBase< float, GlobalTag >
OrderedSet.t
t
Definition: OrderedSet.py:90
b
double b
Definition: hdecay.h:118
EcalElectronicsId
Ecal readout channel identification [32:20] Unused (so far) [19:13] DCC id [12:6] tower [5:3] strip [...
Definition: EcalElectronicsId.h:18
EcalSelectiveReadoutValidation::meEbLiZsFir_
MonitorElement * meEbLiZsFir_
Definition: EcalSelectiveReadoutValidation.h:575
EcalSelectiveReadoutValidation::registerHist
bool registerHist(const std::string &name, const std::string &title)
Definition: EcalSelectiveReadoutValidation.cc:2045
EcalSelectiveReadoutValidation::cIndex2iPhi
int cIndex2iPhi(int i) const
Definition: EcalSelectiveReadoutValidation.h:240
FEDRawDataCollection::FEDData
const FEDRawData & FEDData(int fedid) const
retrieve data for fed
Definition: FEDRawDataCollection.cc:19
EcalSelectiveReadoutValidation::setTtEtSums
void setTtEtSums(const edm::EventSetup &es, const EBDigiCollection &ebDigis, const EEDigiCollection &eeDigis)
Definition: EcalSelectiveReadoutValidation.cc:1866
EcalSelectiveReadoutValidation::tpInGeV_
bool tpInGeV_
Definition: EcalSelectiveReadoutValidation.h:681
DetId::subdetId
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum)
Definition: DetId.h:48
EEDetId
Definition: EEDetId.h:14
EcalSelectiveReadoutValidation::energiesEb_t::noZsRecE
double noZsRecE
sim hit energy sum
Definition: EcalSelectiveReadoutValidation.h:374
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
EcalEndcap
Definition: EcalSubdetector.h:10
EcalSelectiveReadoutValidation::minDccId_
static const int minDccId_
Definition: EcalSelectiveReadoutValidation.h:407
edm::LogWarning
Definition: MessageLogger.h:141
EcalSelectiveReadoutValidation::nEbEta
static const int nEbEta
number of crystals along Eta in EB
Definition: EcalSelectiveReadoutValidation.h:431
EcalElectronicsMapping::getDCCandSC
std::pair< int, int > getDCCandSC(EcalScDetId id) const
Definition: EcalElectronicsMapping.cc:761
EcalSelectiveReadoutValidation::bookProfile
MonitorElement * bookProfile(DQMStore::IBooker &, const std::string &name, const std::string &title, int nbins, double xmin, double xmax)
Definition: EcalSelectiveReadoutValidation.cc:2015
EcalTPGPhysicsConst::getMap
const std::map< uint32_t, Item > & getMap() const
Definition: EcalTPGPhysicsConst.h:27
LEDCalibrationChannels.ieta
ieta
Definition: LEDCalibrationChannels.py:63
EcalSelectiveReadoutValidation::nRuPerDcc_
int nRuPerDcc_[nDccs_]
Definition: EcalSelectiveReadoutValidation.h:737
EcalSelectiveReadoutValidation::nLiRuPerDcc_
int nLiRuPerDcc_[nDccs_]
Definition: EcalSelectiveReadoutValidation.h:741
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:670
edm::LogError
Definition: MessageLogger.h:183
a
double a
Definition: hdecay.h:119
EcalSelectiveReadoutValidation::meVolLI_
MonitorElement * meVolLI_
Definition: EcalSelectiveReadoutValidation.h:532
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
EcalSelectiveReadoutValidation::nHiPerDcc_
int nHiPerDcc_[nDccs_]
Definition: EcalSelectiveReadoutValidation.h:733
EcalSelectiveReadoutValidation::isRuComplete_
bool isRuComplete_[nDccs_][nDccChs_]
Definition: EcalSelectiveReadoutValidation.h:754
EcalSelectiveReadoutValidation::firWeights_
std::vector< int > firWeights_
Definition: EcalSelectiveReadoutValidation.h:669
EcalSelectiveReadoutValidation::ievt_
int ievt_
Definition: EcalSelectiveReadoutValidation.h:762
EcalSelectiveReadoutValidation::iPhi2cIndex
int iPhi2cIndex(int iPhi) const
Definition: EcalSelectiveReadoutValidation.h:217
EcalSrFlag
Definition: EcalSrFlag.h:10
EcalSelectiveReadoutValidation::meIncompleteFRORateMap_
MonitorElement * meIncompleteFRORateMap_
Definition: EcalSelectiveReadoutValidation.h:593
EcalSelectiveReadoutValidation::eeRecHits_
CollHandle< RecHitCollection > eeRecHits_
Definition: EcalSelectiveReadoutValidation.h:506
EcalSelectiveReadoutValidation::eeComputedSrFlags_
CollHandle< EESrFlagCollection > eeComputedSrFlags_
Definition: EcalSelectiveReadoutValidation.h:501
EcalSelectiveReadoutValidation::nTtEta
static const int nTtEta
Number of Trigger Towers along Eta.
Definition: EcalSelectiveReadoutValidation.h:455
PV3DBase::eta
T eta() const
Definition: PV3DBase.h:73
EcalSelectiveReadoutValidation::ruGraphX
int ruGraphX(const EcalScDetId &id) const
Definition: EcalSelectiveReadoutValidation.h:862
EcalSelectiveReadoutValidation::energiesEb_t::simE
double simE
Definition: EcalSelectiveReadoutValidation.h:373
EcalSelectiveReadoutValidation::maxDccId_
static const int maxDccId_
Definition: EcalSelectiveReadoutValidation.h:410
EcalSelectiveReadoutValidation::getDccEventSize
double getDccEventSize(int iDcc0, double nReadXtals) const
Definition: EcalSelectiveReadoutValidation.h:149
createfilelist.int
int
Definition: createfilelist.py:10
EcalSelectiveReadoutValidation::nTtPhi
static const int nTtPhi
Number of Trigger Towers along Phi.
Definition: EcalSelectiveReadoutValidation.h:458
EcalSelectiveReadoutValidation::meEeNoZsRecVsSimE_
MonitorElement * meEeNoZsRecVsSimE_
Definition: EcalSelectiveReadoutValidation.h:558
EcalSelectiveReadoutValidation::eeDigis_
CollHandle< EEDigiCollection > eeDigis_
Definition: EcalSelectiveReadoutValidation.h:495
EcalSelectiveReadoutValidation::nEb_
int nEb_
Definition: EcalSelectiveReadoutValidation.h:701
phase1PixelTopology::xOffset
constexpr int16_t xOffset
Definition: phase1PixelTopology.h:18
EcalScDetId::iy
int iy() const
Definition: EcalScDetId.h:76
edm::DataFrameContainer::begin
const_iterator begin() const
The iterator returned can not safely be used across threads.
Definition: DataFrameContainer.h:149
EcalSelectiveReadoutValidation::outputFile_
std::string outputFile_
Output file for histograms.
Definition: EcalSelectiveReadoutValidation.h:469
EcalTPGGroups::getMap
const EcalTPGGroupsMap & getMap() const
Definition: EcalTPGGroups.h:25
dqm::impl::MonitorElement::getTProfile
virtual TProfile * getTProfile()
Definition: MonitorElement.cc:1016
EcalSelectiveReadoutValidation::meEbNoZsRecVsSimE_
MonitorElement * meEbNoZsRecVsSimE_
Definition: EcalSelectiveReadoutValidation.h:550
EgHLTOffHistBins_cfi.et
et
Definition: EgHLTOffHistBins_cfi.py:8
CaloSubdetectorGeometry::getGeometry
virtual std::shared_ptr< const CaloCellGeometry > getGeometry(const DetId &id) const
Get the cell geometry of a given detector id. Should return false if not found.
Definition: CaloSubdetectorGeometry.cc:36
EcalSelectiveReadoutValidation::useEventRate_
bool useEventRate_
Definition: EcalSelectiveReadoutValidation.h:691
PCaloHit
Definition: PCaloHit.h:8
EcalSelectiveReadoutValidation::updateL1aRate
void updateL1aRate(const edm::Event &event)
Definition: EcalSelectiveReadoutValidation.cc:194
EcalSelectiveReadoutValidation::logSrpAlgoErrors_
bool logSrpAlgoErrors_
Definition: EcalSelectiveReadoutValidation.h:833
EcalSelectiveReadoutValidation::energiesEe_t::recE
double recE
energy reconstructed from unsuppressed digi
Definition: EcalSelectiveReadoutValidation.h:388
DetId::Ecal
Definition: DetId.h:27
EcalSelectiveReadoutValidation::nCompleteZS_
int nCompleteZS_
Counter of ZS-flagged RU fully read out.
Definition: EcalSelectiveReadoutValidation.h:628
get
#define get
EcalSelectiveReadoutValidation::meEbZsErrType1Cnt_
MonitorElement * meEbZsErrType1Cnt_
Definition: EcalSelectiveReadoutValidation.h:603
EcalTrigTowerDetId::ieta
int ieta() const
get the tower ieta
Definition: EcalTrigTowerDetId.h:44
visDQMUpload.buf
buf
Definition: visDQMUpload.py:154
EcalSelectiveReadoutValidation::dccZsFIR
static int dccZsFIR(const EcalDataFrame &frame, const std::vector< int > &firWeights, int firstFIRSample, bool *saturated=nullptr)
Definition: EcalSelectiveReadoutValidation.cc:2101
FEDRawData::size
size_t size() const
Lenght of the data buffer in bytes.
Definition: FEDRawData.h:45
EcalMGPASample
Definition: EcalMGPASample.h:22
EcalSelectiveReadoutValidation::nEeFROCnt_
int nEeFROCnt_
Counter of EE FRO-flagged RUs.
Definition: EcalSelectiveReadoutValidation.h:634
EcalTrigTowerConstituentsMap::towerOf
EcalTrigTowerDetId towerOf(const DetId &id) const
Get the tower id for this det id (or null if not known)
Definition: EcalTrigTowerConstituentsMap.cc:11
EcalSelectiveReadoutValidation::meEeSimE_
MonitorElement * meEeSimE_
Definition: EcalSelectiveReadoutValidation.h:555
EcalSelectiveReadoutValidation::EE
Definition: EcalSelectiveReadoutValidation.h:55
overlapproblemtsosanalyzer_cfi.title
title
Definition: overlapproblemtsosanalyzer_cfi.py:7
EcalSelectiveReadoutValidation::nEeZsErrorsType1_
int nEeZsErrorsType1_
Definition: EcalSelectiveReadoutValidation.h:648
EcalSelectiveReadoutValidation::logSrApplicationErrors_
bool logSrApplicationErrors_
Definition: EcalSelectiveReadoutValidation.h:838
EcalSelectiveReadoutValidation::withEbSimHit_
bool withEbSimHit_
Definition: EcalSelectiveReadoutValidation.h:809
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
EcalSelectiveReadoutValidation::nDccs_
static const unsigned nDccs_
Total number of DCCs.
Definition: EcalSelectiveReadoutValidation.h:400
ecaldqm::towerId
unsigned towerId(DetId const &)
Definition: EcalDQMCommonUtils.cc:79
EcalSelectiveReadoutValidation::meFullRoRu_
MonitorElement * meFullRoRu_
Definition: EcalSelectiveReadoutValidation.h:560
EcalTPGPhysicsConstMap
std::map< uint32_t, EcalTPGPhysicsConst::Item > EcalTPGPhysicsConstMap
Definition: EcalTPGPhysicsConst.h:36
EcalSelectiveReadoutValidation::eeSimHits_
CollHandle< std::vector< PCaloHit > > eeSimHits_
Definition: EcalSelectiveReadoutValidation.h:503
EcalTPGLutIdMapRcd
Definition: EcalTPGLutIdMapRcd.h:5
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
EcalSelectiveReadoutValidation::nEbZsErrorsType1_
int nEbZsErrorsType1_
Definition: EcalSelectiveReadoutValidation.h:644
EcalTriggerTower
Definition: EcalSubdetector.h:10
EcalMappingRcd
Definition: EcalMappingRcd.h:15
L1TOccupancyClient_cfi.ymin
ymin
Definition: L1TOccupancyClient_cfi.py:43
EcalSelectiveReadoutValidation::weights_
std::vector< double > weights_
Definition: EcalSelectiveReadoutValidation.h:665
EcalSelectiveReadoutValidation::iTtEta2cIndex
int iTtEta2cIndex(int iEta) const
Definition: EcalSelectiveReadoutValidation.h:247
EcalSelectiveReadoutValidation::eeRuActive_
bool eeRuActive_[nEndcaps][nEeX/scEdge][nEeY/scEdge]
Definition: EcalSelectiveReadoutValidation.h:751
EcalSelectiveReadoutValidation::meZs1Ru_
MonitorElement * meZs1Ru_
Definition: EcalSelectiveReadoutValidation.h:561
EcalSrFlag::SRF_FULL
static const int SRF_FULL
Definition: EcalSrFlag.h:24
EcalSelectiveReadoutValidation::meEeRecVsSimE_
MonitorElement * meEeRecVsSimE_
Definition: EcalSelectiveReadoutValidation.h:557
EcalSelectiveReadoutValidation::ebComputedSrFlags_
CollHandle< EBSrFlagCollection > ebComputedSrFlags_
Definition: EcalSelectiveReadoutValidation.h:500
EcalSelectiveReadoutValidation::bookFloat
MonitorElement * bookFloat(DQMStore::IBooker &, const std::string &name)
Definition: EcalSelectiveReadoutValidation.cc:1975
EcalSelectiveReadoutValidation::logErrForDccs_
std::vector< bool > logErrForDccs_
Definition: EcalSelectiveReadoutValidation.h:697
EcalSelectiveReadoutValidation::ebEnergies
energiesEb_t ebEnergies[nEbEta][nEbPhi]
Definition: EcalSelectiveReadoutValidation.h:773
EcalSelectiveReadoutValidation::energiesEe_t::eta
double eta
phi crystal position in degrees
Definition: EcalSelectiveReadoutValidation.h:392
EcalSelectiveReadoutValidation::energiesEe_t::simHit
int simHit
energy reconstructed from zero-suppressed digi
Definition: EcalSelectiveReadoutValidation.h:390
TrackerOfflineValidation_Dqm_cff.xmax
xmax
Definition: TrackerOfflineValidation_Dqm_cff.py:11
amptDefault_cfi.frame
frame
Definition: amptDefault_cfi.py:12
EcalSelectiveReadoutValidation::nEeLI_
int nEeLI_
Definition: EcalSelectiveReadoutValidation.h:709
EcalSelectiveReadoutValidation::scEdge
static const int scEdge
Number of crystals along a supercrystal edge.
Definition: EcalSelectiveReadoutValidation.h:446
EcalSelectiveReadoutValidation::xtalGraphX
int xtalGraphX(const EEDetId &id) const
Definition: EcalSelectiveReadoutValidation.h:870
Exception
Definition: hltDiff.cc:246
CollHandle::read
void read(const edm::Event &event)
Definition: CollHandle.h:58
EcalSelectiveReadoutValidation::getFIRWeights
static std::vector< int > getFIRWeights(const std::vector< double > &normalizedWeights)
Definition: EcalSelectiveReadoutValidation.cc:2148
EcalSelectiveReadoutValidation::ebTtEdge
static const int ebTtEdge
Number of crystals along an EB TT.
Definition: EcalSelectiveReadoutValidation.h:443
CollHandle::setToken
void setToken(edm::ConsumesCollector &collector)
Definition: CollHandle.h:48
EcalSelectiveReadoutValidation::histDir_
std::string histDir_
Definition: EcalSelectiveReadoutValidation.h:796
EcalSelectiveReadoutValidation::book1D
MonitorElement * book1D(DQMStore::IBooker &, const std::string &name, const std::string &title, int nbins, double xmin, double xmax)
Definition: EcalSelectiveReadoutValidation.cc:1986
dqm::implementation::IBooker::UseRunScope
UseScope< MonitorElementData::Scope::RUN > UseRunScope
Definition: DQMStore.h:464
EcalSelectiveReadoutValidation::nDccRus_
static const int nDccRus_[nDccs_]
number of RUs for each DCC
Definition: EcalSelectiveReadoutValidation.h:425
EcalSelectiveReadoutValidation::cIndex2iEta
int cIndex2iEta(int i) const
Definition: EcalSelectiveReadoutValidation.h:236
EcalSelectiveReadoutValidation::meIncompleteFROCnt_
MonitorElement * meIncompleteFROCnt_
Definition: EcalSelectiveReadoutValidation.h:597
EcalTPGLutIdMap::EcalTPGLutMapItr
std::map< uint32_t, EcalTPGLut >::const_iterator EcalTPGLutMapItr
Definition: EcalTPGLutIdMap.h:13
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
EcalSelectiveReadoutValidation::firstFIRSample_
int firstFIRSample_
Definition: EcalSelectiveReadoutValidation.h:686
CaloSubdetectorGeometry
Definition: CaloSubdetectorGeometry.h:22
EcalSelectiveReadoutValidation::l1aOfTmax
int64_t l1aOfTmax
Definition: EcalSelectiveReadoutValidation.h:516
EcalSelectiveReadoutValidation::nEbFROCnt_
int nEbFROCnt_
Counter of EB FRO-flagged RUs.
Definition: EcalSelectiveReadoutValidation.h:631
EcalSelectiveReadoutValidation::kByte_
static const int kByte_
number of bytes in 1 kByte:
Definition: EcalSelectiveReadoutValidation.h:397
EcalSelectiveReadoutValidation::meZsErrCnt_
MonitorElement * meZsErrCnt_
Definition: EcalSelectiveReadoutValidation.h:602
EcalSelectiveReadoutValidation::ebSimHits_
CollHandle< std::vector< PCaloHit > > ebSimHits_
Definition: EcalSelectiveReadoutValidation.h:502
dqm-mbProfile.log
log
Definition: dqm-mbProfile.py:17
EcalSelectiveReadoutValidation::getCrystalCount
int getCrystalCount(int iDcc, int iDccCh)
Definition: EcalSelectiveReadoutValidation.cc:2370
EcalSelectiveReadoutValidation::meFullRoCnt_
MonitorElement * meFullRoCnt_
Definition: EcalSelectiveReadoutValidation.h:571
EcalSelectiveReadoutValidation::srApplicationErrorLog_
std::ofstream srApplicationErrorLog_
Output ascii file for unconsistency between Xtals and RU Flags.
Definition: EcalSelectiveReadoutValidation.h:486
EcalSelectiveReadoutValidation::printAvailableHists
void printAvailableHists()
Definition: EcalSelectiveReadoutValidation.cc:2067
MillePedeFileConverter_cfg.out
out
Definition: MillePedeFileConverter_cfg.py:31
L1TowerCalibrationProducer_cfi.iEta
iEta
Definition: L1TowerCalibrationProducer_cfi.py:60
EcalSelectiveReadoutValidation::localReco_
bool localReco_
Definition: EcalSelectiveReadoutValidation.h:661
EcalSelectiveReadoutValidation::srApplicationErrorLogFileName_
std::string srApplicationErrorLogFileName_
Definition: EcalSelectiveReadoutValidation.h:480
EcalSelectiveReadoutValidation::nPerRu_
int nPerRu_[nDccs_][nDccChs_]
Definition: EcalSelectiveReadoutValidation.h:758
zw
auto zw(V v) -> Vec2< typename std::remove_reference< decltype(v[0])>::type >
Definition: ExtVec.h:75
mps_fire.result
result
Definition: mps_fire.py:303
cms::Exception
Definition: Exception.h:70
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
EcalSelectiveReadoutValidation::meForcedRu_
MonitorElement * meForcedRu_
Definition: EcalSelectiveReadoutValidation.h:562
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:671
EcalSelectiveReadoutValidation::meForcedTtf_
MonitorElement * meForcedTtf_
Definition: EcalSelectiveReadoutValidation.h:567
ecalMGPA::gainId
constexpr int gainId(sample_type sample)
get the gainId (2 bits)
Definition: EcalMGPASample.h:13
EcalSelectiveReadoutValidation::meDccVol_
MonitorElement * meDccVol_
Definition: EcalSelectiveReadoutValidation.h:523
EcalSelectiveReadoutValidation::nIncompleteFRO_
int nIncompleteFRO_
Counter of FRO-flagged RU only partial data.
Definition: EcalSelectiveReadoutValidation.h:625
EcalSelectiveReadoutValidation::allHists_
bool allHists_
Definition: EcalSelectiveReadoutValidation.h:792
EcalSelectiveReadoutValidation::tmax
int64_t tmax
Definition: EcalSelectiveReadoutValidation.h:513
TrackerOfflineValidation_Dqm_cff.xmin
xmin
Definition: TrackerOfflineValidation_Dqm_cff.py:10
EcalSelectiveReadoutValidation::meVolHI_
MonitorElement * meVolHI_
Definition: EcalSelectiveReadoutValidation.h:535
EcalSelectiveReadoutValidation::ebNoZsDigis_
CollHandle< EBDigiCollection > ebNoZsDigis_
Definition: EcalSelectiveReadoutValidation.h:496
EcalTPGLutGroupRcd
Definition: EcalTPGLutGroupRcd.h:5
hlt_dqm_clientPB-live_cfg.me
me
Definition: hlt_dqm_clientPB-live_cfg.py:56
EcalSelectiveReadoutValidation::eeNoZsDigis_
CollHandle< EEDigiCollection > eeNoZsDigis_
Definition: EcalSelectiveReadoutValidation.h:497
EcalSelectiveReadoutValidation::ebRuActive_
bool ebRuActive_[nEbEta/ebTtEdge][nEbPhi/ebTtEdge]
Definition: EcalSelectiveReadoutValidation.h:750
EcalSelectiveReadoutValidation::meTtf_
MonitorElement * meTtf_
Definition: EcalSelectiveReadoutValidation.h:539
EcalSrFlag::SRF_FORCED_MASK
static const int SRF_FORCED_MASK
Definition: EcalSrFlag.h:29
EcalSelectiveReadoutValidation::meTtfVsTp_
MonitorElement * meTtfVsTp_
Definition: EcalSelectiveReadoutValidation.h:540
EcalSelectiveReadoutValidation::energiesEe_t::phi
double phi
number of sim hits
Definition: EcalSelectiveReadoutValidation.h:391
event
Definition: event.py:1
hltrates_dqm_sourceclient-live_cfg.offset
offset
Definition: hltrates_dqm_sourceclient-live_cfg.py:78
EEDataFrame
Definition: EEDataFrame.h:12
EcalSelectiveReadoutValidation::meEeRecE_
MonitorElement * meEeRecE_
Definition: EcalSelectiveReadoutValidation.h:552
EcalSelectiveReadoutValidation::cIndex2iTtPhi
int cIndex2iTtPhi(int i) const
Definition: EcalSelectiveReadoutValidation.h:267
EcalSelectiveReadoutValidation::readOutUnitOf
EcalTrigTowerDetId readOutUnitOf(const EBDetId &xtalId) const
Definition: EcalSelectiveReadoutValidation.cc:1853
pileupReCalc_HLTpaths.trunc
trunc
Definition: pileupReCalc_HLTpaths.py:144
EcalTPGPhysicsConstMapIterator
std::map< uint32_t, EcalTPGPhysicsConst::Item >::const_iterator EcalTPGPhysicsConstMapIterator
Definition: EcalTPGPhysicsConst.h:37
EcalSelectiveReadoutValidation::nEbPhi
static const int nEbPhi
number of crystals along Phi in EB
Definition: EcalSelectiveReadoutValidation.h:434
EcalSelectiveReadoutValidation::meEeZsErrCnt_
MonitorElement * meEeZsErrCnt_
Definition: EcalSelectiveReadoutValidation.h:601
EcalSelectiveReadoutValidation::meCompleteZSMap_
MonitorElement * meCompleteZSMap_
Definition: EcalSelectiveReadoutValidation.h:591
SimL1EmulatorDM_cff.eeDigis
eeDigis
Definition: SimL1EmulatorDM_cff.py:18
TauDecayModes.dec
dec
Definition: TauDecayModes.py:143
EcalScDetId::ix
int ix() const
Definition: EcalScDetId.h:70
EcalSelectiveReadoutValidation::energiesEb_t::recE
double recE
energy reconstructed from unsuppressed digi
Definition: EcalSelectiveReadoutValidation.h:375
EcalTPGPhysicsConstRcd
Definition: EcalTPGPhysicsConstRcd.h:5
EcalSelectiveReadoutValidation::ruGraphY
int ruGraphY(const EcalScDetId &id) const
Definition: EcalSelectiveReadoutValidation.h:864
edm::DataFrameContainer::end
const_iterator end() const
Definition: DataFrameContainer.h:152
EcalSelectiveReadoutValidation::meEeFullRoCnt_
MonitorElement * meEeFullRoCnt_
Definition: EcalSelectiveReadoutValidation.h:573
edm::InputTag
Definition: InputTag.h:15
edm::ConsumesCollector
Definition: ConsumesCollector.h:39
PV3DBase::phi
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
EcalTPGLutIdMap::getMap
const EcalTPGLutMap & getMap() const
Definition: EcalTPGLutIdMap.h:18
IdealGeometryRecord
Definition: IdealGeometryRecord.h:27
EcalSelectiveReadoutValidation::meVol_
MonitorElement * meVol_
Definition: EcalSelectiveReadoutValidation.h:527
EcalSelectiveReadoutValidation::eeEnergies
energiesEe_t eeEnergies[nEndcaps][nEeX][nEeY]
Definition: EcalSelectiveReadoutValidation.h:779
hit
Definition: SiStripHitEffFromCalibTree.cc:88
EcalSelectiveReadoutValidation::availableHistList_
std::map< std::string, std::string > availableHistList_
Definition: EcalSelectiveReadoutValidation.h:801
EcalSelectiveReadoutValidation::EB
Definition: EcalSelectiveReadoutValidation.h:55
EcalTPGGroups::EcalTPGGroupsMap
std::map< uint32_t, uint32_t > EcalTPGGroupsMap
Definition: EcalTPGGroups.h:19
EcalSelectiveReadoutValidation::tps_
CollHandle< EcalTrigPrimDigiCollection > tps_
Definition: EcalSelectiveReadoutValidation.h:504
RemoveAddSevLevel.flag
flag
Definition: RemoveAddSevLevel.py:116
EcalSelectiveReadoutValidation::verbose_
bool verbose_
Verbosity switch.
Definition: EcalSelectiveReadoutValidation.h:466
edm::DataFrameContainer::size
size_type size() const
Definition: DataFrameContainer.h:162
EcalSelectiveReadoutValidation::meVolBLI_
MonitorElement * meVolBLI_
Definition: EcalSelectiveReadoutValidation.h:530
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
EcalSelectiveReadoutValidation::collNotFoundWarn_
bool collNotFoundWarn_
Switch for collection-not-found warning.
Definition: EcalSelectiveReadoutValidation.h:472
EcalSelectiveReadoutValidation::nHiRuPerDcc_
int nHiRuPerDcc_[nDccs_]
Definition: EcalSelectiveReadoutValidation.h:745
EcalSelectiveReadoutValidation::analyzeEB
void analyzeEB(const edm::Event &event, const edm::EventSetup &es)
Definition: EcalSelectiveReadoutValidation.cc:559