File indexing completed on 2024-04-06 12:32:47
0001 #include "Validation/MuonCSCDigis/plugins/CSCDigiValidation.h"
0002 #include "FWCore/ServiceRegistry/interface/Service.h"
0003 #include "Validation/MuonCSCDigis/interface/CSCALCTDigiValidation.h"
0004 #include "Validation/MuonCSCDigis/interface/CSCCLCTDigiValidation.h"
0005 #include "Validation/MuonCSCDigis/interface/CSCCLCTPreTriggerDigiValidation.h"
0006 #include "Validation/MuonCSCDigis/interface/CSCCorrelatedLCTDigiValidation.h"
0007 #include "Validation/MuonCSCDigis/interface/CSCComparatorDigiValidation.h"
0008 #include "Validation/MuonCSCDigis/interface/CSCStripDigiValidation.h"
0009 #include "Validation/MuonCSCDigis/interface/CSCWireDigiValidation.h"
0010 #include "Validation/MuonCSCDigis/interface/CSCStubEfficiencyValidation.h"
0011 #include "Validation/MuonCSCDigis/interface/CSCStubResolutionValidation.h"
0012 #include <iostream>
0013 #include <memory>
0014
0015 CSCDigiValidation::CSCDigiValidation(const edm::ParameterSet &ps)
0016 : doSim_(ps.getParameter<bool>("doSim")), theSimHitMap(nullptr), theCSCGeometry(nullptr) {
0017
0018 theStripDigiValidation = std::make_unique<CSCStripDigiValidation>(ps, consumesCollector());
0019 theWireDigiValidation = std::make_unique<CSCWireDigiValidation>(ps, consumesCollector());
0020 theComparatorDigiValidation = std::make_unique<CSCComparatorDigiValidation>(ps, consumesCollector());
0021 theALCTDigiValidation = std::make_unique<CSCALCTDigiValidation>(ps, consumesCollector());
0022 theCLCTDigiValidation = std::make_unique<CSCCLCTDigiValidation>(ps, consumesCollector());
0023 theCLCTPreTriggerDigiValidation = std::make_unique<CSCCLCTPreTriggerDigiValidation>(ps, consumesCollector());
0024 theCorrelatedLCTDigiValidation = std::make_unique<CSCCorrelatedLCTDigiValidation>(ps, consumesCollector());
0025
0026 if (doSim_) {
0027 theSimHitMap = new PSimHitMap(ps.getParameter<edm::InputTag>("simHitsTag"), consumesCollector());
0028 theStripDigiValidation->setSimHitMap(theSimHitMap);
0029 theWireDigiValidation->setSimHitMap(theSimHitMap);
0030 theComparatorDigiValidation->setSimHitMap(theSimHitMap);
0031 theStubEfficiencyValidation = std::make_unique<CSCStubEfficiencyValidation>(ps, consumesCollector());
0032 theStubResolutionValidation = std::make_unique<CSCStubResolutionValidation>(ps, consumesCollector());
0033 }
0034 geomToken_ = esConsumes<CSCGeometry, MuonGeometryRecord>();
0035 }
0036
0037 CSCDigiValidation::~CSCDigiValidation() {}
0038
0039 void CSCDigiValidation::bookHistograms(DQMStore::IBooker &iBooker,
0040 edm::Run const &iRun,
0041 edm::EventSetup const & ) {
0042
0043 theStripDigiValidation->bookHistograms(iBooker);
0044 theWireDigiValidation->bookHistograms(iBooker);
0045 theComparatorDigiValidation->bookHistograms(iBooker);
0046 theALCTDigiValidation->bookHistograms(iBooker);
0047 theCLCTDigiValidation->bookHistograms(iBooker);
0048 theCLCTPreTriggerDigiValidation->bookHistograms(iBooker);
0049 theCorrelatedLCTDigiValidation->bookHistograms(iBooker);
0050 if (doSim_) {
0051
0052 theStubEfficiencyValidation->bookHistograms(iBooker);
0053 theStubResolutionValidation->bookHistograms(iBooker);
0054 }
0055 }
0056
0057 void CSCDigiValidation::analyze(const edm::Event &e, const edm::EventSetup &eventSetup) {
0058
0059 const CSCGeometry *pGeom = &eventSetup.getData(geomToken_);
0060
0061 theStripDigiValidation->setGeometry(pGeom);
0062 theWireDigiValidation->setGeometry(pGeom);
0063 theComparatorDigiValidation->setGeometry(pGeom);
0064 theALCTDigiValidation->setGeometry(pGeom);
0065 theCLCTDigiValidation->setGeometry(pGeom);
0066 theCLCTPreTriggerDigiValidation->setGeometry(pGeom);
0067 theCorrelatedLCTDigiValidation->setGeometry(pGeom);
0068 if (doSim_) {
0069 theSimHitMap->fill(e);
0070 theStubEfficiencyValidation->setGeometry(pGeom);
0071 theStubResolutionValidation->setGeometry(pGeom);
0072 }
0073
0074 theStripDigiValidation->analyze(e, eventSetup);
0075 theWireDigiValidation->analyze(e, eventSetup);
0076 theComparatorDigiValidation->analyze(e, eventSetup);
0077 theALCTDigiValidation->analyze(e, eventSetup);
0078 theCLCTDigiValidation->analyze(e, eventSetup);
0079 theCLCTPreTriggerDigiValidation->analyze(e, eventSetup);
0080 theCorrelatedLCTDigiValidation->analyze(e, eventSetup);
0081 if (doSim_) {
0082 theStubEfficiencyValidation->analyze(e, eventSetup);
0083 theStubResolutionValidation->analyze(e, eventSetup);
0084 }
0085 }