CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes
GctErrorAnalyzer Class Reference

#include <L1Trigger/L1GctAnalyzer/src/GctErrorAnalyzer.cc>

Inheritance diagram for GctErrorAnalyzer:
edm::one::EDAnalyzer< edm::one::SharedResources > edm::one::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

 GctErrorAnalyzer ()=delete
 
 GctErrorAnalyzer (const GctErrorAnalyzer &)=delete
 
 GctErrorAnalyzer (const edm::ParameterSet &)
 
GctErrorAnalyzer operator= (const GctErrorAnalyzer &)=delete
 
 ~GctErrorAnalyzer () override
 
- Public Member Functions inherited from edm::one::EDAnalyzer< edm::one::SharedResources >
 EDAnalyzer ()=default
 
 EDAnalyzer (const EDAnalyzer &)=delete
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
const EDAnalyzeroperator= (const EDAnalyzer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
- Public Member Functions inherited from edm::one::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDAnalyzerBase () 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 const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESResolverIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESResolverIndex > 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
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, 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::ESRecordsToProductResolverIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void beginJob () override
 
template<class T >
bool checkCollections (const T &collection, const unsigned int &constraint, const std::string &label)
 
void endJob () override
 
void plotCenJets (const edm::Handle< L1GctJetCandCollection > &data, const edm::Handle< L1GctJetCandCollection > &emu)
 
void plotEGErrors (const edm::Handle< L1GctEmCandCollection > &dataiso, const edm::Handle< L1GctEmCandCollection > &emuiso, const edm::Handle< L1GctEmCandCollection > &datanoniso, const edm::Handle< L1GctEmCandCollection > &emunoniso, const edm::Handle< L1CaloEmCollection > &regions)
 
void plotForJets (const edm::Handle< L1GctJetCandCollection > &data, const edm::Handle< L1GctJetCandCollection > &emu)
 
void plotHFBitCounts (const edm::Handle< L1GctHFBitCountsCollection > &hfBitCountsD, const edm::Handle< L1GctHFBitCountsCollection > &hfBitCountsE)
 
void plotHFErrors (const edm::Handle< L1GctHFRingEtSumsCollection > &hfRingSumsD, const edm::Handle< L1GctHFRingEtSumsCollection > &hfRingSumsE, const edm::Handle< L1GctHFBitCountsCollection > &hfBitCountsD, const edm::Handle< L1GctHFBitCountsCollection > &hfBitCountsE, const edm::Handle< L1CaloRegionCollection > &caloRegions)
 
void plotHFRingSums (const edm::Handle< L1GctHFRingEtSumsCollection > &data, const edm::Handle< L1GctHFRingEtSumsCollection > &emu)
 
void plotIntJets (const edm::Handle< L1GctInternJetDataCollection > &emu)
 
void plotIsoEm (const edm::Handle< L1GctEmCandCollection > &data, const edm::Handle< L1GctEmCandCollection > &emu)
 
void plotJetErrors (const edm::Handle< L1GctJetCandCollection > &cendata, const edm::Handle< L1GctJetCandCollection > &cenemu, const edm::Handle< L1GctJetCandCollection > &taudata, const edm::Handle< L1GctJetCandCollection > &tauemu, const edm::Handle< L1GctJetCandCollection > &fordata, const edm::Handle< L1GctJetCandCollection > &foremu, const edm::Handle< L1CaloRegionCollection > &regions)
 
void plotMissingEErrors (const edm::Handle< L1GctEtMissCollection > &missingEtD, const edm::Handle< L1GctEtMissCollection > &missingEtE, const edm::Handle< L1GctHtMissCollection > &missingHtD, const edm::Handle< L1GctHtMissCollection > &missingHtE, edm::Handle< L1CaloRegionCollection > &caloRegions, const edm::Handle< L1GctInternJetDataCollection > &intjetsemu, const edm::Handle< L1GctInternHtMissCollection > intMissingHtD)
 
void plotMissingEt (const edm::Handle< L1GctEtMissCollection > &missingEtD, const edm::Handle< L1GctEtMissCollection > &missingEtE)
 
void plotMissingHt (const edm::Handle< L1GctHtMissCollection > &missingHtD, const edm::Handle< L1GctHtMissCollection > &missingHtE)
 
void plotNonIsoEm (const edm::Handle< L1GctEmCandCollection > &data, const edm::Handle< L1GctEmCandCollection > &emu)
 
void plotRCTRegions (const edm::Handle< L1CaloRegionCollection > &caloRegions)
 
void plotTauJets (const edm::Handle< L1GctJetCandCollection > &data, const edm::Handle< L1GctJetCandCollection > &emu)
 
void plotTotalE (const edm::Handle< L1GctEtTotalCollection > &totalEtD, const edm::Handle< L1GctEtTotalCollection > &totalEtE)
 
void plotTotalEErrors (const edm::Handle< L1GctEtTotalCollection > &totalEtD, const edm::Handle< L1GctEtTotalCollection > &totalEtE, const edm::Handle< L1GctEtHadCollection > &totalHtD, const edm::Handle< L1GctEtHadCollection > &totalHtE, const edm::Handle< L1CaloRegionCollection > &caloRegions)
 
void plotTotalH (const edm::Handle< L1GctEtHadCollection > &totalHtD, const edm::Handle< L1GctEtHadCollection > &totalHtE)
 

Static Private Member Functions

static bool sortJets (const jetData &jet1, const jetData &jet2)
 

Private Attributes

TH1I * cenJet_errorFlag_
 
TH2I * cenJetD_EtEtaPhi_
 
TH2I * cenJetD_GlobalError_EtEtaPhi_
 
TH1I * cenJetD_GlobalError_Rank_
 
TH2I * cenJetD_OccEtaPhi_
 
TH1I * cenJetD_Rank_
 
TH2I * cenJetE_EtEtaPhi_
 
TH2I * cenJetE_GlobalError_EtEtaPhi_
 
TH1I * cenJetE_GlobalError_Rank_
 
TH2I * cenJetE_OccEtaPhi_
 
TH1I * cenJetE_Rank_
 
edm::InputTag dataTag_
 
bool doBitCountDebug_
 
bool doCenJetsDebug_
 
bool doEg_
 
bool doEmuMBx_
 
bool doExtraMissingHTDebug_
 
bool doForJetsDebug_
 
bool doGCTMBx_
 
bool doHF_
 
bool doIsoDebug_
 
bool doJets_
 
bool doMissingEnergySums_
 
bool doMissingETDebug_
 
bool doMissingHTDebug_
 
bool doNonIsoDebug_
 
bool doRCT_
 
bool doRCTMBx_
 
bool doRingSumDebug_
 
bool doTauJetsDebug_
 
bool doTotalEnergySums_
 
bool doTotalEtDebug_
 
bool doTotalHtDebug_
 
edm::InputTag emuTag_
 
int EmuTrigBx_
 
std::vector< TFileDirectoryerrorHistCat
 
unsigned int eventNumber
 
TH1I * forJet_errorFlag_
 
TH2I * forJetD_EtEtaPhi_
 
TH2I * forJetD_GlobalError_EtEtaPhi_
 
TH1I * forJetD_GlobalError_Rank_
 
TH2I * forJetD_OccEtaPhi_
 
TH1I * forJetD_Rank_
 
TH2I * forJetE_EtEtaPhi_
 
TH2I * forJetE_GlobalError_EtEtaPhi_
 
TH1I * forJetE_GlobalError_Rank_
 
TH2I * forJetE_OccEtaPhi_
 
TH1I * forJetE_Rank_
 
int GCTTrigBx_
 
TH1I * hfBitCount_errorFlag_
 
TH1I * hfBitCountD_1neg_
 
TH1I * hfBitCountD_1pos_
 
TH1I * hfBitCountD_2neg_
 
TH1I * hfBitCountD_2pos_
 
TH1I * hfBitCountE_1neg_
 
TH1I * hfBitCountE_1pos_
 
TH1I * hfBitCountE_2neg_
 
TH1I * hfBitCountE_2pos_
 
TH1I * hfRingSum_errorFlag_
 
TH1I * hfRingSumD_1neg_
 
TH1I * hfRingSumD_1pos_
 
TH1I * hfRingSumD_2neg_
 
TH1I * hfRingSumD_2pos_
 
TH1I * hfRingSumE_1neg_
 
TH1I * hfRingSumE_1pos_
 
TH1I * hfRingSumE_2neg_
 
TH1I * hfRingSumE_2pos_
 
TH1I * intJetE_Et_
 
TH1I * intJetE_Jet1Et_
 
TH1I * intJetE_Jet2Et_
 
TH1I * intJetE_Jet3Et_
 
TH1I * intJetE_Jet4Et_
 
TH1I * intJetE_Of_
 
TH2I * intJetEtEtaPhiE_
 
bool isBitCountError
 
bool isCenJetError
 
bool isForJetError
 
bool isIsoError
 
bool isMissingEError
 
bool isMissingHError
 
bool isNonIsoError
 
TH1I * isoEg_errorFlag_
 
TH2I * isoEgD_EtEtaPhi_
 
TH2I * isoEgD_GlobalError_EtEtaPhi_
 
TH1I * isoEgD_GlobalError_Rank_
 
TH2I * isoEgD_OccEtaPhi_
 
TH1I * isoEgD_Rank_
 
TH2I * isoEgE_EtEtaPhi_
 
TH2I * isoEgE_GlobalError_EtEtaPhi_
 
TH1I * isoEgE_GlobalError_Rank_
 
TH2I * isoEgE_OccEtaPhi_
 
TH1I * isoEgE_Rank_
 
bool isRingSumError
 
bool isTauJetError
 
bool isTotalEError
 
bool isTotalHError
 
GctErrorAnalyzerMBxInfo MBxInfo
 
TH1I * missingEt_errorFlag_
 
TH1I * missingEtD_
 
TH1I * missingEtD_Of_
 
TH1I * missingEtD_Phi_
 
TH1I * missingEtE_
 
TH1I * missingEtE_Of_
 
TH1I * missingEtE_Phi_
 
TH1I * missingHt_errorFlag_
 
TH1I * missingHtD_
 
TH1I * missingHtD_HtXNegLeaf1
 
TH1I * missingHtD_HtXNegLeaf2
 
TH1I * missingHtD_HtXNegLeaf3
 
TH1I * missingHtD_HtXPosLeaf1
 
TH1I * missingHtD_HtXPosLeaf2
 
TH1I * missingHtD_HtXPosLeaf3
 
TH1I * missingHtD_HtYNegLeaf1
 
TH1I * missingHtD_HtYNegLeaf2
 
TH1I * missingHtD_HtYNegLeaf3
 
TH1I * missingHtD_HtYPosLeaf1
 
TH1I * missingHtD_HtYPosLeaf2
 
TH1I * missingHtD_HtYPosLeaf3
 
TH1I * missingHtD_Of_
 
TH1I * missingHtD_Phi_
 
TH1I * missingHtE_
 
TH1I * missingHtE_Of_
 
TH1I * missingHtE_Phi_
 
TH1I * nonIsoEg_errorFlag_
 
TH2I * nonIsoEgD_EtEtaPhi_
 
TH2I * nonIsoEgD_GlobalError_EtEtaPhi_
 
TH1I * nonIsoEgD_GlobalError_Rank_
 
TH2I * nonIsoEgD_OccEtaPhi_
 
TH1I * nonIsoEgD_Rank_
 
TH2I * nonIsoEgE_EtEtaPhi_
 
TH2I * nonIsoEgE_GlobalError_EtEtaPhi_
 
TH1I * nonIsoEgE_GlobalError_Rank_
 
TH2I * nonIsoEgE_OccEtaPhi_
 
TH1I * nonIsoEgE_Rank_
 
TH2I * RCT_EtEtaPhi_
 
TH2I * RCT_FgEtaPhi_
 
TH2I * RCT_OfEtaPhi_
 
const unsigned int * RCT_REGION_QUANTA
 
TH2I * RCT_TvEtaPhi_
 
int RCTTrigBx_
 
TH1I * tauJet_errorFlag_
 
TH2I * tauJetD_EtEtaPhi_
 
TH2I * tauJetD_GlobalError_EtEtaPhi_
 
TH1I * tauJetD_GlobalError_Rank_
 
TH2I * tauJetD_OccEtaPhi_
 
TH1I * tauJetD_Rank_
 
TH2I * tauJetE_EtEtaPhi_
 
TH2I * tauJetE_GlobalError_EtEtaPhi_
 
TH1I * tauJetE_GlobalError_Rank_
 
TH2I * tauJetE_OccEtaPhi_
 
TH1I * tauJetE_Rank_
 
TH1I * totalEt_errorFlag_
 
TH1I * totalEtD_
 
TH1I * totalEtD_Of_
 
TH1I * totalEtE_
 
TH1I * totalEtE_Of_
 
TH1I * totalHt_errorFlag_
 
TH1I * totalHtD_
 
TH1I * totalHtD_Of_
 
TH1I * totalHtE_
 
TH1I * totalHtE_Of_
 
std::string useSys_
 

Additional Inherited Members

- Public Types inherited from edm::one::EDAnalyzerBase
typedef EDAnalyzerBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< Bconsumes (edm::InputTag tag) noexcept
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
void resetItemsToGetFrom (BranchType iType)
 

Detailed Description

Description: Tool to debug the GCT with useful output

Implementation: <Notes on="" implementation>="">

Definition at line 57 of file GctErrorAnalyzer.cc.

Constructor & Destructor Documentation

◆ GctErrorAnalyzer() [1/3]

GctErrorAnalyzer::GctErrorAnalyzer ( )
delete

◆ GctErrorAnalyzer() [2/3]

GctErrorAnalyzer::GctErrorAnalyzer ( const GctErrorAnalyzer )
delete

◆ GctErrorAnalyzer() [3/3]

GctErrorAnalyzer::GctErrorAnalyzer ( const edm::ParameterSet iConfig)
explicit

Definition at line 303 of file GctErrorAnalyzer.cc.

References cenJet_errorFlag_, cenJetD_EtEtaPhi_, cenJetD_GlobalError_EtEtaPhi_, cenJetD_GlobalError_Rank_, cenJetD_OccEtaPhi_, cenJetD_Rank_, cenJetE_EtEtaPhi_, cenJetE_GlobalError_EtEtaPhi_, cenJetE_GlobalError_Rank_, cenJetE_OccEtaPhi_, cenJetE_Rank_, GctErrorAnalyzerMBxInfo::EmuTrigBx, EmuTrigBx_, errorHistCat, forJet_errorFlag_, forJetD_EtEtaPhi_, forJetD_GlobalError_EtEtaPhi_, forJetD_GlobalError_Rank_, forJetD_OccEtaPhi_, forJetD_Rank_, forJetE_EtEtaPhi_, forJetE_GlobalError_EtEtaPhi_, forJetE_GlobalError_Rank_, forJetE_OccEtaPhi_, forJetE_Rank_, compareTotals::fs, GctErrorAnalyzerMBxInfo::GCTTrigBx, GCTTrigBx_, hfBitCount_errorFlag_, hfBitCountD_1neg_, hfBitCountD_1pos_, hfBitCountD_2neg_, hfBitCountD_2pos_, hfBitCountE_1neg_, hfBitCountE_1pos_, hfBitCountE_2neg_, hfBitCountE_2pos_, hfRingSum_errorFlag_, hfRingSumD_1neg_, hfRingSumD_1pos_, hfRingSumD_2neg_, hfRingSumD_2pos_, hfRingSumE_1neg_, hfRingSumE_1pos_, hfRingSumE_2neg_, hfRingSumE_2pos_, mps_fire::i, intJetE_Et_, intJetE_Jet1Et_, intJetE_Jet2Et_, intJetE_Jet3Et_, intJetE_Jet4Et_, intJetE_Of_, intJetEtEtaPhiE_, isBitCountError, isCenJetError, isForJetError, isIsoError, isMissingEError, isMissingHError, isNonIsoError, isoEg_errorFlag_, isoEgD_EtEtaPhi_, isoEgD_GlobalError_EtEtaPhi_, isoEgD_GlobalError_Rank_, isoEgD_OccEtaPhi_, isoEgD_Rank_, isoEgE_EtEtaPhi_, isoEgE_GlobalError_EtEtaPhi_, isoEgE_GlobalError_Rank_, isoEgE_OccEtaPhi_, isoEgE_Rank_, isRingSumError, isTauJetError, isTotalEError, isTotalHError, TFileService::kSharedResource, TFileDirectory::make(), MBxInfo, missingEt_errorFlag_, missingEtD_, missingEtD_Of_, missingEtD_Phi_, missingEtE_, missingEtE_Of_, missingEtE_Phi_, missingHt_errorFlag_, missingHtD_, missingHtD_HtXNegLeaf1, missingHtD_HtXNegLeaf2, missingHtD_HtXNegLeaf3, missingHtD_HtXPosLeaf1, missingHtD_HtXPosLeaf2, missingHtD_HtXPosLeaf3, missingHtD_HtYNegLeaf1, missingHtD_HtYNegLeaf2, missingHtD_HtYNegLeaf3, missingHtD_HtYPosLeaf1, missingHtD_HtYPosLeaf2, missingHtD_HtYPosLeaf3, missingHtD_Of_, missingHtD_Phi_, missingHtE_, missingHtE_Of_, missingHtE_Phi_, TFileDirectory::mkdir(), nonIsoEg_errorFlag_, nonIsoEgD_EtEtaPhi_, nonIsoEgD_GlobalError_EtEtaPhi_, nonIsoEgD_GlobalError_Rank_, nonIsoEgD_OccEtaPhi_, nonIsoEgD_Rank_, nonIsoEgE_EtEtaPhi_, nonIsoEgE_GlobalError_EtEtaPhi_, nonIsoEgE_GlobalError_Rank_, nonIsoEgE_OccEtaPhi_, nonIsoEgE_Rank_, RCT_EtEtaPhi_, RCT_FgEtaPhi_, RCT_OfEtaPhi_, RCT_REGION_QUANTA, RCT_REGION_QUANTA_LAB, RCT_REGION_QUANTA_P5, RCT_TvEtaPhi_, GctErrorAnalyzerMBxInfo::RCTTrigBx, RCTTrigBx_, tauJet_errorFlag_, tauJetD_EtEtaPhi_, tauJetD_GlobalError_EtEtaPhi_, tauJetD_GlobalError_Rank_, tauJetD_OccEtaPhi_, tauJetD_Rank_, tauJetE_EtEtaPhi_, tauJetE_GlobalError_EtEtaPhi_, tauJetE_GlobalError_Rank_, tauJetE_OccEtaPhi_, tauJetE_Rank_, totalEt_errorFlag_, totalEtD_, totalEtD_Of_, totalEtE_, totalEtE_Of_, totalHt_errorFlag_, totalHtD_, totalHtD_Of_, totalHtE_, totalHtE_Of_, and useSys_.

304  : doRCT_(iConfig.getUntrackedParameter<bool>("doRCT", true)),
305  doEg_(iConfig.getUntrackedParameter<bool>("doEg", true)),
306  doIsoDebug_(iConfig.getUntrackedParameter<bool>("doIsoDebug", true)),
307  doNonIsoDebug_(iConfig.getUntrackedParameter<bool>("doNonIsoDebug", true)),
308  doJets_(iConfig.getUntrackedParameter<bool>("doJets", true)),
309  doCenJetsDebug_(iConfig.getUntrackedParameter<bool>("doCenJetsDebug", true)),
310  doTauJetsDebug_(iConfig.getUntrackedParameter<bool>("doTauJetsDebug", true)),
311  doForJetsDebug_(iConfig.getUntrackedParameter<bool>("doForJetsDebug", true)),
312  doHF_(iConfig.getUntrackedParameter<bool>("doHF", true)),
313  doRingSumDebug_(iConfig.getUntrackedParameter<bool>("doRingSumDebug", true)),
314  doBitCountDebug_(iConfig.getUntrackedParameter<bool>("doBitCountDebug", true)),
315  doTotalEnergySums_(iConfig.getUntrackedParameter<bool>("doTotalEnergySums", true)),
316  doTotalEtDebug_(iConfig.getUntrackedParameter<bool>("doTotalEtDebug", true)),
317  doTotalHtDebug_(iConfig.getUntrackedParameter<bool>("doTotalHtDebug", true)),
318  doMissingEnergySums_(iConfig.getUntrackedParameter<bool>("doMissingEnergySums", true)),
319  doMissingETDebug_(iConfig.getUntrackedParameter<bool>("doMissingETDebug", true)),
320  doMissingHTDebug_(iConfig.getUntrackedParameter<bool>("doMissingHTDebug", true)),
321  doExtraMissingHTDebug_(iConfig.getUntrackedParameter<bool>("doExtraMissingHTDebug", false)),
322  doRCTMBx_(iConfig.getUntrackedParameter<bool>("doRCTMBx", false)),
323  doEmuMBx_(iConfig.getUntrackedParameter<bool>("doEmuMBx", false)),
324  doGCTMBx_(iConfig.getUntrackedParameter<bool>("doGCTMBx", false)),
325  RCTTrigBx_(iConfig.getUntrackedParameter<int>("RCTTrigBx", 0)),
326  EmuTrigBx_(iConfig.getUntrackedParameter<int>("EmuTrigBx", 0)),
327  GCTTrigBx_(iConfig.getUntrackedParameter<int>("GCTTrigBx", 0)),
328  dataTag_(iConfig.getUntrackedParameter<edm::InputTag>("dataTag", edm::InputTag("gctDigis"))),
329  emuTag_(iConfig.getUntrackedParameter<edm::InputTag>("emuTag", edm::InputTag("gctEmuDigis"))),
330  useSys_(iConfig.getUntrackedParameter<std::string>("useSys", "P5")) {
331  //now do what ever initialization is needed
332  //make the root file
333  usesResource(TFileService::kSharedResource);
335 
336  //to try to make this look more elegant
337  //make a string for each folder we'd like for the Data and Emulator Histograms
338  std::vector<std::string> quantities;
339  quantities.push_back("IsoEm");
340  quantities.push_back("NonIsoEM");
341  quantities.push_back("CenJets");
342  quantities.push_back("TauJets");
343  quantities.push_back("ForJets");
344  quantities.push_back("HFRingSums");
345  quantities.push_back("HFBitCounts");
346  quantities.push_back("TotalESums");
347  quantities.push_back("MissingESums");
348 
349  //make the Emulator Histogram directory
350  TFileDirectory emuHist = fs->mkdir("EmulatorHistograms");
351  std::vector<TFileDirectory> emuHistCat;
352 
353  //make the Data Histogram directory
354  TFileDirectory dataHist = fs->mkdir("DataHistograms");
355  std::vector<TFileDirectory> dataHistCat;
356 
357  //make the ErrorFlags directory
358  TFileDirectory errorHistFlags = fs->mkdir("ErrorHistograms_Flags");
359 
360  //make the ErrorDebug directory
361  TFileDirectory errorHistDetails = fs->mkdir("ErrorHistograms_Details");
362 
363  for (unsigned int i = 0; i < quantities.size(); i++) {
364  //fill the data and emulator folders with the directories
365  emuHistCat.push_back(emuHist.mkdir(quantities.at(i)));
366  dataHistCat.push_back(dataHist.mkdir(quantities.at(i)));
367  }
368 
369  //add a folder for RCT Regions - which only exist in data
370  dataHistCat.push_back(dataHist.mkdir("RCTRegions"));
371  //and add a folder for the Intermediate Jets - which only exist in emulator
372  emuHistCat.push_back(emuHist.mkdir("IntJets"));
373 
374  //Fill the ErrorDebug folder with the directories
375  errorHistCat.push_back(errorHistDetails.mkdir("EM"));
376  errorHistCat.push_back(errorHistDetails.mkdir("Jets"));
377  errorHistCat.push_back(errorHistDetails.mkdir("HF"));
378  errorHistCat.push_back(errorHistDetails.mkdir("TotalE"));
379  errorHistCat.push_back(errorHistDetails.mkdir("MissingE"));
380 
381  //BOOK HISTOGRAMS
382  RCT_EtEtaPhi_ = dataHistCat.at(9).make<TH2I>(
383  "RCT_EtEtaPhi", "RCT_EtEtaPhi;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
384  RCT_TvEtaPhi_ = dataHistCat.at(9).make<TH2I>(
385  "RCT_TvEtaPhi", "RCT_TvEtaPhi;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
386  RCT_FgEtaPhi_ = dataHistCat.at(9).make<TH2I>(
387  "RCT_FgEtaPhi", "RCT_FgEtaPhi;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
388  RCT_OfEtaPhi_ = dataHistCat.at(9).make<TH2I>(
389  "RCT_OfEtEtaPhi", "RCT_OfEtaPhi;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
390  //isoEg
391  isoEgD_Rank_ = dataHistCat.at(0).make<TH1I>("isoEgD_Rank", "isoEgD_Rank;Rank;Number of Events", 64, -0.5, 63.5);
392  isoEgE_Rank_ = emuHistCat.at(0).make<TH1I>("isoEgE_Rank", "isoEgE_Rank;Rank;Number of Events", 64, -0.5, 63.5);
393  isoEgD_EtEtaPhi_ = dataHistCat.at(0).make<TH2I>(
394  "isoEgD_EtEtaPhi", "isoEgD_EtEtaPhi;#eta (GCT Units);#phi(GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
395  isoEgE_EtEtaPhi_ = emuHistCat.at(0).make<TH2I>(
396  "isoEgE_EtEtaPhi", "isoEgE_EtEtaPhi;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
397  isoEgD_OccEtaPhi_ = dataHistCat.at(0).make<TH2I>(
398  "isoEgD_OccEtaPhi", "isoEgD_OccEtaPhi;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
399  isoEgE_OccEtaPhi_ = emuHistCat.at(0).make<TH2I>(
400  "isoEgE_OccEtaPhi", "isoEgE_OccEtaPhi;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
402  errorHistFlags.make<TH1I>("isoEg_errorFlag", "isoEg_errorFlag;Status;Number of Candidates", 3, -0.5, 2.5);
403  //Global isoEg Error
404  isoEgD_GlobalError_Rank_ = errorHistCat.at(0).make<TH1I>(
405  "isoEgD_GlobalError_Rank", "isoEgD_GlobalError_Rank;Rank;Number of Events", 64, -0.5, 63.5);
406  isoEgE_GlobalError_Rank_ = errorHistCat.at(0).make<TH1I>(
407  "isoEgE_GlobalError_Rank", "isoEgE_GlobalError_Rank;Rank;Number of Events", 64, -0.5, 63.5);
408  isoEgD_GlobalError_EtEtaPhi_ = errorHistCat.at(0).make<TH2I>(
409  "isoEgD_GlobalError_EtEtaPhi", "isoEgD_GlobalError_EtEtaPhi", 22, -0.5, 21.5, 18, -0.5, 17.5);
410  isoEgE_GlobalError_EtEtaPhi_ = errorHistCat.at(0).make<TH2I>(
411  "isoEgE_GlobalError_EtEtaPhi", "isoEgE_GlobalError_EtEtaPhi", 22, -0.5, 21.5, 18, -0.5, 17.5);
412  //nonIsoEg
414  dataHistCat.at(1).make<TH1I>("nonIsoEgD_Rank", "nonIsoEgD_Rank;Rank;Number of Events", 64, -0.5, 63.5);
416  emuHistCat.at(1).make<TH1I>("nonIsoEgE_Rank", "nonIsoEgE_Rank;Rank;Number of Events", 64, -0.5, 63.5);
417  nonIsoEgD_EtEtaPhi_ = dataHistCat.at(1).make<TH2I>(
418  "nonIsoEgD_EtEtaPhi", "nonIsoEgD_EtEtaPhi;#eta (GCT Units);#phi(GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
419  nonIsoEgE_EtEtaPhi_ = emuHistCat.at(1).make<TH2I>(
420  "nonIsoEgE_EtEtaPhi", "nonIsoEgE_EtEtaPhi;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
421  nonIsoEgD_OccEtaPhi_ = dataHistCat.at(1).make<TH2I>(
422  "nonIsoEgD_OccEtaPhi", "nonIsoEgD_OccEtaPhi;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
423  nonIsoEgE_OccEtaPhi_ = emuHistCat.at(1).make<TH2I>(
424  "nonIsoEgE_OccEtaPhi", "nonIsoEgE_OccEtaPhi;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
426  errorHistFlags.make<TH1I>("nonIsoEg_errorFlag", "nonIsoEg_errorFlag;Status;Number of Candidates", 3, -0.5, 2.5);
427  //Global nonIsoEg Error
428  nonIsoEgD_GlobalError_Rank_ = errorHistCat.at(0).make<TH1I>(
429  "nonIsoEgD_GlobalError_Rank", "nonIsoEgD_GlobalError_Rank;Rank;Number of Events", 64, -0.5, 63.5);
430  nonIsoEgE_GlobalError_Rank_ = errorHistCat.at(0).make<TH1I>(
431  "nonIsoEgE_GlobalError_Rank", "nonIsoEgE_GlobalError_Rank;Rank;Number of Events", 64, -0.5, 63.5);
433  "nonIsoEgD_GlobalError_EtEtaPhi", "nonIsoEgD_GlobalError_EtEtaPhi", 22, -0.5, 21.5, 18, -0.5, 17.5);
435  "nonIsoEgE_GlobalError_EtEtaPhi", "nonIsoEgE_GlobalError_EtEtaPhi", 22, -0.5, 21.5, 18, -0.5, 17.5);
436  //CenJets
437  cenJetD_Rank_ = dataHistCat.at(2).make<TH1I>("cenJetD_Rank", "cenJetD_Rank;Rank;Number of Events", 64, -0.5, 63.5);
438  cenJetE_Rank_ = emuHistCat.at(2).make<TH1I>("cenJetE_Rank", "cenJetE_Rank;Rank;Number of Events", 64, -0.5, 63.5);
439  cenJetD_EtEtaPhi_ = dataHistCat.at(2).make<TH2I>(
440  "cenJetD_EtEtaPhi", "cenJetD_EtEtaPhi;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
441  cenJetE_EtEtaPhi_ = emuHistCat.at(2).make<TH2I>(
442  "cenJetE_EtEtaPhi", "cenJetE_EtEtaPhi;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
443  cenJetD_OccEtaPhi_ = dataHistCat.at(2).make<TH2I>(
444  "cenJetD_OccEtaPhi", "cenJetD_OccEtaPhi;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
445  cenJetE_OccEtaPhi_ = emuHistCat.at(2).make<TH2I>(
446  "cenJetE_OccEtaPhi", "cenJetE_OccEtaPhi;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
448  errorHistFlags.make<TH1I>("cenJet_errorFlag", "cenJet_errorFlag;Status;Number of Candidates", 3, -0.5, 2.5);
449  //Global CenJet Error
451  errorHistCat.at(1).make<TH1I>("cenJetD_GlobalError_Rank", "cenJetD_GlobalError_Rank", 64, -0.5, 63.5);
453  errorHistCat.at(1).make<TH1I>("cenJetE_GlobalError_Rank", "cenJetE_GlobalError_Rank", 64, -0.5, 63.5);
454  cenJetD_GlobalError_EtEtaPhi_ = errorHistCat.at(1).make<TH2I>(
455  "cenJetD_GlobalError_EtEtaPhi", "cenJetD_GlobalError_EtEtaPhi", 22, -0.5, 21.5, 18, -0.5, 17.5);
456  cenJetE_GlobalError_EtEtaPhi_ = errorHistCat.at(1).make<TH2I>(
457  "cenJetE_GlobalError_EtEtaPhi", "cenJetE_GlobalError_EtEtaPhi", 22, -0.5, 21.5, 18, -0.5, 17.5);
458  //TauJets
459  tauJetD_Rank_ = dataHistCat.at(3).make<TH1I>("tauJetD_Rank", "tauJetD_Rank;Rank;Number of Events", 64, -0.5, 63.5);
460  tauJetE_Rank_ = emuHistCat.at(3).make<TH1I>("tauJetE_Rank", "tauJetE_Rank;Rank;Number of Events", 64, -0.5, 63.5);
461  tauJetD_EtEtaPhi_ = dataHistCat.at(3).make<TH2I>(
462  "tauJetD_EtEtaPhi", "tauJetD_EtEtaPhi;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
463  tauJetE_EtEtaPhi_ = emuHistCat.at(3).make<TH2I>(
464  "tauJetE_EtEtaPhi", "tauJetE_EtEtaPhi;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
465  tauJetD_OccEtaPhi_ = dataHistCat.at(3).make<TH2I>(
466  "tauJetD_OccEtaPhi", "tauJetD_OccEtaPhi;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
467  tauJetE_OccEtaPhi_ = emuHistCat.at(3).make<TH2I>(
468  "tauJetE_OccEtaPhi", "tauJetE_OccEtaPhi;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
470  errorHistFlags.make<TH1I>("tauJet_errorFlag", "tauJet_errorFlag;Status;Number of Candidates", 3, -0.5, 2.5);
471  //Global TauJet Error
473  errorHistCat.at(1).make<TH1I>("tauJetD_GlobalError_Rank", "tauJetD_GlobalError_Rank", 64, -0.5, 63.5);
475  errorHistCat.at(1).make<TH1I>("tauJetE_GlobalError_Rank", "tauJetE_GlobalError_Rank", 64, -0.5, 63.5);
476  tauJetD_GlobalError_EtEtaPhi_ = errorHistCat.at(1).make<TH2I>(
477  "tauJetD_GlobalError_EtEtaPhi", "tauJetD_GlobalError_EtEtaPhi", 22, -0.5, 21.5, 18, -0.5, 17.5);
478  tauJetE_GlobalError_EtEtaPhi_ = errorHistCat.at(1).make<TH2I>(
479  "tauJetE_GlobalError_EtEtaPhi", "tauJetE_GlobalError_EtEtaPhi", 22, -0.5, 21.5, 18, -0.5, 17.5);
480  //ForJets
481  forJetD_Rank_ = dataHistCat.at(4).make<TH1I>("forJetD_Rank", "forJetD_Rank;Rank;Number of Events", 64, -0.5, 63.5);
482  forJetE_Rank_ = emuHistCat.at(4).make<TH1I>("forJetE_Rank", "forJetE_Rank;Rank;Number of Events", 64, -0.5, 63.5);
483  forJetD_EtEtaPhi_ = dataHistCat.at(4).make<TH2I>(
484  "forJetD_EtEtaPhi", "forJetD_EtEtaPhi;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
485  forJetE_EtEtaPhi_ = emuHistCat.at(4).make<TH2I>(
486  "forJetE_EtEtaPhi", "forJetE_EtEtaPhi;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
487  forJetD_OccEtaPhi_ = dataHistCat.at(4).make<TH2I>(
488  "forJetD_OccEtaPhi", "forJetD_OccEtaPhi;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
489  forJetE_OccEtaPhi_ = emuHistCat.at(4).make<TH2I>(
490  "forJetE_OccEtaPhi", "forJetE_OccEtaPhi;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
492  errorHistFlags.make<TH1I>("forJet_errorFlag", "forJet_errorFlag;Status;Number of Candidates", 3, -0.5, 2.5);
493  //Global ForJet Error
495  errorHistCat.at(1).make<TH1I>("forJetD_GlobalError_Rank", "forJetD_GlobalError_Rank", 64, -0.5, 63.5);
497  errorHistCat.at(1).make<TH1I>("forJetE_GlobalError_Rank", "forJetE_GlobalError_Rank", 64, -0.5, 63.5);
498  forJetD_GlobalError_EtEtaPhi_ = errorHistCat.at(1).make<TH2I>(
499  "forJetD_GlobalError_EtEtaPhi", "forJetD_GlobalError_EtEtaPhi", 22, -0.5, 21.5, 18, -0.5, 17.5);
500  forJetE_GlobalError_EtEtaPhi_ = errorHistCat.at(1).make<TH2I>(
501  "forJetE_GlobalError_EtEtaPhi", "forJetE_GlobalError_EtEtaPhi", 22, -0.5, 21.5, 18, -0.5, 17.5);
502  //IntJets
503  intJetEtEtaPhiE_ = emuHistCat.at(9).make<TH2I>(
504  "intJetEtEtaPhiE_", "intJetEtEtaPhiE_;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
505  intJetE_Et_ = emuHistCat.at(9).make<TH1I>("intJetE_Et", "intJetE_Et;E_{T};Number of Events", 1024, -0.5, 1023.5);
506  intJetE_Of_ =
507  emuHistCat.at(9).make<TH1I>("intJetE_Of", "intJetE_Of;Overflow Bit Status;Number of Events", 2, -0.5, 1.5);
509  emuHistCat.at(9).make<TH1I>("intJetE_Jet1Et", "intJetE_Jet1Et;E_{T};Number of Events", 1024, -0.5, 1023.5);
511  emuHistCat.at(9).make<TH1I>("intJetE_Jet2Et", "intJetE_Jet2Et;E_{T};Number of Events", 1024, -0.5, 1023.5);
513  emuHistCat.at(9).make<TH1I>("intJetE_Jet3Et", "intJetE_Jet3Et;E_{T};Number of Events", 1024, -0.5, 1023.5);
515  emuHistCat.at(9).make<TH1I>("intJetE_Jet4Et", "intJetE_Jet4Et;E_{T};Number of Events", 1024, -0.5, 1023.5);
516  //HFRing Sums
517  hfRingSumD_1pos_ = dataHistCat.at(5).make<TH1I>("hfRingSumD_1+", "hfRingSumD_1+;Rank;Number of Events", 8, -0.5, 7.5);
518  hfRingSumD_1neg_ = dataHistCat.at(5).make<TH1I>("hfRingSumD_1-", "hfRingSumD_1-;Rank;Number of Events", 8, -0.5, 7.5);
519  hfRingSumD_2pos_ = dataHistCat.at(5).make<TH1I>("hfRingSumD_2+", "hfRingSumD_2+;Rank;Number of Events", 8, -0.5, 7.5);
520  hfRingSumD_2neg_ = dataHistCat.at(5).make<TH1I>("hfRingSumD_2-", "hfRingSumD_2-;Rank;Number of Events", 8, -0.5, 7.5);
521  hfRingSumE_1pos_ = emuHistCat.at(5).make<TH1I>("hfRingSumE_1+", "hfRingSumE_1+;Rank;Number of Events", 8, -0.5, 7.5);
522  hfRingSumE_1neg_ = emuHistCat.at(5).make<TH1I>("hfRingSumE_1-", "hfRingSumE_1-;Rank;Number of Events", 8, -0.5, 7.5);
523  hfRingSumE_2pos_ = emuHistCat.at(5).make<TH1I>("hfRingSumE_2+", "hfRingSumE_2+;Rank;Number of Events", 8, -0.5, 7.5);
524  hfRingSumE_2neg_ = emuHistCat.at(5).make<TH1I>("hfRingSumE_2-", "hfRingSumE_2-;Rank;Number of Events", 8, -0.5, 7.5);
526  errorHistFlags.make<TH1I>("hfRingSum_errorFlag", "hfRingSum_errorFlag;Status;Number of Candidates", 2, -0.5, 1.5);
527  //HFRing BitCounts
529  dataHistCat.at(6).make<TH1I>("hfBitCountD_1+", "hfBitCountD_1+;Rank;Number of Events", 8, -0.5, 7.5);
531  dataHistCat.at(6).make<TH1I>("hfBitCountD_1-", "hfBitCountD_1-;Rank;Number of Events", 8, -0.5, 7.5);
533  dataHistCat.at(6).make<TH1I>("hfBitCountD_2+", "hfBitCountD_2+;Rank;Number of Events", 8, -0.5, 7.5);
535  dataHistCat.at(6).make<TH1I>("hfBitCountD_2-", "hfBitCountD_2-;Rank;Number of Events", 8, -0.5, 7.5);
537  emuHistCat.at(6).make<TH1I>("hfBitCountE_1+", "hfBitCountE_1+;Rank;Number of Events", 8, -0.5, 7.5);
539  emuHistCat.at(6).make<TH1I>("hfBitCountE_1-", "hfBitCountE_1-;Rank;Number of Events", 8, -0.5, 7.5);
541  emuHistCat.at(6).make<TH1I>("hfBitCountE_2+", "hfBitCountE_2+;Rank;Number of Events", 8, -0.5, 7.5);
543  emuHistCat.at(6).make<TH1I>("hfBitCountE_2-", "hfBitCountE_2-;Rank;Number of Events", 8, -0.5, 7.5);
544  hfBitCount_errorFlag_ = errorHistFlags.make<TH1I>(
545  "hfBitCount_errorFlag", "hfBitCount_errorFlag;Status;Number of Candidates", 2, -0.5, 1.5);
546  //Total ET
547  totalEtD_ = dataHistCat.at(7).make<TH1I>("totalEtD", "totalEtD;E_{T};Number of Events", 2048, -0.5, 2047.5);
548  totalEtD_Of_ =
549  dataHistCat.at(7).make<TH1I>("totalEtD_Of", "totalEtD_Of;Overflow Bit Status;Number of Events", 2, -0.5, 1.5);
550  totalEtE_ = emuHistCat.at(7).make<TH1I>("totalEtE", "totalEtE;E_{T};Number of Events", 2048, -0.5, 2047.5);
551  totalEtE_Of_ =
552  emuHistCat.at(7).make<TH1I>("totalEtE_Of", "totalEtE_Of;Overflow Bit Status;Number of Events", 2, -0.5, 1.5);
554  errorHistFlags.make<TH1I>("totalEt_errorFlag", "totalEt_errorFlag;Status;Number of Candidates", 2, -0.5, 1.5);
555  //Book the Global ET Error histograms in the errorHistCat
556  //totalEtD_GlobalError_ = errorHistCat.at(3).make<TH1I>("totalEtD_GlobalError", "totalEtD_GlobalError;E_{T};Number of Events", 1024, -0.5, 1023.5);
557  //totalEtE_GlobalError_ = errorHistCat.at(3).make<TH1I>("totalEtE_GlobalError", "totalEtE_GlobalError;E_{T};Number of Events", 1024, -0.5, 1023.5);
558  //totalEtD_GlobalError_Of_ = errorHistCat.at(3).make<TH1I>("totalEtD_GlobalError_Of", "totalEtD_GlobalError_Of;Overflow Bit Status;Number of Events", 2, -0.5, 1.5);
559  //totalEtE_GlobalError_Of_ = errorHistCat.at(3).make<TH1I>("totalEtE_GlobalError_Of", "totalEtE_GlobalError_Of;Overflow Bit Status;Number of Events", 2, -0.5, 1.5);
560  //Total HT
561  totalHtD_ = dataHistCat.at(7).make<TH1I>("totalHtD", "totalHtD;H_{T};Number of Events", 2048, -0.5, 2047.5);
562  totalHtD_Of_ =
563  dataHistCat.at(7).make<TH1I>("totalHtD_Of", "totalHtD_Of;Overflow Bit Status;Number of Events", 2, -0.5, 1.5);
564  totalHtE_ = emuHistCat.at(7).make<TH1I>("totalHtE", "totalHtE;H_{T};Number of Events", 2048, -0.5, 2047.5);
565  totalHtE_Of_ =
566  emuHistCat.at(7).make<TH1I>("totalHtE_Of", "totalHtE_Of;Overflow Bit Status;Number of Events", 2, -0.5, 1.5);
568  errorHistFlags.make<TH1I>("totalHt_errorFlag", "totalHt_errorFlag;Status;Number of Candidates", 2, -0.5, 1.5);
569  //Book the Global HT Error histograms in the errorHistCat
570  //totalHtD_GlobalError_ = errorHistCat.at(3).make<TH1I>("totalHtD_GlobalError", "totalHtD_GlobalError;E_{T};Number of Events", 1024, -0.5, 1023.5);
571  //totalHtE_GlobalError_ = errorHistCat.at(3).make<TH1I>("totalHtE_GlobalError", "totalHtE_GlobalError;E_{T};Number of Events", 1024, -0.5, 1023.5);
572  //totalHtD_GlobalError_Of_ = errorHistCat.at(3).make<TH1I>("totalHtD_GlobalError_Of", "totalHtD_GlobalError_Of;Overflow Bit Status;Number of Events", 2, -0.5, 1.5);
573  //totalHtE_GlobalError_Of_ = errorHistCat.at(3).make<TH1I>("totalHtE_GlobalError_Of", "totalHtE_GlobalError_Of;Overflow Bit Status;Number of Events", 2, -0.5, 1.5);
574  //MissingEt
575  missingEtD_ =
576  dataHistCat.at(8).make<TH1I>("missingEtD", "missingEtD;Missing E_{T};Number of Events", 1024, -0.5, 1023.5);
578  dataHistCat.at(8).make<TH1I>("missingEtD_Of", "missingEtD_Of;Overflow Bit Status;Number of Events", 2, -0.5, 1.5);
579  missingEtD_Phi_ = dataHistCat.at(8).make<TH1I>(
580  "missingEtD_Phi", "missingEtD_Phi;Missing E_{T} #phi;Number of Events", 72, -0.5, 71.5);
581  missingEtE_ =
582  emuHistCat.at(8).make<TH1I>("missingEtE", "missingEtE;Missing E_{T};Number of Events", 1024, -0.5, 1023.5);
584  emuHistCat.at(8).make<TH1I>("missingEtE_Of", "missingEtE_Of;Overflow Bit Status;Number of Events", 2, -0.5, 1.5);
585  missingEtE_Phi_ = emuHistCat.at(8).make<TH1I>(
586  "missingEtE_Phi", "missingEtE_Phi;Missing E_{T} #phi;Number of Events", 72, -0.5, 71.5);
588  errorHistFlags.make<TH1I>("missingEt_errorFlag", "missingEt_errorFlag;Status;Number of Candidates", 4, -0.5, 3.5);
589  //MissingHt
590  missingHtD_ =
591  dataHistCat.at(8).make<TH1I>("missingHtD", "missingHtD;Missing H_{T};Number of Events", 1024, -0.5, 1023.5);
593  dataHistCat.at(8).make<TH1I>("missingHtD_Of", "missingHtD_Of;Overflow Bit Status;Number of Events", 2, -0.5, 1.5);
594  missingHtD_Phi_ = dataHistCat.at(8).make<TH1I>(
595  "missingHtD_Phi", "missingHtD_Phi;Missing H_{T} #phi;Number of Events", 72, -0.5, 71.5);
596  missingHtE_ =
597  emuHistCat.at(8).make<TH1I>("missingHtE", "missingHtE;Missing H_{T};Number of Events", 1024, -0.5, 1023.5);
599  emuHistCat.at(8).make<TH1I>("missingHtE_Of", "missingHtE_Of;Overflow Bit Status;Number of Events", 2, -0.5, 1.5);
600  missingHtE_Phi_ = emuHistCat.at(8).make<TH1I>(
601  "missingHtE_Phi", "missingHtE_Phi;Missing H_{T} #phi;Number of Events", 72, -0.5, 71.5);
603  errorHistFlags.make<TH1I>("missingHt_errorFlag", "missingHt_errorFlag;Status;Number of Candidates", 4, -0.5, 3.5);
604  //Additional MissingHt Debug histograms
605  missingHtD_HtXPosLeaf1 = dataHistCat.at(8).make<TH1I>(
606  "missingHtD_HtXPosLeaf1", "missingHtD;Missing H_{T} X PosLeaf1;Number of Events", 4096, -2048.5, 2047.5);
607  missingHtD_HtXPosLeaf2 = dataHistCat.at(8).make<TH1I>(
608  "missingHtD_HtXPosLeaf2", "missingHtD;Missing H_{T} X PosLeaf2;Number of Events", 4096, -2048.5, 2047.5);
609  missingHtD_HtXPosLeaf3 = dataHistCat.at(8).make<TH1I>(
610  "missingHtD_HtXPosLeaf3", "missingHtD;Missing H_{T} X PosLeaf3;Number of Events", 4096, -2048.5, 2047.5);
611  missingHtD_HtXNegLeaf1 = dataHistCat.at(8).make<TH1I>(
612  "missingHtD_HtXNegLeaf1", "missingHtD;Missing H_{T} X NegLeaf1;Number of Events", 4096, -2048.5, 2047.5);
613  missingHtD_HtXNegLeaf2 = dataHistCat.at(8).make<TH1I>(
614  "missingHtD_HtXNegLeaf2", "missingHtD;Missing H_{T} X NegLeaf2;Number of Events", 4096, -2048.5, 2047.5);
615  missingHtD_HtXNegLeaf3 = dataHistCat.at(8).make<TH1I>(
616  "missingHtD_HtXNegLeaf3", "missingHtD;Missing H_{T} X NegLeaf3;Number of Events", 4096, -2048.5, 2047.5);
617 
618  missingHtD_HtYPosLeaf1 = dataHistCat.at(8).make<TH1I>(
619  "missingHtD_HtYPosLeaf1", "missingHtD;Missing H_{T} Y PosLeaf1;Number of Events", 4096, -2048.5, 2047.5);
620  missingHtD_HtYPosLeaf2 = dataHistCat.at(8).make<TH1I>(
621  "missingHtD_HtYPosLeaf2", "missingHtD;Missing H_{T} Y PosLeaf2;Number of Events", 4096, -2048.5, 2047.5);
622  missingHtD_HtYPosLeaf3 = dataHistCat.at(8).make<TH1I>(
623  "missingHtD_HtYPosLeaf3", "missingHtD;Missing H_{T} Y PosLeaf3;Number of Events", 4096, -2048.5, 2047.5);
624  missingHtD_HtYNegLeaf1 = dataHistCat.at(8).make<TH1I>(
625  "missingHtD_HtYNegLeaf1", "missingHtD;Missing H_{T} Y NegLeaf1;Number of Events", 4096, -2048.5, 2047.5);
626  missingHtD_HtYNegLeaf2 = dataHistCat.at(8).make<TH1I>(
627  "missingHtD_HtYNegLeaf2", "missingHtD;Missing H_{T} Y NegLeaf2;Number of Events", 4096, -2048.5, 2047.5);
628  missingHtD_HtYNegLeaf3 = dataHistCat.at(8).make<TH1I>(
629  "missingHtD_HtYNegLeaf3", "missingHtD;Missing H_{T} Y NegLeaf3;Number of Events", 4096, -2048.5, 2047.5);
630 
631  //Annotate the labels of the error flags
632  //For the electrons and jets
633  std::vector<std::string> errorFlagLabels;
634  errorFlagLabels.push_back("Matched");
635  errorFlagLabels.push_back("Unmatched Data Cand");
636  errorFlagLabels.push_back("Unmatched Emul Cand");
637 
638  for (unsigned int i = 0; i < errorFlagLabels.size(); i++) {
639  isoEg_errorFlag_->GetXaxis()->SetBinLabel(i + 1, errorFlagLabels.at(i).c_str());
640  nonIsoEg_errorFlag_->GetXaxis()->SetBinLabel(i + 1, errorFlagLabels.at(i).c_str());
641  cenJet_errorFlag_->GetXaxis()->SetBinLabel(i + 1, errorFlagLabels.at(i).c_str());
642  tauJet_errorFlag_->GetXaxis()->SetBinLabel(i + 1, errorFlagLabels.at(i).c_str());
643  forJet_errorFlag_->GetXaxis()->SetBinLabel(i + 1, errorFlagLabels.at(i).c_str());
644  }
645  errorFlagLabels.clear();
646 
647  //For the Total Energy Sums and HF
648  errorFlagLabels.push_back("Matched");
649  errorFlagLabels.push_back("Unmatched");
650 
651  for (unsigned int i = 0; i < errorFlagLabels.size(); i++) {
652  hfRingSum_errorFlag_->GetXaxis()->SetBinLabel(i + 1, errorFlagLabels.at(i).c_str());
653  hfBitCount_errorFlag_->GetXaxis()->SetBinLabel(i + 1, errorFlagLabels.at(i).c_str());
654  totalEt_errorFlag_->GetXaxis()->SetBinLabel(i + 1, errorFlagLabels.at(i).c_str());
655  totalHt_errorFlag_->GetXaxis()->SetBinLabel(i + 1, errorFlagLabels.at(i).c_str());
656  }
657  errorFlagLabels.clear();
658 
659  //For the Missing Energy Sums
660  errorFlagLabels.push_back("Matched");
661  errorFlagLabels.push_back("Matched Mag");
662  errorFlagLabels.push_back("Matched Phi");
663  errorFlagLabels.push_back("Unmatched");
664 
665  for (unsigned int i = 0; i < errorFlagLabels.size(); i++) {
666  missingEt_errorFlag_->GetXaxis()->SetBinLabel(i + 1, errorFlagLabels.at(i).c_str());
667  missingHt_errorFlag_->GetXaxis()->SetBinLabel(i + 1, errorFlagLabels.at(i).c_str());
668  }
669 
670  //initialise - set all flags to false as they will be set on an event-by-event basis
671  isIsoError = false;
672  isNonIsoError = false;
673  isCenJetError = false;
674  isTauJetError = false;
675  isForJetError = false;
676  isRingSumError = false;
677  isBitCountError = false;
678  isTotalEError = false;
679  isTotalHError = false;
680  isMissingEError = false;
681  isMissingHError = false;
682 
683  //fill the struct of MBXinformation. It is easier to pass this information to the respective functions as used below this way
687 
688  //set the parameters according to the system chosen
689  if (useSys_ == "P5") {
691  } else if (useSys_ == "Lab") {
693  } else {
694  edm::LogWarning("ChosenSystem") << " "
695  << "The system you chose to use (" << useSys_
696  << ") was not recognised. Defaulting to the full system geometry";
698  }
699 }
static const std::string kSharedResource
Definition: TFileService.h:76
TH1I * tauJetD_GlobalError_Rank_
GctErrorAnalyzerMBxInfo MBxInfo
TH1I * nonIsoEgE_GlobalError_Rank_
TH2I * isoEgD_GlobalError_EtEtaPhi_
TH2I * forJetE_GlobalError_EtEtaPhi_
TH2I * cenJetD_GlobalError_EtEtaPhi_
TH1I * nonIsoEgD_GlobalError_Rank_
TH2I * cenJetE_GlobalError_EtEtaPhi_
TH2I * forJetD_GlobalError_EtEtaPhi_
const unsigned int RCT_REGION_QUANTA_LAB
T getUntrackedParameter(std::string const &, T const &) const
T * make(const Args &...args) const
make new ROOT object
TH1I * cenJetE_GlobalError_Rank_
edm::InputTag emuTag_
TH2I * tauJetE_GlobalError_EtEtaPhi_
TH2I * nonIsoEgE_GlobalError_EtEtaPhi_
TH1I * forJetE_GlobalError_Rank_
TFileDirectory mkdir(const std::string &dir, const std::string &descr="")
create a new subdirectory
TH1I * cenJetD_GlobalError_Rank_
TH2I * isoEgE_GlobalError_EtEtaPhi_
edm::InputTag dataTag_
TH1I * forJetD_GlobalError_Rank_
std::vector< TFileDirectory > errorHistCat
const unsigned int RCT_REGION_QUANTA_P5
TH1I * tauJetE_GlobalError_Rank_
TH2I * nonIsoEgD_GlobalError_EtEtaPhi_
Log< level::Warning, false > LogWarning
TH2I * tauJetD_GlobalError_EtEtaPhi_
const unsigned int * RCT_REGION_QUANTA

◆ ~GctErrorAnalyzer()

GctErrorAnalyzer::~GctErrorAnalyzer ( )
override

Definition at line 701 of file GctErrorAnalyzer.cc.

701  {
702  // do anything here that needs to be done at desctruction time
703  // (e.g. close files, deallocate resources etc.)
704 }

Member Function Documentation

◆ analyze()

void GctErrorAnalyzer::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivatevirtual

Implements edm::one::EDAnalyzerBase.

Definition at line 711 of file GctErrorAnalyzer.cc.

References caloLayer1Raw_cfi::caloRegions, cenJet_errorFlag_, cenJetD_GlobalError_EtEtaPhi_, cenJetD_GlobalError_Rank_, cenJetE_GlobalError_EtEtaPhi_, cenJetE_GlobalError_Rank_, checkCollections(), dataTag_, doBitCountDebug_, doCenJetsDebug_, compareRingSums::doCompare(), compareBitCounts::doCompare(), compareCands< T >::doCompare(), compareTotalEnergySums< T >::doCompare(), compareMissingEnergySums< T >::doCompare(), doEg_, doExtraMissingHTDebug_, doForJetsDebug_, doGCTMBx_, doHF_, doIsoDebug_, doJets_, doMissingEnergySums_, doMissingETDebug_, doMissingHTDebug_, doNonIsoDebug_, doRCT_, doRingSumDebug_, doTauJetsDebug_, doTotalEnergySums_, doTotalEtDebug_, doTotalHtDebug_, emuTag_, eventNumber, forJet_errorFlag_, forJetD_GlobalError_EtEtaPhi_, forJetD_GlobalError_Rank_, forJetE_GlobalError_EtEtaPhi_, forJetE_GlobalError_Rank_, GCT_INT_HTMISS_QUANTA, GCT_OBJECT_QUANTA, GCT_SUMS_QUANTA, GCTTrigBx_, hfBitCount_errorFlag_, hfRingSum_errorFlag_, mps_fire::i, iEvent, isBitCountError, isCenJetError, isForJetError, isIsoError, isMissingEError, isMissingHError, isNonIsoError, isoEg_errorFlag_, isoEgD_GlobalError_EtEtaPhi_, isoEgD_GlobalError_Rank_, isoEgE_GlobalError_EtEtaPhi_, isoEgE_GlobalError_Rank_, isRingSumError, isTauJetError, isTotalEError, isTotalHError, edm::InputTag::label(), MBxInfo, missingEt_errorFlag_, missingHt_errorFlag_, missingHtD_HtXNegLeaf1, missingHtD_HtXNegLeaf2, missingHtD_HtXNegLeaf3, missingHtD_HtXPosLeaf1, missingHtD_HtXPosLeaf2, missingHtD_HtXPosLeaf3, missingHtD_HtYNegLeaf1, missingHtD_HtYNegLeaf2, missingHtD_HtYNegLeaf3, missingHtD_HtYPosLeaf1, missingHtD_HtYPosLeaf2, missingHtD_HtYPosLeaf3, nonIsoEg_errorFlag_, nonIsoEgD_GlobalError_EtEtaPhi_, nonIsoEgD_GlobalError_Rank_, nonIsoEgE_GlobalError_EtEtaPhi_, nonIsoEgE_GlobalError_Rank_, NUM_INT_JETS, plotCenJets(), plotEGErrors(), plotForJets(), plotHFBitCounts(), plotHFErrors(), plotHFRingSums(), plotIntJets(), plotIsoEm(), plotJetErrors(), plotMissingEErrors(), plotMissingEt(), plotMissingHt(), plotNonIsoEm(), plotRCTRegions(), plotTauJets(), plotTotalE(), plotTotalEErrors(), plotTotalH(), RCT_EM_OBJECT_QUANTA, RCT_REGION_QUANTA, tauJet_errorFlag_, tauJetD_GlobalError_EtEtaPhi_, tauJetD_GlobalError_Rank_, tauJetE_GlobalError_EtEtaPhi_, tauJetE_GlobalError_Rank_, totalEt_errorFlag_, and totalHt_errorFlag_.

711  {
712  using namespace edm;
713  using namespace std;
714 
716  Handle<L1CaloEmCollection> emRegions;
717 
722 
729 
731 
734 
737 
740 
743 
746 
749 
751 
752  //we need this for all user cases...
753  iEvent.getByLabel(dataTag_.label(), caloRegions);
754 
755  //in order to allow the debug folders to have a unique name (so that when jobs are split in crab, we can merge)
756  //use the eventnum in the folder name
757  eventNumber = iEvent.id().event();
758 
759  if (doRCT_) {
760  if (checkCollections(caloRegions, *RCT_REGION_QUANTA, "RCT CaloRegions"))
762  }
763 
764  if (doEg_) {
765  iEvent.getByLabel(dataTag_.label(), "nonIsoEm", nonIsoEgD);
766  iEvent.getByLabel(emuTag_.label(), "nonIsoEm", nonIsoEgE);
767 
768  iEvent.getByLabel(dataTag_.label(), "isoEm", isoEgD);
769  iEvent.getByLabel(emuTag_.label(), "isoEm", isoEgE);
770 
771  isIsoError = false;
772  isNonIsoError = false;
773 
774  if (checkCollections(isoEgD, GCT_OBJECT_QUANTA, "Iso e/g Data") &&
775  checkCollections(isoEgE, GCT_OBJECT_QUANTA, "Iso e/g Emulator")) {
776  plotIsoEm(isoEgD, isoEgE);
777  compareEG isoCompare(isoEgD, isoEgE, MBxInfo);
778  isIsoError = isoCompare.doCompare(isoEg_errorFlag_,
783  }
784 
785  if (checkCollections(nonIsoEgD, GCT_OBJECT_QUANTA, "NonIso e/g Data") &&
786  checkCollections(nonIsoEgE, GCT_OBJECT_QUANTA, "NonIso e/g Emulator")) {
787  plotNonIsoEm(nonIsoEgD, nonIsoEgE);
788  compareEG nonIsoCompare(nonIsoEgD, nonIsoEgE, MBxInfo);
789  isNonIsoError = nonIsoCompare.doCompare(nonIsoEg_errorFlag_,
794  }
795 
797  iEvent.getByLabel(dataTag_.label(), emRegions);
798  if (checkCollections(emRegions, RCT_EM_OBJECT_QUANTA, "RCT EMRegions"))
799  plotEGErrors(isoEgD, isoEgE, nonIsoEgD, nonIsoEgE, emRegions);
800  }
801  }
802 
803  if (doJets_) {
804  iEvent.getByLabel(emuTag_.label(), "cenJets", cenJetsE);
805  iEvent.getByLabel(dataTag_.label(), "cenJets", cenJetsD);
806 
807  iEvent.getByLabel(emuTag_.label(), "forJets", forJetsE);
808  iEvent.getByLabel(dataTag_.label(), "forJets", forJetsD);
809 
810  iEvent.getByLabel(emuTag_.label(), "tauJets", tauJetsE);
811  iEvent.getByLabel(dataTag_.label(), "tauJets", tauJetsD);
812 
813  iEvent.getByLabel(emuTag_.label(), intJetsE);
814 
815  isCenJetError = false;
816  isTauJetError = false;
817  isForJetError = false;
818 
819  //Central Jets
820  if (checkCollections(cenJetsD, GCT_OBJECT_QUANTA, "Central Jets Data") &&
821  checkCollections(cenJetsE, GCT_OBJECT_QUANTA, "Central Jets Emulator")) {
822  plotCenJets(cenJetsD, cenJetsE);
823  compareJets cenJetsCompare(cenJetsD, cenJetsE, MBxInfo);
824  isCenJetError = cenJetsCompare.doCompare(cenJet_errorFlag_,
829  }
830 
831  //Tau Jets
832  if (checkCollections(tauJetsD, GCT_OBJECT_QUANTA, "Tau Jets Data") &&
833  checkCollections(tauJetsE, GCT_OBJECT_QUANTA, "Tau Jets Emulator")) {
834  plotTauJets(tauJetsD, tauJetsE);
835  compareJets tauJetsCompare(tauJetsD, tauJetsE, MBxInfo);
836  isTauJetError = tauJetsCompare.doCompare(tauJet_errorFlag_,
841  }
842 
843  //For Jets
844  if (checkCollections(forJetsD, GCT_OBJECT_QUANTA, "Forward Jets Data") &&
845  checkCollections(forJetsE, GCT_OBJECT_QUANTA, "Forward Jets Emulator")) {
846  plotForJets(forJetsD, forJetsE);
847  compareJets forJetsCompare(forJetsD, forJetsE, MBxInfo);
848  isForJetError = forJetsCompare.doCompare(forJet_errorFlag_,
853  }
854 
855  //Emulator Intermediate Jets
856  if (checkCollections(intJetsE, NUM_INT_JETS, "Intermediate Jets Emulator"))
857  plotIntJets(intJetsE);
858 
861  plotJetErrors(cenJetsD, cenJetsE, tauJetsD, tauJetsE, forJetsD, forJetsE, caloRegions);
862  }
863  }
864 
865  if (doHF_) {
866  iEvent.getByLabel(dataTag_.label(), hfRingSumsD);
867  iEvent.getByLabel(emuTag_.label(), hfRingSumsE);
868 
869  iEvent.getByLabel(dataTag_.label(), hfBitCountsD);
870  iEvent.getByLabel(emuTag_.label(), hfBitCountsE);
871 
872  isRingSumError = false;
873  isBitCountError = false;
874 
875  if (checkCollections(hfRingSumsD, GCT_SUMS_QUANTA, "HF Ring Sums Data") &&
876  checkCollections(hfRingSumsE, GCT_SUMS_QUANTA, "HF Ring Sums Emulator")) {
877  plotHFRingSums(hfRingSumsD, hfRingSumsE);
878  compareRingSums HFRingSums(hfRingSumsD, hfRingSumsE, MBxInfo);
879  isRingSumError = HFRingSums.doCompare(hfRingSum_errorFlag_);
880  }
881 
882  if (checkCollections(hfBitCountsD, GCT_SUMS_QUANTA, "HF Bit Counts Data") &&
883  checkCollections(hfBitCountsE, GCT_SUMS_QUANTA, "HF Bit Counts Emulator")) {
884  plotHFBitCounts(hfBitCountsD, hfBitCountsE);
885  compareBitCounts HFBitCounts(hfBitCountsD, hfBitCountsE, MBxInfo);
886  isBitCountError = HFBitCounts.doCompare(hfBitCount_errorFlag_);
887  }
888 
890  plotHFErrors(hfRingSumsD, hfRingSumsE, hfBitCountsD, hfBitCountsE, caloRegions);
891  }
892  }
893 
894  if (doTotalEnergySums_) {
895  iEvent.getByLabel(dataTag_.label(), totalEtD);
896  iEvent.getByLabel(emuTag_.label(), totalEtE);
897 
898  iEvent.getByLabel(dataTag_.label(), totalHtD);
899  iEvent.getByLabel(emuTag_.label(), totalHtE);
900 
901  isTotalEError = false;
902  isTotalHError = false;
903 
904  if (checkCollections(totalEtD, GCT_SUMS_QUANTA, "Total Et Data") &&
905  checkCollections(totalEtE, GCT_SUMS_QUANTA, "Total Et Emulator")) {
906  plotTotalE(totalEtD, totalEtE);
907  compareTotalE compareET(totalEtD, totalEtE, MBxInfo);
908  isTotalEError = compareET.doCompare(totalEt_errorFlag_);
909  }
910 
911  if (checkCollections(totalHtD, GCT_SUMS_QUANTA, "Total Ht Data") &&
912  checkCollections(totalHtE, GCT_SUMS_QUANTA, "Total Ht Emulator")) {
913  plotTotalH(totalHtD, totalHtE);
914  compareTotalH compareHT(totalHtD, totalHtE, MBxInfo);
915  isTotalHError = compareHT.doCompare(totalHt_errorFlag_);
916  }
917 
919  plotTotalEErrors(totalEtD, totalEtE, totalHtD, totalHtE, caloRegions);
920  }
921  }
922 
923  if (doMissingEnergySums_) {
924  iEvent.getByLabel(dataTag_.label(), missingEtD);
925  iEvent.getByLabel(emuTag_.label(), missingEtE);
926 
927  iEvent.getByLabel(dataTag_.label(), missingHtD);
928  iEvent.getByLabel(emuTag_.label(), missingHtE);
929 
930  isMissingEError = false;
931  isMissingHError = false;
932 
933  if (checkCollections(missingEtD, GCT_SUMS_QUANTA, "Missing Et Data") &&
934  checkCollections(missingEtE, GCT_SUMS_QUANTA, "Missing Et Emulator")) {
935  plotMissingEt(missingEtD, missingEtE);
936  compareMissingE compareMET(missingEtD, missingEtE, MBxInfo);
937  isMissingEError = compareMET.doCompare(missingEt_errorFlag_);
938  }
939 
940  if (checkCollections(missingHtD, GCT_SUMS_QUANTA, "Missing Ht Data") &&
941  checkCollections(missingHtE, GCT_SUMS_QUANTA, "Missing Ht Emulator")) {
942  plotMissingHt(missingHtD, missingHtE);
943  compareMissingH compareMHT(missingHtD, missingHtE, MBxInfo);
944  isMissingHError = compareMHT.doCompare(missingHt_errorFlag_);
945 
946  //added 19/03/2010 for intermediate information on MissingHt quantities in the data
948  iEvent.getByLabel(dataTag_.label(), "", intHtMissD);
949  if (checkCollections(intHtMissD, GCT_INT_HTMISS_QUANTA, "Internal Missing Ht Data")) {
950  for (unsigned int i = 0; i < intHtMissD->size(); i++) {
951  if (doGCTMBx_ || intHtMissD->at(i).bx() == GCTTrigBx_) {
952  if (!intHtMissD->at(i).overflow()) {
953  //the capBlock 0x301 is the input pipeline at the wheel for positive eta, whereas 0x701 is for negative eta
954  if (intHtMissD->at(i).capBlock() == 0x301 && intHtMissD->at(i).capIndex() == 0 &&
955  intHtMissD->at(i).isThereHtx())
956  missingHtD_HtXPosLeaf1->Fill(intHtMissD->at(i).htx());
957  if (intHtMissD->at(i).capBlock() == 0x301 && intHtMissD->at(i).capIndex() == 1 &&
958  intHtMissD->at(i).isThereHtx())
959  missingHtD_HtXPosLeaf2->Fill(intHtMissD->at(i).htx());
960  if (intHtMissD->at(i).capBlock() == 0x301 && intHtMissD->at(i).capIndex() == 2 &&
961  intHtMissD->at(i).isThereHtx())
962  missingHtD_HtXPosLeaf3->Fill(intHtMissD->at(i).htx());
963  if (intHtMissD->at(i).capBlock() == 0x701 && intHtMissD->at(i).capIndex() == 0 &&
964  intHtMissD->at(i).isThereHtx())
965  missingHtD_HtXNegLeaf1->Fill(intHtMissD->at(i).htx());
966  if (intHtMissD->at(i).capBlock() == 0x701 && intHtMissD->at(i).capIndex() == 1 &&
967  intHtMissD->at(i).isThereHtx())
968  missingHtD_HtXNegLeaf2->Fill(intHtMissD->at(i).htx());
969  if (intHtMissD->at(i).capBlock() == 0x701 && intHtMissD->at(i).capIndex() == 2 &&
970  intHtMissD->at(i).isThereHtx())
971  missingHtD_HtXNegLeaf3->Fill(intHtMissD->at(i).htx());
972 
973  if (intHtMissD->at(i).capBlock() == 0x301 && intHtMissD->at(i).capIndex() == 0 &&
974  intHtMissD->at(i).isThereHty())
975  missingHtD_HtYPosLeaf1->Fill(intHtMissD->at(i).hty());
976  if (intHtMissD->at(i).capBlock() == 0x301 && intHtMissD->at(i).capIndex() == 1 &&
977  intHtMissD->at(i).isThereHty())
978  missingHtD_HtYPosLeaf2->Fill(intHtMissD->at(i).hty());
979  if (intHtMissD->at(i).capBlock() == 0x301 && intHtMissD->at(i).capIndex() == 2 &&
980  intHtMissD->at(i).isThereHty())
981  missingHtD_HtYPosLeaf3->Fill(intHtMissD->at(i).hty());
982  if (intHtMissD->at(i).capBlock() == 0x701 && intHtMissD->at(i).capIndex() == 0 &&
983  intHtMissD->at(i).isThereHty())
984  missingHtD_HtYNegLeaf1->Fill(intHtMissD->at(i).hty());
985  if (intHtMissD->at(i).capBlock() == 0x701 && intHtMissD->at(i).capIndex() == 1 &&
986  intHtMissD->at(i).isThereHty())
987  missingHtD_HtYNegLeaf2->Fill(intHtMissD->at(i).hty());
988  if (intHtMissD->at(i).capBlock() == 0x701 && intHtMissD->at(i).capIndex() == 2 &&
989  intHtMissD->at(i).isThereHty())
990  missingHtD_HtYNegLeaf3->Fill(intHtMissD->at(i).hty());
991  }
992  }
993  }
994  }
995  }
996  }
997 
999  plotMissingEErrors(missingEtD, missingEtE, missingHtD, missingHtE, caloRegions, intJetsE, intHtMissD);
1000  }
1001  }
1002 }
void plotHFErrors(const edm::Handle< L1GctHFRingEtSumsCollection > &hfRingSumsD, const edm::Handle< L1GctHFRingEtSumsCollection > &hfRingSumsE, const edm::Handle< L1GctHFBitCountsCollection > &hfBitCountsD, const edm::Handle< L1GctHFBitCountsCollection > &hfBitCountsE, const edm::Handle< L1CaloRegionCollection > &caloRegions)
unsigned int eventNumber
TH1I * tauJetD_GlobalError_Rank_
void plotMissingHt(const edm::Handle< L1GctHtMissCollection > &missingHtD, const edm::Handle< L1GctHtMissCollection > &missingHtE)
GctErrorAnalyzerMBxInfo MBxInfo
TH1I * nonIsoEgE_GlobalError_Rank_
TH2I * isoEgD_GlobalError_EtEtaPhi_
TH2I * forJetE_GlobalError_EtEtaPhi_
void plotHFBitCounts(const edm::Handle< L1GctHFBitCountsCollection > &hfBitCountsD, const edm::Handle< L1GctHFBitCountsCollection > &hfBitCountsE)
TH2I * cenJetD_GlobalError_EtEtaPhi_
const unsigned int GCT_SUMS_QUANTA
void plotForJets(const edm::Handle< L1GctJetCandCollection > &data, const edm::Handle< L1GctJetCandCollection > &emu)
void plotJetErrors(const edm::Handle< L1GctJetCandCollection > &cendata, const edm::Handle< L1GctJetCandCollection > &cenemu, const edm::Handle< L1GctJetCandCollection > &taudata, const edm::Handle< L1GctJetCandCollection > &tauemu, const edm::Handle< L1GctJetCandCollection > &fordata, const edm::Handle< L1GctJetCandCollection > &foremu, const edm::Handle< L1CaloRegionCollection > &regions)
TH1I * nonIsoEgD_GlobalError_Rank_
TH2I * cenJetE_GlobalError_EtEtaPhi_
void plotCenJets(const edm::Handle< L1GctJetCandCollection > &data, const edm::Handle< L1GctJetCandCollection > &emu)
std::string const & label() const
Definition: InputTag.h:36
void plotTotalH(const edm::Handle< L1GctEtHadCollection > &totalHtD, const edm::Handle< L1GctEtHadCollection > &totalHtE)
TH2I * forJetD_GlobalError_EtEtaPhi_
void plotEGErrors(const edm::Handle< L1GctEmCandCollection > &dataiso, const edm::Handle< L1GctEmCandCollection > &emuiso, const edm::Handle< L1GctEmCandCollection > &datanoniso, const edm::Handle< L1GctEmCandCollection > &emunoniso, const edm::Handle< L1CaloEmCollection > &regions)
void plotTotalE(const edm::Handle< L1GctEtTotalCollection > &totalEtD, const edm::Handle< L1GctEtTotalCollection > &totalEtE)
int iEvent
Definition: GenABIO.cc:224
void plotTotalEErrors(const edm::Handle< L1GctEtTotalCollection > &totalEtD, const edm::Handle< L1GctEtTotalCollection > &totalEtE, const edm::Handle< L1GctEtHadCollection > &totalHtD, const edm::Handle< L1GctEtHadCollection > &totalHtE, const edm::Handle< L1CaloRegionCollection > &caloRegions)
void plotIsoEm(const edm::Handle< L1GctEmCandCollection > &data, const edm::Handle< L1GctEmCandCollection > &emu)
void plotNonIsoEm(const edm::Handle< L1GctEmCandCollection > &data, const edm::Handle< L1GctEmCandCollection > &emu)
void plotTauJets(const edm::Handle< L1GctJetCandCollection > &data, const edm::Handle< L1GctJetCandCollection > &emu)
void plotHFRingSums(const edm::Handle< L1GctHFRingEtSumsCollection > &data, const edm::Handle< L1GctHFRingEtSumsCollection > &emu)
void plotRCTRegions(const edm::Handle< L1CaloRegionCollection > &caloRegions)
TH1I * cenJetE_GlobalError_Rank_
void plotIntJets(const edm::Handle< L1GctInternJetDataCollection > &emu)
edm::InputTag emuTag_
const unsigned int GCT_OBJECT_QUANTA
const unsigned int RCT_EM_OBJECT_QUANTA
TH2I * tauJetE_GlobalError_EtEtaPhi_
TH2I * nonIsoEgE_GlobalError_EtEtaPhi_
TH1I * forJetE_GlobalError_Rank_
void plotMissingEt(const edm::Handle< L1GctEtMissCollection > &missingEtD, const edm::Handle< L1GctEtMissCollection > &missingEtE)
void plotMissingEErrors(const edm::Handle< L1GctEtMissCollection > &missingEtD, const edm::Handle< L1GctEtMissCollection > &missingEtE, const edm::Handle< L1GctHtMissCollection > &missingHtD, const edm::Handle< L1GctHtMissCollection > &missingHtE, edm::Handle< L1CaloRegionCollection > &caloRegions, const edm::Handle< L1GctInternJetDataCollection > &intjetsemu, const edm::Handle< L1GctInternHtMissCollection > intMissingHtD)
TH1I * cenJetD_GlobalError_Rank_
TH2I * isoEgE_GlobalError_EtEtaPhi_
edm::InputTag dataTag_
bool checkCollections(const T &collection, const unsigned int &constraint, const std::string &label)
HLT enums.
TH1I * forJetD_GlobalError_Rank_
TH1I * tauJetE_GlobalError_Rank_
const unsigned int NUM_INT_JETS
TH2I * nonIsoEgD_GlobalError_EtEtaPhi_
const unsigned int GCT_INT_HTMISS_QUANTA
TH2I * tauJetD_GlobalError_EtEtaPhi_
const unsigned int * RCT_REGION_QUANTA

◆ beginJob()

void GctErrorAnalyzer::beginJob ( void  )
overrideprivatevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 1005 of file GctErrorAnalyzer.cc.

1005 {}

◆ checkCollections()

template<class T >
bool GctErrorAnalyzer::checkCollections ( const T collection,
const unsigned int &  constraint,
const std::string &  label 
)
private

Definition at line 1317 of file GctErrorAnalyzer.cc.

References universalConfigTemplate::collection, HLT_2024v12_cff::constraint, and label.

Referenced by analyze(), and plotMissingEErrors().

1317  {
1318  //unfortunately, the dataformats are not consistent with the name() method (i.e. some have it, others don't)
1319  //and a typeof() function doesn't exist in ANSI C++, so to identify the templated type, we pass a std::string
1320 
1321  if (!collection.isValid()) {
1322  edm::LogWarning("DataNotFound") << " Could not find " << label << " label";
1323  return false;
1324  }
1325  if (collection->size() % constraint != 0 || collection->empty()) {
1326  edm::LogWarning("CollectionSizeError")
1327  << " " << label << " collection size is " << collection->size() << ", expected multiple of " << constraint;
1328  return false;
1329  }
1330 
1331  return true;
1332 }
char const * label
Log< level::Warning, false > LogWarning

◆ endJob()

void GctErrorAnalyzer::endJob ( void  )
overrideprivatevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 1008 of file GctErrorAnalyzer.cc.

1008 {}

◆ operator=()

GctErrorAnalyzer GctErrorAnalyzer::operator= ( const GctErrorAnalyzer )
delete

◆ plotCenJets()

void GctErrorAnalyzer::plotCenJets ( const edm::Handle< L1GctJetCandCollection > &  data,
const edm::Handle< L1GctJetCandCollection > &  emu 
)
private

Definition at line 1172 of file GctErrorAnalyzer.cc.

References cenJetD_EtEtaPhi_, cenJetD_OccEtaPhi_, cenJetD_Rank_, cenJetE_EtEtaPhi_, cenJetE_OccEtaPhi_, cenJetE_Rank_, doEmuMBx_, doGCTMBx_, EmuTrigBx_, GCTTrigBx_, and mps_fire::i.

Referenced by analyze().

1173  {
1174  for (unsigned int i = 0; i < cenJetsD->size(); i++) {
1175  if (doGCTMBx_ || cenJetsD->at(i).bx() == GCTTrigBx_) {
1176  cenJetD_Rank_->Fill(cenJetsD->at(i).rank());
1177  if (cenJetsD->at(i).rank() > 0) {
1178  cenJetD_EtEtaPhi_->Fill(
1179  cenJetsD->at(i).regionId().ieta(), cenJetsD->at(i).regionId().iphi(), cenJetsD->at(i).rank());
1180  cenJetD_OccEtaPhi_->Fill(cenJetsD->at(i).regionId().ieta(), cenJetsD->at(i).regionId().iphi());
1181  }
1182  }
1183  }
1184 
1185  for (unsigned int i = 0; i < cenJetsE->size(); i++) {
1186  if (doEmuMBx_ || cenJetsE->at(i).bx() == EmuTrigBx_) {
1187  cenJetE_Rank_->Fill(cenJetsE->at(i).rank());
1188  if (cenJetsE->at(i).rank() > 0) {
1189  cenJetE_EtEtaPhi_->Fill(
1190  cenJetsE->at(i).regionId().ieta(), cenJetsE->at(i).regionId().iphi(), cenJetsE->at(i).rank());
1191  cenJetE_OccEtaPhi_->Fill(cenJetsE->at(i).regionId().ieta(), cenJetsE->at(i).regionId().iphi());
1192  }
1193  }
1194  }
1195 }

◆ plotEGErrors()

void GctErrorAnalyzer::plotEGErrors ( const edm::Handle< L1GctEmCandCollection > &  dataiso,
const edm::Handle< L1GctEmCandCollection > &  emuiso,
const edm::Handle< L1GctEmCandCollection > &  datanoniso,
const edm::Handle< L1GctEmCandCollection > &  emunoniso,
const edm::Handle< L1CaloEmCollection > &  regions 
)
private

Definition at line 1080 of file GctErrorAnalyzer.cc.

References EmuTrigBx_, errorHistCat, eventNumber, GCTTrigBx_, mps_fire::i, isIsoError, isNonIsoError, TFileDirectory::make(), RCTTrigBx_, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by analyze().

1084  {
1085  std::string errorDirName = "err_";
1086  if (isIsoError)
1087  errorDirName.append("I");
1088  if (isNonIsoError)
1089  errorDirName.append("N");
1090  std::stringstream caseNumber;
1091  caseNumber << eventNumber;
1092  errorDirName.append(caseNumber.str());
1093  TFileDirectory errorDir = errorHistCat.at(0).mkdir(errorDirName);
1094 
1095  TH2I *errorEmRegionIsoEtEtaPhi_ = errorDir.make<TH2I>("errorEmRegionIsoEtEtaPhi",
1096  "errorEmRegionIsoEtEtaPhi;#eta (GCT Units);#phi (GCT Units)",
1097  22,
1098  -0.5,
1099  21.5,
1100  18,
1101  -0.5,
1102  17.5);
1103  TH2I *errorEmRegionNonIsoEtEtaPhi_ =
1104  errorDir.make<TH2I>("errorEmRegionNonIsoEtEtaPhi",
1105  "errorEmRegionNonIsoEtEtaPhi;#eta (GCT Units);#phi (GCT Units)",
1106  22,
1107  -0.5,
1108  21.5,
1109  18,
1110  -0.5,
1111  17.5);
1112  TH2I *errorIsoEtEtaPhiD_ = errorDir.make<TH2I>(
1113  "errorIsoEtEtaPhiD", "errorIsoEtEtaPhiD;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
1114  TH2I *errorNonIsoEtEtaPhiD_ = errorDir.make<TH2I>(
1115  "errorNonIsoEtEtaPhiD", "errorNonIsoEtEtaPhiD;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
1116  TH2I *errorIsoEtEtaPhiE_ = errorDir.make<TH2I>(
1117  "errorIsoEtEtaPhiE", "errorIsoEtEtaPhiE;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
1118  TH2I *errorNonIsoEtEtaPhiE_ = errorDir.make<TH2I>(
1119  "errorNonIsoEtEtaPhiE", "errorNonIsoEtEtaPhiE;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
1120 
1121  //fill the EM input collection
1122  //should only fill the correct bx for emRegions - and since this is showing an error in the comparison, we should plot the input to this comparison i.e. Bx=RCTTrigBx
1123  //this assumes that comparison is done on the central Bx i.e. RctBx=0 corresponds to GctBx=0, and EmuBx=0 takes RctBx=0
1124  for (unsigned int i = 0; i < emRegions->size(); i++) {
1125  if (emRegions->at(i).bx() == RCTTrigBx_) {
1126  if (emRegions->at(i).isolated()) {
1127  if (emRegions->at(i).rank() > 0)
1128  errorEmRegionIsoEtEtaPhi_->Fill(
1129  emRegions->at(i).regionId().ieta(), emRegions->at(i).regionId().iphi(), emRegions->at(i).rank());
1130  } else {
1131  if (emRegions->at(i).rank() > 0)
1132  errorEmRegionNonIsoEtEtaPhi_->Fill(
1133  emRegions->at(i).regionId().ieta(), emRegions->at(i).regionId().iphi(), emRegions->at(i).rank());
1134  }
1135  }
1136  }
1137 
1138  //no need to have the rank plot, because you can't have two electrons in the same place (eta,phi), in the same event...
1139  //in this case, since we're actually comparing the GCTTrigBx_ with the EmuTrigBx_, we plot these individually
1140  for (unsigned int i = 0; i < isoEgD->size(); i++) {
1141  if (isoEgD->at(i).bx() == GCTTrigBx_) {
1142  if (isoEgD->at(i).rank() > 0)
1143  errorIsoEtEtaPhiD_->Fill(
1144  isoEgD->at(i).regionId().ieta(), isoEgD->at(i).regionId().iphi(), isoEgD->at(i).rank());
1145  }
1146  }
1147  for (unsigned int i = 0; i < nonIsoEgD->size(); i++) {
1148  if (nonIsoEgD->at(i).bx() == GCTTrigBx_) {
1149  if (nonIsoEgD->at(i).rank() > 0)
1150  errorNonIsoEtEtaPhiD_->Fill(
1151  nonIsoEgD->at(i).regionId().ieta(), nonIsoEgD->at(i).regionId().iphi(), nonIsoEgD->at(i).rank());
1152  }
1153  }
1154 
1155  //now for the emulator candidates
1156  for (unsigned int i = 0; i < isoEgE->size(); i++) {
1157  if (isoEgE->at(i).bx() == EmuTrigBx_) {
1158  if (isoEgE->at(i).rank() > 0)
1159  errorIsoEtEtaPhiE_->Fill(
1160  isoEgE->at(i).regionId().ieta(), isoEgE->at(i).regionId().iphi(), isoEgE->at(i).rank());
1161  }
1162  }
1163  for (unsigned int i = 0; i < nonIsoEgE->size(); i++) {
1164  if (nonIsoEgE->at(i).bx() == EmuTrigBx_) {
1165  if (nonIsoEgE->at(i).rank() > 0)
1166  errorNonIsoEtEtaPhiE_->Fill(
1167  nonIsoEgE->at(i).regionId().ieta(), nonIsoEgE->at(i).regionId().iphi(), nonIsoEgE->at(i).rank());
1168  }
1169  }
1170 }
unsigned int eventNumber
T * make(const Args &...args) const
make new ROOT object
std::vector< TFileDirectory > errorHistCat

◆ plotForJets()

void GctErrorAnalyzer::plotForJets ( const edm::Handle< L1GctJetCandCollection > &  data,
const edm::Handle< L1GctJetCandCollection > &  emu 
)
private

Definition at line 1222 of file GctErrorAnalyzer.cc.

References doEmuMBx_, doGCTMBx_, EmuTrigBx_, forJetD_EtEtaPhi_, forJetD_OccEtaPhi_, forJetD_Rank_, forJetE_EtEtaPhi_, forJetE_OccEtaPhi_, forJetE_Rank_, GCTTrigBx_, and mps_fire::i.

Referenced by analyze().

1223  {
1224  for (unsigned int i = 0; i < forJetsD->size(); i++) {
1225  if (doGCTMBx_ || forJetsD->at(i).bx() == GCTTrigBx_) {
1226  forJetD_Rank_->Fill(forJetsD->at(i).rank());
1227  if (forJetsD->at(i).rank() > 0) {
1228  forJetD_EtEtaPhi_->Fill(
1229  forJetsD->at(i).regionId().ieta(), forJetsD->at(i).regionId().iphi(), forJetsD->at(i).rank());
1230  forJetD_OccEtaPhi_->Fill(forJetsD->at(i).regionId().ieta(), forJetsD->at(i).regionId().iphi());
1231  }
1232  }
1233  }
1234 
1235  for (unsigned int i = 0; i < forJetsE->size(); i++) {
1236  if (doEmuMBx_ || forJetsE->at(i).bx() == EmuTrigBx_) {
1237  forJetE_Rank_->Fill(forJetsE->at(i).rank());
1238  if (forJetsE->at(i).rank() > 0) {
1239  forJetE_EtEtaPhi_->Fill(
1240  forJetsE->at(i).regionId().ieta(), forJetsE->at(i).regionId().iphi(), forJetsE->at(i).rank());
1241  forJetE_OccEtaPhi_->Fill(forJetsE->at(i).regionId().ieta(), forJetsE->at(i).regionId().iphi());
1242  }
1243  }
1244  }
1245 }

◆ plotHFBitCounts()

void GctErrorAnalyzer::plotHFBitCounts ( const edm::Handle< L1GctHFBitCountsCollection > &  hfBitCountsD,
const edm::Handle< L1GctHFBitCountsCollection > &  hfBitCountsE 
)
private

Definition at line 1490 of file GctErrorAnalyzer.cc.

References doEmuMBx_, doGCTMBx_, EmuTrigBx_, GCTTrigBx_, hfBitCountD_1neg_, hfBitCountD_1pos_, hfBitCountD_2neg_, hfBitCountD_2pos_, hfBitCountE_1neg_, hfBitCountE_1pos_, hfBitCountE_2neg_, hfBitCountE_2pos_, and mps_fire::i.

Referenced by analyze().

1491  {
1492  for (unsigned int i = 0; i < hfBitCountsD->size(); i++) {
1493  if (doGCTMBx_ || hfBitCountsD->at(i).bx() == GCTTrigBx_) {
1494  //there are 4 rings - just fill the histograms
1495  hfBitCountD_1pos_->Fill(hfBitCountsD->at(i).bitCount(0));
1496  hfBitCountD_1neg_->Fill(hfBitCountsD->at(i).bitCount(1));
1497  hfBitCountD_2pos_->Fill(hfBitCountsD->at(i).bitCount(2));
1498  hfBitCountD_2neg_->Fill(hfBitCountsD->at(i).bitCount(3));
1499  }
1500  }
1501  for (unsigned int i = 0; i < hfBitCountsE->size(); i++) {
1502  if (doEmuMBx_ || hfBitCountsE->at(i).bx() == EmuTrigBx_) {
1503  hfBitCountE_1pos_->Fill(hfBitCountsE->at(i).bitCount(0));
1504  hfBitCountE_1neg_->Fill(hfBitCountsE->at(i).bitCount(1));
1505  hfBitCountE_2pos_->Fill(hfBitCountsE->at(i).bitCount(2));
1506  hfBitCountE_2neg_->Fill(hfBitCountsE->at(i).bitCount(3));
1507  }
1508  }
1509 }

◆ plotHFErrors()

void GctErrorAnalyzer::plotHFErrors ( const edm::Handle< L1GctHFRingEtSumsCollection > &  hfRingSumsD,
const edm::Handle< L1GctHFRingEtSumsCollection > &  hfRingSumsE,
const edm::Handle< L1GctHFBitCountsCollection > &  hfBitCountsD,
const edm::Handle< L1GctHFBitCountsCollection > &  hfBitCountsE,
const edm::Handle< L1CaloRegionCollection > &  caloRegions 
)
private

Definition at line 1511 of file GctErrorAnalyzer.cc.

References caloLayer1Raw_cfi::caloRegions, EmuTrigBx_, errorHistCat, eventNumber, GCTTrigBx_, mps_fire::i, isBitCountError, isRingSumError, TFileDirectory::make(), RCTTrigBx_, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by analyze().

1515  {
1516  std::string errorDirName = "err_";
1517  if (isRingSumError)
1518  errorDirName.append("R");
1519  if (isBitCountError)
1520  errorDirName.append("B");
1521  std::stringstream caseNumber;
1522  caseNumber << eventNumber;
1523  errorDirName.append(caseNumber.str());
1524  TFileDirectory errorDir = errorHistCat.at(2).mkdir(errorDirName);
1525 
1526  TH2I *errorRegionEtEtaPhi_ = errorDir.make<TH2I>(
1527  "errorRegionEtEtaPhi", "errorRegionEtEtaPhi;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
1528  TH2I *errorRegionFgEtaPhi_ = errorDir.make<TH2I>(
1529  "errorRegionFgEtaPhi", "errorRegionFgEtaPhi;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
1530  TH2I *errorRegionOfEtaPhi_ = errorDir.make<TH2I>(
1531  "errorRegionOfEtaPhi", "errorRegionOfEtaPhi;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
1532 
1533  TH1I *errorHFRingSumD_1pos_ =
1534  errorDir.make<TH1I>("errorHFRingSumD_1+", "errorHFRingSumD_1+;Rank;Number of Events", 8, -0.5, 7.5);
1535  TH1I *errorHFRingSumD_2pos_ =
1536  errorDir.make<TH1I>("errorHFRingSumD_2+", "errorHFRingSumD_2+;Rank;Number of Events", 8, -0.5, 7.5);
1537  TH1I *errorHFRingSumD_1neg_ =
1538  errorDir.make<TH1I>("errorHFRingSumD_1-", "errorHFRingSumD_1-;Rank;Number of Events", 8, -0.5, 7.5);
1539  TH1I *errorHFRingSumD_2neg_ =
1540  errorDir.make<TH1I>("errorHFRingSumD_2-", "errorHFRingSumD_2-;Rank;Number of Events", 8, -0.5, 7.5);
1541  TH1I *errorHFRingSumE_1pos_ =
1542  errorDir.make<TH1I>("errorHFRingSumE_1+", "errorHFRingSumE_1+;Rank;Number of Events", 8, -0.5, 7.5);
1543  TH1I *errorHFRingSumE_2pos_ =
1544  errorDir.make<TH1I>("errorHFRingSumE_2+", "errorHFRingSumE_2+;Rank;Number of Events", 8, -0.5, 7.5);
1545  TH1I *errorHFRingSumE_1neg_ =
1546  errorDir.make<TH1I>("errorHFRingSumE_1-", "errorHFRingSumE_1-;Rank;Number of Events", 8, -0.5, 7.5);
1547  TH1I *errorHFRingSumE_2neg_ =
1548  errorDir.make<TH1I>("errorHFRingSumE_2-", "errorHFRingSumE_2-;Rank;Number of Events", 8, -0.5, 7.5);
1549 
1550  TH1I *errorHFBitCountD_1pos_ =
1551  errorDir.make<TH1I>("errorHFBitCountD_1+", "errorHFBitCountD_1+;Rank;Number of Events", 8, -0.5, 7.5);
1552  TH1I *errorHFBitCountD_2pos_ =
1553  errorDir.make<TH1I>("errorHFBitCountD_2+", "errorHFBitCountD_2+;Rank;Number of Events", 8, -0.5, 7.5);
1554  TH1I *errorHFBitCountD_1neg_ =
1555  errorDir.make<TH1I>("errorHFBitCountD_1-", "errorHFBitCountD_1-;Rank;Number of Events", 8, -0.5, 7.5);
1556  TH1I *errorHFBitCountD_2neg_ =
1557  errorDir.make<TH1I>("errorHFBitCountD_2-", "errorHFBitCountD_2-;Rank;Number of Events", 8, -0.5, 7.5);
1558  TH1I *errorHFBitCountE_1pos_ =
1559  errorDir.make<TH1I>("errorHFBitCountE_1+", "errorHFBitCountE_1+;Rank;Number of Events", 8, -0.5, 7.5);
1560  TH1I *errorHFBitCountE_2pos_ =
1561  errorDir.make<TH1I>("errorHFBitCountE_2+", "errorHFBitCountE_2+;Rank;Number of Events", 8, -0.5, 7.5);
1562  TH1I *errorHFBitCountE_1neg_ =
1563  errorDir.make<TH1I>("errorHFBitCountE_1-", "errorHFBitCountE_1-;Rank;Number of Events", 8, -0.5, 7.5);
1564  TH1I *errorHFBitCountE_2neg_ =
1565  errorDir.make<TH1I>("errorHFBitCountE_2-", "errorHFBitCountE_2-;Rank;Number of Events", 8, -0.5, 7.5);
1566 
1567  for (unsigned int i = 0; i < caloRegions->size(); i++) {
1568  if (caloRegions->at(i).bx() == RCTTrigBx_) {
1569  if (caloRegions->at(i).et() > 0)
1570  errorRegionEtEtaPhi_->Fill(caloRegions->at(i).gctEta(), caloRegions->at(i).gctPhi(), caloRegions->at(i).et());
1571  if (caloRegions->at(i).fineGrain())
1572  errorRegionFgEtaPhi_->Fill(caloRegions->at(i).gctEta(), caloRegions->at(i).gctPhi());
1573  if (caloRegions->at(i).overFlow())
1574  errorRegionOfEtaPhi_->Fill(caloRegions->at(i).gctEta(), caloRegions->at(i).gctPhi());
1575  }
1576  }
1577 
1578  for (unsigned int i = 0; i < hfRingSumsD->size(); i++) {
1579  if (hfRingSumsD->at(i).bx() == GCTTrigBx_) {
1580  errorHFRingSumD_1pos_->Fill(hfRingSumsD->at(i).etSum(0));
1581  errorHFRingSumD_1neg_->Fill(hfRingSumsD->at(i).etSum(1));
1582  errorHFRingSumD_2pos_->Fill(hfRingSumsD->at(i).etSum(2));
1583  errorHFRingSumD_2neg_->Fill(hfRingSumsD->at(i).etSum(3));
1584  }
1585  }
1586  for (unsigned int i = 0; i < hfRingSumsE->size(); i++) {
1587  if (hfRingSumsE->at(i).bx() == EmuTrigBx_) {
1588  errorHFRingSumE_1pos_->Fill(hfRingSumsE->at(i).etSum(0));
1589  errorHFRingSumE_1neg_->Fill(hfRingSumsE->at(i).etSum(1));
1590  errorHFRingSumE_2pos_->Fill(hfRingSumsE->at(i).etSum(2));
1591  errorHFRingSumE_2neg_->Fill(hfRingSumsE->at(i).etSum(3));
1592  }
1593  }
1594 
1595  for (unsigned int i = 0; i < hfBitCountsD->size(); i++) {
1596  if (hfBitCountsD->at(i).bx() == GCTTrigBx_) {
1597  errorHFBitCountD_1pos_->Fill(hfBitCountsD->at(i).bitCount(0));
1598  errorHFBitCountD_1neg_->Fill(hfBitCountsD->at(i).bitCount(1));
1599  errorHFBitCountD_2pos_->Fill(hfBitCountsD->at(i).bitCount(2));
1600  errorHFBitCountD_2neg_->Fill(hfBitCountsD->at(i).bitCount(3));
1601  }
1602  }
1603  for (unsigned int i = 0; i < hfBitCountsE->size(); i++) {
1604  if (hfBitCountsE->at(i).bx() == EmuTrigBx_) {
1605  errorHFBitCountE_1pos_->Fill(hfBitCountsE->at(i).bitCount(0));
1606  errorHFBitCountE_1neg_->Fill(hfBitCountsE->at(i).bitCount(1));
1607  errorHFBitCountE_2pos_->Fill(hfBitCountsE->at(i).bitCount(2));
1608  errorHFBitCountE_2neg_->Fill(hfBitCountsE->at(i).bitCount(3));
1609  }
1610  }
1611 }
unsigned int eventNumber
T * make(const Args &...args) const
make new ROOT object
std::vector< TFileDirectory > errorHistCat

◆ plotHFRingSums()

void GctErrorAnalyzer::plotHFRingSums ( const edm::Handle< L1GctHFRingEtSumsCollection > &  data,
const edm::Handle< L1GctHFRingEtSumsCollection > &  emu 
)
private

Definition at line 1468 of file GctErrorAnalyzer.cc.

References doEmuMBx_, doGCTMBx_, EmuTrigBx_, GCTTrigBx_, hfRingSumD_1neg_, hfRingSumD_1pos_, hfRingSumD_2neg_, hfRingSumD_2pos_, hfRingSumE_1neg_, hfRingSumE_1pos_, hfRingSumE_2neg_, hfRingSumE_2pos_, and mps_fire::i.

Referenced by analyze().

1469  {
1470  for (unsigned int i = 0; i < hfRingSumsD->size(); i++) {
1471  if (doGCTMBx_ || hfRingSumsD->at(i).bx() == GCTTrigBx_) {
1472  //there are 4 rings - just fill the histograms
1473  hfRingSumD_1pos_->Fill(hfRingSumsD->at(i).etSum(0));
1474  hfRingSumD_1neg_->Fill(hfRingSumsD->at(i).etSum(1));
1475  hfRingSumD_2pos_->Fill(hfRingSumsD->at(i).etSum(2));
1476  hfRingSumD_2neg_->Fill(hfRingSumsD->at(i).etSum(3));
1477  }
1478  }
1479 
1480  for (unsigned int i = 0; i < hfRingSumsE->size(); i++) {
1481  if (doEmuMBx_ || hfRingSumsE->at(i).bx() == EmuTrigBx_) {
1482  hfRingSumE_1pos_->Fill(hfRingSumsE->at(i).etSum(0));
1483  hfRingSumE_1neg_->Fill(hfRingSumsE->at(i).etSum(1));
1484  hfRingSumE_2pos_->Fill(hfRingSumsE->at(i).etSum(2));
1485  hfRingSumE_2neg_->Fill(hfRingSumsE->at(i).etSum(3));
1486  }
1487  }
1488 }

◆ plotIntJets()

void GctErrorAnalyzer::plotIntJets ( const edm::Handle< L1GctInternJetDataCollection > &  emu)
private

Definition at line 1247 of file GctErrorAnalyzer.cc.

References doEmuMBx_, EmuTrigBx_, jetData::et, jetData::eta, mps_fire::i, intJetE_Et_, intJetE_Jet1Et_, intJetE_Jet2Et_, intJetE_Jet3Et_, intJetE_Jet4Et_, intJetE_Of_, intJetEtEtaPhiE_, dqmiolumiharvest::j, NUM_INT_JETS, jetData::phi, jetUpdater_cfi::sort, and sortJets().

Referenced by analyze().

1247  {
1248  jetData intJet;
1249  std::vector<jetData> intJetCollection(
1250  NUM_INT_JETS); //define fixed size for the vector to avoid reallocation (i.e. max size possible)
1251 
1252  //since we don't read out the intermediate (i.e. leaf card) jets, we can only plot the emulator distributions
1253  //the 1st-4th jet Et will prove useful in understanding and motivating cuts on individual jets in HT and MHT.
1254  for (unsigned int i = 0; i < intJetsE->size(); i++) {
1255  if (doEmuMBx_ || intJetsE->at(i).bx() == EmuTrigBx_) {
1256  //the intermediate jets are not sorted in terms of Et so
1257  //in order to do this independently of the data format,
1258  //copy to a user defined struct and sort that way
1259  intJet.et = intJetsE->at(i).et();
1260  intJet.phi = intJetsE->at(i).phi();
1261  intJet.eta = intJetsE->at(i).eta();
1262  intJetCollection.at(i % NUM_INT_JETS) = intJet;
1263 
1264  //remember, if the event has 1 overflowed jet, then we fill the internal jet dist overflow histogram
1265  //and skip the event - there is no point looking at the leading jet distributions etc for an event
1266  //with an overflowed jet - this will imply HT, ET, MET and MHT all overflow too.
1267  if (intJetsE->at(i).oflow()) {
1268  intJetE_Of_->Fill(intJetsE->at(i).oflow());
1269  return;
1270  }
1271 
1272  //plot the (et,eta,phi) distribution of the intermediate jets (for non-zero et)
1273  if (intJetsE->at(i).et())
1274  intJetEtEtaPhiE_->Fill(
1275  intJetsE->at(i).regionId().ieta(), intJetsE->at(i).regionId().iphi(), intJetsE->at(i).et());
1276  }
1277  }
1278 
1279  //if we get this far, there are no jets with an overflow bit so fill the overflow histogram and
1280  //sort the intJetCollection according to the rule defined in sortJets (i.e. largest et first)
1281  intJetE_Of_->Fill(0);
1282  std::sort(intJetCollection.begin(), intJetCollection.end(), sortJets);
1283 
1284  std::vector<TH1I *> leadingJetDist(4);
1285  leadingJetDist.at(0) = intJetE_Jet1Et_;
1286  leadingJetDist.at(1) = intJetE_Jet2Et_;
1287  leadingJetDist.at(2) = intJetE_Jet3Et_;
1288  leadingJetDist.at(3) = intJetE_Jet4Et_;
1289 
1290  unsigned int i = 0;
1291  unsigned int j = 0;
1292  unsigned int currentEt = 0;
1293  while (intJetCollection.at(i).et > 0) {
1294  if (j < leadingJetDist.size()) {
1295  if (i == 0) {
1296  leadingJetDist.at(j)->Fill(intJetCollection.at(i).et);
1297  currentEt = intJetCollection.at(i).et;
1298  j++;
1299  } else {
1300  if (intJetCollection.at(i).et < currentEt) {
1301  leadingJetDist.at(j)->Fill(intJetCollection.at(i).et);
1302  currentEt = intJetCollection.at(i).et;
1303  j++;
1304  }
1305  }
1306  }
1307 
1308  intJetE_Et_->Fill(intJetCollection.at(i).et);
1309  i++;
1310  }
1311  return;
1312 }
static bool sortJets(const jetData &jet1, const jetData &jet2)
const unsigned int NUM_INT_JETS

◆ plotIsoEm()

void GctErrorAnalyzer::plotIsoEm ( const edm::Handle< L1GctEmCandCollection > &  data,
const edm::Handle< L1GctEmCandCollection > &  emu 
)
private

Definition at line 1028 of file GctErrorAnalyzer.cc.

References doEmuMBx_, doGCTMBx_, EmuTrigBx_, GCTTrigBx_, mps_fire::i, isoEgD_EtEtaPhi_, isoEgD_OccEtaPhi_, isoEgD_Rank_, isoEgE_EtEtaPhi_, isoEgE_OccEtaPhi_, and isoEgE_Rank_.

Referenced by analyze().

1029  {
1030  //loop over all the data candidates - if multiple bx, then this should be a multiple of GCT_OBJECT_QUANTA
1031  for (unsigned int i = 0; i < isoEgD->size(); i++) {
1032  //if the GCTMBx flag is set, plot all Bx for this quantity, otherwise only plot Bx = GCTTrigBx_
1033  if (doGCTMBx_ || isoEgD->at(i).bx() == GCTTrigBx_) {
1034  isoEgD_Rank_->Fill(isoEgD->at(i).rank());
1035  if (isoEgD->at(i).rank() > 0) {
1036  isoEgD_EtEtaPhi_->Fill(isoEgD->at(i).regionId().ieta(), isoEgD->at(i).regionId().iphi(), isoEgD->at(i).rank());
1037  isoEgD_OccEtaPhi_->Fill(isoEgD->at(i).regionId().ieta(), isoEgD->at(i).regionId().iphi());
1038  }
1039  }
1040  }
1041  //now repeat for the emulator candidates
1042  for (unsigned int i = 0; i < isoEgE->size(); i++) {
1043  if (doEmuMBx_ || isoEgE->at(i).bx() == EmuTrigBx_) {
1044  isoEgE_Rank_->Fill(isoEgE->at(i).rank());
1045  if (isoEgE->at(i).rank() > 0) {
1046  isoEgE_EtEtaPhi_->Fill(isoEgE->at(i).regionId().ieta(), isoEgE->at(i).regionId().iphi(), isoEgE->at(i).rank());
1047  isoEgE_OccEtaPhi_->Fill(isoEgE->at(i).regionId().ieta(), isoEgE->at(i).regionId().iphi());
1048  }
1049  }
1050  }
1051 }

◆ plotJetErrors()

void GctErrorAnalyzer::plotJetErrors ( const edm::Handle< L1GctJetCandCollection > &  cendata,
const edm::Handle< L1GctJetCandCollection > &  cenemu,
const edm::Handle< L1GctJetCandCollection > &  taudata,
const edm::Handle< L1GctJetCandCollection > &  tauemu,
const edm::Handle< L1GctJetCandCollection > &  fordata,
const edm::Handle< L1GctJetCandCollection > &  foremu,
const edm::Handle< L1CaloRegionCollection > &  regions 
)
private

Definition at line 1334 of file GctErrorAnalyzer.cc.

References caloLayer1Raw_cfi::caloRegions, EmuTrigBx_, errorHistCat, eventNumber, GCTTrigBx_, mps_fire::i, isCenJetError, isForJetError, isTauJetError, TFileDirectory::make(), RCTTrigBx_, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by analyze().

1340  {
1341  std::string errorDirName = "err_";
1342  if (isCenJetError)
1343  errorDirName.append("C");
1344  if (isTauJetError)
1345  errorDirName.append("T");
1346  if (isForJetError)
1347  errorDirName.append("F");
1348  std::stringstream caseNumber;
1349  caseNumber << eventNumber;
1350  errorDirName.append(caseNumber.str());
1351  TFileDirectory errorDir = errorHistCat.at(1).mkdir(errorDirName);
1352 
1353  TH2I *errorRegionEtEtaPhi_ = errorDir.make<TH2I>(
1354  "errorRegionEtEtaPhi", "errorRegionEtEtaPhi;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
1355  TH2I *errorRegionTvEtaPhi_ = errorDir.make<TH2I>(
1356  "errorRegionTvEtaPhi", "errorRegionTvEtaPhi;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
1357  TH2I *errorRegionOfEtaPhi_ = errorDir.make<TH2I>(
1358  "errorRegionOfEtaPhi", "errorRegionOfEtaPhi;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
1359 
1360  //make sure to only plot the caloRegion bx which corresponds to the data vs emulator comparison
1361  for (unsigned int i = 0; i < caloRegions->size(); i++) {
1362  if (caloRegions->at(i).bx() == RCTTrigBx_) {
1363  if (caloRegions->at(i).et() > 0)
1364  errorRegionEtEtaPhi_->Fill(caloRegions->at(i).gctEta(), caloRegions->at(i).gctPhi(), caloRegions->at(i).et());
1365  if (caloRegions->at(i).tauVeto())
1366  errorRegionTvEtaPhi_->Fill(caloRegions->at(i).gctEta(), caloRegions->at(i).gctPhi());
1367  if (caloRegions->at(i).overFlow())
1368  errorRegionOfEtaPhi_->Fill(caloRegions->at(i).gctEta(), caloRegions->at(i).gctPhi());
1369  }
1370  }
1371 
1372  TH2I *cenJet_errorEtEtaPhiData_ = errorDir.make<TH2I>("cenJet_errorEtEtaPhiData",
1373  "cenJet_errorEtEtaPhiData;#eta (GCT Units);#phi (GCT Units)",
1374  22,
1375  -0.5,
1376  21.5,
1377  18,
1378  -0.5,
1379  17.5);
1380  TH2I *cenJet_errorEtEtaPhiEmu_ = errorDir.make<TH2I>("cenJet_errorEtEtaPhiEmu",
1381  "cenJet_errorEtEtaPhiEmu;#eta (GCT Units);#phi (GCT Units)",
1382  22,
1383  -0.5,
1384  21.5,
1385  18,
1386  -0.5,
1387  17.5);
1388  TH2I *tauJet_errorEtEtaPhiData_ = errorDir.make<TH2I>("tauJet_errorEtEtaPhiData",
1389  "tauJet_errorEtEtaPhiData;#eta (GCT Units);#phi (GCT Units)",
1390  22,
1391  -0.5,
1392  21.5,
1393  18,
1394  -0.5,
1395  17.5);
1396  TH2I *tauJet_errorEtEtaPhiEmu_ = errorDir.make<TH2I>("tauJet_errorEtEtaPhiEmu",
1397  "tauJet_errorEtEtaPhiEmu;#eta (GCT Units);#phi (GCT Units)",
1398  22,
1399  -0.5,
1400  21.5,
1401  18,
1402  -0.5,
1403  17.5);
1404  TH2I *forJet_errorEtEtaPhiData_ = errorDir.make<TH2I>("forJet_errorEtEtaPhiData",
1405  "forJet_errorEtEtaPhiData;#eta (GCT Units);#phi (GCT Units)",
1406  22,
1407  -0.5,
1408  21.5,
1409  18,
1410  -0.5,
1411  17.5);
1412  TH2I *forJet_errorEtEtaPhiEmu_ = errorDir.make<TH2I>("forJet_errorEtEtaPhiEmu",
1413  "forJet_errorEtEtaPhiEmu;#eta (GCT Units);#phi (GCT Units)",
1414  22,
1415  -0.5,
1416  21.5,
1417  18,
1418  -0.5,
1419  17.5);
1420 
1421  //first plot the data candiates for the Trigger Bx that this error corresponds to
1422  for (unsigned int i = 0; i < cenJetsD->size(); i++) {
1423  if (cenJetsD->at(i).bx() == GCTTrigBx_) {
1424  if (cenJetsD->at(i).rank() > 0)
1425  cenJet_errorEtEtaPhiData_->Fill(
1426  cenJetsD->at(i).regionId().ieta(), cenJetsD->at(i).regionId().iphi(), cenJetsD->at(i).rank());
1427  }
1428  }
1429  for (unsigned int i = 0; i < tauJetsD->size(); i++) {
1430  if (tauJetsD->at(i).bx() == GCTTrigBx_) {
1431  if (tauJetsD->at(i).rank() > 0)
1432  tauJet_errorEtEtaPhiData_->Fill(
1433  tauJetsD->at(i).regionId().ieta(), tauJetsD->at(i).regionId().iphi(), tauJetsD->at(i).rank());
1434  }
1435  }
1436  for (unsigned int i = 0; i < forJetsD->size(); i++) {
1437  if (forJetsD->at(i).bx() == GCTTrigBx_) {
1438  if (forJetsD->at(i).rank() > 0)
1439  forJet_errorEtEtaPhiData_->Fill(
1440  forJetsD->at(i).regionId().ieta(), forJetsD->at(i).regionId().iphi(), forJetsD->at(i).rank());
1441  }
1442  }
1443 
1444  //now the emulator candidates
1445  for (unsigned int i = 0; i < cenJetsE->size(); i++) {
1446  if (cenJetsE->at(i).bx() == EmuTrigBx_) {
1447  if (cenJetsE->at(i).rank() > 0)
1448  cenJet_errorEtEtaPhiEmu_->Fill(
1449  cenJetsE->at(i).regionId().ieta(), cenJetsE->at(i).regionId().iphi(), cenJetsE->at(i).rank());
1450  }
1451  }
1452  for (unsigned int i = 0; i < tauJetsE->size(); i++) {
1453  if (tauJetsE->at(i).bx() == EmuTrigBx_) {
1454  if (tauJetsE->at(i).rank() > 0)
1455  tauJet_errorEtEtaPhiEmu_->Fill(
1456  tauJetsE->at(i).regionId().ieta(), tauJetsE->at(i).regionId().iphi(), tauJetsE->at(i).rank());
1457  }
1458  }
1459  for (unsigned int i = 0; i < forJetsE->size(); i++) {
1460  if (forJetsE->at(i).bx() == EmuTrigBx_) {
1461  if (forJetsE->at(i).rank() > 0)
1462  forJet_errorEtEtaPhiEmu_->Fill(
1463  forJetsE->at(i).regionId().ieta(), forJetsE->at(i).regionId().iphi(), forJetsE->at(i).rank());
1464  }
1465  }
1466 }
unsigned int eventNumber
T * make(const Args &...args) const
make new ROOT object
std::vector< TFileDirectory > errorHistCat

◆ plotMissingEErrors()

void GctErrorAnalyzer::plotMissingEErrors ( const edm::Handle< L1GctEtMissCollection > &  missingEtD,
const edm::Handle< L1GctEtMissCollection > &  missingEtE,
const edm::Handle< L1GctHtMissCollection > &  missingHtD,
const edm::Handle< L1GctHtMissCollection > &  missingHtE,
edm::Handle< L1CaloRegionCollection > &  caloRegions,
const edm::Handle< L1GctInternJetDataCollection > &  intjetsemu,
const edm::Handle< L1GctInternHtMissCollection intMissingHtD 
)
private

Definition at line 1772 of file GctErrorAnalyzer.cc.

References caloLayer1Raw_cfi::caloRegions, checkCollections(), doExtraMissingHTDebug_, EmuTrigBx_, errorHistCat, eventNumber, GCT_INT_HTMISS_QUANTA, GCTTrigBx_, mps_fire::i, isMissingEError, isMissingHError, dqmiolumiharvest::j, TFileDirectory::make(), NUM_INT_JETS, RCTTrigBx_, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by analyze().

1778  {
1779  std::string errorDirName = "err_";
1780  if (isMissingEError)
1781  errorDirName.append("E");
1782  if (isMissingHError)
1783  errorDirName.append("H");
1784 
1785  //added 05.03.2010 to highlight overflow errors in the missing energy sum calculation
1786  for (unsigned int i = 0; i < missingHtE->size(); i++) {
1787  if (missingHtE->at(i).bx() == EmuTrigBx_) {
1788  for (unsigned int j = 0; j < missingHtD->size(); j++) {
1789  if (missingHtD->at(j).bx() == GCTTrigBx_) {
1790  if (missingHtD->at(j).overFlow() != missingHtE->at(i).overFlow())
1791  errorDirName.append("O");
1792  }
1793  }
1794  }
1795  }
1796 
1797  std::stringstream caseNumber;
1798  caseNumber << eventNumber;
1799  errorDirName.append(caseNumber.str());
1800  TFileDirectory errorDir = errorHistCat.at(4).mkdir(errorDirName);
1801 
1802  TH2I *errorRegionEtEtaPhi_ = errorDir.make<TH2I>(
1803  "errorRegionEtEtaPhi", "errorRegionEtEtaPhi;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
1804  TH2I *errorRegionOfEtaPhi_ = errorDir.make<TH2I>(
1805  "errorRegionOfEtaPhi", "errorRegionOfEtaPhi;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
1806  TH1I *errorMissingEtD_ =
1807  errorDir.make<TH1I>("errorMissingEtD", "errorMissingEtD;E_{T};Number of Events", 1024, -0.5, 1023.5);
1808  TH1I *errorMissingEtD_Of_ = errorDir.make<TH1I>(
1809  "errorMissingEtD_Of", "errorMissingEtD_Of;Overflow Bit Status;Number of Events", 2, -0.5, 1.5);
1810  TH1I *errorMissingEtD_Phi_ = errorDir.make<TH1I>(
1811  "errorMissingEtD_Phi", "errorMissingEtD_Phi;Missing E_{T} #phi;Number of Events", 72, -0.5, 71.5);
1812  TH1I *errorMissingEtE_ =
1813  errorDir.make<TH1I>("errorMissingEtE", "errorMissingEtE;E_{T};Number of Events", 1024, -0.5, 1023.5);
1814  TH1I *errorMissingEtE_Of_ = errorDir.make<TH1I>(
1815  "errorMissingEtE_Of", "errorMissingEtE_Of;Overflow Bit Status;Number of Events", 2, -0.5, 1.5);
1816  TH1I *errorMissingEtE_Phi_ = errorDir.make<TH1I>(
1817  "errorMissingEtE_Phi", "errorMissingEtE_Phi;Missing E_{T} #phi;Number of Events", 72, -0.5, 71.5);
1818  TH1I *errorMissingHtD_ =
1819  errorDir.make<TH1I>("errorMissingHtD", "errorMissingHtD;H_{T};Number of Events", 1024, -0.5, 1023.5);
1820  TH1I *errorMissingHtD_Of_ = errorDir.make<TH1I>(
1821  "errorMissingHtD_Of", "errorMissingHtD_Of;Overflow Bit Status;Number of Events", 2, -0.5, 1.5);
1822  TH1I *errorMissingHtD_Phi_ = errorDir.make<TH1I>(
1823  "errorMissingHtD_Phi", "errorMissingHtD_Phi;Missing H_{T} #phi;Number of Events", 72, -0.5, 71.5);
1824  TH1I *errorMissingHtE_ =
1825  errorDir.make<TH1I>("errorMissingHtE", "errorMissingHtE;H_{T};Number of Events", 1024, -0.5, 1023.5);
1826  TH1I *errorMissingHtE_Of_ = errorDir.make<TH1I>(
1827  "errorMissingHtE_Of", "errorMissingHtE_Of;Overflow Bit Status;Number of Events", 2, -0.5, 1.5);
1828  TH1I *errorMissingHtE_Phi_ = errorDir.make<TH1I>(
1829  "errorMissingHtE_Phi", "errorMissingHtE_Phi;Missing H_{T} #phi;Number of Events", 72, -0.5, 71.5);
1830 
1831  //Added 19.03.2010 to provide additional information in the case of missingHt failures
1832  //1. The MHT from both wheel inputs (i.e. the leaf cards)
1833  //2. The emulator jet et,eta,phi for all jets found in an event
1834  if (doExtraMissingHTDebug_) {
1835  if (checkCollections(intMissingHtD, GCT_INT_HTMISS_QUANTA, "Internal Missing Ht Data")) {
1836  TH1I *errorMissingHtD_HtXPosLeaf1 = errorDir.make<TH1I>(
1837  "errorMissingHtD_HtXPosLeaf1", "missingHtD;Missing H_{T} X PosLeaf1;Number of Events", 4096, -2048.5, 2047.5);
1838  TH1I *errorMissingHtD_HtXPosLeaf2 = errorDir.make<TH1I>(
1839  "errorMissingHtD_HtXPosLeaf2", "missingHtD;Missing H_{T} X PosLeaf2;Number of Events", 4096, -2048.5, 2047.5);
1840  TH1I *errorMissingHtD_HtXPosLeaf3 = errorDir.make<TH1I>(
1841  "errorMissingHtD_HtXPosLeaf3", "missingHtD;Missing H_{T} X PosLeaf3;Number of Events", 4096, -2048.5, 2047.5);
1842  TH1I *errorMissingHtD_HtXNegLeaf1 = errorDir.make<TH1I>(
1843  "errorMissingHtD_HtXNegLeaf1", "missingHtD;Missing H_{T} X NegLeaf1;Number of Events", 4096, -2048.5, 2047.5);
1844  TH1I *errorMissingHtD_HtXNegLeaf2 = errorDir.make<TH1I>(
1845  "errorMissingHtD_HtXNegLeaf2", "missingHtD;Missing H_{T} X NegLeaf2;Number of Events", 4096, -2048.5, 2047.5);
1846  TH1I *errorMissingHtD_HtXNegLeaf3 = errorDir.make<TH1I>(
1847  "errorMissingHtD_HtXNegLeaf3", "missingHtD;Missing H_{T} X NegLeaf3;Number of Events", 4096, -2048.5, 2047.5);
1848 
1849  TH1I *errorMissingHtD_HtYPosLeaf1 = errorDir.make<TH1I>(
1850  "errorMissingHtD_HtYPosLeaf1", "missingHtD;Missing H_{T} Y PosLeaf1;Number of Events", 4096, -2048.5, 2047.5);
1851  TH1I *errorMissingHtD_HtYPosLeaf2 = errorDir.make<TH1I>(
1852  "errorMissingHtD_HtYPosLeaf2", "missingHtD;Missing H_{T} Y PosLeaf2;Number of Events", 4096, -2048.5, 2047.5);
1853  TH1I *errorMissingHtD_HtYPosLeaf3 = errorDir.make<TH1I>(
1854  "errorMissingHtD_HtYPosLeaf3", "missingHtD;Missing H_{T} Y PosLeaf3;Number of Events", 4096, -2048.5, 2047.5);
1855  TH1I *errorMissingHtD_HtYNegLeaf1 = errorDir.make<TH1I>(
1856  "errorMissingHtD_HtYNegLeaf1", "missingHtD;Missing H_{T} Y NegLeaf1;Number of Events", 4096, -2048.5, 2047.5);
1857  TH1I *errorMissingHtD_HtYNegLeaf2 = errorDir.make<TH1I>(
1858  "errorMissingHtD_HtYNegLeaf2", "missingHtD;Missing H_{T} Y NegLeaf2;Number of Events", 4096, -2048.5, 2047.5);
1859  TH1I *errorMissingHtD_HtYNegLeaf3 = errorDir.make<TH1I>(
1860  "errorMissingHtD_HtYNegLeaf3", "missingHtD;Missing H_{T} Y NegLeaf3;Number of Events", 4096, -2048.5, 2047.5);
1861 
1862  for (unsigned int i = 0; i < intMissingHtD->size(); i++) {
1863  if (intMissingHtD->at(i).bx() == GCTTrigBx_) {
1864  if (!intMissingHtD->at(i).overflow()) {
1865  if (intMissingHtD->at(i).capBlock() == 0x301 && intMissingHtD->at(i).capIndex() == 0 &&
1866  intMissingHtD->at(i).isThereHtx())
1867  errorMissingHtD_HtXPosLeaf1->Fill(intMissingHtD->at(i).htx());
1868  if (intMissingHtD->at(i).capBlock() == 0x301 && intMissingHtD->at(i).capIndex() == 1 &&
1869  intMissingHtD->at(i).isThereHtx())
1870  errorMissingHtD_HtXPosLeaf2->Fill(intMissingHtD->at(i).htx());
1871  if (intMissingHtD->at(i).capBlock() == 0x301 && intMissingHtD->at(i).capIndex() == 2 &&
1872  intMissingHtD->at(i).isThereHtx())
1873  errorMissingHtD_HtXPosLeaf3->Fill(intMissingHtD->at(i).htx());
1874  if (intMissingHtD->at(i).capBlock() == 0x701 && intMissingHtD->at(i).capIndex() == 0 &&
1875  intMissingHtD->at(i).isThereHtx())
1876  errorMissingHtD_HtXNegLeaf1->Fill(intMissingHtD->at(i).htx());
1877  if (intMissingHtD->at(i).capBlock() == 0x701 && intMissingHtD->at(i).capIndex() == 1 &&
1878  intMissingHtD->at(i).isThereHtx())
1879  errorMissingHtD_HtXNegLeaf2->Fill(intMissingHtD->at(i).htx());
1880  if (intMissingHtD->at(i).capBlock() == 0x701 && intMissingHtD->at(i).capIndex() == 2 &&
1881  intMissingHtD->at(i).isThereHtx())
1882  errorMissingHtD_HtXNegLeaf3->Fill(intMissingHtD->at(i).htx());
1883 
1884  if (intMissingHtD->at(i).capBlock() == 0x301 && intMissingHtD->at(i).capIndex() == 0 &&
1885  intMissingHtD->at(i).isThereHty())
1886  errorMissingHtD_HtYPosLeaf1->Fill(intMissingHtD->at(i).hty());
1887  if (intMissingHtD->at(i).capBlock() == 0x301 && intMissingHtD->at(i).capIndex() == 1 &&
1888  intMissingHtD->at(i).isThereHty())
1889  errorMissingHtD_HtYPosLeaf2->Fill(intMissingHtD->at(i).hty());
1890  if (intMissingHtD->at(i).capBlock() == 0x301 && intMissingHtD->at(i).capIndex() == 2 &&
1891  intMissingHtD->at(i).isThereHty())
1892  errorMissingHtD_HtYPosLeaf3->Fill(intMissingHtD->at(i).hty());
1893  if (intMissingHtD->at(i).capBlock() == 0x701 && intMissingHtD->at(i).capIndex() == 0 &&
1894  intMissingHtD->at(i).isThereHty())
1895  errorMissingHtD_HtYNegLeaf1->Fill(intMissingHtD->at(i).hty());
1896  if (intMissingHtD->at(i).capBlock() == 0x701 && intMissingHtD->at(i).capIndex() == 1 &&
1897  intMissingHtD->at(i).isThereHty())
1898  errorMissingHtD_HtYNegLeaf2->Fill(intMissingHtD->at(i).hty());
1899  if (intMissingHtD->at(i).capBlock() == 0x701 && intMissingHtD->at(i).capIndex() == 2 &&
1900  intMissingHtD->at(i).isThereHty())
1901  errorMissingHtD_HtYNegLeaf3->Fill(intMissingHtD->at(i).hty());
1902  }
1903  }
1904  }
1905  }
1906  }
1907 
1908  if (checkCollections(intJetsE, NUM_INT_JETS, "Intermediate Jets Emulator")) {
1909  TH2I *errorIntJetsE_EtEtaPhi = errorDir.make<TH2I>("errorIntJetsE_EtEtaPhi",
1910  "errorIntJetsE_EtEtaPhi;#eta (GCT Units);#phi (GCT Units)",
1911  22,
1912  -0.5,
1913  21.5,
1914  18,
1915  -0.5,
1916  17.5);
1917 
1918  for (unsigned int i = 0; i < intJetsE->size(); i++) {
1919  if (intJetsE->at(i).bx() == EmuTrigBx_) {
1920  if (!intJetsE->at(i).oflow() && intJetsE->at(i).et())
1921  errorIntJetsE_EtEtaPhi->Fill(
1922  intJetsE->at(i).regionId().ieta(), intJetsE->at(i).regionId().iphi(), intJetsE->at(i).et());
1923  }
1924  }
1925  }
1926 
1927  for (unsigned int i = 0; i < caloRegions->size(); i++) {
1928  if (caloRegions->at(i).bx() == RCTTrigBx_) {
1929  if (caloRegions->at(i).et() > 0)
1930  errorRegionEtEtaPhi_->Fill(caloRegions->at(i).gctEta(), caloRegions->at(i).gctPhi(), caloRegions->at(i).et());
1931  if (caloRegions->at(i).overFlow())
1932  errorRegionOfEtaPhi_->Fill(caloRegions->at(i).gctEta(), caloRegions->at(i).gctPhi());
1933  }
1934  }
1935 
1936  //plot the data candidates relating to this mismatch
1937  for (unsigned int i = 0; i < missingEtD->size(); i++) {
1938  if (missingEtD->at(i).bx() == GCTTrigBx_) {
1939  errorMissingEtD_Of_->Fill(missingEtD->at(i).overFlow());
1940  if (!missingEtD->at(i).overFlow()) {
1941  errorMissingEtD_->Fill(missingEtD->at(i).et());
1942  errorMissingEtD_Phi_->Fill(missingEtD->at(i).phi());
1943  }
1944  }
1945  }
1946  for (unsigned int i = 0; i < missingHtD->size(); i++) {
1947  if (missingHtD->at(i).bx() == GCTTrigBx_) {
1948  errorMissingHtD_Of_->Fill(missingHtD->at(i).overFlow());
1949  if (!missingHtD->at(i).overFlow()) {
1950  errorMissingHtD_->Fill(missingHtD->at(i).et());
1951  errorMissingHtD_Phi_->Fill(missingHtD->at(i).phi());
1952  }
1953  }
1954  }
1955  //and now for the emulator candidates
1956  for (unsigned int i = 0; i < missingEtE->size(); i++) {
1957  if (missingEtE->at(i).bx() == EmuTrigBx_) {
1958  errorMissingEtE_Of_->Fill(missingEtE->at(i).overFlow());
1959  if (!missingEtE->at(i).overFlow()) {
1960  errorMissingEtE_->Fill(missingEtE->at(i).et());
1961  errorMissingEtE_Phi_->Fill(missingEtE->at(i).phi());
1962  }
1963  }
1964  }
1965  for (unsigned int i = 0; i < missingHtE->size(); i++) {
1966  if (missingHtE->at(i).bx() == EmuTrigBx_) {
1967  errorMissingHtE_Of_->Fill(missingHtE->at(i).overFlow());
1968  if (!missingHtE->at(i)
1969  .overFlow()) { //to see what values the emulator outputs despite the o/f bit being set comment out this statement
1970  errorMissingHtE_->Fill(missingHtE->at(i).et());
1971  errorMissingHtE_Phi_->Fill(missingHtE->at(i).phi());
1972  }
1973  }
1974  }
1975 }
unsigned int eventNumber
T * make(const Args &...args) const
make new ROOT object
bool checkCollections(const T &collection, const unsigned int &constraint, const std::string &label)
std::vector< TFileDirectory > errorHistCat
const unsigned int NUM_INT_JETS
const unsigned int GCT_INT_HTMISS_QUANTA

◆ plotMissingEt()

void GctErrorAnalyzer::plotMissingEt ( const edm::Handle< L1GctEtMissCollection > &  missingEtD,
const edm::Handle< L1GctEtMissCollection > &  missingEtE 
)
private

Definition at line 1726 of file GctErrorAnalyzer.cc.

References doEmuMBx_, doGCTMBx_, EmuTrigBx_, GCTTrigBx_, mps_fire::i, missingEtD_, missingEtD_Of_, missingEtD_Phi_, missingEtE_, missingEtE_Of_, and missingEtE_Phi_.

Referenced by analyze().

1727  {
1728  for (unsigned int i = 0; i < missingEtD->size(); i++) {
1729  if (doGCTMBx_ || missingEtD->at(i).bx() == GCTTrigBx_) {
1730  missingEtD_Of_->Fill(missingEtD->at(i).overFlow());
1731  if (!missingEtD->at(i).overFlow() && missingEtD->at(i).et() > 0) {
1732  missingEtD_->Fill(missingEtD->at(i).et());
1733  missingEtD_Phi_->Fill(missingEtD->at(i).phi());
1734  }
1735  }
1736  }
1737 
1738  for (unsigned int i = 0; i < missingEtE->size(); i++) {
1739  if (doEmuMBx_ || missingEtE->at(i).bx() == EmuTrigBx_) {
1740  missingEtE_Of_->Fill(missingEtE->at(i).overFlow());
1741  if (!missingEtE->at(i).overFlow() && missingEtE->at(i).et()) {
1742  missingEtE_->Fill(missingEtE->at(i).et());
1743  missingEtE_Phi_->Fill(missingEtE->at(i).phi());
1744  }
1745  }
1746  }
1747 }

◆ plotMissingHt()

void GctErrorAnalyzer::plotMissingHt ( const edm::Handle< L1GctHtMissCollection > &  missingHtD,
const edm::Handle< L1GctHtMissCollection > &  missingHtE 
)
private

Definition at line 1749 of file GctErrorAnalyzer.cc.

References doEmuMBx_, doGCTMBx_, EmuTrigBx_, GCTTrigBx_, mps_fire::i, missingHtD_, missingHtD_Of_, missingHtD_Phi_, missingHtE_, missingHtE_Of_, and missingHtE_Phi_.

Referenced by analyze().

1750  {
1751  for (unsigned int i = 0; i < missingHtD->size(); i++) {
1752  if (doGCTMBx_ || missingHtD->at(i).bx() == GCTTrigBx_) {
1753  missingHtD_Of_->Fill(missingHtD->at(i).overFlow());
1754  if (!missingHtD->at(i).overFlow() && missingHtD->at(i).et() > 0) {
1755  missingHtD_->Fill(missingHtD->at(i).et());
1756  missingHtD_Phi_->Fill(missingHtD->at(i).phi());
1757  }
1758  }
1759  }
1760 
1761  for (unsigned int i = 0; i < missingHtE->size(); i++) {
1762  if (doEmuMBx_ || missingHtE->at(i).bx() == EmuTrigBx_) {
1763  missingHtE_Of_->Fill(missingHtE->at(i).overFlow());
1764  if (!missingHtE->at(i).overFlow() && missingHtE->at(i).et() > 0) {
1765  missingHtE_->Fill(missingHtE->at(i).et());
1766  missingHtE_Phi_->Fill(missingHtE->at(i).phi());
1767  }
1768  }
1769  }
1770 }

◆ plotNonIsoEm()

void GctErrorAnalyzer::plotNonIsoEm ( const edm::Handle< L1GctEmCandCollection > &  data,
const edm::Handle< L1GctEmCandCollection > &  emu 
)
private

Definition at line 1053 of file GctErrorAnalyzer.cc.

References doEmuMBx_, doGCTMBx_, EmuTrigBx_, GCTTrigBx_, mps_fire::i, nonIsoEgD_EtEtaPhi_, nonIsoEgD_OccEtaPhi_, nonIsoEgD_Rank_, nonIsoEgE_EtEtaPhi_, nonIsoEgE_OccEtaPhi_, and nonIsoEgE_Rank_.

Referenced by analyze().

1054  {
1055  //loop over all the data candidates - if multiple bx, then this should be a multiple of GCT_OBJECT_QUANTA
1056  for (unsigned int i = 0; i < nonIsoEgD->size(); i++) {
1057  //if the GCTMBx flag is set, plot all Bx for this quantity, otherwise only plot Bx = GCTTrigBx_
1058  if (doGCTMBx_ || nonIsoEgD->at(i).bx() == GCTTrigBx_) {
1059  nonIsoEgD_Rank_->Fill(nonIsoEgD->at(i).rank());
1060  if (nonIsoEgD->at(i).rank() > 0) {
1061  nonIsoEgD_EtEtaPhi_->Fill(
1062  nonIsoEgD->at(i).regionId().ieta(), nonIsoEgD->at(i).regionId().iphi(), nonIsoEgD->at(i).rank());
1063  nonIsoEgD_OccEtaPhi_->Fill(nonIsoEgD->at(i).regionId().ieta(), nonIsoEgD->at(i).regionId().iphi());
1064  }
1065  }
1066  }
1067  //now repeat for the emulator candidates
1068  for (unsigned int i = 0; i < nonIsoEgE->size(); i++) {
1069  if (doEmuMBx_ || nonIsoEgE->at(i).bx() == EmuTrigBx_) {
1070  nonIsoEgE_Rank_->Fill(nonIsoEgE->at(i).rank());
1071  if (nonIsoEgE->at(i).rank() > 0) {
1072  nonIsoEgE_EtEtaPhi_->Fill(
1073  nonIsoEgE->at(i).regionId().ieta(), nonIsoEgE->at(i).regionId().iphi(), nonIsoEgE->at(i).rank());
1074  nonIsoEgE_OccEtaPhi_->Fill(nonIsoEgE->at(i).regionId().ieta(), nonIsoEgE->at(i).regionId().iphi());
1075  }
1076  }
1077  }
1078 }

◆ plotRCTRegions()

void GctErrorAnalyzer::plotRCTRegions ( const edm::Handle< L1CaloRegionCollection > &  caloRegions)
private

Definition at line 1010 of file GctErrorAnalyzer.cc.

References caloLayer1Raw_cfi::caloRegions, doRCTMBx_, mps_fire::i, RCT_EtEtaPhi_, RCT_FgEtaPhi_, RCT_OfEtaPhi_, RCT_TvEtaPhi_, and RCTTrigBx_.

Referenced by analyze().

1010  {
1011  //if more than one Bx is readout per event, then caloRegions->size() will be some multiple of 396
1012  for (unsigned int i = 0; i < caloRegions->size(); i++) {
1013  //if the RCTMBx flag is set to true, write out all the info into the same histogram
1014  //otherwise only the RCTTrigBx will be written out - could skip (RCT_REGION_QUANTA-1) events here to speed things up...
1015  if (doRCTMBx_ || caloRegions->at(i).bx() == RCTTrigBx_) {
1016  if (caloRegions->at(i).et() > 0)
1017  RCT_EtEtaPhi_->Fill(caloRegions->at(i).gctEta(), caloRegions->at(i).gctPhi(), caloRegions->at(i).et());
1018  if (caloRegions->at(i).tauVeto())
1019  RCT_TvEtaPhi_->Fill(caloRegions->at(i).gctEta(), caloRegions->at(i).gctPhi());
1020  if (caloRegions->at(i).fineGrain())
1021  RCT_FgEtaPhi_->Fill(caloRegions->at(i).gctEta(), caloRegions->at(i).gctPhi());
1022  if (caloRegions->at(i).overFlow())
1023  RCT_OfEtaPhi_->Fill(caloRegions->at(i).gctEta(), caloRegions->at(i).gctPhi());
1024  }
1025  }
1026 }

◆ plotTauJets()

void GctErrorAnalyzer::plotTauJets ( const edm::Handle< L1GctJetCandCollection > &  data,
const edm::Handle< L1GctJetCandCollection > &  emu 
)
private

Definition at line 1197 of file GctErrorAnalyzer.cc.

References doEmuMBx_, doGCTMBx_, EmuTrigBx_, GCTTrigBx_, mps_fire::i, tauJetD_EtEtaPhi_, tauJetD_OccEtaPhi_, tauJetD_Rank_, tauJetE_EtEtaPhi_, tauJetE_OccEtaPhi_, and tauJetE_Rank_.

Referenced by analyze().

1198  {
1199  for (unsigned int i = 0; i < tauJetsD->size(); i++) {
1200  if (doGCTMBx_ || tauJetsD->at(i).bx() == GCTTrigBx_) {
1201  tauJetD_Rank_->Fill(tauJetsD->at(i).rank());
1202  if (tauJetsD->at(i).rank() > 0) {
1203  tauJetD_EtEtaPhi_->Fill(
1204  tauJetsD->at(i).regionId().ieta(), tauJetsD->at(i).regionId().iphi(), tauJetsD->at(i).rank());
1205  tauJetD_OccEtaPhi_->Fill(tauJetsD->at(i).regionId().ieta(), tauJetsD->at(i).regionId().iphi());
1206  }
1207  }
1208  }
1209 
1210  for (unsigned int i = 0; i < tauJetsE->size(); i++) {
1211  if (doEmuMBx_ || tauJetsE->at(i).bx() == EmuTrigBx_) {
1212  tauJetE_Rank_->Fill(tauJetsE->at(i).rank());
1213  if (tauJetsE->at(i).rank() > 0) {
1214  tauJetE_EtEtaPhi_->Fill(
1215  tauJetsE->at(i).regionId().ieta(), tauJetsE->at(i).regionId().iphi(), tauJetsE->at(i).rank());
1216  tauJetE_OccEtaPhi_->Fill(tauJetsE->at(i).regionId().ieta(), tauJetsE->at(i).regionId().iphi());
1217  }
1218  }
1219  }
1220 }

◆ plotTotalE()

void GctErrorAnalyzer::plotTotalE ( const edm::Handle< L1GctEtTotalCollection > &  totalEtD,
const edm::Handle< L1GctEtTotalCollection > &  totalEtE 
)
private

Definition at line 1613 of file GctErrorAnalyzer.cc.

References doEmuMBx_, doGCTMBx_, EmuTrigBx_, GCTTrigBx_, mps_fire::i, totalEtD_, totalEtD_Of_, totalEtE_, and totalEtE_Of_.

Referenced by analyze().

1614  {
1615  for (unsigned int i = 0; i < totalEtD->size(); i++) {
1616  if (doGCTMBx_ || totalEtD->at(i).bx() == GCTTrigBx_) {
1617  totalEtD_Of_->Fill(totalEtD->at(i).overFlow());
1618  if (!totalEtD->at(i).overFlow())
1619  totalEtD_->Fill(totalEtD->at(i).et());
1620  }
1621  }
1622  for (unsigned int i = 0; i < totalEtE->size(); i++) {
1623  if (doEmuMBx_ || totalEtE->at(i).bx() == EmuTrigBx_) {
1624  totalEtE_Of_->Fill(totalEtE->at(i).overFlow());
1625  if (!totalEtE->at(i).overFlow())
1626  totalEtE_->Fill(totalEtE->at(i).et());
1627  }
1628  }
1629 }

◆ plotTotalEErrors()

void GctErrorAnalyzer::plotTotalEErrors ( const edm::Handle< L1GctEtTotalCollection > &  totalEtD,
const edm::Handle< L1GctEtTotalCollection > &  totalEtE,
const edm::Handle< L1GctEtHadCollection > &  totalHtD,
const edm::Handle< L1GctEtHadCollection > &  totalHtE,
const edm::Handle< L1CaloRegionCollection > &  caloRegions 
)
private

Definition at line 1649 of file GctErrorAnalyzer.cc.

References caloLayer1Raw_cfi::caloRegions, EmuTrigBx_, errorHistCat, eventNumber, GCTTrigBx_, mps_fire::i, isTotalEError, isTotalHError, TFileDirectory::make(), RCTTrigBx_, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by analyze().

1653  {
1654  std::string errorDirName = "err_";
1655  if (isTotalEError)
1656  errorDirName.append("E");
1657  if (isTotalHError)
1658  errorDirName.append("H");
1659  std::stringstream caseNumber;
1660  caseNumber << eventNumber;
1661  errorDirName.append(caseNumber.str());
1662  TFileDirectory errorDir = errorHistCat.at(3).mkdir(errorDirName);
1663 
1664  TH2I *errorRegionEtEtaPhi_ = errorDir.make<TH2I>(
1665  "errorRegionEtEtaPhi", "errorRegionEtEtaPhi;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
1666  TH2I *errorRegionOfEtaPhi_ = errorDir.make<TH2I>(
1667  "errorRegionOfEtaPhi", "errorRegionOfEtaPhi;#eta (GCT Units);#phi (GCT Units)", 22, -0.5, 21.5, 18, -0.5, 17.5);
1668  TH1I *errorTotalEtD_ =
1669  errorDir.make<TH1I>("errorTotalEtD", "errorTotalEtD;E_{T};Number of Events", 1024, -0.5, 1023.5);
1670  TH1I *errorTotalEtD_Of_ =
1671  errorDir.make<TH1I>("errorTotalEtD_Of", "errorTotalEtD_Of;Overflow Bit Status;Number of Events", 2, -0.5, 1.5);
1672  TH1I *errorTotalEtE_ =
1673  errorDir.make<TH1I>("errorTotalEtE", "errorTotalEtE;E_{T};Number of Events", 1024, -0.5, 1023.5);
1674  TH1I *errorTotalEtE_Of_ =
1675  errorDir.make<TH1I>("errorTotalEtE_Of", "errorTotalEtE_Of;Overflow Bit Status;Number of Events", 2, -0.5, 1.5);
1676  TH1I *errorTotalHtD_ =
1677  errorDir.make<TH1I>("errorTotalHtD", "errorTotalHtD;E_{T};Number of Events", 1024, -0.5, 1023.5);
1678  TH1I *errorTotalHtD_Of_ =
1679  errorDir.make<TH1I>("errorTotalHtD_Of", "errorTotalHtD_Of;Overflow Bit Status;Number of Events", 2, -0.5, 1.5);
1680  TH1I *errorTotalHtE_ =
1681  errorDir.make<TH1I>("errorTotalHtE", "errorTotalHtE;E_{T};Number of Events", 1024, -0.5, 1023.5);
1682  TH1I *errorTotalHtE_Of_ =
1683  errorDir.make<TH1I>("errorTotalHtE_Of", "errorTotalHtE_Of;Overflow Bit Status;Number of Events", 2, -0.5, 1.5);
1684 
1685  //plot the region ET and OF bits
1686  for (unsigned int i = 0; i < caloRegions->size(); i++) {
1687  if (caloRegions->at(i).bx() == RCTTrigBx_) {
1688  if (caloRegions->at(i).et() > 0)
1689  errorRegionEtEtaPhi_->Fill(caloRegions->at(i).gctEta(), caloRegions->at(i).gctPhi(), caloRegions->at(i).et());
1690  if (caloRegions->at(i).overFlow())
1691  errorRegionOfEtaPhi_->Fill(caloRegions->at(i).gctEta(), caloRegions->at(i).gctPhi());
1692  }
1693  }
1694  //now plot the error ET
1695  for (unsigned int i = 0; i < totalEtD->size(); i++) {
1696  if (totalEtD->at(i).bx() == GCTTrigBx_) {
1697  errorTotalEtD_Of_->Fill(totalEtD->at(i).overFlow());
1698  if (!totalEtD->at(i).overFlow())
1699  errorTotalEtD_->Fill(totalEtD->at(i).et());
1700  }
1701  }
1702  for (unsigned int i = 0; i < totalEtE->size(); i++) {
1703  if (totalEtE->at(i).bx() == EmuTrigBx_) {
1704  errorTotalEtE_Of_->Fill(totalEtE->at(i).overFlow());
1705  if (!totalEtE->at(i).overFlow())
1706  errorTotalEtE_->Fill(totalEtE->at(i).et());
1707  }
1708  }
1709  //and now the error HT
1710  for (unsigned int i = 0; i < totalHtD->size(); i++) {
1711  if (totalHtD->at(i).bx() == GCTTrigBx_) {
1712  errorTotalHtD_Of_->Fill(totalHtD->at(i).overFlow());
1713  if (!totalHtD->at(i).overFlow())
1714  errorTotalHtD_->Fill(totalHtD->at(i).et());
1715  }
1716  }
1717  for (unsigned int i = 0; i < totalHtE->size(); i++) {
1718  if (totalHtE->at(i).bx() == EmuTrigBx_) {
1719  errorTotalHtE_Of_->Fill(totalHtE->at(i).overFlow());
1720  if (!totalHtE->at(i).overFlow())
1721  errorTotalHtE_->Fill(totalHtE->at(i).et());
1722  }
1723  }
1724 }
unsigned int eventNumber
T * make(const Args &...args) const
make new ROOT object
std::vector< TFileDirectory > errorHistCat

◆ plotTotalH()

void GctErrorAnalyzer::plotTotalH ( const edm::Handle< L1GctEtHadCollection > &  totalHtD,
const edm::Handle< L1GctEtHadCollection > &  totalHtE 
)
private

Definition at line 1631 of file GctErrorAnalyzer.cc.

References doEmuMBx_, doGCTMBx_, EmuTrigBx_, GCTTrigBx_, mps_fire::i, totalHtD_, totalHtD_Of_, totalHtE_, and totalHtE_Of_.

Referenced by analyze().

1632  {
1633  for (unsigned int i = 0; i < totalHtD->size(); i++) {
1634  if (doGCTMBx_ || totalHtD->at(i).bx() == GCTTrigBx_) {
1635  totalHtD_Of_->Fill(totalHtD->at(i).overFlow());
1636  if (!totalHtD->at(i).overFlow())
1637  totalHtD_->Fill(totalHtD->at(i).et());
1638  }
1639  }
1640  for (unsigned int i = 0; i < totalHtE->size(); i++) {
1641  if (doEmuMBx_ || totalHtE->at(i).bx() == EmuTrigBx_) {
1642  totalHtE_Of_->Fill(totalHtE->at(i).overFlow());
1643  if (!totalHtE->at(i).overFlow())
1644  totalHtE_->Fill(totalHtE->at(i).et());
1645  }
1646  }
1647 }

◆ sortJets()

bool GctErrorAnalyzer::sortJets ( const jetData jet1,
const jetData jet2 
)
staticprivate

Definition at line 1314 of file GctErrorAnalyzer.cc.

References jetData::et.

Referenced by plotIntJets().

1314 { return jet1.et > jet2.et; }

Member Data Documentation

◆ cenJet_errorFlag_

TH1I* GctErrorAnalyzer::cenJet_errorFlag_
private

Definition at line 192 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ cenJetD_EtEtaPhi_

TH2I* GctErrorAnalyzer::cenJetD_EtEtaPhi_
private

Definition at line 190 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotCenJets().

◆ cenJetD_GlobalError_EtEtaPhi_

TH2I* GctErrorAnalyzer::cenJetD_GlobalError_EtEtaPhi_
private

Definition at line 196 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ cenJetD_GlobalError_Rank_

TH1I* GctErrorAnalyzer::cenJetD_GlobalError_Rank_
private

Definition at line 194 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ cenJetD_OccEtaPhi_

TH2I* GctErrorAnalyzer::cenJetD_OccEtaPhi_
private

Definition at line 191 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotCenJets().

◆ cenJetD_Rank_

TH1I* GctErrorAnalyzer::cenJetD_Rank_
private

Definition at line 189 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotCenJets().

◆ cenJetE_EtEtaPhi_

TH2I * GctErrorAnalyzer::cenJetE_EtEtaPhi_
private

Definition at line 190 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotCenJets().

◆ cenJetE_GlobalError_EtEtaPhi_

TH2I* GctErrorAnalyzer::cenJetE_GlobalError_EtEtaPhi_
private

Definition at line 197 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ cenJetE_GlobalError_Rank_

TH1I* GctErrorAnalyzer::cenJetE_GlobalError_Rank_
private

Definition at line 195 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ cenJetE_OccEtaPhi_

TH2I * GctErrorAnalyzer::cenJetE_OccEtaPhi_
private

Definition at line 191 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotCenJets().

◆ cenJetE_Rank_

TH1I * GctErrorAnalyzer::cenJetE_Rank_
private

Definition at line 189 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotCenJets().

◆ dataTag_

edm::InputTag GctErrorAnalyzer::dataTag_
private

Definition at line 157 of file GctErrorAnalyzer.cc.

Referenced by analyze().

◆ doBitCountDebug_

bool GctErrorAnalyzer::doBitCountDebug_
private

Definition at line 137 of file GctErrorAnalyzer.cc.

Referenced by analyze().

◆ doCenJetsDebug_

bool GctErrorAnalyzer::doCenJetsDebug_
private

Definition at line 132 of file GctErrorAnalyzer.cc.

Referenced by analyze().

◆ doEg_

bool GctErrorAnalyzer::doEg_
private

Definition at line 128 of file GctErrorAnalyzer.cc.

Referenced by analyze().

◆ doEmuMBx_

bool GctErrorAnalyzer::doEmuMBx_
private

◆ doExtraMissingHTDebug_

bool GctErrorAnalyzer::doExtraMissingHTDebug_
private

Definition at line 144 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and plotMissingEErrors().

◆ doForJetsDebug_

bool GctErrorAnalyzer::doForJetsDebug_
private

Definition at line 134 of file GctErrorAnalyzer.cc.

Referenced by analyze().

◆ doGCTMBx_

bool GctErrorAnalyzer::doGCTMBx_
private

◆ doHF_

bool GctErrorAnalyzer::doHF_
private

Definition at line 135 of file GctErrorAnalyzer.cc.

Referenced by analyze().

◆ doIsoDebug_

bool GctErrorAnalyzer::doIsoDebug_
private

Definition at line 129 of file GctErrorAnalyzer.cc.

Referenced by analyze().

◆ doJets_

bool GctErrorAnalyzer::doJets_
private

Definition at line 131 of file GctErrorAnalyzer.cc.

Referenced by analyze().

◆ doMissingEnergySums_

bool GctErrorAnalyzer::doMissingEnergySums_
private

Definition at line 141 of file GctErrorAnalyzer.cc.

Referenced by analyze().

◆ doMissingETDebug_

bool GctErrorAnalyzer::doMissingETDebug_
private

Definition at line 142 of file GctErrorAnalyzer.cc.

Referenced by analyze().

◆ doMissingHTDebug_

bool GctErrorAnalyzer::doMissingHTDebug_
private

Definition at line 143 of file GctErrorAnalyzer.cc.

Referenced by analyze().

◆ doNonIsoDebug_

bool GctErrorAnalyzer::doNonIsoDebug_
private

Definition at line 130 of file GctErrorAnalyzer.cc.

Referenced by analyze().

◆ doRCT_

bool GctErrorAnalyzer::doRCT_
private

Definition at line 127 of file GctErrorAnalyzer.cc.

Referenced by analyze().

◆ doRCTMBx_

bool GctErrorAnalyzer::doRCTMBx_
private

Definition at line 149 of file GctErrorAnalyzer.cc.

Referenced by plotRCTRegions().

◆ doRingSumDebug_

bool GctErrorAnalyzer::doRingSumDebug_
private

Definition at line 136 of file GctErrorAnalyzer.cc.

Referenced by analyze().

◆ doTauJetsDebug_

bool GctErrorAnalyzer::doTauJetsDebug_
private

Definition at line 133 of file GctErrorAnalyzer.cc.

Referenced by analyze().

◆ doTotalEnergySums_

bool GctErrorAnalyzer::doTotalEnergySums_
private

Definition at line 138 of file GctErrorAnalyzer.cc.

Referenced by analyze().

◆ doTotalEtDebug_

bool GctErrorAnalyzer::doTotalEtDebug_
private

Definition at line 139 of file GctErrorAnalyzer.cc.

Referenced by analyze().

◆ doTotalHtDebug_

bool GctErrorAnalyzer::doTotalHtDebug_
private

Definition at line 140 of file GctErrorAnalyzer.cc.

Referenced by analyze().

◆ emuTag_

edm::InputTag GctErrorAnalyzer::emuTag_
private

Definition at line 158 of file GctErrorAnalyzer.cc.

Referenced by analyze().

◆ EmuTrigBx_

int GctErrorAnalyzer::EmuTrigBx_
private

◆ errorHistCat

std::vector<TFileDirectory> GctErrorAnalyzer::errorHistCat
private

◆ eventNumber

unsigned int GctErrorAnalyzer::eventNumber
private

◆ forJet_errorFlag_

TH1I* GctErrorAnalyzer::forJet_errorFlag_
private

Definition at line 212 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ forJetD_EtEtaPhi_

TH2I* GctErrorAnalyzer::forJetD_EtEtaPhi_
private

Definition at line 210 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotForJets().

◆ forJetD_GlobalError_EtEtaPhi_

TH2I* GctErrorAnalyzer::forJetD_GlobalError_EtEtaPhi_
private

Definition at line 216 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ forJetD_GlobalError_Rank_

TH1I* GctErrorAnalyzer::forJetD_GlobalError_Rank_
private

Definition at line 214 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ forJetD_OccEtaPhi_

TH2I* GctErrorAnalyzer::forJetD_OccEtaPhi_
private

Definition at line 211 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotForJets().

◆ forJetD_Rank_

TH1I* GctErrorAnalyzer::forJetD_Rank_
private

Definition at line 209 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotForJets().

◆ forJetE_EtEtaPhi_

TH2I * GctErrorAnalyzer::forJetE_EtEtaPhi_
private

Definition at line 210 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotForJets().

◆ forJetE_GlobalError_EtEtaPhi_

TH2I* GctErrorAnalyzer::forJetE_GlobalError_EtEtaPhi_
private

Definition at line 217 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ forJetE_GlobalError_Rank_

TH1I* GctErrorAnalyzer::forJetE_GlobalError_Rank_
private

Definition at line 215 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ forJetE_OccEtaPhi_

TH2I * GctErrorAnalyzer::forJetE_OccEtaPhi_
private

Definition at line 211 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotForJets().

◆ forJetE_Rank_

TH1I * GctErrorAnalyzer::forJetE_Rank_
private

Definition at line 209 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotForJets().

◆ GCTTrigBx_

int GctErrorAnalyzer::GCTTrigBx_
private

◆ hfBitCount_errorFlag_

TH1I* GctErrorAnalyzer::hfBitCount_errorFlag_
private

Definition at line 233 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ hfBitCountD_1neg_

TH1I * GctErrorAnalyzer::hfBitCountD_1neg_
private

Definition at line 231 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotHFBitCounts().

◆ hfBitCountD_1pos_

TH1I* GctErrorAnalyzer::hfBitCountD_1pos_
private

Definition at line 231 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotHFBitCounts().

◆ hfBitCountD_2neg_

TH1I * GctErrorAnalyzer::hfBitCountD_2neg_
private

Definition at line 231 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotHFBitCounts().

◆ hfBitCountD_2pos_

TH1I * GctErrorAnalyzer::hfBitCountD_2pos_
private

Definition at line 231 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotHFBitCounts().

◆ hfBitCountE_1neg_

TH1I * GctErrorAnalyzer::hfBitCountE_1neg_
private

Definition at line 232 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotHFBitCounts().

◆ hfBitCountE_1pos_

TH1I* GctErrorAnalyzer::hfBitCountE_1pos_
private

Definition at line 232 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotHFBitCounts().

◆ hfBitCountE_2neg_

TH1I * GctErrorAnalyzer::hfBitCountE_2neg_
private

Definition at line 232 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotHFBitCounts().

◆ hfBitCountE_2pos_

TH1I * GctErrorAnalyzer::hfBitCountE_2pos_
private

Definition at line 232 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotHFBitCounts().

◆ hfRingSum_errorFlag_

TH1I* GctErrorAnalyzer::hfRingSum_errorFlag_
private

Definition at line 229 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ hfRingSumD_1neg_

TH1I * GctErrorAnalyzer::hfRingSumD_1neg_
private

Definition at line 227 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotHFRingSums().

◆ hfRingSumD_1pos_

TH1I* GctErrorAnalyzer::hfRingSumD_1pos_
private

Definition at line 227 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotHFRingSums().

◆ hfRingSumD_2neg_

TH1I * GctErrorAnalyzer::hfRingSumD_2neg_
private

Definition at line 227 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotHFRingSums().

◆ hfRingSumD_2pos_

TH1I * GctErrorAnalyzer::hfRingSumD_2pos_
private

Definition at line 227 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotHFRingSums().

◆ hfRingSumE_1neg_

TH1I * GctErrorAnalyzer::hfRingSumE_1neg_
private

Definition at line 228 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotHFRingSums().

◆ hfRingSumE_1pos_

TH1I* GctErrorAnalyzer::hfRingSumE_1pos_
private

Definition at line 228 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotHFRingSums().

◆ hfRingSumE_2neg_

TH1I * GctErrorAnalyzer::hfRingSumE_2neg_
private

Definition at line 228 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotHFRingSums().

◆ hfRingSumE_2pos_

TH1I * GctErrorAnalyzer::hfRingSumE_2pos_
private

Definition at line 228 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotHFRingSums().

◆ intJetE_Et_

TH1I* GctErrorAnalyzer::intJetE_Et_
private

Definition at line 220 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotIntJets().

◆ intJetE_Jet1Et_

TH1I* GctErrorAnalyzer::intJetE_Jet1Et_
private

Definition at line 222 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotIntJets().

◆ intJetE_Jet2Et_

TH1I* GctErrorAnalyzer::intJetE_Jet2Et_
private

Definition at line 223 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotIntJets().

◆ intJetE_Jet3Et_

TH1I* GctErrorAnalyzer::intJetE_Jet3Et_
private

Definition at line 224 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotIntJets().

◆ intJetE_Jet4Et_

TH1I* GctErrorAnalyzer::intJetE_Jet4Et_
private

Definition at line 225 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotIntJets().

◆ intJetE_Of_

TH1I* GctErrorAnalyzer::intJetE_Of_
private

Definition at line 221 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotIntJets().

◆ intJetEtEtaPhiE_

TH2I* GctErrorAnalyzer::intJetEtEtaPhiE_
private

Definition at line 219 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotIntJets().

◆ isBitCountError

bool GctErrorAnalyzer::isBitCountError
private

Definition at line 270 of file GctErrorAnalyzer.cc.

Referenced by analyze(), GctErrorAnalyzer(), and plotHFErrors().

◆ isCenJetError

bool GctErrorAnalyzer::isCenJetError
private

Definition at line 266 of file GctErrorAnalyzer.cc.

Referenced by analyze(), GctErrorAnalyzer(), and plotJetErrors().

◆ isForJetError

bool GctErrorAnalyzer::isForJetError
private

Definition at line 268 of file GctErrorAnalyzer.cc.

Referenced by analyze(), GctErrorAnalyzer(), and plotJetErrors().

◆ isIsoError

bool GctErrorAnalyzer::isIsoError
private

Definition at line 264 of file GctErrorAnalyzer.cc.

Referenced by analyze(), GctErrorAnalyzer(), and plotEGErrors().

◆ isMissingEError

bool GctErrorAnalyzer::isMissingEError
private

Definition at line 273 of file GctErrorAnalyzer.cc.

Referenced by analyze(), GctErrorAnalyzer(), and plotMissingEErrors().

◆ isMissingHError

bool GctErrorAnalyzer::isMissingHError
private

Definition at line 274 of file GctErrorAnalyzer.cc.

Referenced by analyze(), GctErrorAnalyzer(), and plotMissingEErrors().

◆ isNonIsoError

bool GctErrorAnalyzer::isNonIsoError
private

Definition at line 265 of file GctErrorAnalyzer.cc.

Referenced by analyze(), GctErrorAnalyzer(), and plotEGErrors().

◆ isoEg_errorFlag_

TH1I* GctErrorAnalyzer::isoEg_errorFlag_
private

Definition at line 172 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ isoEgD_EtEtaPhi_

TH2I* GctErrorAnalyzer::isoEgD_EtEtaPhi_
private

Definition at line 170 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotIsoEm().

◆ isoEgD_GlobalError_EtEtaPhi_

TH2I* GctErrorAnalyzer::isoEgD_GlobalError_EtEtaPhi_
private

Definition at line 176 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ isoEgD_GlobalError_Rank_

TH1I* GctErrorAnalyzer::isoEgD_GlobalError_Rank_
private

Definition at line 174 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ isoEgD_OccEtaPhi_

TH2I* GctErrorAnalyzer::isoEgD_OccEtaPhi_
private

Definition at line 171 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotIsoEm().

◆ isoEgD_Rank_

TH1I* GctErrorAnalyzer::isoEgD_Rank_
private

Definition at line 169 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotIsoEm().

◆ isoEgE_EtEtaPhi_

TH2I * GctErrorAnalyzer::isoEgE_EtEtaPhi_
private

Definition at line 170 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotIsoEm().

◆ isoEgE_GlobalError_EtEtaPhi_

TH2I* GctErrorAnalyzer::isoEgE_GlobalError_EtEtaPhi_
private

Definition at line 177 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ isoEgE_GlobalError_Rank_

TH1I* GctErrorAnalyzer::isoEgE_GlobalError_Rank_
private

Definition at line 175 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ isoEgE_OccEtaPhi_

TH2I * GctErrorAnalyzer::isoEgE_OccEtaPhi_
private

Definition at line 171 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotIsoEm().

◆ isoEgE_Rank_

TH1I * GctErrorAnalyzer::isoEgE_Rank_
private

Definition at line 169 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotIsoEm().

◆ isRingSumError

bool GctErrorAnalyzer::isRingSumError
private

Definition at line 269 of file GctErrorAnalyzer.cc.

Referenced by analyze(), GctErrorAnalyzer(), and plotHFErrors().

◆ isTauJetError

bool GctErrorAnalyzer::isTauJetError
private

Definition at line 267 of file GctErrorAnalyzer.cc.

Referenced by analyze(), GctErrorAnalyzer(), and plotJetErrors().

◆ isTotalEError

bool GctErrorAnalyzer::isTotalEError
private

Definition at line 271 of file GctErrorAnalyzer.cc.

Referenced by analyze(), GctErrorAnalyzer(), and plotTotalEErrors().

◆ isTotalHError

bool GctErrorAnalyzer::isTotalHError
private

Definition at line 272 of file GctErrorAnalyzer.cc.

Referenced by analyze(), GctErrorAnalyzer(), and plotTotalEErrors().

◆ MBxInfo

GctErrorAnalyzerMBxInfo GctErrorAnalyzer::MBxInfo
private

Definition at line 163 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ missingEt_errorFlag_

TH1I* GctErrorAnalyzer::missingEt_errorFlag_
private

Definition at line 252 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ missingEtD_

TH1I* GctErrorAnalyzer::missingEtD_
private

Definition at line 249 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotMissingEt().

◆ missingEtD_Of_

TH1I* GctErrorAnalyzer::missingEtD_Of_
private

Definition at line 250 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotMissingEt().

◆ missingEtD_Phi_

TH1I* GctErrorAnalyzer::missingEtD_Phi_
private

Definition at line 251 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotMissingEt().

◆ missingEtE_

TH1I * GctErrorAnalyzer::missingEtE_
private

Definition at line 249 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotMissingEt().

◆ missingEtE_Of_

TH1I * GctErrorAnalyzer::missingEtE_Of_
private

Definition at line 250 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotMissingEt().

◆ missingEtE_Phi_

TH1I * GctErrorAnalyzer::missingEtE_Phi_
private

Definition at line 251 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotMissingEt().

◆ missingHt_errorFlag_

TH1I* GctErrorAnalyzer::missingHt_errorFlag_
private

Definition at line 257 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ missingHtD_

TH1I* GctErrorAnalyzer::missingHtD_
private

Definition at line 254 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotMissingHt().

◆ missingHtD_HtXNegLeaf1

TH1I * GctErrorAnalyzer::missingHtD_HtXNegLeaf1
private

Definition at line 258 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ missingHtD_HtXNegLeaf2

TH1I * GctErrorAnalyzer::missingHtD_HtXNegLeaf2
private

Definition at line 258 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ missingHtD_HtXNegLeaf3

TH1I * GctErrorAnalyzer::missingHtD_HtXNegLeaf3
private

Definition at line 258 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ missingHtD_HtXPosLeaf1

TH1I* GctErrorAnalyzer::missingHtD_HtXPosLeaf1
private

Definition at line 258 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ missingHtD_HtXPosLeaf2

TH1I * GctErrorAnalyzer::missingHtD_HtXPosLeaf2
private

Definition at line 258 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ missingHtD_HtXPosLeaf3

TH1I * GctErrorAnalyzer::missingHtD_HtXPosLeaf3
private

Definition at line 258 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ missingHtD_HtYNegLeaf1

TH1I * GctErrorAnalyzer::missingHtD_HtYNegLeaf1
private

Definition at line 260 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ missingHtD_HtYNegLeaf2

TH1I * GctErrorAnalyzer::missingHtD_HtYNegLeaf2
private

Definition at line 260 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ missingHtD_HtYNegLeaf3

TH1I * GctErrorAnalyzer::missingHtD_HtYNegLeaf3
private

Definition at line 260 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ missingHtD_HtYPosLeaf1

TH1I* GctErrorAnalyzer::missingHtD_HtYPosLeaf1
private

Definition at line 260 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ missingHtD_HtYPosLeaf2

TH1I * GctErrorAnalyzer::missingHtD_HtYPosLeaf2
private

Definition at line 260 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ missingHtD_HtYPosLeaf3

TH1I * GctErrorAnalyzer::missingHtD_HtYPosLeaf3
private

Definition at line 260 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ missingHtD_Of_

TH1I* GctErrorAnalyzer::missingHtD_Of_
private

Definition at line 255 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotMissingHt().

◆ missingHtD_Phi_

TH1I* GctErrorAnalyzer::missingHtD_Phi_
private

Definition at line 256 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotMissingHt().

◆ missingHtE_

TH1I * GctErrorAnalyzer::missingHtE_
private

Definition at line 254 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotMissingHt().

◆ missingHtE_Of_

TH1I * GctErrorAnalyzer::missingHtE_Of_
private

Definition at line 255 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotMissingHt().

◆ missingHtE_Phi_

TH1I * GctErrorAnalyzer::missingHtE_Phi_
private

Definition at line 256 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotMissingHt().

◆ nonIsoEg_errorFlag_

TH1I* GctErrorAnalyzer::nonIsoEg_errorFlag_
private

Definition at line 182 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ nonIsoEgD_EtEtaPhi_

TH2I* GctErrorAnalyzer::nonIsoEgD_EtEtaPhi_
private

Definition at line 180 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotNonIsoEm().

◆ nonIsoEgD_GlobalError_EtEtaPhi_

TH2I* GctErrorAnalyzer::nonIsoEgD_GlobalError_EtEtaPhi_
private

Definition at line 186 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ nonIsoEgD_GlobalError_Rank_

TH1I* GctErrorAnalyzer::nonIsoEgD_GlobalError_Rank_
private

Definition at line 184 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ nonIsoEgD_OccEtaPhi_

TH2I* GctErrorAnalyzer::nonIsoEgD_OccEtaPhi_
private

Definition at line 181 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotNonIsoEm().

◆ nonIsoEgD_Rank_

TH1I* GctErrorAnalyzer::nonIsoEgD_Rank_
private

Definition at line 179 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotNonIsoEm().

◆ nonIsoEgE_EtEtaPhi_

TH2I * GctErrorAnalyzer::nonIsoEgE_EtEtaPhi_
private

Definition at line 180 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotNonIsoEm().

◆ nonIsoEgE_GlobalError_EtEtaPhi_

TH2I* GctErrorAnalyzer::nonIsoEgE_GlobalError_EtEtaPhi_
private

Definition at line 187 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ nonIsoEgE_GlobalError_Rank_

TH1I* GctErrorAnalyzer::nonIsoEgE_GlobalError_Rank_
private

Definition at line 185 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ nonIsoEgE_OccEtaPhi_

TH2I * GctErrorAnalyzer::nonIsoEgE_OccEtaPhi_
private

Definition at line 181 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotNonIsoEm().

◆ nonIsoEgE_Rank_

TH1I * GctErrorAnalyzer::nonIsoEgE_Rank_
private

Definition at line 179 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotNonIsoEm().

◆ RCT_EtEtaPhi_

TH2I* GctErrorAnalyzer::RCT_EtEtaPhi_
private

Definition at line 167 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotRCTRegions().

◆ RCT_FgEtaPhi_

TH2I * GctErrorAnalyzer::RCT_FgEtaPhi_
private

Definition at line 167 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotRCTRegions().

◆ RCT_OfEtaPhi_

TH2I * GctErrorAnalyzer::RCT_OfEtaPhi_
private

Definition at line 167 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotRCTRegions().

◆ RCT_REGION_QUANTA

const unsigned int* GctErrorAnalyzer::RCT_REGION_QUANTA
private

Definition at line 284 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ RCT_TvEtaPhi_

TH2I * GctErrorAnalyzer::RCT_TvEtaPhi_
private

Definition at line 167 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotRCTRegions().

◆ RCTTrigBx_

int GctErrorAnalyzer::RCTTrigBx_
private

◆ tauJet_errorFlag_

TH1I* GctErrorAnalyzer::tauJet_errorFlag_
private

Definition at line 202 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ tauJetD_EtEtaPhi_

TH2I* GctErrorAnalyzer::tauJetD_EtEtaPhi_
private

Definition at line 200 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotTauJets().

◆ tauJetD_GlobalError_EtEtaPhi_

TH2I* GctErrorAnalyzer::tauJetD_GlobalError_EtEtaPhi_
private

Definition at line 206 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ tauJetD_GlobalError_Rank_

TH1I* GctErrorAnalyzer::tauJetD_GlobalError_Rank_
private

Definition at line 204 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ tauJetD_OccEtaPhi_

TH2I* GctErrorAnalyzer::tauJetD_OccEtaPhi_
private

Definition at line 201 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotTauJets().

◆ tauJetD_Rank_

TH1I* GctErrorAnalyzer::tauJetD_Rank_
private

Definition at line 199 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotTauJets().

◆ tauJetE_EtEtaPhi_

TH2I * GctErrorAnalyzer::tauJetE_EtEtaPhi_
private

Definition at line 200 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotTauJets().

◆ tauJetE_GlobalError_EtEtaPhi_

TH2I* GctErrorAnalyzer::tauJetE_GlobalError_EtEtaPhi_
private

Definition at line 207 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ tauJetE_GlobalError_Rank_

TH1I* GctErrorAnalyzer::tauJetE_GlobalError_Rank_
private

Definition at line 205 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ tauJetE_OccEtaPhi_

TH2I * GctErrorAnalyzer::tauJetE_OccEtaPhi_
private

Definition at line 201 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotTauJets().

◆ tauJetE_Rank_

TH1I * GctErrorAnalyzer::tauJetE_Rank_
private

Definition at line 199 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotTauJets().

◆ totalEt_errorFlag_

TH1I* GctErrorAnalyzer::totalEt_errorFlag_
private

Definition at line 237 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ totalEtD_

TH1I* GctErrorAnalyzer::totalEtD_
private

Definition at line 235 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotTotalE().

◆ totalEtD_Of_

TH1I* GctErrorAnalyzer::totalEtD_Of_
private

Definition at line 236 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotTotalE().

◆ totalEtE_

TH1I * GctErrorAnalyzer::totalEtE_
private

Definition at line 235 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotTotalE().

◆ totalEtE_Of_

TH1I * GctErrorAnalyzer::totalEtE_Of_
private

Definition at line 236 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotTotalE().

◆ totalHt_errorFlag_

TH1I* GctErrorAnalyzer::totalHt_errorFlag_
private

Definition at line 244 of file GctErrorAnalyzer.cc.

Referenced by analyze(), and GctErrorAnalyzer().

◆ totalHtD_

TH1I* GctErrorAnalyzer::totalHtD_
private

Definition at line 242 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotTotalH().

◆ totalHtD_Of_

TH1I* GctErrorAnalyzer::totalHtD_Of_
private

Definition at line 243 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotTotalH().

◆ totalHtE_

TH1I * GctErrorAnalyzer::totalHtE_
private

Definition at line 242 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotTotalH().

◆ totalHtE_Of_

TH1I * GctErrorAnalyzer::totalHtE_Of_
private

Definition at line 243 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer(), and plotTotalH().

◆ useSys_

std::string GctErrorAnalyzer::useSys_
private

Definition at line 160 of file GctErrorAnalyzer.cc.

Referenced by GctErrorAnalyzer().