|
|
#include <MuonTestSummary.h>
|
| MuonTestSummary (const edm::ParameterSet &ps) |
| Constructor. More...
|
|
| ~MuonTestSummary () override |
| Destructor. More...
|
|
void | accumulate (edm::Event const &ev, edm::EventSetup const &es) final |
|
void | beginJob () override |
|
void | beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &) final |
|
void | beginRun (edm::Run const &run, edm::EventSetup const &) override |
|
virtual void | dqmAnalyze (DQMStore::IBooker &, DQMStore::IGetter &, edm::Event const &, edm::EventSetup const &) |
|
| DQMEDHarvester () |
|
| DQMEDHarvester (edm::ParameterSet const &iConfig) |
|
virtual void | dqmEndLuminosityBlock (DQMStore::IBooker &, DQMStore::IGetter &, edm::LuminosityBlock const &, edm::EventSetup const &) |
|
virtual void | dqmEndRun (DQMStore::IBooker &, DQMStore::IGetter &, edm::Run const &, edm::EventSetup const &) |
|
void | endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final |
|
void | endLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &es) final |
|
void | endProcessBlockProduce (edm::ProcessBlock &) final |
|
void | endRun (edm::Run const &, edm::EventSetup const &) override |
|
void | endRunProduce (edm::Run &run, edm::EventSetup const &es) final |
|
| ~DQMEDHarvester () override=default |
|
| EDProducer ()=default |
|
SerialTaskQueue * | globalLuminosityBlocksQueue () final |
|
SerialTaskQueue * | globalRunsQueue () final |
|
bool | hasAbilityToProduceInBeginLumis () const final |
|
bool | hasAbilityToProduceInBeginProcessBlocks () const final |
|
bool | hasAbilityToProduceInBeginRuns () const final |
|
bool | hasAbilityToProduceInEndLumis () const final |
|
bool | hasAbilityToProduceInEndProcessBlocks () const final |
|
bool | hasAbilityToProduceInEndRuns () const final |
|
bool | wantsGlobalLuminosityBlocks () const final |
|
bool | wantsGlobalRuns () const final |
|
bool | wantsInputProcessBlocks () const final |
|
bool | wantsProcessBlocks () const final |
|
| EDProducerBase () |
|
ModuleDescription const & | moduleDescription () const |
|
bool | wantsStreamLuminosityBlocks () const |
|
bool | wantsStreamRuns () const |
|
| ~EDProducerBase () override |
|
void | callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func) |
|
std::vector< edm::ProductResolverIndex > const & | indiciesForPutProducts (BranchType iBranchType) const |
|
| ProducerBase () |
|
std::vector< edm::ProductResolverIndex > const & | putTokenIndexToProductResolverIndex () const |
|
std::vector< bool > const & | recordProvenanceList () const |
|
void | registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &) |
|
std::function< void(BranchDescription const &)> | registrationCallback () const |
| used by the fwk to register list of products More...
|
|
void | resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel) |
|
TypeLabelList const & | typeLabelList () const |
| used by the fwk to register the list of products of this module More...
|
|
| ~ProducerBase () noexcept(false) override |
|
std::vector< ConsumesInfo > | consumesInfo () const |
|
void | convertCurrentProcessAlias (std::string const &processName) |
| Convert "@currentProcess" in InputTag process names to the actual current process name. More...
|
|
| EDConsumerBase () |
|
| EDConsumerBase (EDConsumerBase &&)=default |
|
| EDConsumerBase (EDConsumerBase const &)=delete |
|
ESProxyIndex const * | esGetTokenIndices (edm::Transition iTrans) const |
|
std::vector< ESProxyIndex > const & | esGetTokenIndicesVector (edm::Transition iTrans) const |
|
std::vector< ESRecordIndex > const & | esGetTokenRecordIndicesVector (edm::Transition iTrans) const |
|
ProductResolverIndexAndSkipBit | indexFrom (EDGetToken, BranchType, TypeID const &) const |
|
void | itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const |
|
void | itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const |
|
std::vector< ProductResolverIndexAndSkipBit > const & | itemsToGetFrom (BranchType iType) const |
|
void | labelsForToken (EDGetToken iToken, Labels &oLabels) const |
|
void | modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const * > *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const |
|
EDConsumerBase & | operator= (EDConsumerBase &&)=default |
|
EDConsumerBase const & | operator= (EDConsumerBase const &)=delete |
|
bool | registeredToConsume (ProductResolverIndex, bool, BranchType) const |
|
bool | registeredToConsumeMany (TypeID const &, BranchType) const |
|
ProductResolverIndexAndSkipBit | uncheckedIndexFrom (EDGetToken) const |
|
void | updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet) |
|
void | updateLookup (eventsetup::ESRecordsToProxyIndices const &) |
|
virtual | ~EDConsumerBase () noexcept(false) |
|
|
void | doEnergyTests (DQMStore::IGetter &, std::string nameHisto, std::string muonType, int bin) |
|
void | doKinematicsTests (DQMStore::IGetter &, std::string, int) |
| test operations More...
|
|
void | doMultiplicityTests (DQMStore::IGetter &) |
|
void | doMuonIDTests (DQMStore::IGetter &) |
|
void | doResidualsTests (DQMStore::IGetter &, std::string, std::string, int) |
|
void | dqmEndJob (DQMStore::IBooker &, DQMStore::IGetter &) override |
|
void | GaussFit (std::string type, std::string parameter, MonitorElement *Histo, float &mean, float &mean_err, float &sigma, float &sigma_err) |
|
void | ResidualCheck (DQMStore::IGetter &, std::string muType, const std::vector< std::string > &resHistos, int &numPlot, double &Mean, double &Mean_err, double &Sigma, double &Sigma_err) |
|
template<class ProductType > |
BranchAliasSetterT< ProductType > | produces () |
| declare what type of product will make and with which optional label More...
|
|
template<typename ProductType , BranchType B> |
BranchAliasSetterT< ProductType > | produces () |
|
template<typename ProductType , Transition B> |
BranchAliasSetterT< ProductType > | produces () |
|
BranchAliasSetter | produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true) |
|
template<BranchType B> |
BranchAliasSetter | produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true) |
|
template<Transition B> |
BranchAliasSetter | produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true) |
|
template<typename ProductType , Transition B> |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
|
template<class ProductType > |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
|
template<typename ProductType , BranchType B> |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
|
ProducesCollector | producesCollector () |
|
EDGetToken | consumes (const TypeToGet &id, edm::InputTag const &tag) |
|
template<typename ProductType , BranchType B = InEvent> |
EDGetTokenT< ProductType > | consumes (edm::InputTag const &tag) |
|
template<BranchType B = InEvent> |
EDConsumerBaseAdaptor< B > | consumes (edm::InputTag tag) noexcept |
|
template<BranchType B> |
EDGetToken | consumes (TypeToGet const &id, edm::InputTag const &tag) |
|
ConsumesCollector | consumesCollector () |
| Use a ConsumesCollector to gather consumes information from helper functions. More...
|
|
template<typename ProductType , BranchType B = InEvent> |
void | consumesMany () |
|
void | consumesMany (const TypeToGet &id) |
|
template<BranchType B> |
void | consumesMany (const TypeToGet &id) |
|
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event> |
auto | esConsumes () |
|
template<Transition Tr = Transition::Event> |
constexpr auto | esConsumes () noexcept |
|
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event> |
auto | esConsumes (ESInputTag const &tag) |
|
template<Transition Tr = Transition::Event> |
auto | esConsumes (ESInputTag tag) noexcept |
|
template<Transition Tr = Transition::Event> |
ESGetTokenGeneric | esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey) |
| Used with EventSetupRecord::doGet. More...
|
|
EDGetToken | mayConsume (const TypeToGet &id, edm::InputTag const &tag) |
|
template<BranchType B> |
EDGetToken | mayConsume (const TypeToGet &id, edm::InputTag const &tag) |
|
template<typename ProductType , BranchType B = InEvent> |
EDGetTokenT< ProductType > | mayConsume (edm::InputTag const &tag) |
|
Definition at line 31 of file MuonTestSummary.h.
◆ MuonTestSummary()
Constructor.
Definition at line 25 of file MuonTestSummary.cc.
References muonTestSummary_cfi::chi2Fraction, muonTestSummary_cfi::chi2Spread, muonTestSummary_cfi::etaExpected, muonTestSummary_cfi::expMultiplicityGlb_max, muonTestSummary_cfi::expMultiplicityGlb_min, muonTestSummary_cfi::expMultiplicitySta_max, muonTestSummary_cfi::expMultiplicitySta_min, muonTestSummary_cfi::expMultiplicityTk_max, muonTestSummary_cfi::expMultiplicityTk_min, muonTestSummary_cfi::expPeakEcalS9_max, muonTestSummary_cfi::expPeakEcalS9_min, muonTestSummary_cfi::expPeakHadS9_max, muonTestSummary_cfi::expPeakHadS9_min, edm::ParameterSet::getParameter(), muonTestSummary_cfi::matchesFractionCsc_max, muonTestSummary_cfi::matchesFractionCsc_min, muonTestSummary_cfi::matchesFractionDt_max, muonTestSummary_cfi::matchesFractionDt_min, muonTestSummary_cfi::numMatchedExpected_max, muonTestSummary_cfi::numMatchedExpected_min, muonTestSummary_cfi::phiExpected, muonTestSummary_cfi::pullEtaSpread, muonTestSummary_cfi::pullOneOvPSpread, muonTestSummary_cfi::pullPhiSpread, muonTestSummary_cfi::resChargeLimit_glbSta, muonTestSummary_cfi::resChargeLimit_tkGlb, muonTestSummary_cfi::resChargeLimit_tkSta, muonTestSummary_cfi::resEtaSpread_glbSta, muonTestSummary_cfi::resEtaSpread_tkGlb, muonTestSummary_cfi::resOneOvPSpread_glbSta, muonTestSummary_cfi::resOneOvPSpread_tkGlb, muonTestSummary_cfi::resPhiSpread_glbSta, muonTestSummary_cfi::resPhiSpread_tkGlb, muonTestSummary_cfi::resSegmTrack_mean_max, muonTestSummary_cfi::resSegmTrack_mean_min, muonTestSummary_cfi::resSegmTrack_rms_max, and muonTestSummary_cfi::resSegmTrack_rms_min.
◆ ~MuonTestSummary()
MuonTestSummary::~MuonTestSummary |
( |
| ) |
|
|
override |
◆ doEnergyTests()
void MuonTestSummary::doEnergyTests |
( |
DQMStore::IGetter & |
, |
|
|
std::string |
nameHisto, |
|
|
std::string |
muonType, |
|
|
int |
bin |
|
) |
| |
|
protected |
Definition at line 1003 of file MuonTestSummary.cc.
1005 string path =
"Muons/MuonEnergyDepositAnalyzer/" + histname + muonType;
1007 Double_t hPeak = -1, hFWHM = -1;
1009 TH1F *energyHisto_root = energyHisto->
getTH1F();
1012 Double_t fitRange[2];
1013 Double_t startValues[4], parlimitslo[4], parlimitshi[4], fitPar[4], fitParErr[4];
1016 if (histname ==
"ecalS9PointingMuDepositedEnergy_") {
1020 startValues[0] = 0.036;
1021 startValues[1] = 0.193;
1022 startValues[2] = 110.0;
1023 startValues[3] = 0.06;
1024 parlimitslo[0] = 0.0;
1025 parlimitslo[1] = 0.;
1026 parlimitslo[2] = 1.0;
1027 parlimitslo[3] = 0.;
1028 parlimitshi[0] = 0.05;
1029 parlimitshi[1] = 0.5;
1030 parlimitshi[2] = 80000.0;
1031 parlimitshi[3] = 0.1;
1035 TF1 *
fit = langaufit(
1036 energyHisto_root, fitRange, startValues, parlimitslo, parlimitshi, fitPar, fitParErr, &chisqr, &ndf);
1038 langaupro(fitPar, hPeak, hFWHM);
1039 LogTrace(
metname) <<
"hPeak from langau fit: " << hPeak <<
" for: " << histname + muonType << endl;
1040 LogTrace(
metname) <<
"hFWHM from langau fit: " << hFWHM <<
" for: " << histname + muonType << endl;
1044 if (histname ==
"hadS9PointingMuDepositedEnergy_") {
1048 startValues[0] = 2.0;
1049 startValues[1] = 2.4;
1050 startValues[2] = 110.0;
1051 startValues[3] = 4.0;
1052 parlimitslo[0] = 0.0;
1053 parlimitslo[1] = 0.;
1054 parlimitslo[2] = 1.0;
1055 parlimitslo[3] = 0.;
1056 parlimitshi[0] = 4.0;
1057 parlimitshi[1] = 4.0;
1058 parlimitshi[2] = 80000.0;
1059 parlimitshi[3] = 8.0;
1063 TF1 *
fit = langaufit(
1064 energyHisto_root, fitRange, startValues, parlimitslo, parlimitshi, fitPar, fitParErr, &chisqr, &ndf);
1066 langaupro(fitPar, hPeak, hFWHM);
1067 LogTrace(
metname) <<
"hPeak from langau fit: " << hPeak <<
" for: " << histname + muonType << endl;
1068 LogTrace(
metname) <<
"hFWHM from langau fit: " << hFWHM <<
" for: " << histname + muonType << endl;
1072 LogTrace(
metname) <<
"[MuonTestSummary]: Test of Energy for " << histname + muonType
1073 <<
" not performed because # entries < 20 ";
1079 if (histname ==
"ecalS9PointingMuDepositedEnergy_" && (hPeak != -1) &&
1085 if (histname ==
"hadS9PointingMuDepositedEnergy_" && (hPeak != -1) &&
References plotT0FromHistos::binNumber(), muonTestSummary_cfi::expPeakEcalS9_max, muonTestSummary_cfi::expPeakEcalS9_min, muonTestSummary_cfi::expPeakHadS9_max, muonTestSummary_cfi::expPeakHadS9_min, dqm::implementation::IGetter::get(), dqm::impl::MonitorElement::getEntries(), dqm::legacy::MonitorElement::getTH1F(), LogTrace, metname, and castor_dqm_sourceclient_file_cfg::path.
◆ doKinematicsTests()
test operations
Definition at line 448 of file MuonTestSummary.cc.
450 string path =
"Muons/MuonRecoAnalyzer/" + muonType +
"chi2OverDf";
454 TH1F *chi2Histo_root = chi2Histo->
getTH1F();
455 if (chi2Histo_root->GetEntries() > 20) {
457 LogTrace(
metname) <<
"chi2 kin test based on fraction for " << muonType << endl;
458 int maxBin = chi2Histo_root->GetMaximumBin();
459 if (chi2Histo_root->Integral(
maxBin + 1, chi2Histo_root->GetNbinsX()) != 0) {
461 double(chi2Histo_root->Integral(
maxBin + 1, chi2Histo_root->GetNbinsX()));
470 LogTrace(
metname) <<
"[MuonTestSummary]: Test of Chi2 Kin not performed for " << muonType
471 <<
" because # entries < 20 ";
476 path =
"Muons/MuonRecoAnalyzer/" + muonType +
"eta";
480 TH1F *etaHisto_root = etaHisto->
getTH1F();
481 if (etaHisto_root->GetEntries() > 20) {
483 LogTrace(
metname) <<
"eta kin test based on fraction for " << muonType << endl;
485 (etaHisto_root->GetXaxis()->GetXmax() - etaHisto_root->GetXaxis()->GetXmin()) / etaHisto_root->GetNbinsX();
486 int binZero =
int((0 - etaHisto_root->GetXaxis()->GetXmin()) / binSize);
487 if (etaHisto_root->Integral(1, binZero - 1) != 0 &&
488 etaHisto_root->Integral(binZero, etaHisto_root->GetNbinsX()) != 0) {
489 double symmetryFactor = double(etaHisto_root->Integral(1, binZero - 1)) /
490 double(etaHisto_root->Integral(binZero, etaHisto_root->GetNbinsX()));
491 double errSymmetryFactor =
492 symmetryFactor *
sqrt(1.0 /
double(etaHisto_root->Integral(1, binZero - 1)) +
493 1.0 /
double(etaHisto_root->Integral(binZero, etaHisto_root->GetNbinsX())));
494 LogTrace(
metname) <<
"eta symmetryFactor for " << muonType <<
" : " << symmetryFactor
496 LogTrace(
metname) <<
"eta errSymmetryFactor for " << muonType <<
" : " << errSymmetryFactor << endl;
499 tParameter = double(symmetryFactor -
etaExpected) / errSymmetryFactor;
501 tParameter = double(-symmetryFactor +
etaExpected) / errSymmetryFactor;
502 LogTrace(
metname) <<
"eta tParameter for " << muonType <<
" : " << tParameter <<
" (expected < 1.95)" << endl;
503 if (tParameter < 1.95)
510 LogTrace(
metname) <<
"[MuonTestSummary]: Test of Eta Kin not performed for " << muonType
511 <<
" because # entries < 20 ";
516 path =
"Muons/MuonRecoAnalyzer/" + muonType +
"phi";
520 TH1F *phiHisto_root = phiHisto->
getTH1F();
521 if (phiHisto_root->GetEntries() > 20) {
523 LogTrace(
metname) <<
"phi kin test based on fraction for " << muonType << endl;
525 (phiHisto_root->GetXaxis()->GetXmax() - phiHisto_root->GetXaxis()->GetXmin()) / phiHisto_root->GetNbinsX();
526 int binZero =
int((0 - phiHisto_root->GetXaxis()->GetXmin()) / binSize);
527 if (phiHisto_root->Integral(binZero + 1, phiHisto_root->GetNbinsX()) != 0 &&
528 phiHisto_root->Integral(1, binZero) != 0) {
529 double symmetryFactor = double(phiHisto_root->Integral(binZero + 1, phiHisto_root->GetNbinsX())) /
530 double(phiHisto_root->Integral(1, binZero));
531 double errSymmetryFactor =
532 symmetryFactor *
sqrt(1.0 /
double(phiHisto_root->Integral(binZero + 1, phiHisto_root->GetNbinsX())) +
533 1.0 / double(phiHisto_root->Integral(1, binZero)));
534 LogTrace(
metname) <<
"phi symmetryFactor for " << muonType <<
" : " << symmetryFactor
535 <<
"(phi expected :" <<
phiExpected <<
")" << endl;
536 LogTrace(
metname) <<
"phi errSymmetryFactor for " << muonType <<
" : " << errSymmetryFactor << endl;
539 tParameter = double(symmetryFactor -
phiExpected) / errSymmetryFactor;
541 tParameter = double(-symmetryFactor +
phiExpected) / errSymmetryFactor;
542 LogTrace(
metname) <<
"phi tParameter for " << muonType <<
" : " << tParameter <<
" (expected < 1.95)" << endl;
543 if (tParameter < 1.95)
550 LogTrace(
metname) <<
"[MuonTestSummary]: Test of Phi Kin not performed for " << muonType
551 <<
" because # entries < 20 ";
References newFWLiteAna::bin, muonTestSummary_cfi::chi2Fraction, muonTestSummary_cfi::chi2Spread, muonTestSummary_cfi::etaExpected, HLT_FULL_cff::fraction, dqm::implementation::IGetter::get(), dqm::legacy::MonitorElement::getTH1F(), createfilelist::int, LogTrace, cms::cuda::allocator::maxBin, metname, castor_dqm_sourceclient_file_cfg::path, muonTestSummary_cfi::phiExpected, and mathSSE::sqrt().
◆ doMultiplicityTests()
Definition at line 1091 of file MuonTestSummary.cc.
1092 MonitorElement *multiplicityHisto = igetter.
get(
"Muons/MuonRecoAnalyzer/muReco");
1094 if (multiplicityHisto) {
1098 LogTrace(
metname) <<
"multiplicity_GLB: " << multiplicity_GLB <<
" ExpMultiplicityGlb_min "
1106 LogTrace(
metname) <<
"multiplicity_STA: " << multiplicity_STA <<
" ExpMultiplicitySta_min "
1124 LogTrace(
metname) <<
"[MuonTestSummary]: Test of Multiplicity not performed because # entries < 20 ";
References muonTestSummary_cfi::expMultiplicityGlb_max, muonTestSummary_cfi::expMultiplicityGlb_min, muonTestSummary_cfi::expMultiplicitySta_max, muonTestSummary_cfi::expMultiplicitySta_min, muonTestSummary_cfi::expMultiplicityTk_max, muonTestSummary_cfi::expMultiplicityTk_min, dqm::implementation::IGetter::get(), dqm::impl::MonitorElement::getBinContent(), dqm::impl::MonitorElement::getEntries(), LogTrace, and metname.
◆ doMuonIDTests()
Definition at line 729 of file MuonTestSummary.cc.
730 vector<string> muType;
731 muType.push_back(
"GlobalMuons");
732 muType.push_back(
"TrackerMuons");
734 for (
int i = 0;
i <= 1;
i++) {
736 string path =
"Muons/MuonIdDQM/" + muType[
i] +
"/hNumMatches";
740 TH1F *matchesHisto_root = matchesHisto->
getTH1F();
749 double numOneSegm_dt = 0;
750 int numHistos_dt = 0;
751 int numHistos_csc = 0;
752 MonitorElement *DT1Histo = igetter.
get(
"Muons/MuonIdDQM/" + muType[
i] +
"/hDT1NumSegments");
758 MonitorElement *DT2Histo = igetter.
get(
"Muons/MuonIdDQM/" + muType[
i] +
"/hDT2NumSegments");
764 MonitorElement *DT3Histo = igetter.
get(
"Muons/MuonIdDQM/" + muType[
i] +
"/hDT3NumSegments");
770 MonitorElement *DT4Histo = igetter.
get(
"Muons/MuonIdDQM/" + muType[
i] +
"/hDT4NumSegments");
776 double fraction_dt = 0;
777 if (numOneSegm_dt != 0) {
778 fraction_dt = numOneSegm_dt / double(numHistos_dt);
779 LogTrace(
metname) <<
"fraction_dt: " << fraction_dt <<
" for " << muType[
i] << endl;
782 double numOneSegm_csc = 0;
783 MonitorElement *CSC1Histo = igetter.
get(
"Muons/MuonIdDQM/" + muType[
i] +
"/hCSC1NumSegments");
789 MonitorElement *CSC2Histo = igetter.
get(
"Muons/MuonIdDQM/" + muType[
i] +
"/hCSC2NumSegments");
795 MonitorElement *CSC3Histo = igetter.
get(
"Muons/MuonIdDQM/" + muType[
i] +
"/hCSC3NumSegments");
801 MonitorElement *CSC4Histo = igetter.
get(
"Muons/MuonIdDQM/" + muType[
i] +
"/hCSC4NumSegments");
807 double fraction_csc = 0;
808 if (numOneSegm_csc != 0) {
809 fraction_csc = numOneSegm_csc / double(numHistos_csc);
810 LogTrace(
metname) <<
"fraction_csc: " << fraction_csc <<
" for " << muType[
i] << endl;
828 vector<string> DTXresHistos, DTYresHistos, CSCXresHistos, CSCYresHistos;
829 DTXresHistos.push_back(
"hDT1Pullx");
830 DTXresHistos.push_back(
"hDT2Pullx");
831 DTXresHistos.push_back(
"hDT3Pullx");
832 DTXresHistos.push_back(
"hDT4Pullx");
834 DTYresHistos.push_back(
"hDT1Pully");
835 DTYresHistos.push_back(
"hDT2Pully");
836 DTYresHistos.push_back(
"hDT3Pully");
838 CSCXresHistos.push_back(
"hCSC1Pullx");
839 CSCXresHistos.push_back(
"hCSC2Pullx");
840 CSCXresHistos.push_back(
"hCSC3Pullx");
841 CSCXresHistos.push_back(
"hCSC4Pullx");
843 CSCYresHistos.push_back(
"hCSC1Pully");
844 CSCYresHistos.push_back(
"hCSC2Pully");
845 CSCYresHistos.push_back(
"hCSC3Pully");
846 CSCYresHistos.push_back(
"hCSC4Pully");
848 int numPlot_dtX, numPlot_dtY, numPlot_cscX, numPlot_cscY;
849 double dtSigmaX, dtSigmaY, cscSigmaX, cscSigmaY;
850 double dtSigmaX_err, dtSigmaY_err, cscSigmaX_err, cscSigmaY_err;
851 double dtMeanX, dtMeanY, cscMeanX, cscMeanY;
852 double dtMeanX_err, dtMeanY_err, cscMeanX_err, cscMeanY_err;
854 igetter, muType[
i], DTXresHistos, numPlot_dtX, dtMeanX, dtMeanX_err, dtSigmaX, dtSigmaX_err);
856 igetter, muType[
i], DTYresHistos, numPlot_dtY, dtMeanY, dtMeanY_err, dtSigmaY, dtSigmaY_err);
858 igetter, muType[
i], CSCXresHistos, numPlot_cscX, cscMeanX, cscMeanX_err, cscSigmaX, cscSigmaX_err);
860 igetter, muType[
i], CSCYresHistos, numPlot_cscY, cscMeanY, cscMeanY_err, cscSigmaY, cscSigmaY_err);
865 LogTrace(
metname) <<
"DT X residual " << muType[
i] <<
" mean: " << dtMeanX <<
" +- " << dtMeanX_err
866 <<
", sigma: " << dtSigmaX <<
" +- " << dtSigmaX_err << endl;
867 LogTrace(
metname) <<
"DT Y residual " << muType[
i] <<
" mean: " << dtMeanY <<
" +- " << dtMeanY_err
868 <<
", sigma: " << dtSigmaY <<
" +- " << dtSigmaY_err << endl;
869 LogTrace(
metname) <<
"CSC X residual " << muType[
i] <<
" mean: " << cscMeanX <<
" +- " << cscMeanX_err
870 <<
", sigma: " << cscSigmaX <<
" +- " << cscSigmaX_err << endl;
871 LogTrace(
metname) <<
"CSC Y residual " << muType[
i] <<
" mean: " << cscMeanY <<
" +- " << cscMeanY_err
872 <<
", sigma: " << cscSigmaY <<
" +- " << cscSigmaY_err << endl;
876 if (numPlot_dtX > 0) {
888 if (numPlot_dtY > 0) {
901 if (numPlot_cscX > 0) {
914 if (numPlot_cscY > 0) {
References dqm::implementation::IGetter::get(), dqm::impl::MonitorElement::getBinContent(), dqm::impl::MonitorElement::getEntries(), dqm::legacy::MonitorElement::getTH1F(), mps_fire::i, LogTrace, muonTestSummary_cfi::matchesFractionCsc_max, muonTestSummary_cfi::matchesFractionCsc_min, muonTestSummary_cfi::matchesFractionDt_max, muonTestSummary_cfi::matchesFractionDt_min, metname, muonTestSummary_cfi::numMatchedExpected_max, muonTestSummary_cfi::numMatchedExpected_min, castor_dqm_sourceclient_file_cfg::path, ResidualCheck(), muonTestSummary_cfi::resSegmTrack_mean_max, muonTestSummary_cfi::resSegmTrack_mean_min, muonTestSummary_cfi::resSegmTrack_rms_max, and muonTestSummary_cfi::resSegmTrack_rms_min.
◆ doResidualsTests()
void MuonTestSummary::doResidualsTests |
( |
DQMStore::IGetter & |
, |
|
|
std::string |
, |
|
|
std::string |
, |
|
|
int |
|
|
) |
| |
|
protected |
Definition at line 594 of file MuonTestSummary.cc.
596 if (
type !=
"GlbMuon") {
603 float sigma_err = -1;
605 if (residualsHisto) {
616 if (sigma != -1 &&
parameter ==
"eta" && (
type ==
"GlbSta" ||
type ==
"TkSta")) {
628 if (sigma != -1 &&
parameter ==
"phi" && (
type ==
"GlbSta" ||
type ==
"TkSta")) {
634 if (sigma != -1 &&
parameter ==
"oneOverp" &&
type ==
"TkGlb") {
640 if (sigma != -1 &&
parameter ==
"oneOverp" && (
type ==
"GlbSta" ||
type ==
"TkSta")) {
649 if (
type ==
"TkSta") {
671 if (sigma != -1 &&
parameter ==
"oneOverp") {
687 if (residualsHisto) {
References newFWLiteAna::bin, dqm::implementation::IGetter::get(), dqm::impl::MonitorElement::getBinContent(), LogTrace, SiStripPI::mean, metname, pfMETsysShiftCorrections_cfi::parameter, castor_dqm_sourceclient_file_cfg::path, muonTestSummary_cfi::pullEtaSpread, muonTestSummary_cfi::pullOneOvPSpread, muonTestSummary_cfi::pullPhiSpread, muonTestSummary_cfi::resChargeLimit_glbSta, muonTestSummary_cfi::resChargeLimit_tkGlb, muonTestSummary_cfi::resChargeLimit_tkSta, muonTestSummary_cfi::resEtaSpread_glbSta, muonTestSummary_cfi::resEtaSpread_tkGlb, muonTestSummary_cfi::resOneOvPSpread_glbSta, muonTestSummary_cfi::resOneOvPSpread_tkGlb, muonTestSummary_cfi::resPhiSpread_glbSta, and muonTestSummary_cfi::resPhiSpread_tkGlb.
◆ dqmEndJob()
DO OTHER OPERATIONS WITH HISTOGRAMS
Implements DQMEDHarvester.
Definition at line 67 of file MuonTestSummary.cc.
184 ibooker.
book2D(
"CertificationSummaryMap",
"Muon Certification Summary Map", 9, 1, 10, 7, 1, 8);
284 doEnergyTests(igetter,
"ecalS9PointingMuDepositedEnergy_",
"Glb_muons", 1);
285 doEnergyTests(igetter,
"hadS9PointingMuDepositedEnergy_",
"Glb_muons", 1);
286 doEnergyTests(igetter,
"hoS9PointingMuDepositedEnergy_",
"Glb_muons", 1);
287 doEnergyTests(igetter,
"ecalS9PointingMuDepositedEnergy_",
"Tk_muons", 2);
288 doEnergyTests(igetter,
"hadS9PointingMuDepositedEnergy_",
"Tk_muons", 2);
289 doEnergyTests(igetter,
"hoS9PointingMuDepositedEnergy_",
"Tk_muons", 2);
290 doEnergyTests(igetter,
"ecalS9PointingMuDepositedEnergy_",
"Sta_muons", 3);
291 doEnergyTests(igetter,
"hadS9PointingMuDepositedEnergy_",
"Sta_muons", 3);
292 doEnergyTests(igetter,
"hoS9PointingMuDepositedEnergy_",
"Sta_muons", 3);
300 double residualsSummary = 0;
309 residualsSummary = 0;
310 for (
int i = 1;
i <= 1;
i++)
316 residualsSummary = 0;
317 for (
int i = 2;
i <= 2;
i++)
327 for (
int i = 1;
i <= 2;
i++)
328 for (
int j = 1;
j <= 5;
j++) {
329 if (
j == 3 ||
j == 5)
337 for (
int i = 3;
i <= 4;
i++)
338 for (
int j = 1;
j <= 5;
j++) {
339 if (
j == 3 ||
j == 5)
367 double GLB = (kinematics_GLB + muonId_GLB + residuals_GLB) / 3.0;
378 double TK = double(kinematics_TK + muonId_TK + residuals_TK) / 3.0;
387 double STA = double(kinematics_STA + residuals_STA) / 2.0;
401 float muonIDsummary = 0;
References dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::book2D(), dqm::implementation::IBooker::bookFloat(), dqm::implementation::NavigatorBase::cd(), dqm::impl::MonitorElement::Fill(), mps_fire::i, dqmiolumiharvest::j, dqm::impl::MonitorElement::setAxisTitle(), dqm::implementation::NavigatorBase::setCurrentFolder(), photonAnalyzer_cfi::xBin, and photonAnalyzer_cfi::yBin.
◆ GaussFit()
void MuonTestSummary::GaussFit |
( |
std::string |
type, |
|
|
std::string |
parameter, |
|
|
MonitorElement * |
Histo, |
|
|
float & |
mean, |
|
|
float & |
mean_err, |
|
|
float & |
sigma, |
|
|
float & |
sigma_err |
|
) |
| |
|
protected |
Definition at line 556 of file MuonTestSummary.cc.
559 float statMean = Histo->
getMean(1);
560 float statSigma = Histo->
getRMS(1);
561 TH1F *histo_root = Histo->
getTH1F();
562 if (histo_root->GetEntries() > 20) {
563 TF1 *gfit =
new TF1(
"Gaussian",
"gaus", (statMean - (2 * statSigma)), (statMean + (2 * statSigma)));
565 histo_root->Fit(gfit,
"Q0");
575 mean = gfit->GetParameter(1);
576 mean_err = gfit->GetParErrors()[2];
577 sigma = gfit->GetParameter(2);
578 sigma_err = gfit->GetParErrors()[2];
586 <<
" not performed because # entries < 20 ";
References dqm::impl::MonitorElement::getMean(), dqm::impl::MonitorElement::getRMS(), dqm::legacy::MonitorElement::getTH1F(), LogTrace, SiStripPI::mean, metname, and pfMETsysShiftCorrections_cfi::parameter.
◆ ResidualCheck()
void MuonTestSummary::ResidualCheck |
( |
DQMStore::IGetter & |
igetter, |
|
|
std::string |
muType, |
|
|
const std::vector< std::string > & |
resHistos, |
|
|
int & |
numPlot, |
|
|
double & |
Mean, |
|
|
double & |
Mean_err, |
|
|
double & |
Sigma, |
|
|
double & |
Sigma_err |
|
) |
| |
|
protected |
Definition at line 932 of file MuonTestSummary.cc.
949 TH1F *resHisto_root = resHisto->
getTH1F();
950 if (resHisto_root->GetEntries() < 20) {
952 <<
" not performed because # entries < 20 ";
960 float mean = resHisto_root->GetBinLowEdge(resHisto_root->GetMaximumBin());
961 TF1 *gfit =
new TF1(
"Gaussian",
"gaus",
mean - 3,
mean + 3);
964 resHisto_root->Fit(gfit,
"Q0");
970 double mean = gfit->GetParameter(1);
971 double mean_err = gfit->GetParError(1);
972 double sigma = gfit->GetParameter(2);
973 double sigma_err = gfit->GetParError(2);
975 LogTrace(
metname) <<
"sigmaRes: " << sigma <<
" +- " << sigma_err <<
" for " << resHistos[
name] << endl;
978 Mean_err += mean_err * mean_err;
980 Sigma_err += sigma_err * sigma_err;
993 Mean_err =
sqrt(Mean_err);
997 Sigma_err =
sqrt(Sigma_err);
998 Sigma_err /= numPlot;
References dqm::implementation::IGetter::get(), dqm::legacy::MonitorElement::getTH1F(), LogTrace, Mean, SiStripPI::mean, metname, Skims_PA_cff::name, mathSSE::sqrt(), and parallelization::uint.
Referenced by doMuonIDTests().
◆ chi2Fraction
double MuonTestSummary::chi2Fraction |
|
private |
◆ chi2Spread
double MuonTestSummary::chi2Spread |
|
private |
◆ chi2TestSummaryMap
◆ energySummaryMap
◆ etaExpected
double MuonTestSummary::etaExpected |
|
private |
◆ expMultiplicityGlb_max
double MuonTestSummary::expMultiplicityGlb_max |
|
private |
◆ expMultiplicityGlb_min
double MuonTestSummary::expMultiplicityGlb_min |
|
private |
◆ expMultiplicitySta_max
double MuonTestSummary::expMultiplicitySta_max |
|
private |
◆ expMultiplicitySta_min
double MuonTestSummary::expMultiplicitySta_min |
|
private |
◆ expMultiplicityTk_max
double MuonTestSummary::expMultiplicityTk_max |
|
private |
◆ expMultiplicityTk_min
double MuonTestSummary::expMultiplicityTk_min |
|
private |
◆ expPeakEcalS9_max
double MuonTestSummary::expPeakEcalS9_max |
|
private |
◆ expPeakEcalS9_min
double MuonTestSummary::expPeakEcalS9_min |
|
private |
◆ expPeakHadS9_max
double MuonTestSummary::expPeakHadS9_max |
|
private |
◆ expPeakHadS9_min
double MuonTestSummary::expPeakHadS9_min |
|
private |
◆ kinematicsSummaryMap
◆ KolmogorovTestSummaryMap
◆ matchesFractionCsc_max
double MuonTestSummary::matchesFractionCsc_max |
|
private |
◆ matchesFractionCsc_min
double MuonTestSummary::matchesFractionCsc_min |
|
private |
◆ matchesFractionDt_max
double MuonTestSummary::matchesFractionDt_max |
|
private |
◆ matchesFractionDt_min
double MuonTestSummary::matchesFractionDt_min |
|
private |
◆ metname
std::string MuonTestSummary::metname |
|
private |
◆ multiplicitySummaryMap
◆ muonIdSummaryMap
◆ numMatchedExpected_max
double MuonTestSummary::numMatchedExpected_max |
|
private |
◆ numMatchedExpected_min
double MuonTestSummary::numMatchedExpected_min |
|
private |
◆ phiExpected
double MuonTestSummary::phiExpected |
|
private |
◆ pullEtaSpread
double MuonTestSummary::pullEtaSpread |
|
private |
◆ pullOneOvPSpread
double MuonTestSummary::pullOneOvPSpread |
|
private |
◆ pullPhiSpread
double MuonTestSummary::pullPhiSpread |
|
private |
◆ resChargeLimit_glbSta
double MuonTestSummary::resChargeLimit_glbSta |
|
private |
◆ resChargeLimit_tkGlb
double MuonTestSummary::resChargeLimit_tkGlb |
|
private |
◆ resChargeLimit_tkSta
double MuonTestSummary::resChargeLimit_tkSta |
|
private |
◆ resEtaSpread_glbSta
double MuonTestSummary::resEtaSpread_glbSta |
|
private |
◆ resEtaSpread_tkGlb
double MuonTestSummary::resEtaSpread_tkGlb |
|
private |
◆ residualsSummaryMap
◆ resOneOvPSpread_glbSta
double MuonTestSummary::resOneOvPSpread_glbSta |
|
private |
◆ resOneOvPSpread_tkGlb
double MuonTestSummary::resOneOvPSpread_tkGlb |
|
private |
◆ resPhiSpread_glbSta
double MuonTestSummary::resPhiSpread_glbSta |
|
private |
◆ resPhiSpread_tkGlb
double MuonTestSummary::resPhiSpread_tkGlb |
|
private |
◆ resSegmTrack_mean_max
double MuonTestSummary::resSegmTrack_mean_max |
|
private |
◆ resSegmTrack_mean_min
double MuonTestSummary::resSegmTrack_mean_min |
|
private |
◆ resSegmTrack_rms_max
double MuonTestSummary::resSegmTrack_rms_max |
|
private |
◆ resSegmTrack_rms_min
double MuonTestSummary::resSegmTrack_rms_min |
|
private |
◆ sigmaResSegmTrackExp
double MuonTestSummary::sigmaResSegmTrackExp |
|
private |
◆ summaryCertification
◆ summaryCertificationMap
◆ summaryReport
◆ summaryReportMap
◆ theCertificationContents
std::vector<MonitorElement *> MuonTestSummary::theCertificationContents |
|
private |
◆ theSummaryContents
double resSegmTrack_mean_min
MonitorElement * bookFloat(TString const &name, FUNC onbooking=NOOP())
MonitorElement * multiplicitySummaryMap
double resPhiSpread_glbSta
virtual void setCurrentFolder(std::string const &fullpath)
MonitorElement * muonIdSummaryMap
MonitorElement * summaryReportMap
double matchesFractionCsc_max
virtual TH1F * getTH1F() const
double resEtaSpread_glbSta
double expMultiplicityTk_max
MonitorElement * summaryReport
double resChargeLimit_tkSta
double expMultiplicitySta_max
MonitorElement * summaryCertification
double expMultiplicityTk_min
void doMultiplicityTests(DQMStore::IGetter &)
virtual double getRMS(int axis=1) const
get RMS of histogram along x, y or z axis (axis=1, 2, 3 respectively)
void doMuonIDTests(DQMStore::IGetter &)
std::vector< MonitorElement * > theSummaryContents
virtual double getEntries() const
get # of entries
double numMatchedExpected_min
double resOneOvPSpread_glbSta
double resSegmTrack_rms_max
MonitorElement * residualsSummaryMap
virtual int getNbinsY() const
get # of bins in Y-axis
double matchesFractionCsc_min
double resPhiSpread_tkGlb
def binNumber(station, sl)
void doEnergyTests(DQMStore::IGetter &, std::string nameHisto, std::string muonType, int bin)
constexpr unsigned int maxBin
MonitorElement * summaryCertificationMap
double resChargeLimit_tkGlb
double resChargeLimit_glbSta
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
Log< level::Error, false > LogError
std::vector< MonitorElement * > theCertificationContents
double expMultiplicityGlb_min
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
void GaussFit(std::string type, std::string parameter, MonitorElement *Histo, float &mean, float &mean_err, float &sigma, float &sigma_err)
double resOneOvPSpread_tkGlb
double numMatchedExpected_max
void doResidualsTests(DQMStore::IGetter &, std::string, std::string, int)
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
virtual int getNbinsX() const
get # of bins in X-axis
double resSegmTrack_rms_min
double matchesFractionDt_max
virtual MonitorElement * get(std::string const &fullpath) const
double expMultiplicitySta_min
virtual double getMean(int axis=1) const
get mean value of histogram along x, y or z axis (axis=1, 2, 3 respectively)
T getParameter(std::string const &) const
MonitorElement * chi2TestSummaryMap
MonitorElement * energySummaryMap
double resEtaSpread_tkGlb
double expMultiplicityGlb_max
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
virtual double getBinContent(int binx) const
get content of bin (1-D)
void doKinematicsTests(DQMStore::IGetter &, std::string, int)
test operations
void ResidualCheck(DQMStore::IGetter &, std::string muType, const std::vector< std::string > &resHistos, int &numPlot, double &Mean, double &Mean_err, double &Sigma, double &Sigma_err)
MonitorElement * kinematicsSummaryMap
double resSegmTrack_mean_max
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
double matchesFractionDt_min