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
 
 EDProducer (const EDProducer &)=delete
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () 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
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (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::array< std::vector< ModuleDescription const * > *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, 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
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
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 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 = InEvent>
EDConsumerBaseAdaptor< B > consumes (edm::InputTag tag) noexcept
 
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<Transition Tr = Transition::Event>
constexpr auto esConsumes () noexcept
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag) noexcept
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
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_
 
edm::ESGetToken< EcalElectronicsMapping, EcalMappingRcdecalmapping
 
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_
 
edm::ESGetToken< CaloGeometry, CaloGeometryRecordgeoToken
 
std::string histDir_
 
std::set< std::string > histList_
 
edm::ESGetToken< EcalTrigTowerConstituentsMap, IdealGeometryRecordhTriggerTowerMap
 
int ievt_
 
bool isRuComplete_ [nDccs_][nDccChs_]
 
int64_t l1aOfTmax
 
int64_t l1aOfTmin
 
bool l1aRateErr
 
bool localReco_
 
std::vector< bool > logErrForDccs_
 
bool logSrApplicationErrors_
 
bool logSrpAlgoErrors_
 
edm::ESGetToken< EcalTPGLutGroup, EcalTPGLutGroupRcdlutGrpHandle
 
edm::ESGetToken< EcalTPGLutIdMap, EcalTPGLutIdMapRcdlutMapHandle
 
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...
 
edm::ESGetToken< EcalTPGPhysicsConst, EcalTPGPhysicsConstRcdphysHandle
 
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 46 of file EcalSelectiveReadoutValidation.h.

Member Typedef Documentation

◆ RecHit

Definition at line 48 of file EcalSelectiveReadoutValidation.h.

◆ RecHitCollection

Definition at line 47 of file EcalSelectiveReadoutValidation.h.

Member Enumeration Documentation

◆ subdet_t

distinguishes barral and endcap of ECAL.

Enumerator
EB 
EE 

Definition at line 67 of file EcalSelectiveReadoutValidation.h.

67 { EB, EE };

Constructor & Destructor Documentation

◆ EcalSelectiveReadoutValidation()

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

Constructor.

Definition at line 98 of file EcalSelectiveReadoutValidation.cc.

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

References allHists_, edm::BeginRun, 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 831 of file EcalSelectiveReadoutValidation.cc.

831 {}

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 1649 of file EcalSelectiveReadoutValidation.cc.

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

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 1724 of file EcalSelectiveReadoutValidation.cc.

1724  {
1725  nEb_ = 0;
1726  nEe_ = 0;
1727  nEeLI_ = 0;
1728  nEeHI_ = 0;
1729  nEbLI_ = 0;
1730  nEbHI_ = 0;
1731  bzero(nPerDcc_, sizeof(nPerDcc_));
1732  bzero(nLiPerDcc_, sizeof(nLiPerDcc_));
1733  bzero(nHiPerDcc_, sizeof(nHiPerDcc_));
1734  bzero(nRuPerDcc_, sizeof(nRuPerDcc_));
1735  bzero(ebRuActive_, sizeof(ebRuActive_));
1736  bzero(eeRuActive_, sizeof(eeRuActive_));
1737  bzero(nPerRu_, sizeof(nPerRu_));
1738  bzero(nLiRuPerDcc_, sizeof(nLiRuPerDcc_));
1739  bzero(nHiRuPerDcc_, sizeof(nHiRuPerDcc_));
1740 }

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 218 of file EcalSelectiveReadoutValidation.cc.

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

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 1595 of file EcalSelectiveReadoutValidation.cc.

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

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 557 of file EcalSelectiveReadoutValidation.cc.

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

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(), first, firstFIRSample_, firWeights_, RemoveAddSevLevel::flag, amptDefault_cfi::frame, frame2Energy(), EcalSelectiveReadoutValidation::energiesEb_t::gain12, ecalLiteDTU::gainId(), geoToken, CaloSubdetectorGeometry::getGeometry(), edm::EventSetup::getHandle(), 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 289 of file EcalSelectiveReadoutValidation.cc.

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

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

References cIndex2iTtEta(), cIndex2iTtPhi(), DetId::Ecal, EcalBarrel, EcalEndcap, fill(), edm::EventSetup::getData(), dqm::impl::MonitorElement::getTProfile(), mps_fire::i, L1TowerCalibrationProducer_cfi::iEta, iTtEta2cIndex(), iTtPhi2cIndex(), lutGrpHandle, lutMapHandle, meForcedTtf_, meHiTtf_, meLiTtf_, meMiTtf_, meTp_, meTpMap_, meTpVsEtSum_, meTtf_, meTtfVsEtSum_, meTtfVsTp_, nTtEta, nTtPhi, physHandle, 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 1972 of file EcalSelectiveReadoutValidation.cc.

1973  {
1974  if (!registerHist(name, title))
1975  return nullptr; //this histo is disabled
1977  if (result == nullptr) {
1978  throw cms::Exception("Histo") << "Failed to book histogram " << name;
1979  }
1980  return result;
1981 }

References dqm::implementation::IBooker::book1D(), Exception, Skims_PA_cff::name, LaserClient_cfi::nbins, registerHist(), mps_fire::result, runGCPTkAlMap::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 1983 of file EcalSelectiveReadoutValidation.cc.

1991  {
1992  if (!registerHist(name, title))
1993  return nullptr; //this histo is disabled
1994  MonitorElement* result = ibook.book2D(name, title, nxbins, xmin, xmax, nybins, ymin, ymax);
1995  if (result == nullptr) {
1996  throw cms::Exception("Histo") << "Failed to book histogram " << name;
1997  }
1998  return result;
1999 }

References dqm::implementation::IBooker::book2D(), Exception, Skims_PA_cff::name, registerHist(), mps_fire::result, runGCPTkAlMap::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 1961 of file EcalSelectiveReadoutValidation.cc.

1962  {
1963  if (!registerHist(name, ""))
1964  return nullptr; //this histo is disabled
1965  MonitorElement* result = ibook.bookFloat(name);
1966  if (result == nullptr) {
1967  throw cms::Exception("DQM") << "Failed to book integer DQM monitor element" << name;
1968  }
1969  return result;
1970 }

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 &   
)
overridevirtual

Implements DQMOneEDAnalyzer<>.

Definition at line 847 of file EcalSelectiveReadoutValidation.cc.

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

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, runGCPTkAlMap::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 2001 of file EcalSelectiveReadoutValidation.cc.

2002  {
2003  if (!registerHist(name, title))
2004  return nullptr; //this histo is disabled
2005  MonitorElement* result = ibook.bookProfile(name, title, nbins, xmin, xmax, 0, 0, 0);
2006  if (result == nullptr) {
2007  throw cms::Exception("Histo") << "Failed to book histogram " << name;
2008  }
2009  return result;
2010 }

References dqm::implementation::IBooker::bookProfile(), Exception, Skims_PA_cff::name, LaserClient_cfi::nbins, registerHist(), mps_fire::result, runGCPTkAlMap::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 2012 of file EcalSelectiveReadoutValidation.cc.

2021  {
2022  if (!registerHist(name, title))
2023  return nullptr; //this histo is disabled
2024  MonitorElement* result = ibook.bookProfile2D(name, title, nbinx, xmin, xmax, nbiny, ymin, ymax, 0, 0, 0, option);
2025  if (result == nullptr) {
2026  throw cms::Exception("Histo") << "Failed to book histogram " << name;
2027  }
2028  return result;
2029 }

References dqm::implementation::IBooker::bookProfile2D(), Exception, Skims_PA_cff::name, fileinputsource_cfi::option, registerHist(), mps_fire::result, runGCPTkAlMap::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 2309 of file EcalSelectiveReadoutValidation.cc.

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

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 248 of file EcalSelectiveReadoutValidation.h.

248 { 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 252 of file EcalSelectiveReadoutValidation.h.

252 { 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 275 of file EcalSelectiveReadoutValidation.h.

275 { 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 279 of file EcalSelectiveReadoutValidation.h.

279 { 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 244 of file EcalSelectiveReadoutValidation.h.

244 { 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 2215 of file EcalSelectiveReadoutValidation.cc.

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

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 2147 of file EcalSelectiveReadoutValidation.cc.

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

References Exception, firstFIRSample_, firWeights_, getFIRWeights(), mps_fire::i, createfilelist::int, dqm-mbProfile::log, 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 1778 of file EcalSelectiveReadoutValidation.cc.

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

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 2267 of file EcalSelectiveReadoutValidation.cc.

2267 { 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 2269 of file EcalSelectiveReadoutValidation.cc.

2269  {
2270  if (detId.ietaAbs() > 17) {
2271  throw cms::Exception("InvalidArgument")
2272  << "Argument of EcalSelectiveReadoutValidation::dccId(const EcalTrigTowerDetId&) "
2273  << "must be a barrel trigger tower Id\n";
2274  }
2275  return dccCh(detId).first;
2276 }

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 2087 of file EcalSelectiveReadoutValidation.cc.

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

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 833 of file EcalSelectiveReadoutValidation.cc.

833  {
834  // endcap mapping
835  triggerTowerMap_ = &es.getData(hTriggerTowerMap);
836 
837  //electronics map
838  elecMap_ = &es.getData(ecalmapping);
839 
840  initAsciiFile();
841 }

References ecalmapping, elecMap_, edm::EventSetup::getData(), hTriggerTowerMap, initAsciiFile(), and triggerTowerMap_.

◆ dqmEndRun()

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

Reimplemented from DQMOneEDAnalyzer<>.

Definition at line 843 of file EcalSelectiveReadoutValidation.cc.

843  {
845 }

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 350 of file EcalSelectiveReadoutValidation.h.

350  {
351  if (me)
352  me->Fill(x);
353  }

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 362 of file EcalSelectiveReadoutValidation.h.

362  {
363  if (me)
364  me->Fill(x, y, z, w);
365  }

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 358 of file EcalSelectiveReadoutValidation.h.

358  {
359  if (me)
360  me->Fill(x, y, zw);
361  }

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 354 of file EcalSelectiveReadoutValidation.h.

354  {
355  if (me)
356  me->Fill(x, yw);
357  }

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 1742 of file EcalSelectiveReadoutValidation.cc.

1742  {
1743  static std::atomic<bool> firstCall{true};
1744  bool expected = true;
1745  if (firstCall.compare_exchange_strong(expected, false)) {
1746  stringstream buf;
1747  buf << "Weights:";
1748  for (unsigned i = 0; i < weights_.size(); ++i) {
1749  buf << "\t" << weights_[i];
1750  }
1751  edm::LogInfo("EcalSrValid") << buf.str() << "\n";
1752  firstCall = false;
1753  }
1754  double adc2GeV = 0.;
1755 
1756  if (typeid(EBDataFrame) == typeid(frame)) { //barrel APD
1757  adc2GeV = .035;
1758  } else if (typeid(EEDataFrame) == typeid(frame)) { //endcap VPT
1759  adc2GeV = 0.06;
1760  } else {
1761  assert(false);
1762  }
1763 
1764  double acc = 0;
1765 
1766  const int n = min(frame.size(), (int)weights_.size());
1767 
1768  double gainInv[] = {12., 1., 6., 12.};
1769 
1770  for (int i = 0; i < n; ++i) {
1771  acc += weights_[i] * frame[i].adc() * gainInv[frame[i].gainId()] * adc2GeV;
1772  }
1773  return acc;
1774 }

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 1929 of file EcalSelectiveReadoutValidation.cc.

1929  {
1930  //we have to start by 0 in order to handle offset=-1
1931  //(however Fenix FIR has AFAK only 5 taps)
1932  double weights[] = {0., -1 / 3., -1 / 3., -1 / 3., 0., 1.};
1933 
1934  double adc2GeV = 0.;
1935  if (typeid(frame) == typeid(EBDataFrame)) {
1936  adc2GeV = 0.035;
1937  } else if (typeid(frame) == typeid(EEDataFrame)) {
1938  adc2GeV = 0.060;
1939  } else { //T is an invalid type!
1940  //TODO: replace message by a cms exception
1941  throw cms::Exception("Severe Error") << __FILE__ << ":" << __LINE__ << ": "
1942  << "this is a bug. Please report it.\n";
1943  }
1944 
1945  double acc = 0;
1946 
1947  const int n = min<int>(frame.size(), sizeof(weights) / sizeof(weights[0]));
1948 
1949  double gainInv[] = {12., 1., 6., 12};
1950 
1951  for (int i = offset; i < n; ++i) {
1952  int iframe = i + offset;
1953  if (iframe >= 0 && iframe < frame.size()) {
1954  acc += weights[i] * frame[iframe].adc() * gainInv[frame[iframe].gainId()] * adc2GeV;
1955  }
1956  }
1957  //cout << "\n";
1958  return acc;
1959 }

References Exception, amptDefault_cfi::frame, mps_fire::i, dqmiodumpmetadata::n, hltrates_dqm_sourceclient-live_cfg::offset, and HLT_FULL_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 154 of file EcalSelectiveReadoutValidation.h.

154 { 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 2356 of file EcalSelectiveReadoutValidation.cc.

2356  {
2357  if (iDcc < minDccId_ || iDcc > maxDccId_) { //invalid DCC
2358  return 0;
2359  } else if (10 <= iDcc && iDcc <= 45) { //EB
2360  return 25;
2361  } else { //EE
2362  int iDccPhi;
2363  if (iDcc < 10)
2364  iDccPhi = iDcc;
2365  else
2366  iDccPhi = iDcc - 45;
2367  switch (iDccPhi * 100 + iDccCh) {
2368  case 110:
2369  case 232:
2370  case 312:
2371  case 412:
2372  case 532:
2373  case 610:
2374  case 830:
2375  case 806:
2376  //inner partials at 12, 3, and 9 o'clock
2377  return 20;
2378  case 134:
2379  case 634:
2380  case 827:
2381  case 803:
2382  return 10;
2383  case 330:
2384  case 430:
2385  return 20;
2386  case 203:
2387  case 503:
2388  case 721:
2389  case 921:
2390  return 21;
2391  default:
2392  return 25;
2393  }
2394  }
2395 }

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 161 of file EcalSelectiveReadoutValidation.h.

161  {
162  subdet_t subdet;
163  if (iDcc0 < 9 || iDcc0 >= 45) {
164  subdet = EE;
165  } else {
166  subdet = EB;
167  }
168  // return getDccOverhead(subdet)+nReadXtals*getBytesPerCrystal()
169  // + getRuCount(iDcc0)*8;
170  return getDccOverhead(subdet) + getDccSrDependentPayload(iDcc0, getRuCount(iDcc0), nReadXtals);
171  }

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 145 of file EcalSelectiveReadoutValidation.h.

145  {
146  // return (subdet==EB?34:25)*8;
147  return (subdet == EB ? 34 : 52) * 8;
148  }

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 180 of file EcalSelectiveReadoutValidation.h.

180  {
181  return nReadXtals * getBytesPerCrystal() + nReadRus * 8;
182  }

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 2063 of file EcalSelectiveReadoutValidation.cc.

2063  {
2064  double ruHeaderPayload = 0.;
2065  const int firstEbDcc0 = nEeDccs / 2;
2066  for (int iDcc0 = firstEbDcc0; iDcc0 < firstEbDcc0 + nEbDccs; ++iDcc0) {
2067  ruHeaderPayload += getRuCount(iDcc0) * 8.;
2068  }
2069 
2070  return getDccOverhead(EB) * nEbDccs + nReadXtals * getBytesPerCrystal() + ruHeaderPayload;
2071 }

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 2073 of file EcalSelectiveReadoutValidation.cc.

2073  {
2074  double ruHeaderPayload = 0.;
2075  const unsigned firstEbDcc0 = nEeDccs / 2;
2076  for (unsigned iDcc0 = 0; iDcc0 < nDccs_; ++iDcc0) {
2077  //skip barrel:
2078  if (iDcc0 == firstEbDcc0)
2079  iDcc0 += nEbDccs;
2080  ruHeaderPayload += getRuCount(iDcc0) * 8.;
2081  }
2082  return getDccOverhead(EE) * nEeDccs + nReadXtals * getBytesPerCrystal() + ruHeaderPayload;
2083 }

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 2134 of file EcalSelectiveReadoutValidation.cc.

2134  {
2135  const int nFIRTaps = 6;
2136  vector<int> firWeights(nFIRTaps, 0); //default weight: 0;
2137  const static int maxWeight = 0xEFF; //weights coded on 11+1 signed bits
2138  for (unsigned i = 0; i < min((size_t)nFIRTaps, normalizedWeights.size()); ++i) {
2139  firWeights[i] = lround(normalizedWeights[i] * (1 << 10));
2140  if (abs(firWeights[i]) > maxWeight) { //overflow
2141  firWeights[i] = firWeights[i] < 0 ? -maxWeight : maxWeight;
2142  }
2143  }
2144  return firWeights;
2145 }

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 211 of file EcalSelectiveReadoutValidation.cc.

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

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 1776 of file EcalSelectiveReadoutValidation.cc.

1776 { 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 224 of file EcalSelectiveReadoutValidation.h.

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

References L1TowerCalibrationProducer_cfi::iEta.

Referenced by anaDigi(), and analyzeEB().

◆ initAsciiFile()

void EcalSelectiveReadoutValidation::initAsciiFile ( )
private

Definition at line 2193 of file EcalSelectiveReadoutValidation.cc.

2193  {
2194  if (logSrpAlgoErrors_) {
2196  if (!srpAlgoErrorLog_.good()) {
2197  throw cms::Exception("Output") << "Failed to open the log file '" << srpAlgoErrorLogFileName_
2198  << "' for SRP algorithm result check.\n";
2199  }
2200  }
2201 
2204  if (!srApplicationErrorLog_.good()) {
2205  throw cms::Exception("Output") << "Failed to open the log file '" << srApplicationErrorLogFileName_
2206  << "' for Selective Readout decision application check.\n";
2207  }
2208  }
2209 }

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 229 of file EcalSelectiveReadoutValidation.h.

229  {
230  // return iPhi-1;
231  int iPhi0 = iPhi - 11;
232  if (iPhi0 < 0)
233  iPhi0 += 360;
234  return iPhi0;
235  }

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 259 of file EcalSelectiveReadoutValidation.h.

259 { 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 266 of file EcalSelectiveReadoutValidation.h.

266  {
267  return iPhi - 1;
268  //int iPhi0 = iPhi - 3;
269  //if(iPhi0<0) iPhi0 += 72;
270  //return iPhi0;
271  }

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 240 of file EcalSelectiveReadoutValidation.h.

240 { 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 2053 of file EcalSelectiveReadoutValidation.cc.

2053  {
2054  LogInfo log("HistoList");
2055  log << "Avalailable histograms (DQM monitor elements): \n";
2056  for (map<string, string>::iterator it = availableHistList_.begin(); it != availableHistList_.end(); ++it) {
2057  log << it->first << ": " << it->second << "\n";
2058  }
2059  log << "\nTo include an histogram add its name in the vstring parameter "
2060  "'histograms' of the EcalSelectiveReadoutValidation module\n";
2061 }

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 2036 of file EcalSelectiveReadoutValidation.cc.

2036  {
2037  ebRecHits_.read(event);
2038  eeRecHits_.read(event);
2039  ebDigis_.read(event);
2040  eeDigis_.read(event);
2043  ebSrFlags_.read(event);
2044  eeSrFlags_.read(event);
2045  ebComputedSrFlags_.read(event);
2046  eeComputedSrFlags_.read(event);
2049  tps_.read(event);
2050  fedRaw_.read(event);
2051 }

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 1839 of file EcalSelectiveReadoutValidation.cc.

1839  {
1840  return triggerTowerMap_->towerOf(xtalId);
1841 }

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 1843 of file EcalSelectiveReadoutValidation.cc.

1843  {
1844  const EcalElectronicsId& EcalElecId = elecMap_->getElectronicsId(xtalId);
1845  int iDCC = EcalElecId.dccId();
1846  int iDccChan = EcalElecId.towerId();
1847  const bool ignoreSingle = true;
1848  const vector<EcalScDetId> id = elecMap_->getEcalScDetId(iDCC, iDccChan, ignoreSingle);
1849  return !id.empty() ? id[0] : EcalScDetId();
1850 }

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 2031 of file EcalSelectiveReadoutValidation.cc.

2031  {
2032  availableHistList_.insert(pair<string, string>(name, title));
2033  return allHists_ || histList_.find(name) != histList_.end();
2034 }

References allHists_, availableHistList_, histList_, Skims_PA_cff::name, and runGCPTkAlMap::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 881 of file EcalSelectiveReadoutValidation.h.

881 { 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 885 of file EcalSelectiveReadoutValidation.h.

885 { return id.ieta(); }

◆ ruGraphY() [1/2]

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

Definition at line 883 of file EcalSelectiveReadoutValidation.h.

883 { return id.iy(); }

Referenced by checkSrApplication(), and compareSrfColl().

◆ ruGraphY() [2/2]

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

Definition at line 887 of file EcalSelectiveReadoutValidation.h.

887 { 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 2278 of file EcalSelectiveReadoutValidation.cc.

2278  {
2279  logErrForDccs_ = vector<bool>(nDccs_, false);
2280 
2281  for (EBSrFlagCollection::const_iterator it = ebSrFlags_->begin(); it != ebSrFlags_->end(); ++it) {
2282  int iDcc = dccId(it->id()) - minDccId_;
2283 
2284  logErrForDccs_.at(iDcc) = true;
2285  }
2286 
2287  for (EESrFlagCollection::const_iterator it = eeSrFlags_->begin(); it != eeSrFlags_->end(); ++it) {
2288  int iDcc = dccId(it->id()) - minDccId_;
2289 
2290  logErrForDccs_.at(iDcc) = true;
2291  }
2292 
2293  stringstream buf;
2294  buf << "List of DCCs found in the first processed event: ";
2295  bool first = true;
2296  for (unsigned iDcc = 0; iDcc < nDccs_; ++iDcc) {
2297  if (logErrForDccs_[iDcc]) {
2298  buf << (first ? "" : ", ") << (iDcc + minDccId_);
2299  first = false;
2300  }
2301  }
2302  buf << "\nOnly DCCs from this list will be considered for error logging\n";
2303  srpAlgoErrorLog_ << buf.str();
2304  srApplicationErrorLog_ << buf.str();
2305  LogInfo("EcalSrValid") << buf.str();
2306 }

References visDQMUpload::buf, dccId(), ebSrFlags_, eeSrFlags_, 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 1852 of file EcalSelectiveReadoutValidation.cc.

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

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(), geoToken, edm::EventSetup::getData(), CaloSubdetectorGeometry::getGeometry(), edm::EventSetup::getHandle(), 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 193 of file EcalSelectiveReadoutValidation.cc.

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

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

Referenced by analyze().

◆ xtalGraphX() [1/2]

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

Definition at line 893 of file EcalSelectiveReadoutValidation.h.

893 { return id.ieta(); }

◆ xtalGraphX() [2/2]

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

Definition at line 889 of file EcalSelectiveReadoutValidation.h.

889 { 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 895 of file EcalSelectiveReadoutValidation.h.

895 { return id.iphi(); }

◆ xtalGraphY() [2/2]

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

Definition at line 891 of file EcalSelectiveReadoutValidation.h.

891 { 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 811 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 820 of file EcalSelectiveReadoutValidation.h.

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

◆ collNotFoundWarn_

bool EcalSelectiveReadoutValidation::collNotFoundWarn_
private

Switch for collection-not-found warning.

Definition at line 491 of file EcalSelectiveReadoutValidation.h.

◆ ebComputedSrFlags_

CollHandle<EBSrFlagCollection> EcalSelectiveReadoutValidation::ebComputedSrFlags_
private

◆ ebDigis_

CollHandle<EBDigiCollection> EcalSelectiveReadoutValidation::ebDigis_
private

The event product collections.

Definition at line 513 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 792 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 769 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 462 of file EcalSelectiveReadoutValidation.h.

Referenced by anaDigi().

◆ ebZsThr_

int EcalSelectiveReadoutValidation::ebZsThr_
private

ZS threshold in 1/4th ADC count for EB

Definition at line 692 of file EcalSelectiveReadoutValidation.h.

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

◆ ecalmapping

edm::ESGetToken<EcalElectronicsMapping, EcalMappingRcd> EcalSelectiveReadoutValidation::ecalmapping
private

Definition at line 409 of file EcalSelectiveReadoutValidation.h.

Referenced by dqmBeginRun().

◆ 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 798 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 770 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 696 of file EcalSelectiveReadoutValidation.h.

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

◆ elecMap_

const EcalElectronicsMapping* EcalSelectiveReadoutValidation::elecMap_
private

Ecal electronics/geometrical mapping.

Definition at line 675 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 705 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 688 of file EcalSelectiveReadoutValidation.h.

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

◆ geoToken

edm::ESGetToken<CaloGeometry, CaloGeometryRecord> EcalSelectiveReadoutValidation::geoToken
private

Definition at line 408 of file EcalSelectiveReadoutValidation.h.

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

◆ histDir_

std::string EcalSelectiveReadoutValidation::histDir_
private

Histogram directory PATH in DQM or within the output ROOT file

Definition at line 815 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 807 of file EcalSelectiveReadoutValidation.h.

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

◆ hTriggerTowerMap

edm::ESGetToken<EcalTrigTowerConstituentsMap, IdealGeometryRecord> EcalSelectiveReadoutValidation::hTriggerTowerMap
private

Definition at line 410 of file EcalSelectiveReadoutValidation.h.

Referenced by dqmBeginRun().

◆ ievt_

int EcalSelectiveReadoutValidation::ievt_
private

Event sequence number

Definition at line 781 of file EcalSelectiveReadoutValidation.h.

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

◆ isRuComplete_

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

Definition at line 773 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 416 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume().

◆ l1aOfTmax

int64_t EcalSelectiveReadoutValidation::l1aOfTmax
private

Definition at line 535 of file EcalSelectiveReadoutValidation.h.

Referenced by getL1aRate(), and updateL1aRate().

◆ l1aOfTmin

int64_t EcalSelectiveReadoutValidation::l1aOfTmin
private

Definition at line 534 of file EcalSelectiveReadoutValidation.h.

Referenced by getL1aRate(), and updateL1aRate().

◆ l1aRateErr

bool EcalSelectiveReadoutValidation::l1aRateErr
private

Definition at line 536 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 680 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 716 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 857 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 852 of file EcalSelectiveReadoutValidation.h.

Referenced by EcalSelectiveReadoutValidation(), and initAsciiFile().

◆ lutGrpHandle

edm::ESGetToken<EcalTPGLutGroup, EcalTPGLutGroupRcd> EcalSelectiveReadoutValidation::lutGrpHandle
private

Definition at line 412 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeTP().

◆ lutMapHandle

edm::ESGetToken<EcalTPGLutIdMap, EcalTPGLutIdMapRcd> EcalSelectiveReadoutValidation::lutMapHandle
private

Definition at line 413 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeTP().

◆ maxDccId_

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

Definition at line 429 of file EcalSelectiveReadoutValidation.h.

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

◆ meChOcc_

MonitorElement* EcalSelectiveReadoutValidation::meChOcc_
private

Definition at line 555 of file EcalSelectiveReadoutValidation.h.

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

◆ meCompleteZS_

MonitorElement* EcalSelectiveReadoutValidation::meCompleteZS_
private

Definition at line 606 of file EcalSelectiveReadoutValidation.h.

◆ meCompleteZSCnt_

MonitorElement* EcalSelectiveReadoutValidation::meCompleteZSCnt_
private

Definition at line 618 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meCompleteZSMap_

MonitorElement* EcalSelectiveReadoutValidation::meCompleteZSMap_
private

Definition at line 610 of file EcalSelectiveReadoutValidation.h.

Referenced by bookHistograms(), and checkSrApplication().

◆ meCompleteZSRateMap_

MonitorElement* EcalSelectiveReadoutValidation::meCompleteZSRateMap_
private

Definition at line 614 of file EcalSelectiveReadoutValidation.h.

Referenced by bookHistograms(), and checkSrApplication().

◆ meDccHiVol_

MonitorElement* EcalSelectiveReadoutValidation::meDccHiVol_
private

Definition at line 544 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume(), and bookHistograms().

◆ meDccLiVol_

MonitorElement* EcalSelectiveReadoutValidation::meDccLiVol_
private

Definition at line 543 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume(), and bookHistograms().

◆ meDccVol_

MonitorElement* EcalSelectiveReadoutValidation::meDccVol_
private

The histograms

Definition at line 542 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume(), and bookHistograms().

◆ meDccVolFromData_

MonitorElement* EcalSelectiveReadoutValidation::meDccVolFromData_
private

Definition at line 545 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume(), and bookHistograms().

◆ meDroppedFRO_

MonitorElement* EcalSelectiveReadoutValidation::meDroppedFRO_
private

Definition at line 605 of file EcalSelectiveReadoutValidation.h.

◆ meDroppedFROCnt_

MonitorElement* EcalSelectiveReadoutValidation::meDroppedFROCnt_
private

Definition at line 617 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meDroppedFROMap_

MonitorElement* EcalSelectiveReadoutValidation::meDroppedFROMap_
private

Definition at line 609 of file EcalSelectiveReadoutValidation.h.

Referenced by bookHistograms(), and checkSrApplication().

◆ meDroppedFRORateMap_

MonitorElement* EcalSelectiveReadoutValidation::meDroppedFRORateMap_
private

Definition at line 613 of file EcalSelectiveReadoutValidation.h.

Referenced by bookHistograms(), and checkSrApplication().

◆ meEbEMean_

MonitorElement* EcalSelectiveReadoutValidation::meEbEMean_
private

Definition at line 564 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 631 of file EcalSelectiveReadoutValidation.h.

◆ meEbFullRoCnt_

MonitorElement* EcalSelectiveReadoutValidation::meEbFullRoCnt_
private

Definition at line 591 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEbHiZsFir_

MonitorElement* EcalSelectiveReadoutValidation::meEbHiZsFir_
private

Definition at line 595 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEB(), and bookHistograms().

◆ meEbIncompleteRUZsFir_

MonitorElement* EcalSelectiveReadoutValidation::meEbIncompleteRUZsFir_
private

Definition at line 596 of file EcalSelectiveReadoutValidation.h.

◆ meEbLiZsFir_

MonitorElement* EcalSelectiveReadoutValidation::meEbLiZsFir_
private

Definition at line 594 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEB(), and bookHistograms().

◆ meEbNoise_

MonitorElement* EcalSelectiveReadoutValidation::meEbNoise_
private

Definition at line 565 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEB(), and bookHistograms().

◆ meEbNoZsRecVsSimE_

MonitorElement* EcalSelectiveReadoutValidation::meEbNoZsRecVsSimE_
private

Definition at line 569 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEB(), and bookHistograms().

◆ meEbRecE_

MonitorElement* EcalSelectiveReadoutValidation::meEbRecE_
private

Definition at line 563 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEB(), and bookHistograms().

◆ meEbRecEHitXtal_

MonitorElement* EcalSelectiveReadoutValidation::meEbRecEHitXtal_
private

Definition at line 567 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEB(), and bookHistograms().

◆ meEbRecVsSimE_

MonitorElement* EcalSelectiveReadoutValidation::meEbRecVsSimE_
private

Definition at line 568 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEB(), and bookHistograms().

◆ meEbSimE_

MonitorElement* EcalSelectiveReadoutValidation::meEbSimE_
private

Definition at line 566 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEB(), and bookHistograms().

◆ meEbZsErrCnt_

MonitorElement* EcalSelectiveReadoutValidation::meEbZsErrCnt_
private

Definition at line 619 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEbZsErrType1Cnt_

MonitorElement* EcalSelectiveReadoutValidation::meEbZsErrType1Cnt_
private

Definition at line 622 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEeEMean_

MonitorElement* EcalSelectiveReadoutValidation::meEeEMean_
private

Definition at line 572 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEE(), and bookHistograms().

◆ meEeFixedPayload_

MonitorElement* EcalSelectiveReadoutValidation::meEeFixedPayload_
private

Definition at line 632 of file EcalSelectiveReadoutValidation.h.

◆ meEeFullRoCnt_

MonitorElement* EcalSelectiveReadoutValidation::meEeFullRoCnt_
private

Definition at line 592 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEeHiZsFir_

MonitorElement* EcalSelectiveReadoutValidation::meEeHiZsFir_
private

Definition at line 599 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEE(), and bookHistograms().

◆ meEeLiZsFir_

MonitorElement* EcalSelectiveReadoutValidation::meEeLiZsFir_
private

Definition at line 598 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEE(), and bookHistograms().

◆ meEeNoise_

MonitorElement* EcalSelectiveReadoutValidation::meEeNoise_
private

Definition at line 573 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEE(), and bookHistograms().

◆ meEeNoZsRecVsSimE_

MonitorElement* EcalSelectiveReadoutValidation::meEeNoZsRecVsSimE_
private

Definition at line 577 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEE(), and bookHistograms().

◆ meEeRecE_

MonitorElement* EcalSelectiveReadoutValidation::meEeRecE_
private

Definition at line 571 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEE(), and bookHistograms().

◆ meEeRecEHitXtal_

MonitorElement* EcalSelectiveReadoutValidation::meEeRecEHitXtal_
private

Definition at line 575 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEE(), and bookHistograms().

◆ meEeRecVsSimE_

MonitorElement* EcalSelectiveReadoutValidation::meEeRecVsSimE_
private

Definition at line 576 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEE(), and bookHistograms().

◆ meEeSimE_

MonitorElement* EcalSelectiveReadoutValidation::meEeSimE_
private

Definition at line 574 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEE(), and bookHistograms().

◆ meEeZsErrCnt_

MonitorElement* EcalSelectiveReadoutValidation::meEeZsErrCnt_
private

Definition at line 620 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEeZsErrType1Cnt_

MonitorElement* EcalSelectiveReadoutValidation::meEeZsErrType1Cnt_
private

Definition at line 623 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meFixedPayload_

MonitorElement* EcalSelectiveReadoutValidation::meFixedPayload_
private

Definition at line 633 of file EcalSelectiveReadoutValidation.h.

◆ meForcedRu_

MonitorElement* EcalSelectiveReadoutValidation::meForcedRu_
private

Definition at line 581 of file EcalSelectiveReadoutValidation.h.

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

◆ meForcedTtf_

MonitorElement* EcalSelectiveReadoutValidation::meForcedTtf_
private

Definition at line 586 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeTP(), and bookHistograms().

◆ meFullRoCnt_

MonitorElement* EcalSelectiveReadoutValidation::meFullRoCnt_
private

Definition at line 590 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meFullRoRu_

MonitorElement* EcalSelectiveReadoutValidation::meFullRoRu_
private

Definition at line 579 of file EcalSelectiveReadoutValidation.h.

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

◆ meHiTtf_

MonitorElement* EcalSelectiveReadoutValidation::meHiTtf_
private

Definition at line 585 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeTP(), and bookHistograms().

◆ meIncompleteFRO_

MonitorElement* EcalSelectiveReadoutValidation::meIncompleteFRO_
private

Definition at line 604 of file EcalSelectiveReadoutValidation.h.

◆ meIncompleteFROCnt_

MonitorElement* EcalSelectiveReadoutValidation::meIncompleteFROCnt_
private

Definition at line 616 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meIncompleteFROMap_

MonitorElement* EcalSelectiveReadoutValidation::meIncompleteFROMap_
private

Definition at line 608 of file EcalSelectiveReadoutValidation.h.

Referenced by bookHistograms(), and checkSrApplication().

◆ meIncompleteFRORateMap_

MonitorElement* EcalSelectiveReadoutValidation::meIncompleteFRORateMap_
private

Definition at line 612 of file EcalSelectiveReadoutValidation.h.

Referenced by bookHistograms(), and checkSrApplication().

◆ meL1aRate_

MonitorElement* EcalSelectiveReadoutValidation::meL1aRate_
private

Estimate of L1A rate

Definition at line 638 of file EcalSelectiveReadoutValidation.h.

Referenced by bookHistograms(), and dqmEndRun().

◆ meLiTtf_

MonitorElement* EcalSelectiveReadoutValidation::meLiTtf_
private

Definition at line 583 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeTP(), and bookHistograms().

◆ meMiTtf_

MonitorElement* EcalSelectiveReadoutValidation::meMiTtf_
private

Definition at line 584 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeTP(), and bookHistograms().

◆ meSRFlagsComputed_

MonitorElement* EcalSelectiveReadoutValidation::meSRFlagsComputed_
private

Definition at line 601 of file EcalSelectiveReadoutValidation.h.

◆ meSRFlagsConsistency_

MonitorElement* EcalSelectiveReadoutValidation::meSRFlagsConsistency_
private

Definition at line 602 of file EcalSelectiveReadoutValidation.h.

Referenced by bookHistograms(), and compareSrfColl().

◆ meSRFlagsFromData_

MonitorElement* EcalSelectiveReadoutValidation::meSRFlagsFromData_
private

Definition at line 600 of file EcalSelectiveReadoutValidation.h.

◆ meTp_

MonitorElement* EcalSelectiveReadoutValidation::meTp_
private

Definition at line 557 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeTP(), and bookHistograms().

◆ meTpMap_

MonitorElement* EcalSelectiveReadoutValidation::meTpMap_
private

Definition at line 588 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeTP(), and bookHistograms().

◆ meTpVsEtSum_

MonitorElement* EcalSelectiveReadoutValidation::meTpVsEtSum_
private

Definition at line 561 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeTP(), and bookHistograms().

◆ meTtf_

MonitorElement* EcalSelectiveReadoutValidation::meTtf_
private

Definition at line 558 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeTP(), and bookHistograms().

◆ meTtfVsEtSum_

MonitorElement* EcalSelectiveReadoutValidation::meTtfVsEtSum_
private

Definition at line 560 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeTP(), and bookHistograms().

◆ meTtfVsTp_

MonitorElement* EcalSelectiveReadoutValidation::meTtfVsTp_
private

Definition at line 559 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeTP(), and bookHistograms().

◆ meVol_

MonitorElement* EcalSelectiveReadoutValidation::meVol_
private

Definition at line 546 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume(), and bookHistograms().

◆ meVolB_

MonitorElement* EcalSelectiveReadoutValidation::meVolB_
private

Definition at line 547 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume(), and bookHistograms().

◆ meVolBHI_

MonitorElement* EcalSelectiveReadoutValidation::meVolBHI_
private

Definition at line 552 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume(), and bookHistograms().

◆ meVolBLI_

MonitorElement* EcalSelectiveReadoutValidation::meVolBLI_
private

Definition at line 549 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume(), and bookHistograms().

◆ meVolE_

MonitorElement* EcalSelectiveReadoutValidation::meVolE_
private

Definition at line 548 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume(), and bookHistograms().

◆ meVolEHI_

MonitorElement* EcalSelectiveReadoutValidation::meVolEHI_
private

Definition at line 553 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume(), and bookHistograms().

◆ meVolELI_

MonitorElement* EcalSelectiveReadoutValidation::meVolELI_
private

Definition at line 550 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume(), and bookHistograms().

◆ meVolHI_

MonitorElement* EcalSelectiveReadoutValidation::meVolHI_
private

Definition at line 554 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume(), and bookHistograms().

◆ meVolLI_

MonitorElement* EcalSelectiveReadoutValidation::meVolLI_
private

Definition at line 551 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume(), and bookHistograms().

◆ meZs1Ru_

MonitorElement* EcalSelectiveReadoutValidation::meZs1Ru_
private

Definition at line 580 of file EcalSelectiveReadoutValidation.h.

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

◆ meZsErrCnt_

MonitorElement* EcalSelectiveReadoutValidation::meZsErrCnt_
private

Definition at line 621 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meZsErrType1Cnt_

MonitorElement* EcalSelectiveReadoutValidation::meZsErrType1Cnt_
private

Definition at line 624 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 647 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 423 of file EcalSelectiveReadoutValidation.h.

◆ nDccRus_

const int EcalSelectiveReadoutValidation::nDccRus_
staticprivate

number of RUs for each DCC

Definition at line 444 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeDataVolume().

◆ nDccs_

const unsigned EcalSelectiveReadoutValidation::nDccs_ = 54
staticprivate

Total number of DCCs.

Definition at line 419 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 641 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and checkSrApplication().

◆ nEb_

int EcalSelectiveReadoutValidation::nEb_
private

ECAL barrel read channel count

Definition at line 720 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 432 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 450 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEB().

◆ nEbFROCnt_

int EcalSelectiveReadoutValidation::nEbFROCnt_
private

Counter of EB FRO-flagged RUs.

Definition at line 650 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and analyzeEB().

◆ nEbHI_

int EcalSelectiveReadoutValidation::nEbHI_
private

ECAL barrel high interest read channel count

Definition at line 740 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 736 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 453 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEB().

◆ nEbRus

const int EcalSelectiveReadoutValidation::nEbRus = 36 * 68
staticprivate

number of RUs for EB

Definition at line 438 of file EcalSelectiveReadoutValidation.h.

◆ nEbTtEta

const int EcalSelectiveReadoutValidation::nEbTtEta = 34
staticprivate

Number of Trigger Towers in barrel along Eta.

Definition at line 471 of file EcalSelectiveReadoutValidation.h.

◆ nEbZsErrors_

int EcalSelectiveReadoutValidation::nEbZsErrors_
private

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

Definition at line 656 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 663 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and analyzeEB().

◆ nEe_

int EcalSelectiveReadoutValidation::nEe_
private

ECAL endcap read channel count

Definition at line 724 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 435 of file EcalSelectiveReadoutValidation.h.

Referenced by getEbEventSize(), and getEeEventSize().

◆ nEeFROCnt_

int EcalSelectiveReadoutValidation::nEeFROCnt_
private

Counter of EE FRO-flagged RUs.

Definition at line 653 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and analyzeEE().

◆ nEeHI_

int EcalSelectiveReadoutValidation::nEeHI_
private

ECAL endcap high interest read channel count

Definition at line 732 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 728 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 441 of file EcalSelectiveReadoutValidation.h.

◆ nEeX

const int EcalSelectiveReadoutValidation::nEeX = 100
staticprivate

EE crystal grid size along X.

Definition at line 456 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeEE().

◆ nEeY

const int EcalSelectiveReadoutValidation::nEeY = 100
staticprivate

EE crystal grid size along Y.

Definition at line 459 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 659 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 667 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and analyzeEE().

◆ nEndcaps

const int EcalSelectiveReadoutValidation::nEndcaps = 2
staticprivate

number of endcaps

Definition at line 447 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 752 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 764 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 644 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 748 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 760 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 480 of file EcalSelectiveReadoutValidation.h.

◆ nOneEeTtEta

const int EcalSelectiveReadoutValidation::nOneEeTtEta = 11
staticprivate

Number of Trigger Towers in an endcap along Eta.

Definition at line 468 of file EcalSelectiveReadoutValidation.h.

Referenced by dccCh().

◆ nPerDcc_

int EcalSelectiveReadoutValidation::nPerDcc_[nDccs_]
private

read-out ECAL channel count for each DCC:

Definition at line 744 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 777 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 756 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 474 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 477 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeTP(), and setTtEtSums().

◆ outputFile_

std::string EcalSelectiveReadoutValidation::outputFile_
private

Output file for histograms.

Definition at line 488 of file EcalSelectiveReadoutValidation.h.

Referenced by EcalSelectiveReadoutValidation().

◆ physHandle

edm::ESGetToken<EcalTPGPhysicsConst, EcalTPGPhysicsConstRcd> EcalSelectiveReadoutValidation::physHandle
private

Definition at line 411 of file EcalSelectiveReadoutValidation.h.

Referenced by analyzeTP().

◆ rad2deg

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

Conversion factor from radian to degree.

Definition at line 482 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 465 of file EcalSelectiveReadoutValidation.h.

Referenced by anaDigi().

◆ SkipInnerSC_

bool EcalSelectiveReadoutValidation::SkipInnerSC_
private

Permits to skip inner SC

Definition at line 802 of file EcalSelectiveReadoutValidation.h.

◆ srApplicationErrorLog_

std::ofstream EcalSelectiveReadoutValidation::srApplicationErrorLog_
private

Output ascii file for unconsistency between Xtals and RU Flags.

Definition at line 505 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 499 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 502 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 495 of file EcalSelectiveReadoutValidation.h.

Referenced by EcalSelectiveReadoutValidation(), and initAsciiFile().

◆ tmax

int64_t EcalSelectiveReadoutValidation::tmax
private

For L1A rate estimate

Definition at line 532 of file EcalSelectiveReadoutValidation.h.

Referenced by getL1aRate(), and updateL1aRate().

◆ tmin

int64_t EcalSelectiveReadoutValidation::tmin
private

Definition at line 533 of file EcalSelectiveReadoutValidation.h.

Referenced by getL1aRate(), and updateL1aRate().

◆ tpInGeV_

bool EcalSelectiveReadoutValidation::tpInGeV_
private

Switch for uncompressing TP value

Definition at line 700 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 671 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 787 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 710 of file EcalSelectiveReadoutValidation.h.

◆ verbose_

bool EcalSelectiveReadoutValidation::verbose_
private

Verbosity switch.

Definition at line 485 of file EcalSelectiveReadoutValidation.h.

Referenced by EcalSelectiveReadoutValidation().

◆ weights_

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

Weights for amplitude local reconstruction

Definition at line 684 of file EcalSelectiveReadoutValidation.h.

Referenced by frame2Energy().

◆ withEbSimHit_

bool EcalSelectiveReadoutValidation::withEbSimHit_
private

Indicates if EB sim hits are available

Definition at line 828 of file EcalSelectiveReadoutValidation.h.

Referenced by analyze(), and analyzeEB().

◆ withEeSimHit_

bool EcalSelectiveReadoutValidation::withEeSimHit_
private

Indicates if EE sim hits are available

Definition at line 824 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 508 of file EcalSelectiveReadoutValidation.h.

EcalSelectiveReadoutValidation::lutMapHandle
edm::ESGetToken< EcalTPGLutIdMap, EcalTPGLutIdMapRcd > lutMapHandle
Definition: EcalSelectiveReadoutValidation.h:413
EcalSelectiveReadoutValidation::meEbRecE_
MonitorElement * meEbRecE_
Definition: EcalSelectiveReadoutValidation.h:563
EcalSelectiveReadoutValidation::meEeRecEHitXtal_
MonitorElement * meEeRecEHitXtal_
Definition: EcalSelectiveReadoutValidation.h:575
EcalSelectiveReadoutValidation::meVolE_
MonitorElement * meVolE_
Definition: EcalSelectiveReadoutValidation.h:548
EcalSelectiveReadoutValidation::subdet_t
subdet_t
distinguishes barral and endcap of ECAL.
Definition: EcalSelectiveReadoutValidation.h:67
EcalSelectiveReadoutValidation::rad2deg
static const double rad2deg
Conversion factor from radian to degree.
Definition: EcalSelectiveReadoutValidation.h:482
EcalSelectiveReadoutValidation::meDccVolFromData_
MonitorElement * meDccVolFromData_
Definition: EcalSelectiveReadoutValidation.h:545
EcalSelectiveReadoutValidation::getDccSrDependentPayload
double getDccSrDependentPayload(int iDcc0, double nReadRus, double nReadXtals) const
Definition: EcalSelectiveReadoutValidation.h:180
EcalSelectiveReadoutValidation::nEeZsErrors_
int nEeZsErrors_
Counter of EE ZS errors (LI channel below ZS threshold)
Definition: EcalSelectiveReadoutValidation.h:659
EcalSelectiveReadoutValidation::fill
void fill(MonitorElement *me, float x)
Definition: EcalSelectiveReadoutValidation.h:350
DDAxes::y
EcalSelectiveReadoutValidation::energiesEe_t::simE
double simE
Definition: EcalSelectiveReadoutValidation.h:398
ecalLiteDTU::gainId
constexpr int gainId(sample_type sample)
get the gainId (2 bits)
Definition: EcalLiteDTUSample.h:14
EcalSelectiveReadoutValidation::meL1aRate_
MonitorElement * meL1aRate_
Definition: EcalSelectiveReadoutValidation.h:638
EESrFlag
Definition: EESrFlag.h:13
EcalSelectiveReadoutValidation::meTpVsEtSum_
MonitorElement * meTpVsEtSum_
Definition: EcalSelectiveReadoutValidation.h:561
EcalSelectiveReadoutValidation::nEe_
int nEe_
Definition: EcalSelectiveReadoutValidation.h:724
EcalSelectiveReadoutValidation::meEbRecEHitXtal_
MonitorElement * meEbRecEHitXtal_
Definition: EcalSelectiveReadoutValidation.h:567
EcalSelectiveReadoutValidation::analyzeEE
void analyzeEE(const edm::Event &event, const edm::EventSetup &es)
Definition: EcalSelectiveReadoutValidation.cc:289
runGCPTkAlMap.title
string title
Definition: runGCPTkAlMap.py:94
EcalSelectiveReadoutValidation::meEeNoise_
MonitorElement * meEeNoise_
Definition: EcalSelectiveReadoutValidation.h:573
EcalSelectiveReadoutValidation::meTp_
MonitorElement * meTp_
Definition: EcalSelectiveReadoutValidation.h:557
EcalSelectiveReadoutValidation::cIndex2iTtEta
int cIndex2iTtEta(int i) const
Definition: EcalSelectiveReadoutValidation.h:275
mps_fire.i
i
Definition: mps_fire.py:428
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:641
EBSrFlag::id
const EcalTrigTowerDetId & id() const override
Definition: EBSrFlag.h:36
EcalSelectiveReadoutValidation::getEeEventSize
double getEeEventSize(double nReadXtals) const
Definition: EcalSelectiveReadoutValidation.cc:2073
EcalSelectiveReadoutValidation::energiesEb_t::phi
double phi
number of sim hits
Definition: EcalSelectiveReadoutValidation.h:390
dqmiodumpmetadata.n
n
Definition: dqmiodumpmetadata.py:28
EcalSelectiveReadoutValidation::getBytesPerCrystal
double getBytesPerCrystal() const
Definition: EcalSelectiveReadoutValidation.h:154
dqm::implementation::IBooker::bookFloat
MonitorElement * bookFloat(TString const &name, FUNC onbooking=NOOP())
Definition: DQMStore.h:80
EcalSelectiveReadoutValidation::meSRFlagsConsistency_
MonitorElement * meSRFlagsConsistency_
Definition: EcalSelectiveReadoutValidation.h:602
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:543
EcalSelectiveReadoutValidation::srpAlgoErrorLogFileName_
std::string srpAlgoErrorLogFileName_
Definition: EcalSelectiveReadoutValidation.h:495
EcalSelectiveReadoutValidation::compareSrfColl
void compareSrfColl(const edm::Event &event, T &srfFromData, T &computedSrf)
Definition: EcalSelectiveReadoutValidation.cc:2215
EcalSelectiveReadoutValidation::meHiTtf_
MonitorElement * meHiTtf_
Definition: EcalSelectiveReadoutValidation.h:585
EcalSelectiveReadoutValidation::nEndcaps
static const int nEndcaps
number of endcaps
Definition: EcalSelectiveReadoutValidation.h:447
EcalTPGGroups::EcalTPGGroupsMapItr
std::map< uint32_t, uint32_t >::const_iterator EcalTPGGroupsMapItr
Definition: EcalTPGGroups.h:20
EcalSelectiveReadoutValidation::getL1aRate
double getL1aRate() const
Definition: EcalSelectiveReadoutValidation.cc:211
EcalSelectiveReadoutValidation::meEbSimE_
MonitorElement * meEbSimE_
Definition: EcalSelectiveReadoutValidation.h:566
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:502
EcalSelectiveReadoutValidation::nEeY
static const int nEeY
EE crystal grid size along Y.
Definition: EcalSelectiveReadoutValidation.h:459
groupFilesInBlocks.tt
int tt
Definition: groupFilesInBlocks.py:144
EcalSelectiveReadoutValidation::ebDigis_
CollHandle< EBDigiCollection > ebDigis_
Definition: EcalSelectiveReadoutValidation.h:513
EcalSelectiveReadoutValidation::nPerDcc_
int nPerDcc_[nDccs_]
Definition: EcalSelectiveReadoutValidation.h:744
simplePhotonAnalyzer_cfi.sample
sample
Definition: simplePhotonAnalyzer_cfi.py:12
EcalSelectiveReadoutValidation::meTpMap_
MonitorElement * meTpMap_
Definition: EcalSelectiveReadoutValidation.h:588
EcalSelectiveReadoutValidation::frame2EnergyForTp
double frame2EnergyForTp(const T &frame, int offset=0) const
Definition: EcalSelectiveReadoutValidation.cc:1929
EcalSelectiveReadoutValidation::meDccHiVol_
MonitorElement * meDccHiVol_
Definition: EcalSelectiveReadoutValidation.h:544
EcalSelectiveReadoutValidation::histList_
std::set< std::string > histList_
Definition: EcalSelectiveReadoutValidation.h:807
EcalSelectiveReadoutValidation::nEeDccs
static const int nEeDccs
number of DCCs for EE
Definition: EcalSelectiveReadoutValidation.h:435
EcalTrigTowerDetId::ietaAbs
int ietaAbs() const
get the absolute value of the tower ieta
Definition: EcalTrigTowerDetId.h:36
EcalSelectiveReadoutValidation::meLiTtf_
MonitorElement * meLiTtf_
Definition: EcalSelectiveReadoutValidation.h:583
EcalSelectiveReadoutValidation::elecMap_
const EcalElectronicsMapping * elecMap_
Definition: EcalSelectiveReadoutValidation.h:675
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:391
EcalSelectiveReadoutValidation::nEeHI_
int nEeHI_
Definition: EcalSelectiveReadoutValidation.h:732
FEDRawDataCollection
Definition: FEDRawDataCollection.h:18
EcalSelectiveReadoutValidation::meTtfVsEtSum_
MonitorElement * meTtfVsEtSum_
Definition: EcalSelectiveReadoutValidation.h:560
EcalSelectiveReadoutValidation::ttEtSums
double ttEtSums[nTtEta][nTtPhi]
Definition: EcalSelectiveReadoutValidation.h:787
EBDetId
Definition: EBDetId.h:17
EcalScDetId::zside
int zside() const
Definition: EcalScDetId.h:64
ecaldqm::ttId
unsigned ttId(DetId const &, EcalElectronicsMapping const *)
Definition: EcalDQMCommonUtils.cc:99
EBDataFrame
Definition: EBDataFrame.h:11
dqm::implementation::IBooker::bookProfile2D
MonitorElement * bookProfile2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, double lowZ, double highZ, char const *option="s", FUNC onbooking=NOOP())
Definition: DQMStore.h:399
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:598
EcalSelectiveReadoutValidation::meDroppedFROCnt_
MonitorElement * meDroppedFROCnt_
Definition: EcalSelectiveReadoutValidation.h:617
gather_cfg.cout
cout
Definition: gather_cfg.py:144
EcalSelectiveReadoutValidation::analyzeTP
void analyzeTP(const edm::Event &event, const edm::EventSetup &es)
Definition: EcalSelectiveReadoutValidation.cc:1478
EcalSelectiveReadoutValidation::triggerTowerMap_
const EcalTrigTowerConstituentsMap * triggerTowerMap_
Definition: EcalSelectiveReadoutValidation.h:671
EcalSrFlag::value
int value() const
Definition: EcalSrFlag.h:44
EcalSelectiveReadoutValidation::meIncompleteFROMap_
MonitorElement * meIncompleteFROMap_
Definition: EcalSelectiveReadoutValidation.h:608
EcalSelectiveReadoutValidation::meEbFullRoCnt_
MonitorElement * meEbFullRoCnt_
Definition: EcalSelectiveReadoutValidation.h:591
EcalSelectiveReadoutValidation::ebRecHits_
CollHandle< RecHitCollection > ebRecHits_
Definition: EcalSelectiveReadoutValidation.h:524
l1GtPatternGenerator_cfi.bx
bx
Definition: l1GtPatternGenerator_cfi.py:18
EcalSelectiveReadoutValidation::meVolBHI_
MonitorElement * meVolBHI_
Definition: EcalSelectiveReadoutValidation.h:552
EcalSelectiveReadoutValidation::iEta2cIndex
int iEta2cIndex(int iEta) const
Definition: EcalSelectiveReadoutValidation.h:224
EcalSelectiveReadoutValidation::meEbRecVsSimE_
MonitorElement * meEbRecVsSimE_
Definition: EcalSelectiveReadoutValidation.h:568
EcalSelectiveReadoutValidation::meEbEMean_
MonitorElement * meEbEMean_
Definition: EcalSelectiveReadoutValidation.h:564
EcalSelectiveReadoutValidation::meChOcc_
MonitorElement * meChOcc_
Definition: EcalSelectiveReadoutValidation.h:555
cms::cuda::assert
assert(be >=bs)
edm::second
U second(std::pair< T, U > const &p)
Definition: ParameterSet.cc:222
EcalSelectiveReadoutValidation::configFirWeights
void configFirWeights(const std::vector< double > &weightsForZsFIR)
Definition: EcalSelectiveReadoutValidation.cc:2147
edm::EDConsumerBase::consumesCollector
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
Definition: EDConsumerBase.cc:47
EcalSelectiveReadoutValidation::hTriggerTowerMap
edm::ESGetToken< EcalTrigTowerConstituentsMap, IdealGeometryRecord > hTriggerTowerMap
Definition: EcalSelectiveReadoutValidation.h:410
EcalSelectiveReadoutValidation::meEeEMean_
MonitorElement * meEeEMean_
Definition: EcalSelectiveReadoutValidation.h:572
EcalSelectiveReadoutValidation::checkSrApplication
void checkSrApplication(const edm::Event &event, T &srfs)
Definition: EcalSelectiveReadoutValidation.cc:2309
EcalSelectiveReadoutValidation::energiesEe_t::gain12
bool gain12
eta crystal position
Definition: EcalSelectiveReadoutValidation.h:405
dqm::legacy::MonitorElement
Definition: MonitorElement.h:462
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
DDAxes::x
compare.hists
hists
Definition: compare.py:318
EcalSelectiveReadoutValidation::meDroppedFROMap_
MonitorElement * meDroppedFROMap_
Definition: EcalSelectiveReadoutValidation.h:609
EcalTrigTowerDetId
Definition: EcalTrigTowerDetId.h:14
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
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:2193
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:599
EcalSelectiveReadoutValidation::meZsErrType1Cnt_
MonitorElement * meZsErrType1Cnt_
Definition: EcalSelectiveReadoutValidation.h:624
fileinputsource_cfi.option
option
Definition: fileinputsource_cfi.py:94
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
EcalSelectiveReadoutValidation::ebSrFlags_
CollHandle< EBSrFlagCollection > ebSrFlags_
Definition: EcalSelectiveReadoutValidation.h:517
EcalBarrel
Definition: EcalSubdetector.h:10
EcalSelectiveReadoutValidation::nEeX
static const int nEeX
EE crystal grid size along X.
Definition: EcalSelectiveReadoutValidation.h:456
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:2012
EcalSelectiveReadoutValidation::analyzeDataVolume
void analyzeDataVolume(const edm::Event &e, const edm::EventSetup &es)
Definition: EcalSelectiveReadoutValidation.cc:1595
EcalSelectiveReadoutValidation::xtalGraphY
int xtalGraphY(const EEDetId &id) const
Definition: EcalSelectiveReadoutValidation.h:891
ecaldqm::towerId
unsigned towerId(DetId const &, EcalElectronicsMapping const *)
Definition: EcalDQMCommonUtils.cc:77
EcalSelectiveReadoutValidation::meCompleteZSRateMap_
MonitorElement * meCompleteZSRateMap_
Definition: EcalSelectiveReadoutValidation.h:614
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:824
EcalSelectiveReadoutValidation::energiesEb_t::simHit
int simHit
energy reconstructed from zero-suppressed digi
Definition: EcalSelectiveReadoutValidation.h:389
LEDCalibrationChannels.iphi
iphi
Definition: LEDCalibrationChannels.py:64
EcalSelectiveReadoutValidation::lutGrpHandle
edm::ESGetToken< EcalTPGLutGroup, EcalTPGLutGroupRcd > lutGrpHandle
Definition: EcalSelectiveReadoutValidation.h:412
EESrFlag::id
const EcalScDetId & id() const override
Definition: EESrFlag.h:37
EcalSelectiveReadoutValidation::meDroppedFRORateMap_
MonitorElement * meDroppedFRORateMap_
Definition: EcalSelectiveReadoutValidation.h:613
EcalSelectiveReadoutValidation::anaDigi
void anaDigi(const T &frame, const U &srFlagColl)
Definition: EcalSelectiveReadoutValidation.cc:1649
EcalSelectiveReadoutValidation::meEeZsErrType1Cnt_
MonitorElement * meEeZsErrType1Cnt_
Definition: EcalSelectiveReadoutValidation.h:623
DetId
Definition: DetId.h:17
EcalSelectiveReadoutValidation::physHandle
edm::ESGetToken< EcalTPGPhysicsConst, EcalTPGPhysicsConstRcd > physHandle
Definition: EcalSelectiveReadoutValidation.h:411
alignCSCRings.s
s
Definition: alignCSCRings.py:92
EcalSelectiveReadoutValidation::nEbLI_
int nEbLI_
Definition: EcalSelectiveReadoutValidation.h:736
EcalSelectiveReadoutValidation::iXY2cIndex
int iXY2cIndex(int iX) const
Definition: EcalSelectiveReadoutValidation.h:240
EcalSelectiveReadoutValidation::energiesEe_t::noZsRecE
double noZsRecE
sim hit energy sum
Definition: EcalSelectiveReadoutValidation.h:399
EcalSelectiveReadoutValidation::meVolB_
MonitorElement * meVolB_
Definition: EcalSelectiveReadoutValidation.h:547
EcalSrFlag::SRF_ZS1
static const int SRF_ZS1
Definition: EcalSrFlag.h:18
EcalSelectiveReadoutValidation::meCompleteZSCnt_
MonitorElement * meCompleteZSCnt_
Definition: EcalSelectiveReadoutValidation.h:618
EcalSelectiveReadoutValidation::dccCh
std::pair< int, int > dccCh(const DetId &xtalId) const
Definition: EcalSelectiveReadoutValidation.cc:1778
EcalSelectiveReadoutValidation::iTtPhi2cIndex
int iTtPhi2cIndex(int iPhi) const
Definition: EcalSelectiveReadoutValidation.h:266
EcalSelectiveReadoutValidation::getDccOverhead
double getDccOverhead(subdet_t subdet) const
Definition: EcalSelectiveReadoutValidation.h:145
EcalSelectiveReadoutValidation::meEbNoise_
MonitorElement * meEbNoise_
Definition: EcalSelectiveReadoutValidation.h:565
EcalSelectiveReadoutValidation::tmin
int64_t tmin
Definition: EcalSelectiveReadoutValidation.h:533
L1TOccupancyClient_cfi.ymax
ymax
Definition: L1TOccupancyClient_cfi.py:43
EcalSelectiveReadoutValidation::energiesEb_t::gain12
bool gain12
eta crystal position
Definition: EcalSelectiveReadoutValidation.h:392
EcalSelectiveReadoutValidation::nLiPerDcc_
int nLiPerDcc_[nDccs_]
Definition: EcalSelectiveReadoutValidation.h:748
EcalSelectiveReadoutValidation::fedRaw_
CollHandle< FEDRawDataCollection > fedRaw_
Definition: EcalSelectiveReadoutValidation.h:526
rpcPointValidation_cfi.simHit
simHit
Definition: rpcPointValidation_cfi.py:24
w
const double w
Definition: UKUtility.cc:23
HLT_FULL_cff.weights
weights
Definition: HLT_FULL_cff.py:99207
EcalSrFlag::SRF_ZS2
static const int SRF_ZS2
Definition: EcalSrFlag.h:21
EcalSelectiveReadoutValidation::anaDigiInit
void anaDigiInit()
Definition: EcalSelectiveReadoutValidation.cc:1724
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:2063
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
EcalSelectiveReadoutValidation::meVolELI_
MonitorElement * meVolELI_
Definition: EcalSelectiveReadoutValidation.h:550
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:468
EcalSelectiveReadoutValidation::getRuCount
int getRuCount(int iDcc0) const
Definition: EcalSelectiveReadoutValidation.cc:1776
EcalSelectiveReadoutValidation::dccId
int dccId(const EcalScDetId &detId) const
Definition: EcalSelectiveReadoutValidation.cc:2267
EcalSelectiveReadoutValidation::RecHit
EcalRecHit RecHit
Definition: EcalSelectiveReadoutValidation.h:48
EcalSelectiveReadoutValidation::meMiTtf_
MonitorElement * meMiTtf_
Definition: EcalSelectiveReadoutValidation.h:584
EcalSelectiveReadoutValidation::nEbHI_
int nEbHI_
Definition: EcalSelectiveReadoutValidation.h:740
ADC
Definition: ZdcTBAnalysis.h:46
EcalSelectiveReadoutValidation::nEbDccs
static const int nEbDccs
number of DCCs for EB
Definition: EcalSelectiveReadoutValidation.h:432
EcalSelectiveReadoutValidation::meEbHiZsFir_
MonitorElement * meEbHiZsFir_
Definition: EcalSelectiveReadoutValidation.h:595
EcalSelectiveReadoutValidation::eeZsThr_
int eeZsThr_
Definition: EcalSelectiveReadoutValidation.h:696
EcalSelectiveReadoutValidation::l1aOfTmin
int64_t l1aOfTmin
Definition: EcalSelectiveReadoutValidation.h:534
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:656
dqm::implementation::IBooker::bookProfile
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int, double lowY, double highY, char const *option="s", FUNC onbooking=NOOP())
Definition: DQMStore.h:322
EcalSelectiveReadoutValidation::meVolEHI_
MonitorElement * meVolEHI_
Definition: EcalSelectiveReadoutValidation.h:553
LaserClient_cfi.nbins
nbins
Definition: LaserClient_cfi.py:51
EcalSelectiveReadoutValidation::readAllCollections
void readAllCollections(const edm::Event &e)
Definition: EcalSelectiveReadoutValidation.cc:2036
EcalSelectiveReadoutValidation::ebZsThr_
int ebZsThr_
Definition: EcalSelectiveReadoutValidation.h:692
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:1983
EcalSelectiveReadoutValidation::frame2Energy
double frame2Energy(const EcalDataFrame &frame) const
Definition: EcalSelectiveReadoutValidation.cc:1742
EcalSelectiveReadoutValidation::eeSrFlags_
CollHandle< EESrFlagCollection > eeSrFlags_
Definition: EcalSelectiveReadoutValidation.h:518
EcalSelectiveReadoutValidation::selectFedsForLog
void selectFedsForLog()
Definition: EcalSelectiveReadoutValidation.cc:2278
EcalSelectiveReadoutValidation::meEbZsErrCnt_
MonitorElement * meEbZsErrCnt_
Definition: EcalSelectiveReadoutValidation.h:619
Point3DBase< float, GlobalTag >
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:594
EcalSelectiveReadoutValidation::registerHist
bool registerHist(const std::string &name, const std::string &title)
Definition: EcalSelectiveReadoutValidation.cc:2031
first
auto first
Definition: CAHitNtupletGeneratorKernelsImpl.h:125
EcalSelectiveReadoutValidation::cIndex2iPhi
int cIndex2iPhi(int i) const
Definition: EcalSelectiveReadoutValidation.h:252
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:1852
EcalSelectiveReadoutValidation::tpInGeV_
bool tpInGeV_
Definition: EcalSelectiveReadoutValidation.h:700
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:386
EcalEndcap
Definition: EcalSubdetector.h:10
EcalSelectiveReadoutValidation::minDccId_
static const int minDccId_
Definition: EcalSelectiveReadoutValidation.h:426
EcalSelectiveReadoutValidation::nEbEta
static const int nEbEta
number of crystals along Eta in EB
Definition: EcalSelectiveReadoutValidation.h:450
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:2001
LEDCalibrationChannels.ieta
ieta
Definition: LEDCalibrationChannels.py:63
EcalSelectiveReadoutValidation::nRuPerDcc_
int nRuPerDcc_[nDccs_]
Definition: EcalSelectiveReadoutValidation.h:756
EcalSelectiveReadoutValidation::nLiRuPerDcc_
int nLiRuPerDcc_[nDccs_]
Definition: EcalSelectiveReadoutValidation.h:760
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:233
a
double a
Definition: hdecay.h:119
EcalSelectiveReadoutValidation::meVolLI_
MonitorElement * meVolLI_
Definition: EcalSelectiveReadoutValidation.h:551
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
EcalSelectiveReadoutValidation::nHiPerDcc_
int nHiPerDcc_[nDccs_]
Definition: EcalSelectiveReadoutValidation.h:752
EcalSelectiveReadoutValidation::isRuComplete_
bool isRuComplete_[nDccs_][nDccChs_]
Definition: EcalSelectiveReadoutValidation.h:773
EcalSelectiveReadoutValidation::firWeights_
std::vector< int > firWeights_
Definition: EcalSelectiveReadoutValidation.h:688
EcalSelectiveReadoutValidation::ievt_
int ievt_
Definition: EcalSelectiveReadoutValidation.h:781
EcalSelectiveReadoutValidation::iPhi2cIndex
int iPhi2cIndex(int iPhi) const
Definition: EcalSelectiveReadoutValidation.h:229
EcalSrFlag
Definition: EcalSrFlag.h:10
EcalSelectiveReadoutValidation::meIncompleteFRORateMap_
MonitorElement * meIncompleteFRORateMap_
Definition: EcalSelectiveReadoutValidation.h:612
EcalSelectiveReadoutValidation::eeRecHits_
CollHandle< RecHitCollection > eeRecHits_
Definition: EcalSelectiveReadoutValidation.h:525
EcalSelectiveReadoutValidation::eeComputedSrFlags_
CollHandle< EESrFlagCollection > eeComputedSrFlags_
Definition: EcalSelectiveReadoutValidation.h:520
EcalSelectiveReadoutValidation::nTtEta
static const int nTtEta
Number of Trigger Towers along Eta.
Definition: EcalSelectiveReadoutValidation.h:474
PV3DBase::eta
T eta() const
Definition: PV3DBase.h:73
EcalSelectiveReadoutValidation::ruGraphX
int ruGraphX(const EcalScDetId &id) const
Definition: EcalSelectiveReadoutValidation.h:881
EcalSelectiveReadoutValidation::energiesEb_t::simE
double simE
Definition: EcalSelectiveReadoutValidation.h:385
EcalSelectiveReadoutValidation::maxDccId_
static const int maxDccId_
Definition: EcalSelectiveReadoutValidation.h:429
EcalSelectiveReadoutValidation::getDccEventSize
double getDccEventSize(int iDcc0, double nReadXtals) const
Definition: EcalSelectiveReadoutValidation.h:161
createfilelist.int
int
Definition: createfilelist.py:10
EcalSelectiveReadoutValidation::nTtPhi
static const int nTtPhi
Number of Trigger Towers along Phi.
Definition: EcalSelectiveReadoutValidation.h:477
EcalSelectiveReadoutValidation::meEeNoZsRecVsSimE_
MonitorElement * meEeNoZsRecVsSimE_
Definition: EcalSelectiveReadoutValidation.h:577
EcalSelectiveReadoutValidation::eeDigis_
CollHandle< EEDigiCollection > eeDigis_
Definition: EcalSelectiveReadoutValidation.h:514
EcalSelectiveReadoutValidation::nEb_
int nEb_
Definition: EcalSelectiveReadoutValidation.h:720
phase1PixelTopology::xOffset
constexpr int16_t xOffset
Definition: phase1PixelTopology.h:19
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
edm::EventSetup::getHandle
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:155
EcalSelectiveReadoutValidation::geoToken
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > geoToken
Definition: EcalSelectiveReadoutValidation.h:408
EcalSelectiveReadoutValidation::outputFile_
std::string outputFile_
Output file for histograms.
Definition: EcalSelectiveReadoutValidation.h:488
dqm::impl::MonitorElement::getTProfile
virtual TProfile * getTProfile()
Definition: MonitorElement.cc:1028
EcalSelectiveReadoutValidation::meEbNoZsRecVsSimE_
MonitorElement * meEbNoZsRecVsSimE_
Definition: EcalSelectiveReadoutValidation.h:569
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:710
PCaloHit
Definition: PCaloHit.h:8
EcalSelectiveReadoutValidation::updateL1aRate
void updateL1aRate(const edm::Event &event)
Definition: EcalSelectiveReadoutValidation.cc:193
EcalSelectiveReadoutValidation::logSrpAlgoErrors_
bool logSrpAlgoErrors_
Definition: EcalSelectiveReadoutValidation.h:852
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
EcalSelectiveReadoutValidation::energiesEe_t::recE
double recE
energy reconstructed from unsuppressed digi
Definition: EcalSelectiveReadoutValidation.h:400
DetId::Ecal
Definition: DetId.h:27
EcalSelectiveReadoutValidation::nCompleteZS_
int nCompleteZS_
Counter of ZS-flagged RU fully read out.
Definition: EcalSelectiveReadoutValidation.h:647
EcalSelectiveReadoutValidation::meEbZsErrType1Cnt_
MonitorElement * meEbZsErrType1Cnt_
Definition: EcalSelectiveReadoutValidation.h:622
EcalTrigTowerDetId::ieta
int ieta() const
get the tower ieta
Definition: EcalTrigTowerDetId.h:44
visDQMUpload.buf
buf
Definition: visDQMUpload.py:160
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
EcalSelectiveReadoutValidation::dccZsFIR
static int dccZsFIR(const EcalDataFrame &frame, const std::vector< int > &firWeights, int firstFIRSample, bool *saturated=nullptr)
Definition: EcalSelectiveReadoutValidation.cc:2087
FEDRawData::size
size_t size() const
Lenght of the data buffer in bytes.
Definition: FEDRawData.h:45
EcalMGPASample
Definition: EcalMGPASample.h:22
edm::EventSetup::getData
bool getData(T &iHolder) const
Definition: EventSetup.h:127
EcalSelectiveReadoutValidation::nEeFROCnt_
int nEeFROCnt_
Counter of EE FRO-flagged RUs.
Definition: EcalSelectiveReadoutValidation.h:653
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:574
EcalSelectiveReadoutValidation::EE
Definition: EcalSelectiveReadoutValidation.h:67
EcalSelectiveReadoutValidation::nEeZsErrorsType1_
int nEeZsErrorsType1_
Definition: EcalSelectiveReadoutValidation.h:667
EcalSelectiveReadoutValidation::logSrApplicationErrors_
bool logSrApplicationErrors_
Definition: EcalSelectiveReadoutValidation.h:857
EcalSelectiveReadoutValidation::withEbSimHit_
bool withEbSimHit_
Definition: EcalSelectiveReadoutValidation.h:828
EcalSelectiveReadoutValidation::nDccs_
static const unsigned nDccs_
Total number of DCCs.
Definition: EcalSelectiveReadoutValidation.h:419
EcalSelectiveReadoutValidation::meFullRoRu_
MonitorElement * meFullRoRu_
Definition: EcalSelectiveReadoutValidation.h:579
EcalTPGPhysicsConstMap
std::map< uint32_t, EcalTPGPhysicsConst::Item > EcalTPGPhysicsConstMap
Definition: EcalTPGPhysicsConst.h:36
EcalSelectiveReadoutValidation::eeSimHits_
CollHandle< std::vector< PCaloHit > > eeSimHits_
Definition: EcalSelectiveReadoutValidation.h:522
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
EcalSelectiveReadoutValidation::nEbZsErrorsType1_
int nEbZsErrorsType1_
Definition: EcalSelectiveReadoutValidation.h:663
EcalTriggerTower
Definition: EcalSubdetector.h:10
L1TOccupancyClient_cfi.ymin
ymin
Definition: L1TOccupancyClient_cfi.py:43
EcalSelectiveReadoutValidation::weights_
std::vector< double > weights_
Definition: EcalSelectiveReadoutValidation.h:684
EcalSelectiveReadoutValidation::iTtEta2cIndex
int iTtEta2cIndex(int iEta) const
Definition: EcalSelectiveReadoutValidation.h:259
EcalSelectiveReadoutValidation::eeRuActive_
bool eeRuActive_[nEndcaps][nEeX/scEdge][nEeY/scEdge]
Definition: EcalSelectiveReadoutValidation.h:770
EcalSelectiveReadoutValidation::meZs1Ru_
MonitorElement * meZs1Ru_
Definition: EcalSelectiveReadoutValidation.h:580
EcalSrFlag::SRF_FULL
static const int SRF_FULL
Definition: EcalSrFlag.h:24
EcalSelectiveReadoutValidation::meEeRecVsSimE_
MonitorElement * meEeRecVsSimE_
Definition: EcalSelectiveReadoutValidation.h:576
EcalSelectiveReadoutValidation::ebComputedSrFlags_
CollHandle< EBSrFlagCollection > ebComputedSrFlags_
Definition: EcalSelectiveReadoutValidation.h:519
EcalSelectiveReadoutValidation::bookFloat
MonitorElement * bookFloat(DQMStore::IBooker &, const std::string &name)
Definition: EcalSelectiveReadoutValidation.cc:1961
EcalSelectiveReadoutValidation::logErrForDccs_
std::vector< bool > logErrForDccs_
Definition: EcalSelectiveReadoutValidation.h:716
EcalSelectiveReadoutValidation::ebEnergies
energiesEb_t ebEnergies[nEbEta][nEbPhi]
Definition: EcalSelectiveReadoutValidation.h:792
EcalSelectiveReadoutValidation::energiesEe_t::eta
double eta
phi crystal position in degrees
Definition: EcalSelectiveReadoutValidation.h:404
EcalSelectiveReadoutValidation::energiesEe_t::simHit
int simHit
energy reconstructed from zero-suppressed digi
Definition: EcalSelectiveReadoutValidation.h:402
TrackerOfflineValidation_Dqm_cff.xmax
xmax
Definition: TrackerOfflineValidation_Dqm_cff.py:11
amptDefault_cfi.frame
frame
Definition: amptDefault_cfi.py:12
dqm::implementation::IBooker::book2D
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:177
EcalSelectiveReadoutValidation::nEeLI_
int nEeLI_
Definition: EcalSelectiveReadoutValidation.h:728
EcalSelectiveReadoutValidation::scEdge
static const int scEdge
Number of crystals along a supercrystal edge.
Definition: EcalSelectiveReadoutValidation.h:465
EcalSelectiveReadoutValidation::xtalGraphX
int xtalGraphX(const EEDetId &id) const
Definition: EcalSelectiveReadoutValidation.h:889
Exception
Definition: hltDiff.cc:245
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:2134
EcalSelectiveReadoutValidation::ebTtEdge
static const int ebTtEdge
Number of crystals along an EB TT.
Definition: EcalSelectiveReadoutValidation.h:462
CollHandle::setToken
void setToken(edm::ConsumesCollector &collector)
Definition: CollHandle.h:48
EcalSelectiveReadoutValidation::histDir_
std::string histDir_
Definition: EcalSelectiveReadoutValidation.h:815
EcalSelectiveReadoutValidation::book1D
MonitorElement * book1D(DQMStore::IBooker &, const std::string &name, const std::string &title, int nbins, double xmin, double xmax)
Definition: EcalSelectiveReadoutValidation.cc:1972
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:444
EcalSelectiveReadoutValidation::cIndex2iEta
int cIndex2iEta(int i) const
Definition: EcalSelectiveReadoutValidation.h:248
EcalSelectiveReadoutValidation::meIncompleteFROCnt_
MonitorElement * meIncompleteFROCnt_
Definition: EcalSelectiveReadoutValidation.h:616
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:705
CaloSubdetectorGeometry
Definition: CaloSubdetectorGeometry.h:22
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
EcalSelectiveReadoutValidation::l1aOfTmax
int64_t l1aOfTmax
Definition: EcalSelectiveReadoutValidation.h:535
EcalSelectiveReadoutValidation::nEbFROCnt_
int nEbFROCnt_
Counter of EB FRO-flagged RUs.
Definition: EcalSelectiveReadoutValidation.h:650
EcalSelectiveReadoutValidation::kByte_
static const int kByte_
number of bytes in 1 kByte:
Definition: EcalSelectiveReadoutValidation.h:416
EcalSelectiveReadoutValidation::meZsErrCnt_
MonitorElement * meZsErrCnt_
Definition: EcalSelectiveReadoutValidation.h:621
EcalSelectiveReadoutValidation::ebSimHits_
CollHandle< std::vector< PCaloHit > > ebSimHits_
Definition: EcalSelectiveReadoutValidation.h:521
dqm-mbProfile.log
log
Definition: dqm-mbProfile.py:17
EcalSelectiveReadoutValidation::getCrystalCount
int getCrystalCount(int iDcc, int iDccCh)
Definition: EcalSelectiveReadoutValidation.cc:2356
EcalSelectiveReadoutValidation::meFullRoCnt_
MonitorElement * meFullRoCnt_
Definition: EcalSelectiveReadoutValidation.h:590
EcalSelectiveReadoutValidation::srApplicationErrorLog_
std::ofstream srApplicationErrorLog_
Output ascii file for unconsistency between Xtals and RU Flags.
Definition: EcalSelectiveReadoutValidation.h:505
EcalSelectiveReadoutValidation::printAvailableHists
void printAvailableHists()
Definition: EcalSelectiveReadoutValidation.cc:2053
edm::EDConsumerBase::esConsumes
auto esConsumes()
Definition: EDConsumerBase.h:206
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:680
EcalSelectiveReadoutValidation::srApplicationErrorLogFileName_
std::string srApplicationErrorLogFileName_
Definition: EcalSelectiveReadoutValidation.h:499
EcalSelectiveReadoutValidation::nPerRu_
int nPerRu_[nDccs_][nDccChs_]
Definition: EcalSelectiveReadoutValidation.h:777
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:311
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:581
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:234
EcalSelectiveReadoutValidation::meForcedTtf_
MonitorElement * meForcedTtf_
Definition: EcalSelectiveReadoutValidation.h:586
EcalSelectiveReadoutValidation::meDccVol_
MonitorElement * meDccVol_
Definition: EcalSelectiveReadoutValidation.h:542
EcalSelectiveReadoutValidation::nIncompleteFRO_
int nIncompleteFRO_
Counter of FRO-flagged RU only partial data.
Definition: EcalSelectiveReadoutValidation.h:644
EcalSelectiveReadoutValidation::allHists_
bool allHists_
Definition: EcalSelectiveReadoutValidation.h:811
EcalSelectiveReadoutValidation::tmax
int64_t tmax
Definition: EcalSelectiveReadoutValidation.h:532
TrackerOfflineValidation_Dqm_cff.xmin
xmin
Definition: TrackerOfflineValidation_Dqm_cff.py:10
EcalSelectiveReadoutValidation::meVolHI_
MonitorElement * meVolHI_
Definition: EcalSelectiveReadoutValidation.h:554
EcalSelectiveReadoutValidation::ebNoZsDigis_
CollHandle< EBDigiCollection > ebNoZsDigis_
Definition: EcalSelectiveReadoutValidation.h:515
hlt_dqm_clientPB-live_cfg.me
me
Definition: hlt_dqm_clientPB-live_cfg.py:61
EcalSelectiveReadoutValidation::eeNoZsDigis_
CollHandle< EEDigiCollection > eeNoZsDigis_
Definition: EcalSelectiveReadoutValidation.h:516
EcalSelectiveReadoutValidation::ebRuActive_
bool ebRuActive_[nEbEta/ebTtEdge][nEbPhi/ebTtEdge]
Definition: EcalSelectiveReadoutValidation.h:769
EcalSelectiveReadoutValidation::meTtf_
MonitorElement * meTtf_
Definition: EcalSelectiveReadoutValidation.h:558
EcalSrFlag::SRF_FORCED_MASK
static const int SRF_FORCED_MASK
Definition: EcalSrFlag.h:29
EcalSelectiveReadoutValidation::meTtfVsTp_
MonitorElement * meTtfVsTp_
Definition: EcalSelectiveReadoutValidation.h:559
EcalSelectiveReadoutValidation::energiesEe_t::phi
double phi
number of sim hits
Definition: EcalSelectiveReadoutValidation.h:403
event
Definition: event.py:1
hltrates_dqm_sourceclient-live_cfg.offset
offset
Definition: hltrates_dqm_sourceclient-live_cfg.py:82
EEDataFrame
Definition: EEDataFrame.h:12
EcalSelectiveReadoutValidation::meEeRecE_
MonitorElement * meEeRecE_
Definition: EcalSelectiveReadoutValidation.h:571
EcalSelectiveReadoutValidation::cIndex2iTtPhi
int cIndex2iTtPhi(int i) const
Definition: EcalSelectiveReadoutValidation.h:279
submitPVValidationJobs.t
string t
Definition: submitPVValidationJobs.py:644
EcalSelectiveReadoutValidation::ecalmapping
edm::ESGetToken< EcalElectronicsMapping, EcalMappingRcd > ecalmapping
Definition: EcalSelectiveReadoutValidation.h:409
edm::Log
Definition: MessageLogger.h:70
EcalSelectiveReadoutValidation::readOutUnitOf
EcalTrigTowerDetId readOutUnitOf(const EBDetId &xtalId) const
Definition: EcalSelectiveReadoutValidation.cc:1839
pileupReCalc_HLTpaths.trunc
trunc
Definition: pileupReCalc_HLTpaths.py:143
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:453
EcalSelectiveReadoutValidation::meEeZsErrCnt_
MonitorElement * meEeZsErrCnt_
Definition: EcalSelectiveReadoutValidation.h:620
EcalSelectiveReadoutValidation::meCompleteZSMap_
MonitorElement * meCompleteZSMap_
Definition: EcalSelectiveReadoutValidation.h:610
SimL1EmulatorDM_cff.eeDigis
eeDigis
Definition: SimL1EmulatorDM_cff.py:18
TauDecayModes.dec
dec
Definition: TauDecayModes.py:142
EcalScDetId::ix
int ix() const
Definition: EcalScDetId.h:70
EcalSelectiveReadoutValidation::energiesEb_t::recE
double recE
energy reconstructed from unsuppressed digi
Definition: EcalSelectiveReadoutValidation.h:387
EcalSelectiveReadoutValidation::ruGraphY
int ruGraphY(const EcalScDetId &id) const
Definition: EcalSelectiveReadoutValidation.h:883
edm::DataFrameContainer::end
const_iterator end() const
Definition: DataFrameContainer.h:152
EcalSelectiveReadoutValidation::meEeFullRoCnt_
MonitorElement * meEeFullRoCnt_
Definition: EcalSelectiveReadoutValidation.h:592
edm::InputTag
Definition: InputTag.h:15
edm::ConsumesCollector
Definition: ConsumesCollector.h:45
PV3DBase::phi
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
EcalSelectiveReadoutValidation::meVol_
MonitorElement * meVol_
Definition: EcalSelectiveReadoutValidation.h:546
EcalSelectiveReadoutValidation::eeEnergies
energiesEe_t eeEnergies[nEndcaps][nEeX][nEeY]
Definition: EcalSelectiveReadoutValidation.h:798
hit
Definition: SiStripHitEffFromCalibTree.cc:88
EcalSelectiveReadoutValidation::availableHistList_
std::map< std::string, std::string > availableHistList_
Definition: EcalSelectiveReadoutValidation.h:820
EcalSelectiveReadoutValidation::EB
Definition: EcalSelectiveReadoutValidation.h:67
dqm::implementation::IBooker::book1D
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
EcalTPGGroups::EcalTPGGroupsMap
std::map< uint32_t, uint32_t > EcalTPGGroupsMap
Definition: EcalTPGGroups.h:19
EcalSelectiveReadoutValidation::tps_
CollHandle< EcalTrigPrimDigiCollection > tps_
Definition: EcalSelectiveReadoutValidation.h:523
RemoveAddSevLevel.flag
flag
Definition: RemoveAddSevLevel.py:117
EcalSelectiveReadoutValidation::verbose_
bool verbose_
Verbosity switch.
Definition: EcalSelectiveReadoutValidation.h:485
edm::DataFrameContainer::size
size_type size() const
Definition: DataFrameContainer.h:162
EcalSelectiveReadoutValidation::meVolBLI_
MonitorElement * meVolBLI_
Definition: EcalSelectiveReadoutValidation.h:549
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
EcalSelectiveReadoutValidation::collNotFoundWarn_
bool collNotFoundWarn_
Switch for collection-not-found warning.
Definition: EcalSelectiveReadoutValidation.h:491
EcalSelectiveReadoutValidation::nHiRuPerDcc_
int nHiRuPerDcc_[nDccs_]
Definition: EcalSelectiveReadoutValidation.h:764
EcalSelectiveReadoutValidation::analyzeEB
void analyzeEB(const edm::Event &event, const edm::EventSetup &es)
Definition: EcalSelectiveReadoutValidation.cc:557