|
|
#include <CSCValidation.h>
|
void | analyze (const edm::Event &event, const edm::EventSetup &eventSetup) override |
| Perform the analysis. More...
|
|
| CSCValidation (const edm::ParameterSet &pset) |
| Constructor. More...
|
|
void | endJob () override |
|
| ~CSCValidation () override |
| Destructor. More...
|
|
void | callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func) |
|
| EDAnalyzer () |
|
SerialTaskQueue * | globalLuminosityBlocksQueue () |
|
SerialTaskQueue * | globalRunsQueue () |
|
ModuleDescription const & | moduleDescription () const |
|
std::string | workerType () const |
|
| ~EDAnalyzer () 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 |
|
ProductResolverIndexAndSkipBit | indexFrom (EDGetToken, BranchType, TypeID const &) const |
|
void | itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const |
|
void | itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const |
|
std::vector< ProductResolverIndexAndSkipBit > const & | itemsToGetFrom (BranchType iType) const |
|
void | labelsForToken (EDGetToken iToken, Labels &oLabels) const |
|
void | modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const |
|
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) |
|
|
int | chamberSerial (CSCDetId id) |
|
void | doADCTiming (const CSCRecHit2DCollection &) |
|
void | doAFEBTiming (const CSCWireDigiCollection &) |
|
void | doCalibrations (const edm::EventSetup &eventSetup) |
|
void | doCompTiming (const CSCComparatorDigiCollection &) |
|
void | doEfficiencies (edm::Handle< CSCWireDigiCollection > wires, edm::Handle< CSCStripDigiCollection > strips, edm::Handle< CSCRecHit2DCollection > recHits, edm::Handle< CSCSegmentCollection > cscSegments, edm::ESHandle< CSCGeometry > cscGeom) |
|
void | doGasGain (const CSCWireDigiCollection &, const CSCStripDigiCollection &, const CSCRecHit2DCollection &) |
|
bool | doHLT (edm::Handle< edm::TriggerResults > hltResults) |
|
void | doNoiseHits (edm::Handle< CSCRecHit2DCollection > recHits, edm::Handle< CSCSegmentCollection > cscSegments, edm::ESHandle< CSCGeometry > cscGeom, edm::Handle< CSCStripDigiCollection > strips) |
|
void | doOccupancies (edm::Handle< CSCStripDigiCollection > strips, edm::Handle< CSCWireDigiCollection > wires, edm::Handle< CSCRecHit2DCollection > recHits, edm::Handle< CSCSegmentCollection > cscSegments) |
|
void | doPedestalNoise (edm::Handle< CSCStripDigiCollection > strips) |
|
void | doRecHits (edm::Handle< CSCRecHit2DCollection > recHits, edm::ESHandle< CSCGeometry > cscGeom) |
|
void | doResolution (edm::Handle< CSCSegmentCollection > cscSegments, edm::ESHandle< CSCGeometry > cscGeom) |
|
void | doSegments (edm::Handle< CSCSegmentCollection > cscSegments, edm::ESHandle< CSCGeometry > cscGeom) |
|
void | doSimHits (edm::Handle< CSCRecHit2DCollection > recHits, edm::Handle< edm::PSimHitContainer > simHits) |
|
void | doStandalone (edm::Handle< reco::TrackCollection > saMuons) |
|
void | doStripDigis (edm::Handle< CSCStripDigiCollection > strips) |
|
void | doTimeMonitoring (edm::Handle< CSCRecHit2DCollection > recHits, edm::Handle< CSCSegmentCollection > cscSegments, edm::Handle< CSCALCTDigiCollection > alcts, edm::Handle< CSCCLCTDigiCollection > clcts, edm::Handle< CSCCorrelatedLCTDigiCollection > correlatedlcts, edm::Handle< L1MuGMTReadoutCollection > pCollection, edm::ESHandle< CSCGeometry > cscGeom, const edm::EventSetup &eventSetup, const edm::Event &event) |
|
bool | doTrigger (edm::Handle< L1MuGMTReadoutCollection > pCollection) |
|
void | doWireDigis (edm::Handle< CSCWireDigiCollection > wires) |
|
double | extrapolate1D (double initPosition, double initDirection, double parameterOfTheLine) |
|
void | fillEfficiencyHistos (int bin, int flag) |
|
bool | filterEvents (edm::Handle< CSCRecHit2DCollection > recHits, edm::Handle< CSCSegmentCollection > cscSegments, edm::Handle< reco::TrackCollection > saMuons) |
|
void | findNonAssociatedRecHits (edm::ESHandle< CSCGeometry > cscGeom, edm::Handle< CSCStripDigiCollection > strips) |
|
float | fitX (const CLHEP::HepMatrix &sp, const CLHEP::HepMatrix &ep) |
|
void | getEfficiency (float bin, float Norm, std::vector< float > &eff) |
|
float | getSignal (const CSCStripDigiCollection &stripdigis, CSCDetId idRH, int centerStrip) |
|
float | getthisSignal (const CSCStripDigiCollection &stripdigis, CSCDetId idRH, int centerStrip) |
|
int | getWidth (const CSCStripDigiCollection &stripdigis, CSCDetId idRH, int centerStrip) |
|
void | histoEfficiency (TH1F *readHisto, TH1F *writeHisto) |
|
double | lineParametrization (double z1Position, double z2Position, double z1Direction) |
|
int | ringSerial (CSCDetId id) |
|
int | typeIndex (CSCDetId id) |
|
bool | withinSensitiveRegion (LocalPoint localPos, const std::array< const float, 4 > &layerBounds, int station, int ring, float shiftFromEdge, float shiftFromDeadZone) |
|
|
typedef EDAnalyzer | ModuleType |
|
typedef ProductLabels | Labels |
|
static const std::string & | baseType () |
|
static void | fillDescriptions (ConfigurationDescriptions &descriptions) |
|
static void | prevalidate (ConfigurationDescriptions &) |
|
static bool | wantsGlobalLuminosityBlocks () |
|
static bool | wantsGlobalRuns () |
|
static bool | wantsStreamLuminosityBlocks () |
|
static bool | wantsStreamRuns () |
|
EDGetToken | consumes (const TypeToGet &id, edm::InputTag const &tag) |
|
template<typename ProductType , BranchType B = InEvent> |
EDGetTokenT< ProductType > | consumes (edm::InputTag const &tag) |
|
template<BranchType B> |
EDGetToken | consumes (TypeToGet const &id, edm::InputTag const &tag) |
|
ConsumesCollector | consumesCollector () |
| Use a ConsumesCollector to gather consumes information from helper functions. More...
|
|
template<typename ProductType , BranchType B = InEvent> |
void | consumesMany () |
|
void | consumesMany (const TypeToGet &id) |
|
template<BranchType B> |
void | consumesMany (const TypeToGet &id) |
|
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event> |
auto | esConsumes () |
|
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event> |
auto | esConsumes (ESInputTag const &tag) |
|
EDGetToken | mayConsume (const TypeToGet &id, edm::InputTag const &tag) |
|
template<BranchType B> |
EDGetToken | mayConsume (const TypeToGet &id, edm::InputTag const &tag) |
|
template<typename ProductType , BranchType B = InEvent> |
EDGetTokenT< ProductType > | mayConsume (edm::InputTag const &tag) |
|
Package to validate local CSC reconstruction: DIGIS recHits segments L1 trigger CSC STA muons Various efficiencies
Responsible: Andy Kubik, Northwestern University
Definition at line 118 of file CSCValidation.h.
◆ CSCValidation()
Constructor.
Definition at line 16 of file CSCValidation.cc.
22 useDigis =
pset.getUntrackedParameter<
bool>(
"useDigis",
true);
26 pMin =
pset.getUntrackedParameter<
double>(
"pMin", 4.);
27 chisqMax =
pset.getUntrackedParameter<
double>(
"chisqMax", 20.);
30 lengthMin =
pset.getUntrackedParameter<
double>(
"lengthMin", 140.);
31 lengthMax =
pset.getUntrackedParameter<
double>(
"lengthMax", 600.);
33 polarMax =
pset.getUntrackedParameter<
double>(
"polarMax", 0.7);
34 polarMin =
pset.getUntrackedParameter<
double>(
"polarMin", 0.3);
89 hOWires =
new TH2I(
"hOWires",
"Wire Digi Occupancy", 36, 0.5, 36.5, 20, 0.5, 20.5);
90 hOStrips =
new TH2I(
"hOStrips",
"Strip Digi Occupancy", 36, 0.5, 36.5, 20, 0.5, 20.5);
91 hORecHits =
new TH2I(
"hORecHits",
"RecHit Occupancy", 36, 0.5, 36.5, 20, 0.5, 20.5);
92 hOSegments =
new TH2I(
"hOSegments",
"Segments Occupancy", 36, 0.5, 36.5, 20, 0.5, 20.5);
95 hSSTE =
new TH1F(
"hSSTE",
"hSSTE", 40, 0, 40);
96 hRHSTE =
new TH1F(
"hRHSTE",
"hRHSTE", 40, 0, 40);
97 hSEff =
new TH1F(
"hSEff",
"Segment Efficiency", 20, 0.5, 20.5);
98 hRHEff =
new TH1F(
"hRHEff",
"recHit Efficiency", 20, 0.5, 20.5);
100 const int nChambers = 36;
101 const int nTypes = 18;
103 float nCh_max =
float(nChambers) + 0.5;
105 float nT_max =
float(nTypes) + 0.5;
107 hSSTE2 =
new TH2F(
"hSSTE2",
"hSSTE2", nChambers, nCH_min, nCh_max, nTypes, nT_min, nT_max);
108 hRHSTE2 =
new TH2F(
"hRHSTE2",
"hRHSTE2", nChambers, nCH_min, nCh_max, nTypes, nT_min, nT_max);
109 hStripSTE2 =
new TH2F(
"hStripSTE2",
"hStripSTE2", nChambers, nCH_min, nCh_max, nTypes, nT_min, nT_max);
110 hWireSTE2 =
new TH2F(
"hWireSTE2",
"hWireSTE2", nChambers, nCH_min, nCh_max, nTypes, nT_min, nT_max);
112 hEffDenominator =
new TH2F(
"hEffDenominator",
"hEffDenominator", nChambers, nCH_min, nCh_max, nTypes, nT_min, nT_max);
113 hSEff2 =
new TH2F(
"hSEff2",
"Segment Efficiency 2D", nChambers, nCH_min, nCh_max, nTypes, nT_min, nT_max);
114 hRHEff2 =
new TH2F(
"hRHEff2",
"recHit Efficiency 2D", nChambers, nCH_min, nCh_max, nTypes, nT_min, nT_max);
116 hStripEff2 =
new TH2F(
"hStripEff2",
"strip Efficiency 2D", nChambers, nCH_min, nCh_max, nTypes, nT_min, nT_max);
117 hWireEff2 =
new TH2F(
"hWireEff2",
"wire Efficiency 2D", nChambers, nCH_min, nCh_max, nTypes, nT_min, nT_max);
120 new TH2F(
"hSensitiveAreaEvt",
"events in sensitive area", nChambers, nCH_min, nCh_max, nTypes, nT_min, nT_max);
References dtNoiseAnalysis_cfi::detailedAnalysis, amptDefault_cfi::firstEvent, dqmMemoryStats::float, combine::histos, ALCARECOTkAlMinBias_cff::pMin, muonDTDigis_cfi::pset, CSCSkim_cfi::rootFileName, AlCaHLTBitMon_QueryRunRegistry::string, and interactiveExample::theFile.
◆ ~CSCValidation()
CSCValidation::~CSCValidation |
( |
| ) |
|
|
override |
◆ analyze()
Perform the analysis.
Implements edm::EDAnalyzer.
Definition at line 174 of file CSCValidation.cc.
191 event.getByToken(
cd_token, compars);
194 event.getByToken(
co_token, correlatedlcts);
222 event.getByToken(
l1_token, pCollection);
232 event.getByToken(
sa_token, saMuons);
References dtChamberEfficiency_cfi::cscSegments, ecalTB2006H4_GenSimDigiReco_cfg::doSimHits, amptDefault_cfi::firstEvent, edm::EventSetup::get(), get, ValidationMatrix::hlt, FastTrackerRecHitMaskProducer_cfi::recHits, FastTrackerRecHitCombiner_cfi::simHits, DigiDM_cff::strips, and DigiDM_cff::wires.
◆ chamberSerial()
int CSCValidation::chamberSerial |
( |
CSCDetId |
id | ) |
|
|
private |
Definition at line 1364 of file CSCValidation.cc.
1365 int st =
id.station();
1367 int ch =
id.chamber();
1368 int ec =
id.endcap();
1370 if (st == 1 && ri == 1)
1372 if (st == 1 && ri == 2)
1374 if (st == 1 && ri == 3)
1376 if (st == 1 && ri == 4)
1378 if (st == 2 && ri == 1)
1380 if (st == 2 && ri == 2)
1382 if (st == 3 && ri == 1)
1384 if (st == 3 && ri == 2)
1386 if (st == 4 && ri == 1)
1388 if (st == 4 && ri == 2)
1391 kSerial = kSerial + 300;
◆ doADCTiming()
Definition at line 2851 of file CSCValidation.cc.
2852 float adc_3_3_sum, adc_3_3_wtbin,
x,
y;
2853 int cfeb, idchamber,
ring;
2857 std::vector<float> zer(6, 0.0);
2860 std::map<int, int>::iterator intIt;
2862 if (rechitcltn.begin() != rechitcltn.end()) {
2868 for (recIt = rechitcltn.begin(); recIt != rechitcltn.end(); ++recIt) {
2871 if (recIt->nStrips() == 3) {
2874 unsigned int binmx = 0;
2877 for (
unsigned int i = 0;
i < recIt->nStrips();
i++)
2878 for (
unsigned int j = 0;
j < recIt->nTimeBins();
j++)
2879 if (recIt->adcs(
i,
j) > adcmax) {
2880 adcmax = recIt->adcs(
i,
j);
2886 for (
unsigned int i = 0;
i < recIt->nStrips();
i++)
2887 for (
unsigned int j = binmx - 1;
j <= binmx + 1;
j++)
2888 adc_3_3_sum += recIt->adcs(
i,
j);
2891 if (adc_3_3_sum > 100.0) {
2892 int centerStrip = recIt->channels(1);
2895 if (
id.
station() == 1 &&
id.
ring() == 4 && centerStrip > 16)
2899 adc_3_3_wtbin = (*recIt).tpeak() / 50;
2900 idchamber = indexer.
dbIndex(
id, centerStrip) / 10;
2908 ss <<
"adc_3_3_weight_time_bin_vs_cfeb_occupancy_ME_" << idchamber;
2920 ss <<
"ADC 3X3 Weighted Time Bin vs CFEB Occupancy ME" << endcapstr <<
id.station() <<
"/" <<
ring <<
"/"
2925 cfeb = (centerStrip - 1) / 16 + 1;
2928 histos->
fill2DHist(
x,
y,
name,
title, 5, 1., 6., 80, -8., 8.,
"ADCTiming");
References CSCIndexer::dbIndex(), makeMuonMisalignmentScenario::endcap, RemoveAddSevLevel::flag, combine::histos, mps_fire::i, dqmiolumiharvest::j, Skims_PA_cff::name, relativeConstraints::ring, contentValuesCheck::ss, relativeConstraints::station, AlCaHLTBitMon_QueryRunRegistry::string, and overlapproblemtsosanalyzer_cfi::title.
◆ doAFEBTiming()
Definition at line 2723 of file CSCValidation.cc.
2727 int wire, wiretbin, nmbwiretbin, layer, afeb, idlayer, idchamber;
2731 if (wirecltn.begin() != wirecltn.end()) {
2738 for (wiredetUnitIt = wirecltn.begin(); wiredetUnitIt != wirecltn.end(); ++wiredetUnitIt) {
2739 const CSCDetId id = (*wiredetUnitIt).first;
2740 idlayer = indexer.
dbIndex(
id, channel);
2741 idchamber = idlayer / 10;
2753 wire = (*digiIt).getWireGroup();
2754 wiretbin = (*digiIt).getTimeBin();
2755 nmbwiretbin = (*digiIt).getTimeBinsOn().size();
2756 afeb = 3 * ((wire - 1) / 8) + (layer + 1) / 2;
2761 ss <<
"afeb_time_bin_vs_afeb_occupancy_ME_" << idchamber;
2764 ss <<
"Time Bin vs AFEB Occupancy ME" << endcapstr <<
id.station() <<
"/" <<
id.ring() <<
"/" <<
id.chamber();
2767 histos->
fill2DHist(
x,
y,
name,
title, 42, 1., 43., 16, 0., 16.,
"AFEBTiming");
2772 ss <<
"nmb_afeb_time_bins_vs_afeb_ME_" << idchamber;
2775 ss <<
"Number of Time Bins vs AFEB ME" << endcapstr <<
id.station() <<
"/" <<
id.ring() <<
"/" <<
id.chamber();
2778 histos->
fill2DHist(
x,
y,
name,
title, 42, 1., 43., 16, 0., 16.,
"AFEBTiming");
References CSCIndexer::dbIndex(), makeMuonMisalignmentScenario::endcap, combine::histos, Skims_PA_cff::name, FastTimerService_cff::range, contentValuesCheck::ss, AlCaHLTBitMon_QueryRunRegistry::string, and overlapproblemtsosanalyzer_cfi::title.
◆ doCalibrations()
Definition at line 692 of file CSCValidation.cc.
695 LogDebug(
"Calibrations") <<
"Loading Calibrations...";
714 LogDebug(
"Calibrations") <<
"Calibrations Loaded!";
716 for (
int i = 0;
i < 400;
i++) {
720 pCrosstalk->
crosstalk[
i].xtalk_slope_left,
"hCalibXtalkSL",
"Xtalk Slope Left", 400, 0, 400,
bin,
"Calib");
722 pCrosstalk->
crosstalk[
i].xtalk_slope_right,
"hCalibXtalkSR",
"Xtalk Slope Right", 400, 0, 400,
bin,
"Calib");
725 "Xtalk Intercept Left",
733 "Xtalk Intercept Right",
742 pNoiseMatrix->
matrix[
i].elem33,
"hCalibNoise33",
"Noise Matrix 33", 400, 0, 400,
bin,
"Calib");
744 pNoiseMatrix->
matrix[
i].elem34,
"hCalibNoise34",
"Noise Matrix 34", 400, 0, 400,
bin,
"Calib");
746 pNoiseMatrix->
matrix[
i].elem35,
"hCalibNoise35",
"Noise Matrix 35", 400, 0, 400,
bin,
"Calib");
748 pNoiseMatrix->
matrix[
i].elem44,
"hCalibNoise44",
"Noise Matrix 44", 400, 0, 400,
bin,
"Calib");
750 pNoiseMatrix->
matrix[
i].elem45,
"hCalibNoise45",
"Noise Matrix 45", 400, 0, 400,
bin,
"Calib");
752 pNoiseMatrix->
matrix[
i].elem46,
"hCalibNoise46",
"Noise Matrix 46", 400, 0, 400,
bin,
"Calib");
754 pNoiseMatrix->
matrix[
i].elem55,
"hCalibNoise55",
"Noise Matrix 55", 400, 0, 400,
bin,
"Calib");
756 pNoiseMatrix->
matrix[
i].elem56,
"hCalibNoise56",
"Noise Matrix 56", 400, 0, 400,
bin,
"Calib");
758 pNoiseMatrix->
matrix[
i].elem57,
"hCalibNoise57",
"Noise Matrix 57", 400, 0, 400,
bin,
"Calib");
760 pNoiseMatrix->
matrix[
i].elem66,
"hCalibNoise66",
"Noise Matrix 66", 400, 0, 400,
bin,
"Calib");
762 pNoiseMatrix->
matrix[
i].elem67,
"hCalibNoise67",
"Noise Matrix 67", 400, 0, 400,
bin,
"Calib");
764 pNoiseMatrix->
matrix[
i].elem77,
"hCalibNoise77",
"Noise Matrix 77", 400, 0, 400,
bin,
"Calib");
References newFWLiteAna::bin, CSCDBCrosstalk::crosstalk, CSCDBGains::gains, edm::EventSetup::get(), get, combine::histos, mps_fire::i, LogDebug, CSCDBNoiseMatrix::matrix, CSCDBPedestals::pedestals, and edm::ESHandle< T >::product().
◆ doCompTiming()
Definition at line 2790 of file CSCValidation.cc.
2794 int strip, tbin, cfeb, idlayer, idchamber;
2798 if (compars.begin() != compars.end()) {
2805 for (compdetUnitIt = compars.begin(); compdetUnitIt != compars.end(); ++compdetUnitIt) {
2806 const CSCDetId id = (*compdetUnitIt).first;
2807 idlayer = indexer.
dbIndex(
id, channel);
2808 idchamber = idlayer / 10;
2817 strip = (*digiIt).getStrip();
2825 tbin = (*digiIt).getTimeBin();
2826 cfeb = (
strip - 1) / 16 + 1;
2832 ss <<
"comp_time_bin_vs_cfeb_occupancy_ME_" << idchamber;
2835 ss <<
"Comparator Time Bin vs CFEB Occupancy ME" <<
endcap <<
id.station() <<
"/" <<
id.ring() <<
"/"
2839 histos->
fill2DHist(
x,
y,
name,
title, 5, 1., 6., 16, 0., 16.,
"CompTiming");
References CSCIndexer::dbIndex(), makeMuonMisalignmentScenario::endcap, combine::histos, Skims_PA_cff::name, FastTimerService_cff::range, contentValuesCheck::ss, AlCaHLTBitMon_QueryRunRegistry::string, digitizers_cfi::strip, and overlapproblemtsosanalyzer_cfi::title.
◆ doEfficiencies()
Definition at line 1468 of file CSCValidation.cc.
1473 bool allWires[2][4][4][36][6];
1474 bool allStrips[2][4][4][36][6];
1475 bool AllRecHits[2][4][4][36][6];
1476 bool AllSegments[2][4][4][36];
1479 for (
int iE = 0; iE < 2; iE++) {
1480 for (
int iS = 0; iS < 4; iS++) {
1481 for (
int iR = 0; iR < 4; iR++) {
1482 for (
int iC = 0; iC < 36; iC++) {
1483 AllSegments[iE][iS][iR][iC] =
false;
1485 for (
int iL = 0; iL < 6; iL++) {
1486 allWires[iE][iS][iR][iC][iL] =
false;
1487 allStrips[iE][iS][iR][iC][iL] =
false;
1488 AllRecHits[iE][iS][iR][iC][iL] =
false;
1499 std::vector<CSCWireDigi>::const_iterator wireIter = (*dWDiter).second.first;
1500 std::vector<CSCWireDigi>::const_iterator lWire = (*dWDiter).second.second;
1501 for (; wireIter != lWire; ++wireIter) {
1511 std::vector<CSCStripDigi>::const_iterator stripIter = (*dSDiter).second.first;
1512 std::vector<CSCStripDigi>::const_iterator lStrip = (*dSDiter).second.second;
1513 for (; stripIter != lStrip; ++stripIter) {
1514 std::vector<int> myADCVals = stripIter->getADCCounts();
1515 bool thisStripFired =
false;
1516 float thisPedestal = 0.5 * (
float)(myADCVals[0] + myADCVals[1]);
1519 for (
unsigned int iCount = 0; iCount < myADCVals.size(); iCount++) {
1520 diff = (
float)myADCVals[iCount] - thisPedestal;
1522 thisStripFired =
true;
1526 if (thisStripFired) {
1543 std::vector<unsigned int> seg_ME2(2, 0);
1544 std::vector<unsigned int> seg_ME3(2, 0);
1545 std::vector<std::pair<CSCDetId, CSCSegment> > theSegments(4);
1558 unsigned int seg_tmp;
1560 ++seg_ME2[idseg.
endcap() - 1];
1561 seg_tmp = seg_ME2[idseg.
endcap() - 1];
1563 ++seg_ME3[idseg.
endcap() - 1];
1564 seg_tmp = seg_ME3[idseg.
endcap() - 1];
1567 if (1 == seg_tmp && 6 == (*segEffIt).nRecHits() && (*segEffIt).chi2() / (*segEffIt).degreesOfFreedom() < 3.) {
1568 std::pair<CSCDetId, CSCSegment> specSeg = make_pair((
CSCDetId)(*segEffIt).cscDetId(), *segEffIt);
1569 theSegments[2 * (idseg.
endcap() - 1) + (idseg.
station() - 2)] = specSeg;
1590 for (
int iE = 0; iE < 2; iE++) {
1591 for (
int iS = 0; iS < 4; iS++) {
1592 for (
int iR = 0; iR < 4; iR++) {
1593 for (
int iC = 0; iC < 36; iC++) {
1594 int NumberOfLayers = 0;
1595 for (
int iL = 0; iL < 6; iL++) {
1596 if (AllRecHits[iE][iS][iR][iC][iL]) {
1602 bin = iR + 1 + (iE * 10);
1604 bin = (iS + 1) * 2 + (iR + 1) + (iE * 10);
1605 if (NumberOfLayers > 1) {
1607 if (AllSegments[iE][iS][iR][iC]) {
1615 if (AllSegments[iE][iS][iR][iC]) {
1616 if (NumberOfLayers == 6) {
1631 std::vector<std::pair<CSCDetId, CSCSegment>*> theSeg;
1632 if (1 == seg_ME2[0])
1633 theSeg.push_back(&theSegments[0]);
1634 if (1 == seg_ME3[0])
1635 theSeg.push_back(&theSegments[1]);
1636 if (1 == seg_ME2[1])
1637 theSeg.push_back(&theSegments[2]);
1638 if (1 == seg_ME3[1])
1639 theSeg.push_back(&theSegments[3]);
1644 std::map<std::string, float> chamberTypes;
1645 chamberTypes[
"ME1/a"] = 0.5;
1646 chamberTypes[
"ME1/b"] = 1.5;
1647 chamberTypes[
"ME1/2"] = 2.5;
1648 chamberTypes[
"ME1/3"] = 3.5;
1649 chamberTypes[
"ME2/1"] = 4.5;
1650 chamberTypes[
"ME2/2"] = 5.5;
1651 chamberTypes[
"ME3/1"] = 6.5;
1652 chamberTypes[
"ME3/2"] = 7.5;
1653 chamberTypes[
"ME4/1"] = 8.5;
1655 if (!theSeg.empty()) {
1656 std::map<int, GlobalPoint> extrapolatedPoint;
1657 std::map<int, GlobalPoint>::iterator it;
1660 for (
size_t nCh = 0; nCh < ChamberContainer.size(); nCh++) {
1661 const CSCChamber* cscchamber = ChamberContainer[nCh];
1662 std::pair<CSCDetId, CSCSegment>* thisSegment =
nullptr;
1663 for (
size_t iSeg = 0; iSeg < theSeg.size(); ++iSeg) {
1664 if (cscchamber->
id().
endcap() == theSeg[iSeg]->first.endcap()) {
1666 if (2 == theSeg[iSeg]->
first.station()) {
1667 thisSegment = theSeg[iSeg];
1670 if (3 == theSeg[iSeg]->
first.station()) {
1671 thisSegment = theSeg[iSeg];
1683 it = extrapolatedPoint.find(
int(cscchamberCenter.
z()));
1684 if (it == extrapolatedPoint.end()) {
1688 double xExtrapolated =
extrapolate1D(segPos.
x(), segDir.
x(), paramaterLine);
1689 double yExtrapolated =
extrapolate1D(segPos.
y(), segDir.
y(), paramaterLine);
1690 GlobalPoint globP(xExtrapolated, yExtrapolated, cscchamberCenter.
z());
1691 extrapolatedPoint[
int(cscchamberCenter.
z())] = globP;
1694 LocalPoint extrapolatedPointLocal = cscchamber->
toLocal(extrapolatedPoint[
int(cscchamberCenter.
z())]);
1697 const std::array<const float, 4>& layerBounds = layerGeom->
parameters();
1698 float shiftFromEdge = 15.;
1699 float shiftFromDeadZone = 10.;
1714 for (
int iL = 0; iL < 6; ++iL) {
1722 if (cscchamberCenter.
z() < 0) {
1723 verticalScale = -verticalScale;
1725 verticalScale += 9.5;
1727 if (nRHLayers > 1) {
1736 hSSTE2->Fill(
float(cscchamber->
id().
chamber()),
float(verticalScale));
1739 for (
int iL = 0; iL < 6; ++iL) {
References newFWLiteAna::bin, CSCDetId::chamber(), CSCGeometry::chamber(), CSCGeometry::chambers(), CSCChamberSpecs::chamberTypeName(), dtChamberEfficiency_cfi::cscSegments, change_name::diff, CSCDetId::endcap(), dqmdumpme::first, dqmMemoryStats::float, cms::cuda::for(), CSCLayer::geometry(), CSCChamber::id(), createfilelist::int, CSCChamber::layer(), CSCDetId::layer(), CSCSegment::localDirection(), CSCSegment::localPosition(), TrapezoidalPlaneBounds::parameters(), FastTrackerRecHitMaskProducer_cfi::recHits, CSCDetId::ring(), CSCChamber::specs(), CSCDetId::station(), DigiDM_cff::strips, remoteMonitoring_LED_IterMethod_cfg::threshold, GeomDet::toGlobal(), GeomDet::toLocal(), mps_merge::weight, DigiDM_cff::wires, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
◆ doGasGain()
Definition at line 2448 of file CSCValidation.cc.
2451 int channel = 0,
mult, wire, layer, idlayer, idchamber,
ring;
2452 int wire_strip_rechit_present;
2456 std::map<int, int>::iterator intIt;
2464 std::map<int, std::vector<int> >::iterator intvecIt;
2466 int csctype[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
2467 int hvsegm_layer[10] = {1, 1, 3, 3, 3, 5, 3, 5, 3, 5};
2470 for (
int i = 0;
i < 10;
i++)
2473 std::vector<int> zer_1_1a(49, 0);
2478 for (
int wire = 1; wire <= 48; wire++)
2479 intvecIt->second[wire] = 1;
2482 std::vector<int> zer_1_1b(49, 0);
2487 for (
int wire = 1; wire <= 48; wire++)
2488 intvecIt->second[wire] = 1;
2491 std::vector<int> zer_1_2(65, 0);
2496 for (
int wire = 1; wire <= 24; wire++)
2497 intvecIt->second[wire] = 1;
2498 for (
int wire = 25; wire <= 48; wire++)
2499 intvecIt->second[wire] = 2;
2500 for (
int wire = 49; wire <= 64; wire++)
2501 intvecIt->second[wire] = 3;
2504 std::vector<int> zer_1_3(33, 0);
2509 for (
int wire = 1; wire <= 12; wire++)
2510 intvecIt->second[wire] = 1;
2511 for (
int wire = 13; wire <= 22; wire++)
2512 intvecIt->second[wire] = 2;
2513 for (
int wire = 23; wire <= 32; wire++)
2514 intvecIt->second[wire] = 3;
2517 std::vector<int> zer_2_1(113, 0);
2522 for (
int wire = 1; wire <= 44; wire++)
2523 intvecIt->second[wire] = 1;
2524 for (
int wire = 45; wire <= 80; wire++)
2525 intvecIt->second[wire] = 2;
2526 for (
int wire = 81; wire <= 112; wire++)
2527 intvecIt->second[wire] = 3;
2530 std::vector<int> zer_2_2(65, 0);
2535 for (
int wire = 1; wire <= 16; wire++)
2536 intvecIt->second[wire] = 1;
2537 for (
int wire = 17; wire <= 28; wire++)
2538 intvecIt->second[wire] = 2;
2539 for (
int wire = 29; wire <= 40; wire++)
2540 intvecIt->second[wire] = 3;
2541 for (
int wire = 41; wire <= 52; wire++)
2542 intvecIt->second[wire] = 4;
2543 for (
int wire = 53; wire <= 64; wire++)
2544 intvecIt->second[wire] = 5;
2547 std::vector<int> zer_3_1(97, 0);
2552 for (
int wire = 1; wire <= 32; wire++)
2553 intvecIt->second[wire] = 1;
2554 for (
int wire = 33; wire <= 64; wire++)
2555 intvecIt->second[wire] = 2;
2556 for (
int wire = 65; wire <= 96; wire++)
2557 intvecIt->second[wire] = 3;
2560 std::vector<int> zer_3_2(65, 0);
2565 for (
int wire = 1; wire <= 16; wire++)
2566 intvecIt->second[wire] = 1;
2567 for (
int wire = 17; wire <= 28; wire++)
2568 intvecIt->second[wire] = 2;
2569 for (
int wire = 29; wire <= 40; wire++)
2570 intvecIt->second[wire] = 3;
2571 for (
int wire = 41; wire <= 52; wire++)
2572 intvecIt->second[wire] = 4;
2573 for (
int wire = 53; wire <= 64; wire++)
2574 intvecIt->second[wire] = 5;
2577 std::vector<int> zer_4_1(97, 0);
2582 for (
int wire = 1; wire <= 32; wire++)
2583 intvecIt->second[wire] = 1;
2584 for (
int wire = 33; wire <= 64; wire++)
2585 intvecIt->second[wire] = 2;
2586 for (
int wire = 65; wire <= 96; wire++)
2587 intvecIt->second[wire] = 3;
2590 std::vector<int> zer_4_2(65, 0);
2595 for (
int wire = 1; wire <= 16; wire++)
2596 intvecIt->second[wire] = 1;
2597 for (
int wire = 17; wire <= 28; wire++)
2598 intvecIt->second[wire] = 2;
2599 for (
int wire = 29; wire <= 40; wire++)
2600 intvecIt->second[wire] = 3;
2601 for (
int wire = 41; wire <= 52; wire++)
2602 intvecIt->second[wire] = 4;
2603 for (
int wire = 53; wire <= 64; wire++)
2604 intvecIt->second[wire] = 5;
2609 wire_strip_rechit_present = 0;
2610 if (wirecltn.begin() != wirecltn.end())
2611 wire_strip_rechit_present = wire_strip_rechit_present + 1;
2612 if (strpcltn.begin() != strpcltn.end())
2613 wire_strip_rechit_present = wire_strip_rechit_present + 2;
2614 if (rechitcltn.begin() != rechitcltn.end())
2615 wire_strip_rechit_present = wire_strip_rechit_present + 4;
2617 if (wire_strip_rechit_present == 7) {
2624 for (wiredetUnitIt = wirecltn.begin(); wiredetUnitIt != wirecltn.end(); ++wiredetUnitIt) {
2625 const CSCDetId id = (*wiredetUnitIt).first;
2626 idlayer = indexer.
dbIndex(
id, channel);
2627 idchamber = idlayer / 10;
2634 wire = (*digiIt).getWireGroup();
2649 for (recIt = rechitcltn.begin(); recIt != rechitcltn.end(); ++recIt) {
2651 idlayer = indexer.
dbIndex(
id, channel);
2652 idchamber = idlayer / 10;
2656 if (recIt->nStrips() == 3) {
2658 unsigned int binmx = 0;
2661 for (
unsigned int i = 0;
i < recIt->nStrips();
i++)
2662 for (
unsigned int j = 0;
j < recIt->nTimeBins();
j++)
2663 if (recIt->adcs(
i,
j) > adcmax) {
2664 adcmax = recIt->adcs(
i,
j);
2668 float adc_3_3_sum = 0.0;
2670 for (
unsigned int i = 0;
i < recIt->nStrips();
i++)
2671 for (
unsigned int j = binmx - 1;
j <= binmx + 1;
j++)
2672 adc_3_3_sum += recIt->adcs(
i,
j);
2674 if (adc_3_3_sum > 0.0 && adc_3_3_sum < 2000.0) {
2677 if (
id.
station() == 1 &&
id.
ring() == 4 && recIt->channels(1) > 16)
2682 int chambertype =
id.iChamberType(
id.
station(),
id.
ring());
2684 int nmbofhvsegm =
nmbhvsegm[chambertype - 1];
2685 int location = (layer - 1) * nmbofhvsegm + hvsgmtnmb;
2687 ss <<
"gas_gain_rechit_adc_3_3_sum_location_ME_" << idchamber;
2697 ss <<
"Gas Gain Rechit ADC3X3 Sum ME" << endcapstr <<
id.station() <<
"/" <<
ring <<
"/" <<
id.chamber();
2701 float y = adc_3_3_sum;
2702 histos->
fill2DHist(
x,
y,
name,
title, 30, 1.0, 31.0, 50, 0.0, 2000.0,
"GasGain");
References CSCIndexer::dbIndex(), makeMuonMisalignmentScenario::endcap, amptDefault_cfi::firstEvent, RemoveAddSevLevel::flag, cms::cuda::for(), combine::histos, mps_fire::i, triggerObjects_cff::id, dqmiolumiharvest::j, EcalCondDBWriter_cfi::location, VarParsing::mult, Skims_PA_cff::name, FastTimerService_cff::range, relativeConstraints::ring, contentValuesCheck::ss, relativeConstraints::station, AlCaHLTBitMon_QueryRunRegistry::string, and overlapproblemtsosanalyzer_cfi::title.
◆ doHLT()
◆ doNoiseHits()
Definition at line 1971 of file CSCValidation.cc.
1976 for (recIt =
recHits->begin(); recIt !=
recHits->end(); recIt++) {
1980 AllRechits.insert(std::pair<CSCDetId, CSCRecHit2D>(idrec, *recIt));
1983 int centerid = recIt->nStrips() / 2;
1984 int centerStrip = recIt->channels(centerid);
1988 rHsignal,
"hrHSignal",
"Signal in the 4th time bin for centre strip", 1100, -99, 1000,
"recHits");
1992 std::vector<CSCRecHit2D> theseRecHits = (*it).specificRecHits();
1993 for (std::vector<CSCRecHit2D>::const_iterator iRH = theseRecHits.begin(); iRH != theseRecHits.end(); iRH++) {
1996 float xrec = lpRH.
x();
1997 float yrec = lpRH.
y();
1998 float zrec = lpRH.
z();
1999 bool RHalreadyinMap =
false;
2001 multimap<CSCDetId, CSCRecHit2D>::iterator segRHit;
2004 for (; segRHit !=
SegRechits.upper_bound(idRH); ++segRHit) {
2006 LocalPoint lposRH = (segRHit->second).localPosition();
2007 float xpos = lposRH.
x();
2008 float ypos = lposRH.
y();
2009 float zpos = lposRH.
z();
2010 if (xrec == xpos && yrec == ypos && zrec == zpos) {
2011 RHalreadyinMap =
true;
2017 if (!RHalreadyinMap) {
2018 SegRechits.insert(std::pair<CSCDetId, CSCRecHit2D>(idRH, *iRH));
References dtChamberEfficiency_cfi::cscSegments, combine::histos, FastTrackerRecHitMaskProducer_cfi::recHits, DigiDM_cff::strips, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
◆ doOccupancies()
Definition at line 417 of file CSCValidation.cc.
421 bool wireo[2][4][4][36];
422 bool stripo[2][4][4][36];
423 bool rechito[2][4][4][36];
424 bool segmento[2][4][4][36];
426 bool hasWires =
false;
427 bool hasStrips =
false;
428 bool hasRecHits =
false;
429 bool hasSegments =
false;
431 for (
int e = 0;
e < 2;
e++) {
432 for (
int s = 0;
s < 4;
s++) {
433 for (
int r = 0;
r < 4;
r++) {
434 for (
int c = 0;
c < 36;
c++) {
435 wireo[
e][
s][
r][
c] =
false;
436 stripo[
e][
s][
r][
c] =
false;
437 rechito[
e][
s][
r][
c] =
false;
438 segmento[
e][
s][
r][
c] =
false;
448 int kEndcap =
id.
endcap();
449 int kRing =
id.ring();
450 int kStation =
id.station();
451 int kChamber =
id.chamber();
452 std::vector<CSCWireDigi>::const_iterator wireIt = (*wi).second.first;
453 std::vector<CSCWireDigi>::const_iterator lastWire = (*wi).second.second;
454 for (; wireIt != lastWire; ++wireIt) {
455 if (!wireo[kEndcap - 1][kStation - 1][kRing - 1][kChamber - 1]) {
456 wireo[kEndcap - 1][kStation - 1][kRing - 1][kChamber - 1] =
true;
459 chamberSerial(
id),
"hOWireSerial",
"Wire Occupancy by Chamber Serial", 601, -0.5, 600.5,
"Digis");
468 int kEndcap =
id.
endcap();
469 int kRing =
id.ring();
470 int kStation =
id.station();
471 int kChamber =
id.chamber();
472 std::vector<CSCStripDigi>::const_iterator stripIt = (*si).second.first;
473 std::vector<CSCStripDigi>::const_iterator lastStrip = (*si).second.second;
474 for (; stripIt != lastStrip; ++stripIt) {
475 std::vector<int> myADCVals = stripIt->getADCCounts();
476 bool thisStripFired =
false;
477 float thisPedestal = 0.5 * (
float)(myADCVals[0] + myADCVals[1]);
480 for (
unsigned int iCount = 0; iCount < myADCVals.size(); iCount++) {
481 diff = (
float)myADCVals[iCount] - thisPedestal;
483 thisStripFired =
true;
486 if (thisStripFired) {
487 if (!stripo[kEndcap - 1][kStation - 1][kRing - 1][kChamber - 1]) {
488 stripo[kEndcap - 1][kStation - 1][kRing - 1][kChamber - 1] =
true;
491 chamberSerial(
id),
"hOStripSerial",
"Strip Occupancy by Chamber Serial", 601, -0.5, 600.5,
"Digis");
501 for (recIt =
recHits->begin(); recIt !=
recHits->end(); recIt++) {
503 int kEndcap = idrec.
endcap();
504 int kRing = idrec.
ring();
505 int kStation = idrec.
station();
506 int kChamber = idrec.
chamber();
507 if (!rechito[kEndcap - 1][kStation - 1][kRing - 1][kChamber - 1]) {
508 rechito[kEndcap - 1][kStation - 1][kRing - 1][kChamber - 1] =
true;
510 chamberSerial(idrec),
"hORecHitsSerial",
"RecHit Occupancy by Chamber Serial", 601, -0.5, 600.5,
"recHits");
519 int kEndcap =
id.
endcap();
520 int kRing =
id.ring();
521 int kStation =
id.station();
522 int kChamber =
id.chamber();
523 if (!segmento[kEndcap - 1][kStation - 1][kRing - 1][kChamber - 1]) {
524 segmento[kEndcap - 1][kStation - 1][kRing - 1][kChamber - 1] =
true;
526 chamberSerial(
id),
"hOSegmentsSerial",
"Segment Occupancy by Chamber Serial", 601, -0.5, 600.5,
"Segments");
533 histos->
fill1DHist(1,
"hCSCOccupancy",
"overall CSC occupancy", 15, -0.5, 14.5,
"GeneralHists");
535 histos->
fill1DHist(3,
"hCSCOccupancy",
"overall CSC occupancy", 15, -0.5, 14.5,
"GeneralHists");
537 histos->
fill1DHist(5,
"hCSCOccupancy",
"overall CSC occupancy", 15, -0.5, 14.5,
"GeneralHists");
538 if (hasWires && hasStrips)
539 histos->
fill1DHist(7,
"hCSCOccupancy",
"overall CSC occupancy", 15, -0.5, 14.5,
"GeneralHists");
541 histos->
fill1DHist(9,
"hCSCOccupancy",
"overall CSC occupancy", 15, -0.5, 14.5,
"GeneralHists");
543 histos->
fill1DHist(11,
"hCSCOccupancy",
"overall CSC occupancy", 15, -0.5, 14.5,
"GeneralHists");
545 histos->
fill1DHist(13,
"hCSCOccupancy",
"overall CSC occupancy", 15, -0.5, 14.5,
"GeneralHists");
References HltBtagPostValidation_cff::c, CSCDetId::chamber(), dtChamberEfficiency_cfi::cscSegments, change_name::diff, MillePedeFileConverter_cfg::e, CSCDetId::endcap(), dqmMemoryStats::float, combine::histos, alignCSCRings::r, FastTrackerRecHitMaskProducer_cfi::recHits, CSCDetId::ring(), alignCSCRings::s, CSCDetId::station(), DigiDM_cff::strips, remoteMonitoring_LED_IterMethod_cfg::threshold, and DigiDM_cff::wires.
◆ doPedestalNoise()
Definition at line 852 of file CSCValidation.cc.
855 std::vector<CSCStripDigi>::const_iterator pedIt = (*dPNiter).second.first;
856 std::vector<CSCStripDigi>::const_iterator lStrip = (*dPNiter).second.second;
857 for (; pedIt != lStrip; ++pedIt) {
858 int myStrip = pedIt->getStrip();
859 std::vector<int> myADCVals = pedIt->getADCCounts();
861 bool thisStripFired =
false;
862 float thisPedestal = 0.5 * (
float)(myADCVals[0] + myADCVals[1]);
864 (1. / 6) * (myADCVals[2] + myADCVals[3] + myADCVals[4] + myADCVals[5] + myADCVals[6] + myADCVals[7]);
866 if (
id.
station() == 1 &&
id.ring() == 4) {
871 thisStripFired =
true;
873 if (!thisStripFired) {
874 float ADC = thisSignal - thisPedestal;
875 histos->
fill1DHist(
ADC,
"hStripPed",
"Pedestal Noise Distribution", 50, -25., 25.,
"PedestalNoise");
879 "hStripPedMEProfile",
880 "Wire TimeBin Fired",
889 ADC,
"hStripPedME",
"Pedestal Noise Distribution",
id, 50, -25., 25.,
"PedestalNoiseByLayer");
References dtNoiseAnalysis_cfi::detailedAnalysis, dqmMemoryStats::float, cms::cuda::for(), combine::histos, relativeConstraints::station, DigiDM_cff::strips, and remoteMonitoring_LED_IterMethod_cfg::threshold.
◆ doRecHits()
Definition at line 902 of file CSCValidation.cc.
904 int nRecHits =
recHits->size();
913 for (dRHIter =
recHits->begin(); dRHIter !=
recHits->end(); dRHIter++) {
918 int kEndcap = idrec.
endcap();
919 int kRing = idrec.
ring();
920 int kStation = idrec.
station();
921 int kChamber = idrec.
chamber();
925 LocalPoint rhitlocal = (*dRHIter).localPosition();
926 float xreco = rhitlocal.
x();
927 float yreco = rhitlocal.
y();
928 LocalError rerrlocal = (*dRHIter).localPositionError();
930 float xxerr = rerrlocal.
xx();
931 float yyerr = rerrlocal.
yy();
932 float xyerr = rerrlocal.
xy();
934 float stpos = (*dRHIter).positionWithinStrip();
935 float sterr = (*dRHIter).errorWithinStrip();
940 int adcsize = dRHIter->nStrips() * dRHIter->nTimeBins();
941 for (
unsigned int i = 0;
i < dRHIter->nStrips();
i++) {
942 for (
unsigned int j = 0;
j < dRHIter->nTimeBins() - 1;
j++) {
943 rHSumQ += dRHIter->adcs(
i,
j);
945 sumsides += dRHIter->adcs(
i,
j);
949 float rHratioQ = sumsides / rHSumQ;
955 rHtime = (*dRHIter).tpeak() / 50.;
962 float grecx = rhitglobal.
x();
963 float grecy = rhitglobal.
y();
974 grecx, grecy,
"hRHGlobal",
"recHit Global Position", idrec, 100, -800., 800., 100, -800., 800.,
"recHits");
975 if (kStation == 1 && (kRing == 1 || kRing == 4))
979 histos->
fill1DHistByType(rHratioQ,
"hRHRatioQ",
"Charge Ratio (Ql+Qr)/Qt", idrec, 120, -0.1, 1.1,
"recHits");
985 histos->
fill1DHistByType(stpos,
"hRHstpos",
"Reconstructed Position on Strip", idrec, 120, -0.6, 0.6,
"recHits");
987 sterr,
"hRHsterr",
"Estimated Error on Strip Measurement", idrec, 120, -0.05, 0.25,
"recHits");
989 chamberSerial(idrec), rHSumQ,
"hRHSumQProfile",
"Sum 3x3 recHit Charge", 601, -0.5, 600.5, 0, 4000,
"recHits");
991 chamberSerial(idrec), rHtime,
"hRHTimingProfile",
"recHit Timing", 601, -0.5, 600.5, -11, 11,
"recHits");
993 if (kStation == 1 && (kRing == 1 || kRing == 4))
997 histos->
fill1DHistByLayer(rHratioQ,
"hRHRatioQ",
"Charge Ratio (Ql+Qr)/Qt", idrec, 120, -0.1, 1.1,
"RHQByLayer");
1002 "recHit Local Position",
1010 "RHLocalXYByLayer");
1012 sqrt(xxerr),
"hRHxerr",
"RecHit Error on Local X", idrec, 100, -0.1, 2,
"RHErrorsByLayer");
1014 sqrt(yyerr),
"hRHyerr",
"RecHit Error on Local Y", idrec, 100, -0.1, 2,
"RHErrorsByLayer");
1016 stpos,
"hRHstpos",
"Reconstructed Position on Strip", idrec, 120, -0.6, 0.6,
"RHStripPosByLayer");
1018 sterr,
"hRHsterr",
"Estimated Error on Strip Measurement", idrec, 120, -0.05, 0.25,
"RHStripPosByLayer");
1026 histos->
fill1DHist(nRecHits,
"hRHnrechits",
"recHits per Event (all chambers)", 151, -0.5, 150.5,
"recHits");
References CSCDetId::chamber(), dtNoiseAnalysis_cfi::detailedAnalysis, CSCDetId::endcap(), combine::histos, mps_fire::i, dqmiolumiharvest::j, kLayer(), CSCDetId::layer(), CSCGeometry::layer(), FastTrackerRecHitMaskProducer_cfi::recHits, CSCDetId::ring(), mathSSE::sqrt(), CSCDetId::station(), GeomDet::toGlobal(), PV3DBase< T, PVType, FrameType >::x(), LocalError::xx(), LocalError::xy(), PV3DBase< T, PVType, FrameType >::y(), and LocalError::yy().
◆ doResolution()
Definition at line 1181 of file CSCValidation.cc.
1187 std::vector<CSCRecHit2D> theseRecHits = (*dSiter).specificRecHits();
1188 int nRH = (*dSiter).nRecHits();
1190 CLHEP::HepMatrix sp(6, 1);
1191 CLHEP::HepMatrix se(6, 1);
1192 for (std::vector<CSCRecHit2D>::const_iterator iRH = theseRecHits.begin(); iRH != theseRecHits.end(); iRH++) {
1195 int kRing = idRH.
ring();
1196 int kStation = idRH.
station();
1200 int centerid = iRH->nStrips() / 2;
1201 int centerStrip = iRH->channels(centerid);
1205 float stpos = (*iRH).positionWithinStrip();
1206 se(
kLayer, 1) = (*iRH).errorWithinStrip();
1208 if (kStation == 1 && (kRing == 1 || kRing == 4))
1209 sp(
kLayer, 1) = stpos + centerStrip;
1212 sp(
kLayer, 1) = stpos + centerStrip;
1214 sp(
kLayer, 1) = stpos - 0.5 + centerStrip;
1219 float residual = -99;
1223 float expected =
fitX(sp, se);
1224 residual = expected - sp(3, 1);
1225 pull = residual / se(3, 1);
1230 residual,
"hSResid",
"Fitted Position on Strip - Reconstructed for Layer 3",
id, 100, -0.5, 0.5,
"Resolution");
1231 histos->
fill1DHistByType(pull,
"hSStripPosPull",
"Strip Measurement Pulls",
id, 100, -5.0, 5.0,
"Resolution");
1235 "Fitted Position on Strip - Reconstructed for Layer 3",
1245 "Fitted Position on Strip - Reconstructed for Layer 3",
1250 "DetailedResolution");
References dtChamberEfficiency_cfi::cscSegments, dtNoiseAnalysis_cfi::detailedAnalysis, combine::histos, kLayer(), CSCDetId::layer(), CSCDetId::ring(), and CSCDetId::station().
◆ doSegments()
Definition at line 1087 of file CSCValidation.cc.
1099 int kEndcap =
id.
endcap();
1100 int kRing =
id.ring();
1101 int kStation =
id.station();
1102 int kChamber =
id.chamber();
1105 float chisq = (*dSiter).chi2();
1106 int nhits = (*dSiter).nRecHits();
1107 int nDOF = 2 *
nhits - 4;
1109 LocalPoint localPos = (*dSiter).localPosition();
1110 float segX = localPos.
x();
1111 float segY = localPos.
y();
1118 float globTheta = 0.;
1123 globX = globalPosition.
x();
1124 globY = globalPosition.
y();
1126 globTheta = globalDirection.
theta();
1127 globPhi = globalDirection.
phi();
1140 "Segment Global Positions;global x (cm)",
1151 histos->
fill1DHistByType((chisq / nDOF),
"hSChiSq",
"segments chi-squared/ndof",
id, 110, -0.05, 10.5,
"Segments");
1153 chisqProb,
"hSChiSqProb",
"segments chi-squared probability",
id, 110, -0.05, 1.05,
"Segments");
1154 histos->
fill1DHist(globTheta,
"hSGlobalTheta",
"segment global theta", 128, 0, 3.2,
"Segments");
1155 histos->
fill1DHist(globPhi,
"hSGlobalPhi",
"segment global phi", 128, -3.2, 3.2,
"Segments");
1157 chamberSerial(
id),
nhits,
"hSnHitsProfile",
"N hits on Segments", 601, -0.5, 600.5, -0.5, 7.5,
"Segments");
1162 (chisq / nDOF),
"hSChiSq",
"segments chi-squared/ndof",
id, 110, -0.05, 10.5,
"SegChi2ByChamber");
1164 chisqProb,
"hSChiSqProb",
"segments chi-squared probability",
id, 110, -0.05, 1.05,
"SegChi2ByChamber");
1172 histos->
fill1DHist(nSegments,
"hSnSegments",
"Segments per Event", 31, -0.5, 30.5,
"Segments");
References CSCGeometry::chamber(), ChiSquaredProbability(), dtChamberEfficiency_cfi::cscSegments, dtNoiseAnalysis_cfi::detailedAnalysis, CSCDetId::endcap(), combine::histos, nhits, PV3DBase< T, PVType, FrameType >::phi(), PV3DBase< T, PVType, FrameType >::theta(), theta(), GeomDet::toGlobal(), PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::y().
◆ doSimHits()
Definition at line 1035 of file CSCValidation.cc.
1037 for (dSHrecIter =
recHits->begin(); dSHrecIter !=
recHits->end(); dSHrecIter++) {
1039 LocalPoint rhitlocal = (*dSHrecIter).localPosition();
1040 float xreco = rhitlocal.
x();
1041 float yreco = rhitlocal.
y();
1042 float xError =
sqrt((*dSHrecIter).localPositionError().xx());
1043 float yError =
sqrt((*dSHrecIter).localPositionError().yy());
1044 float simHitXres = -99;
1045 float simHitYres = -99;
1048 float mindiffX = 99;
1049 float mindiffY = 10;
1051 PSimHitContainer::const_iterator dSHsimIter;
1052 for (dSHsimIter =
simHits->begin(); dSHsimIter !=
simHits->end(); dSHsimIter++) {
1057 if (sId == idrec &&
abs((*dSHsimIter).particleType()) == 13) {
1059 LocalPoint sHitlocal = (*dSHsimIter).localPosition();
1062 if ((sHitlocal.
x() - xreco) < mindiffX && (sHitlocal.
y() - yreco) < mindiffY) {
1063 simHitXres = (sHitlocal.
x() - xreco);
1064 simHitYres = (sHitlocal.
y() - yreco);
1065 mindiffX = (sHitlocal.
x() - xreco);
1066 xPull = simHitXres / xError;
1067 yPull = simHitYres / yError;
1073 simHitXres,
"hSimXResid",
"SimHitX - Reconstructed X", idrec, 100, -1.0, 1.0,
"Resolution");
1075 simHitYres,
"hSimYResid",
"SimHitY - Reconstructed Y", idrec, 100, -5.0, 5.0,
"Resolution");
References funct::abs(), combine::histos, FastTrackerRecHitMaskProducer_cfi::recHits, FastTrackerRecHitCombiner_cfi::simHits, mathSSE::sqrt(), PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::y().
◆ doStandalone()
Definition at line 1262 of file CSCValidation.cc.
1263 int nSAMuons = saMuons->size();
1264 histos->
fill1DHist(nSAMuons,
"trNSAMuons",
"N Standalone Muons per Event", 6, -0.5, 5.5,
"STAMuons");
1266 for (reco::TrackCollection::const_iterator
muon = saMuons->begin();
muon != saMuons->end(); ++
muon) {
1267 float preco =
muon->p();
1268 float ptreco =
muon->pt();
1269 int n =
muon->recHitsSize();
1271 float normchi2 =
muon->normalizedChi2();
1283 std::vector<CSCDetId> staChambers;
1285 const DetId detId((*hit)->geographicalId());
1290 if (rpcId.region() == 1) {
1294 if (rpcId.region() == -1) {
1303 staChambers.push_back(detId.rawId());
1305 if (cscId.endcap() == 1) {
1309 if (cscId.endcap() == 2) {
1322 double crudeLength = deltaPnt.
mag();
1323 double deltaPhi = innerPnt.phi() - outerPnt.phi();
1324 double innerGlobalPolarAngle = innerKin.theta();
1325 double outerGlobalPolarAngle = outerKin.theta();
1328 histos->
fill1DHist(
n,
"trN",
"N hits on a STA Muon Track", 51, -0.5, 50.5,
"STAMuons");
1330 histos->
fill1DHist(
np,
"trNp",
"N hits on a STA Muon Track (plus endcap)", 51, -0.5, 50.5,
"STAMuons");
1332 histos->
fill1DHist(nm,
"trNm",
"N hits on a STA Muon Track (minus endcap)", 51, -0.5, 50.5,
"STAMuons");
1333 histos->
fill1DHist(nDTHits,
"trNDT",
"N DT hits on a STA Muon Track", 51, -0.5, 50.5,
"STAMuons");
1334 histos->
fill1DHist(nCSCHits,
"trNCSC",
"N CSC hits on a STA Muon Track", 51, -0.5, 50.5,
"STAMuons");
1336 histos->
fill1DHist(nCSCHitsp,
"trNCSCp",
"N CSC hits on a STA Muon Track (+ endcap)", 51, -0.5, 50.5,
"STAMuons");
1338 histos->
fill1DHist(nCSCHitsm,
"trNCSCm",
"N CSC hits on a STA Muon Track (- endcap)", 51, -0.5, 50.5,
"STAMuons");
1339 histos->
fill1DHist(nRPCHits,
"trNRPC",
"N RPC hits on a STA Muon Track", 51, -0.5, 50.5,
"STAMuons");
1341 histos->
fill1DHist(nRPCHitsp,
"trNRPCp",
"N RPC hits on a STA Muon Track (+ endcap)", 51, -0.5, 50.5,
"STAMuons");
1343 histos->
fill1DHist(nRPCHitsm,
"trNRPCm",
"N RPC hits on a STA Muon Track (- endcap)", 51, -0.5, 50.5,
"STAMuons");
1344 histos->
fill1DHist(preco,
"trP",
"STA Muon Momentum", 100, 0, 300,
"STAMuons");
1347 histos->
fill1DHist(normchi2,
"trNormChi2",
"STA Muon Normalized Chi2", 100, 0, 10,
"STAMuons");
1348 histos->
fill1DHist(crudeLength,
"trLength",
"Straight Line Length of STA Muon", 120, 0., 2400.,
"STAMuons");
1350 deltaPhi,
"trDeltaPhi",
"Delta-Phi Between Inner and Outer STA Muon Pos.", 100, -0.5, 0.5,
"STAMuons");
1352 innerGlobalPolarAngle,
"trInnerPolar",
"Polar Angle of Inner P Vector (STA muons)", 128, 0, 3.2,
"STAMuons");
1354 outerGlobalPolarAngle,
"trOuterPolar",
"Polar Angle of Outer P Vector (STA muons)", 128, 0, 3.2,
"STAMuons");
1355 histos->
fill1DHist(innerPnt.phi(),
"trInnerPhi",
"Phi of Inner Position (STA muons)", 256, -3.2, 3.2,
"STAMuons");
1356 histos->
fill1DHist(outerPnt.phi(),
"trOuterPhi",
"Phi of Outer Position (STA muons)", 256, -3.2, 3.2,
"STAMuons");
References hltPixelTracks_cff::chi2, MuonSubdetId::CSC, SiPixelRawToDigiRegional_cfi::deltaPhi, MuonSubdetId::DT, combine::histos, PV3DBase< T, PVType, FrameType >::mag(), DetId::Muon, HLT_2018_cff::muon, dqmiodumpmetadata::n, np, and MuonSubdetId::RPC.
◆ doStripDigis()
Definition at line 810 of file CSCValidation.cc.
811 int nStripsFired = 0;
814 std::vector<CSCStripDigi>::const_iterator stripIter = (*dSDiter).second.first;
815 std::vector<CSCStripDigi>::const_iterator lStrip = (*dSDiter).second.second;
816 for (; stripIter != lStrip; ++stripIter) {
817 int myStrip = stripIter->getStrip();
818 std::vector<int> myADCVals = stripIter->getADCCounts();
819 bool thisStripFired =
false;
820 float thisPedestal = 0.5 * (
float)(myADCVals[0] + myADCVals[1]);
823 for (
unsigned int iCount = 0; iCount < myADCVals.size(); iCount++) {
824 diff = (
float)myADCVals[iCount] - thisPedestal;
826 thisStripFired =
true;
829 if (thisStripFired) {
840 if (nStripsFired == 0)
843 histos->
fill1DHist(nStripsFired,
"hStripNFired",
"Fired Strips per Event", 251, -0.5, 250.5,
"Digis");
References dtNoiseAnalysis_cfi::detailedAnalysis, change_name::diff, dqmMemoryStats::float, cms::cuda::for(), combine::histos, DigiDM_cff::strips, and remoteMonitoring_LED_IterMethod_cfg::threshold.
◆ doTimeMonitoring()
Get a handle to the FED data collection
uncomment this for regional unpacking if (id!=SOME_ID) continue;
Take a reference to this FED's data
if fed has data then unpack it
examine event for integrity
get a pointer to data and pass it to constructor for unpacking
get a reference to dduData
set default detid to that for E=+z, S=1, R=1, C=1, L=1
skip the DDU if its data has serious errors define a mask for serious errors
get a reference to chamber data
adjust crate numbers for MTCC data
default value for all digis not related to cfebs
layer=0 flags entire chamber
check alct data integrity
check tmb data integrity
Definition at line 2941 of file CSCValidation.cc.
2950 map<CSCDetId, float> segment_median_map;
2951 map<CSCDetId, GlobalPoint> segment_position_map;
2961 LocalPoint localPos = (*dSiter).localPosition();
2965 globalPosition = cscchamber->
toGlobal(localPos);
2969 std::vector<CSCRecHit2D> theseRecHits = (*dSiter).specificRecHits();
2970 int nRH = (*dSiter).nRecHits();
2975 vector<float> non_zero;
2977 for (vector<CSCRecHit2D>::const_iterator iRH = theseRecHits.begin(); iRH != theseRecHits.end(); iRH++) {
2978 non_zero.push_back(iRH->tpeak());
2983 sort(non_zero.begin(), non_zero.end());
2984 int middle_index = non_zero.size() / 2;
2985 float average_two = (non_zero.at(middle_index - 1) + non_zero.at(middle_index)) / 2.;
2986 if (non_zero.size() % 2)
2987 average_two = non_zero.at(middle_index);
2990 segment_median_map[
id] = average_two;
2991 segment_position_map[
id] = globalPosition;
2993 double distToIP =
sqrt(globalPosition.
x() * globalPosition.
x() + globalPosition.
y() * globalPosition.
y() +
2994 globalPosition.
z() * globalPosition.
z());
2999 "Segment mean time",
3008 "timeChamberByType",
3009 "Segment mean time by chamber",
3019 "seg_time_vs_distToIP",
3020 "Segment time vs. Distance to IP",
3030 "seg_time_vs_globZ",
3031 "Segment time vs. z position",
3041 "seg_time_vs_absglobZ",
3042 "Segment time vs. abs(z position)",
3054 map<CSCDetId, float>::const_iterator it_outer;
3055 map<CSCDetId, float>::const_iterator it_inner;
3056 for (it_outer = segment_median_map.begin(); it_outer != segment_median_map.end(); it_outer++) {
3057 CSCDetId id_outer = it_outer->first;
3058 float t_outer = it_outer->second;
3061 for (it_inner = segment_median_map.begin(); it_inner != segment_median_map.end(); it_inner++) {
3062 CSCDetId id_inner = it_inner->first;
3063 float t_inner = it_inner->second;
3079 id_outer.
ring() == id_inner.
ring()) {
3081 "diff_opposite_endcaps",
3082 "#Delta t [ME+]-[ME-] for chambers in same station and ring",
3088 "diff_opposite_endcaps_byType",
3089 "#Delta t [ME+]-[ME-] for chambers in same station and ring",
3105 vector<L1MuGMTReadoutRecord> L1Mrec = pCollection->
getRecords();
3106 vector<L1MuGMTReadoutRecord>::const_iterator igmtrr;
3107 int L1GMT_BXN = -100;
3108 bool has_CSCTrigger =
false;
3109 bool has_beamHaloTrigger =
false;
3110 for (igmtrr = L1Mrec.begin(); igmtrr != L1Mrec.end(); igmtrr++) {
3111 std::vector<L1MuRegionalCand>::const_iterator iter1;
3112 std::vector<L1MuRegionalCand> rmc;
3115 rmc = igmtrr->getCSCCands();
3116 for (iter1 = rmc.begin(); iter1 != rmc.end(); iter1++) {
3117 if (!(*iter1).empty()) {
3119 int kQuality = (*iter1).quality();
3121 has_beamHaloTrigger =
true;
3124 if (igmtrr->getBxInEvent() == 0 && icsc > 0) {
3126 L1GMT_BXN = igmtrr->getBxNr();
3127 has_CSCTrigger =
true;
3128 }
else if (igmtrr->getBxInEvent() == 0) {
3130 L1GMT_BXN = igmtrr->getBxNr();
3139 map<CSCDetId, int> ALCT_KeyWG_map;
3142 const CSCDetId& idALCT = (*j).first;
3145 if ((*digiIt).isValid()) {
3147 histos->
fill1DHist((*digiIt).getBX(),
"ALCT_getBX",
"ALCT.getBX()", 11, -0.5, 10.5,
"TimeMonitoring");
3149 (*digiIt).getFullBX(),
"ALCT_getFullBX",
"ALCT.getFullBX()", 3601, -0.5, 3600.5,
"TimeMonitoring");
3151 if (ALCT_KeyWG_map.find(idALCT.
chamberId()) == ALCT_KeyWG_map.end()) {
3152 ALCT_KeyWG_map[idALCT.
chamberId()] = (*digiIt).getKeyWG();
3163 map<CSCDetId, int> CLCT_getFullBx_map;
3166 const CSCDetId& idCLCT = (*j).first;
3169 if ((*digiIt).isValid()) {
3171 histos->
fill1DHist((*digiIt).getBX(),
"CLCT_getBX",
"CLCT.getBX()", 11, -0.5, 10.5,
"TimeMonitoring");
3173 (*digiIt).getFullBX(),
"CLCT_getFullBX",
"CLCT.getFullBX()", 3601, -0.5, 3600.5,
"TimeMonitoring");
3175 if (CLCT_getFullBx_map.find(idCLCT.
chamberId()) == CLCT_getFullBx_map.end()) {
3176 CLCT_getFullBx_map[idCLCT.
chamberId()] = (*digiIt).getFullBX();
3186 int n_correlatedlcts = 0;
3190 if ((*digiIt).isValid()) {
3193 (*digiIt).getBX(),
"CorrelatedLCTS_getBX",
"CorrelatedLCT.getBX()", 11, -0.5, 10.5,
"TimeMonitoring");
3198 int nRecHits =
recHits->size();
3200 if (has_CSCTrigger) {
3201 histos->
fill1DHist(L1GMT_BXN,
"BX_L1CSCCand",
"BX of L1 CSC Cand", 4001, -0.5, 4000.5,
"TimeMonitoring");
3204 "n_ALCTs_v_BX_L1CSCCand",
3205 "Number of ALCTs vs. BX of L1 CSC Cand",
3215 "n_CLCTs_v_BX_L1CSCCand",
3216 "Number of CLCTs vs. BX of L1 CSC Cand",
3226 "n_CorrelatedLCTs_v_BX_L1CSCCand",
3227 "Number of CorrelatedLCTs vs. BX of L1 CSC Cand",
3237 "n_RecHits_v_BX_L1CSCCand",
3238 "Number of RecHits vs. BX of L1 CSC Cand",
3248 "n_Segments_v_BX_L1CSCCand",
3249 "Number of Segments vs. BX of L1 CSC Cand",
3258 if (has_CSCTrigger && has_beamHaloTrigger) {
3260 L1GMT_BXN,
"BX_L1CSCCand_w_beamHalo",
"BX of L1 CSC (w beamHalo bit)", 4001, -0.5, 4000.5,
"TimeMonitoring");
3263 "n_ALCTs_v_BX_L1CSCCand_w_beamHalo",
3264 "Number of ALCTs vs. BX of L1 CSC Cand (w beamHalo bit)",
3274 "n_CLCTs_v_BX_L1CSCCand_w_beamHalo",
3275 "Number of CLCTs vs. BX of L1 CSC Cand (w beamHalo bit)",
3285 "n_CorrelatedLCTs_v_BX_L1CSCCand_w_beamHalo",
3286 "Number of CorrelatedLCTs vs. BX of L1 CSC Cand (w beamHalo bit)",
3296 "n_RecHits_v_BX_L1CSCCand_w_beamHalo",
3297 "Number of RecHits vs. BX of L1 CSC Cand (w beamHalo bit)",
3307 "n_Segments_v_BX_L1CSCCand_w_beamHalo",
3308 "Number of Segments vs. BX of L1 CSC Cand (w beamHalo bit)",
3330 event.getByToken(
rd_token, rawdata);
3331 bool goodEvent =
false;
3335 unsigned long dccBinCheckMask = 0x06080016;
3336 unsigned int examinerMask = 0x1FEBF3F6;
3337 unsigned int errorMask = 0x0;
3346 unsigned long length = fedData.
size();
3350 std::stringstream examiner_out, examiner_err;
3355 if (examinerMask & 0x40000)
3357 if (examinerMask & 0x8000)
3359 if (examinerMask & 0x0400)
3361 examiner->
setMask(examinerMask);
3362 const short unsigned int*
data = (
short unsigned int*)fedData.
data();
3367 goodEvent = !(examiner->
errors() & dccBinCheckMask);
3376 const std::vector<CSCDDUEventData>& dduData = dccData.
dduData();
3381 for (
unsigned int iDDU = 0; iDDU < dduData.size(); ++iDDU) {
3384 if (dduData[iDDU].trailer().errorstat() & errorMask) {
3385 LogTrace(
"CSCDCCUnpacker|CSCRawToDigi") <<
"DDU# " << iDDU <<
" has serious error - no digis unpacked! "
3386 << std::hex << dduData[iDDU].trailer().errorstat();
3391 const std::vector<CSCEventData>& cscData = dduData[iDDU].cscData();
3392 for (
unsigned int iCSC = 0; iCSC < cscData.size(); ++iCSC) {
3394 int vmecrate = cscData[iCSC].dmbHeader()->crateID();
3395 int dmb = cscData[iCSC].dmbHeader()->dmbID();
3403 if ((vmecrate >= 1) && (vmecrate <= 60) && (dmb >= 1) && (dmb <= 10) && (dmb != 6)) {
3404 layer = pcrate->
detId(vmecrate, dmb, icfeb, ilayer);
3406 LogTrace(
"CSCTimingAlignment|CSCDCCUnpacker|CSCRawToDigi") <<
" detID input out of range!!! ";
3407 LogTrace(
"CSCTimingAlignment|CSCDCCUnpacker|CSCRawToDigi")
3408 <<
" skipping chamber vme= " << vmecrate <<
" dmb= " << dmb;
3413 int nalct = cscData[iCSC].dmbHeader()->nalct();
3414 bool goodALCT =
false;
3416 if (nalct && cscData[iCSC].alctHeader()) {
3417 if (cscData[iCSC].alctHeader()->
check()) {
3423 int nclct = cscData[iCSC].dmbHeader()->nclct();
3424 bool goodTMB =
false;
3425 if (nclct && cscData[iCSC].tmbData()) {
3426 if (cscData[iCSC].tmbHeader()->
check()) {
3427 if (cscData[iCSC].clctData()->
check())
3432 if (goodTMB && goodALCT) {
3433 if (ALCT_KeyWG_map.find(layer) == ALCT_KeyWG_map.end()) {
3434 printf(
"no ALCT info for Chamber %d %d %d %d \n",
3441 if (CLCT_getFullBx_map.find(layer) == CLCT_getFullBx_map.end()) {
3442 printf(
"no CLCT info for Chamber %d %d %d %d \n",
3449 int ALCT0Key = ALCT_KeyWG_map.find(layer)->second;
3450 int CLCTPretrigger = CLCT_getFullBx_map.find(layer)->second;
3452 const CSCTMBHeader* tmbHead = cscData[iCSC].tmbHeader();
3463 "TMB_ALCTMatchTime",
3464 "TMB_ALCTMatchTime",
3472 tmbHead->
BXNCount(),
"TMB_BXNCount",
"TMB_BXNCount", 3601, -0.5, 3600.5,
"TimeMonitoring");
3474 tmbHead->
ALCTMatchTime(),
"TMB_ALCTMatchTime",
"TMB_ALCTMatchTime", 7, -0.5, 6.5,
"TimeMonitoring");
3477 "TMB_ALCTMatchTime",
3478 "TMB_ALCTMatchTime",
3487 "prof_TMB_ALCTMatchTime",
3488 "prof_TMB_ALCTMatchTime",
3497 "prof_TMB_ALCTMatchTime_v_ALCT0KeyWG",
3498 "prof_TMB_ALCTMatchTime_v_ALCT0KeyWG",
3507 "prf_TMB_ALCTMatchTime_v_ALCT0KeyWG",
3508 "prf_TMB_ALCTMatchTime_v_ALCT0KeyWG",
3520 if (TMB_ALCT_rel_L1A > 3563)
3521 TMB_ALCT_rel_L1A = TMB_ALCT_rel_L1A - 3564;
3522 if (TMB_ALCT_rel_L1A < 0)
3523 TMB_ALCT_rel_L1A = TMB_ALCT_rel_L1A + 3564;
3527 TMB_ALCT_rel_L1A,
"h1D_TMB_ALCT_rel_L1A",
"h1D_TMB_ALCT_rel_L1A", 11, 144.5, 155.5,
"TimeMonitoring");
3530 "h2D_TMB_ALCT_rel_L1A",
3531 "h2D_TMB_ALCT_rel_L1A",
3541 "h2D_TMB_ALCT_rel_L1A_by_ring",
3542 "h2D_TMB_ALCT_rel_L1A_by_ring",
3552 "prof_TMB_ALCT_rel_L1A",
3553 "prof_TMB_ALCT_rel_L1A",
3562 "prof_TMB_ALCT_rel_L1A_by_ring",
3563 "prof_TMB_ALCT_rel_L1A_by_ring",
3573 "h2D_TMB_ALCT_rel_L1A_v_ALCT0KeyWG",
3574 "h2D_TMB_ALCT_rel_L1A_v_ALCT0KeyWG",
3584 "prof_TMB_ALCT_rel_L1A_v_ALCT0KeyWG",
3585 "prof_TMB_ALCT_rel_L1A_v_ALCT0KeyWG",
3594 "prf_TMB_ALCT_rel_L1A_v_ALCT0KeyWG",
3595 "prf_TMB_ALCT_rel_L1A_v_ALCT0KeyWG",
3608 if (examiner !=
nullptr)
References CSCTMBHeader::ALCTMatchTime(), CSCTMBHeader::BXNCount(), relativeConstraints::chamber, CSCDetId::chamber(), CSCGeometry::chamber(), CSCDetId::chamberId(), RPCNoise_example::check, CSCDCCExaminer::check(), CSCDCCExaminer::crcALCT(), CSCDCCExaminer::crcCFEB(), CSCDCCExaminer::crcTMB(), dtChamberEfficiency_cfi::cscSegments, FEDRawData::data(), std::data(), CSCDCCEventData::dduData(), CSCCrateMap::detId(), CSCDetId::endcap(), CSCDCCExaminer::errors(), FEDRawDataCollection::FEDData(), edm::EventSetup::get(), get, L1MuGMTReadoutCollection::getRecords(), combine::histos, triggerObjects_cff::id, dqmiolumiharvest::j, LogTrace, FEDNumbering::MAXCSCFEDID, FEDNumbering::MINCSCFEDID, edm::ESHandle< T >::product(), FastTimerService_cff::range, FastTrackerRecHitMaskProducer_cfi::recHits, CSCDetId::ring(), CSCDCCExaminer::setMask(), FEDRawData::size(), mathSSE::sqrt(), CSCDetId::station(), GeomDet::toGlobal(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
◆ doTrigger()
Definition at line 554 of file CSCValidation.cc.
555 std::vector<L1MuGMTReadoutRecord> L1Mrec = pCollection->
getRecords();
556 std::vector<L1MuGMTReadoutRecord>::const_iterator igmtrr;
558 bool csc_l1a =
false;
560 bool rpcf_l1a =
false;
561 bool rpcb_l1a =
false;
562 bool beamHaloTrigger =
false;
564 int myBXNumber = -1000;
566 for (igmtrr = L1Mrec.begin(); igmtrr != L1Mrec.end(); igmtrr++) {
567 std::vector<L1MuRegionalCand>::const_iterator iter1;
568 std::vector<L1MuRegionalCand> rmc;
572 rmc = igmtrr->getCSCCands();
573 for (iter1 = rmc.begin(); iter1 != rmc.end(); iter1++) {
574 if (!(*iter1).empty()) {
576 int kQuality = (*iter1).quality();
578 beamHaloTrigger =
true;
581 if (igmtrr->getBxInEvent() == 0 && icsc > 0)
583 if (igmtrr->getBxInEvent() == 0) {
584 myBXNumber = igmtrr->getBxNr();
589 rmc = igmtrr->getDTBXCands();
590 for (iter1 = rmc.begin(); iter1 != rmc.end(); iter1++) {
591 if (!(*iter1).empty()) {
595 if (igmtrr->getBxInEvent() == 0 && idt > 0)
600 rmc = igmtrr->getBrlRPCCands();
601 for (iter1 = rmc.begin(); iter1 != rmc.end(); iter1++) {
602 if (!(*iter1).empty()) {
606 if (igmtrr->getBxInEvent() == 0 && irpcb > 0)
611 rmc = igmtrr->getFwdRPCCands();
612 for (iter1 = rmc.begin(); iter1 != rmc.end(); iter1++) {
613 if (!(*iter1).empty()) {
617 if (igmtrr->getBxInEvent() == 0 && irpcf > 0)
623 histos->
fill1DHist(myBXNumber,
"vtBXNumber",
"BX Number", 4001, -0.5, 4000.5,
"Trigger");
643 if (dt_l1a || rpcb_l1a || rpcf_l1a)
645 if (!(dt_l1a || rpcb_l1a || rpcf_l1a))
655 if (dt_l1a || rpcb_l1a || rpcf_l1a)
657 if (!(dt_l1a || rpcb_l1a || rpcf_l1a))
References L1MuGMTReadoutCollection::getRecords(), and combine::histos.
◆ doWireDigis()
Definition at line 775 of file CSCValidation.cc.
776 int nWireGroupsTotal = 0;
779 std::vector<CSCWireDigi>::const_iterator wireIter = (*dWDiter).second.first;
780 std::vector<CSCWireDigi>::const_iterator lWire = (*dWDiter).second.second;
781 for (; wireIter != lWire; ++wireIter) {
782 int myWire = wireIter->getWireGroup();
783 int myTBin = wireIter->getTimeBin();
788 chamberSerial(
id), myTBin,
"hWireTBinProfile",
"Wire TimeBin Fired", 601, -0.5, 600.5, -0.5, 16.5,
"Digis");
791 myWire,
"hWireWire",
"Wiregroup Numbers Fired",
id, 113, -0.5, 112.5,
"WireNumberByLayer");
798 if (nWireGroupsTotal == 0)
799 nWireGroupsTotal = -1;
801 histos->
fill1DHist(nWireGroupsTotal,
"hWirenGroupsTotal",
"Wires Fired Per Event", 151, -0.5, 150.5,
"Digis");
References dtNoiseAnalysis_cfi::detailedAnalysis, cms::cuda::for(), combine::histos, and DigiDM_cff::wires.
◆ endJob()
void CSCValidation::endJob |
( |
void |
| ) |
|
|
overridevirtual |
◆ extrapolate1D()
double CSCValidation::extrapolate1D |
( |
double |
initPosition, |
|
|
double |
initDirection, |
|
|
double |
parameterOfTheLine |
|
) |
| |
|
inlineprivate |
Definition at line 200 of file CSCValidation.h.
201 double extrapolatedPosition = initPosition + initDirection * parameterOfTheLine;
202 return extrapolatedPosition;
◆ fillEfficiencyHistos()
void CSCValidation::fillEfficiencyHistos |
( |
int |
bin, |
|
|
int |
flag |
|
) |
| |
|
private |
◆ filterEvents()
◆ findNonAssociatedRecHits()
Definition at line 2032 of file CSCValidation.cc.
2034 for (std::multimap<CSCDetId, CSCRecHit2D>::iterator allRHiter =
AllRechits.begin(); allRHiter !=
AllRechits.end();
2037 LocalPoint lpRH = (allRHiter->second).localPosition();
2038 float xrec = lpRH.
x();
2039 float yrec = lpRH.
y();
2040 float zrec = lpRH.
z();
2042 bool foundmatch =
false;
2043 multimap<CSCDetId, CSCRecHit2D>::iterator segRHit;
2046 for (; segRHit !=
SegRechits.upper_bound(idRH); ++segRHit) {
2047 LocalPoint lposRH = (segRHit->second).localPosition();
2048 float xpos = lposRH.
x();
2049 float ypos = lposRH.
y();
2050 float zpos = lposRH.
z();
2052 if (xrec == xpos && yrec == ypos && zrec == zpos) {
2057 float dclose = 1000.;
2060 d =
sqrt(
pow(xrec - xpos, 2) +
pow(yrec - ypos, 2) +
pow(zrec - zpos, 2));
2063 if (
distRHmap.find((allRHiter->second)) ==
2065 distRHmap.insert(make_pair(allRHiter->second, dclose));
2070 make_pair(allRHiter->second, dclose));
2081 for (std::map<CSCRecHit2D, float, ltrh>::iterator iter =
distRHmap.begin(); iter !=
distRHmap.end(); ++iter) {
2084 "Distance of Non Associated RecHit from closest Segment RecHit",
2088 "NonAssociatedRechits");
2095 int kEndcap = idrec.
endcap();
2096 int cEndcap = idrec.
endcap();
2099 int kRing = idrec.
ring();
2100 int kStation = idrec.
station();
2101 int kChamber = idrec.
chamber();
2105 LocalPoint rhitlocal = (iter->second).localPosition();
2106 float xreco = rhitlocal.
x();
2107 float yreco = rhitlocal.
y();
2110 int centerid = (iter->second).
nStrips() / 2;
2111 int centerStrip = (iter->second).
channels(centerid);
2115 float sumsides = 0.;
2117 for (
unsigned int i = 0;
i < (iter->second).
nStrips();
i++) {
2118 for (
unsigned int j = 0;
j < (iter->second).
nTimeBins() - 1;
j++) {
2119 rHSumQ += (iter->second).adcs(
i,
j);
2121 sumsides += (iter->second).adcs(
i,
j);
2125 float rHratioQ = sumsides / rHSumQ;
2130 float rHtime = (iter->second).tpeak() / 50;
2140 float grecx = rhitglobal.
x();
2141 float grecy = rhitglobal.
y();
2144 int kCodeBroad = cEndcap * (4 * (kStation - 1) + kRing);
2145 int kCodeNarrow = cEndcap * (100 * (kRing - 1) + kChamber);
2149 kCodeBroad,
"hNARHCodeBroad",
"broad scope code for recHits", 33, -16.5, 16.5,
"NonAssociatedRechits");
2153 "narrow scope recHit code station 1",
2157 "NonAssociatedRechits");
2161 "narrow scope recHit code station 2",
2165 "NonAssociatedRechits");
2169 "narrow scope recHit code station 3",
2173 "NonAssociatedRechits");
2177 "narrow scope recHit code station 4",
2181 "NonAssociatedRechits");
2183 histos->
fill1DHistByType(xreco,
"hNARHX",
"Local X of recHit", idrec, 160, -80., 80.,
"NonAssociatedRechits");
2184 histos->
fill1DHistByType(yreco,
"hNARHY",
"Local Y of recHit", idrec, 60, -180., 180.,
"NonAssociatedRechits");
2185 if (kStation == 1 && (kRing == 1 || kRing == 4))
2187 rHSumQ,
"hNARHSumQ",
"Sum 3x3 recHit Charge", idrec, 250, 0, 4000,
"NonAssociatedRechits");
2190 rHSumQ,
"hNARHSumQ",
"Sum 3x3 recHit Charge", idrec, 250, 0, 2000,
"NonAssociatedRechits");
2192 rHratioQ,
"hNARHRatioQ",
"Ratio (Ql+Qr)/Qt)", idrec, 120, -0.1, 1.1,
"NonAssociatedRechits");
2193 histos->
fill1DHistByType(rHtime,
"hNARHTiming",
"recHit Timing", idrec, 200, -10, 10,
"NonAssociatedRechits");
2197 "recHit Global Position",
2205 "NonAssociatedRechits");
2207 rHwidth,
"hNARHwidth",
"width for Non associated recHit", idrec, 21, -0.5, 20.5,
"NonAssociatedRechits");
2210 for (std::multimap<CSCDetId, CSCRecHit2D>::iterator iter =
SegRechits.begin(); iter !=
SegRechits.end(); ++iter) {
2212 int kEndcap = idrec.
endcap();
2213 int cEndcap = idrec.
endcap();
2216 int kRing = idrec.
ring();
2217 int kStation = idrec.
station();
2218 int kChamber = idrec.
chamber();
2222 LocalPoint rhitlocal = (iter->second).localPosition();
2223 float xreco = rhitlocal.
x();
2224 float yreco = rhitlocal.
y();
2227 int centerid = (iter->second).
nStrips() / 2;
2228 int centerStrip = (iter->second).
channels(centerid);
2233 float sumsides = 0.;
2235 for (
unsigned int i = 0;
i < (iter->second).
nStrips();
i++) {
2236 for (
unsigned int j = 0;
j < (iter->second).
nTimeBins() - 1;
j++) {
2237 rHSumQ += (iter->second).adcs(
i,
j);
2239 sumsides += (iter->second).adcs(
i,
j);
2243 float rHratioQ = sumsides / rHSumQ;
2248 float rHtime = (iter->second).tpeak() / 50;
2258 float grecx = rhitglobal.
x();
2259 float grecy = rhitglobal.
y();
2262 int kCodeBroad = cEndcap * (4 * (kStation - 1) + kRing);
2263 int kCodeNarrow = cEndcap * (100 * (kRing - 1) + kChamber);
2267 kCodeBroad,
"hSegRHCodeBroad",
"broad scope code for recHits", 33, -16.5, 16.5,
"AssociatedRechits");
2270 "hSegRHCodeNarrow1",
2271 "narrow scope recHit code station 1",
2275 "AssociatedRechits");
2278 "hSegRHCodeNarrow2",
2279 "narrow scope recHit code station 2",
2283 "AssociatedRechits");
2286 "hSegRHCodeNarrow3",
2287 "narrow scope recHit code station 3",
2291 "AssociatedRechits");
2294 "hSegRHCodeNarrow4",
2295 "narrow scope recHit code station 4",
2299 "AssociatedRechits");
2301 histos->
fill1DHistByType(xreco,
"hSegRHX",
"Local X of recHit", idrec, 160, -80., 80.,
"AssociatedRechits");
2302 histos->
fill1DHistByType(yreco,
"hSegRHY",
"Local Y of recHit", idrec, 60, -180., 180.,
"AssociatedRechits");
2303 if (kStation == 1 && (kRing == 1 || kRing == 4))
2304 histos->
fill1DHistByType(rHSumQ,
"hSegRHSumQ",
"Sum 3x3 recHit Charge", idrec, 250, 0, 4000,
"AssociatedRechits");
2306 histos->
fill1DHistByType(rHSumQ,
"hSegRHSumQ",
"Sum 3x3 recHit Charge", idrec, 250, 0, 2000,
"AssociatedRechits");
2307 histos->
fill1DHistByType(rHratioQ,
"hSegRHRatioQ",
"Ratio (Ql+Qr)/Qt)", idrec, 120, -0.1, 1.1,
"AssociatedRechits");
2308 histos->
fill1DHistByType(rHtime,
"hSegRHTiming",
"recHit Timing", idrec, 200, -10, 10,
"AssociatedRechits");
2312 "recHit Global Position",
2320 "AssociatedRechits");
2322 rHwidth,
"hSegRHwidth",
"width for Non associated recHit", idrec, 21, -0.5, 20.5,
"AssociatedRechits");
References CSCDetId::chamber(), ewkTauDQM_cfi::channels, ztail::d, CSCDetId::endcap(), combine::histos, mps_fire::i, dqmiolumiharvest::j, kLayer(), CSCDetId::layer(), CSCGeometry::layer(), me0TriggerPseudoDigis_cff::nStrips, dtSegmentTask_hlt_cfi::nTimeBins, funct::pow(), CSCDetId::ring(), mathSSE::sqrt(), CSCDetId::station(), DigiDM_cff::strips, GeomDet::toGlobal(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
◆ fitX()
float CSCValidation::fitX |
( |
const CLHEP::HepMatrix & |
sp, |
|
|
const CLHEP::HepMatrix & |
ep |
|
) |
| |
|
private |
◆ getEfficiency()
void CSCValidation::getEfficiency |
( |
float |
bin, |
|
|
float |
Norm, |
|
|
std::vector< float > & |
eff |
|
) |
| |
|
private |
◆ getSignal()
Definition at line 1908 of file CSCValidation.cc.
1920 for (sIt = stripdigis.begin(); sIt != stripdigis.end(); sIt++) {
1924 std::vector<CSCStripDigi>::const_iterator digiItr = (*sIt).second.first;
1925 std::vector<CSCStripDigi>::const_iterator
last = (*sIt).second.second;
1926 for (; digiItr !=
last; ++digiItr) {
1927 int thisStrip = digiItr->getStrip();
1928 if (thisStrip == (centerStrip)) {
1929 std::vector<int> myADCVals = digiItr->getADCCounts();
1930 float thisPedestal = 0.5 * (
float)(myADCVals[0] + myADCVals[1]);
1931 float thisSignal = (myADCVals[2] + myADCVals[3] + myADCVals[4] + myADCVals[5] + myADCVals[6] + myADCVals[7]);
1932 SigADC[0] = thisSignal - 6 * thisPedestal;
1935 if (thisStrip == (centerStrip + 1)) {
1936 std::vector<int> myADCVals = digiItr->getADCCounts();
1937 float thisPedestal = 0.5 * (
float)(myADCVals[0] + myADCVals[1]);
1938 float thisSignal = (myADCVals[2] + myADCVals[3] + myADCVals[4] + myADCVals[5] + myADCVals[6] + myADCVals[7]);
1939 SigADC[1] = thisSignal - 6 * thisPedestal;
1941 if (thisStrip == (centerStrip + 2)) {
1942 std::vector<int> myADCVals = digiItr->getADCCounts();
1943 float thisPedestal = 0.5 * (
float)(myADCVals[0] + myADCVals[1]);
1944 float thisSignal = (myADCVals[2] + myADCVals[3] + myADCVals[4] + myADCVals[5] + myADCVals[6] + myADCVals[7]);
1945 SigADC[2] = thisSignal - 6 * thisPedestal;
1947 if (thisStrip == (centerStrip - 1)) {
1948 std::vector<int> myADCVals = digiItr->getADCCounts();
1949 float thisPedestal = 0.5 * (
float)(myADCVals[0] + myADCVals[1]);
1950 float thisSignal = (myADCVals[2] + myADCVals[3] + myADCVals[4] + myADCVals[5] + myADCVals[6] + myADCVals[7]);
1951 SigADC[3] = thisSignal - 6 * thisPedestal;
1953 if (thisStrip == (centerStrip - 2)) {
1954 std::vector<int> myADCVals = digiItr->getADCCounts();
1955 float thisPedestal = 0.5 * (
float)(myADCVals[0] + myADCVals[1]);
1956 float thisSignal = (myADCVals[2] + myADCVals[3] + myADCVals[4] + myADCVals[5] + myADCVals[6] + myADCVals[7]);
1957 SigADC[4] = thisSignal - 6 * thisPedestal;
1960 TotalADC = 0.2 * (SigADC[0] + SigADC[1] + SigADC[2] + SigADC[3] + SigADC[4]);
References dqmMemoryStats::float, and dqmdumpme::last.
◆ getthisSignal()
Definition at line 2331 of file CSCValidation.cc.
2337 for (sIt = stripdigis.begin(); sIt != stripdigis.end(); sIt++) {
2342 vector<CSCStripDigi>::const_iterator digiItr = (*sIt).second.first;
2343 vector<CSCStripDigi>::const_iterator
last = (*sIt).second.second;
2347 if (St == 1 &&
Rg == 4) {
2348 while (centerStrip > 16)
2351 for (; digiItr !=
last; ++digiItr) {
2352 int thisStrip = digiItr->getStrip();
2354 std::vector<int> myADCVals = digiItr->getADCCounts();
2355 float thisPedestal = 0.5 * (
float)(myADCVals[0] + myADCVals[1]);
2357 if (thisStrip == (centerStrip)) {
2358 thisADC =
Signal - thisPedestal;
2364 if (thisStrip == (centerStrip + 1)) {
2365 std::vector<int> myADCVals = digiItr->getADCCounts();
2367 if (thisStrip == (centerStrip - 1)) {
2368 std::vector<int> myADCVals = digiItr->getADCCounts();
References dqmMemoryStats::float, dqmdumpme::last, ExhumeParameters_cfi::Rg, CSCDetId::ring(), and CSCDetId::station().
◆ getWidth()
Definition at line 2383 of file CSCValidation.cc.
2391 for (sIt = stripdigis.begin(); sIt != stripdigis.end(); sIt++) {
2394 std::vector<CSCStripDigi>::const_iterator digiItr = (*sIt).second.first;
2395 std::vector<CSCStripDigi>::const_iterator
first = (*sIt).second.first;
2396 std::vector<CSCStripDigi>::const_iterator
last = (*sIt).second.second;
2397 std::vector<CSCStripDigi>::const_iterator it = (*sIt).second.first;
2398 std::vector<CSCStripDigi>::const_iterator
itr = (*sIt).second.first;
2402 if (St == 1 &&
Rg == 4) {
2403 while (centerStrip > 16)
2406 for (; digiItr !=
last; ++digiItr) {
2407 int thisStrip = digiItr->getStrip();
2408 if (thisStrip == (centerStrip)) {
2410 for (; it !=
last; ++it) {
2411 int strip = it->getStrip();
2412 std::vector<int> myADCVals = it->getADCCounts();
2413 float thisPedestal = 0.5 * (
float)(myADCVals[0] + myADCVals[1]);
2414 if (((
float)myADCVals[3] - thisPedestal) < 6 || widthpos == 10 || it ==
last) {
2417 if (
strip != centerStrip) {
2424 std::vector<int> myADCVals =
itr->getADCCounts();
2425 float thisPedestal = 0.5 * (
float)(myADCVals[0] + myADCVals[1]);
2426 if (((
float)myADCVals[3] - thisPedestal) < 6 || widthneg == 10 ||
itr ==
first) {
2429 if (
strip != centerStrip) {
References dqmdumpme::first, dqmMemoryStats::float, dqmdumpme::last, ExhumeParameters_cfi::Rg, CSCDetId::ring(), CSCDetId::station(), digitizers_cfi::strip, and ApeEstimator_cff::width.
◆ histoEfficiency()
void CSCValidation::histoEfficiency |
( |
TH1F * |
readHisto, |
|
|
TH1F * |
writeHisto |
|
) |
| |
|
private |
◆ lineParametrization()
double CSCValidation::lineParametrization |
( |
double |
z1Position, |
|
|
double |
z2Position, |
|
|
double |
z1Direction |
|
) |
| |
|
inlineprivate |
Definition at line 196 of file CSCValidation.h.
197 double parameterLine = (z2Position - z1Position) / z1Direction;
198 return parameterLine;
◆ ringSerial()
int CSCValidation::ringSerial |
( |
CSCDetId |
id | ) |
|
|
private |
Definition at line 1399 of file CSCValidation.cc.
1400 int st =
id.station();
1402 int ec =
id.endcap();
1404 if (st == 1 && ri == 1)
1406 if (st == 1 && ri == 2)
1408 if (st == 1 && ri == 3)
1410 if (st == 1 && ri == 4)
1419 kSerial = kSerial * (-1);
◆ typeIndex()
int CSCValidation::typeIndex |
( |
CSCDetId |
id | ) |
|
|
inlineprivate |
◆ withinSensitiveRegion()
bool CSCValidation::withinSensitiveRegion |
( |
LocalPoint |
localPos, |
|
|
const std::array< const float, 4 > & |
layerBounds, |
|
|
int |
station, |
|
|
int |
ring, |
|
|
float |
shiftFromEdge, |
|
|
float |
shiftFromDeadZone |
|
) |
| |
|
private |
Definition at line 1803 of file CSCValidation.cc.
1812 float y_center = 0.;
1813 double yUp = layerBounds[3] + y_center;
1814 double yDown = -layerBounds[3] + y_center;
1815 double xBound1Shifted = layerBounds[0] - shiftFromEdge;
1816 double xBound2Shifted = layerBounds[1] - shiftFromEdge;
1817 double lineSlope = (yUp - yDown) / (xBound2Shifted - xBound1Shifted);
1818 double lineConst = yUp - lineSlope * xBound2Shifted;
1819 double yBorder = lineSlope *
abs(localPos.
x()) + lineConst;
1822 std::vector<float> deadZoneCenter(6);
1823 float cutZone = shiftFromDeadZone;
1827 deadZoneCenter[0] = -162.48;
1828 deadZoneCenter[1] = -81.8744;
1829 deadZoneCenter[2] = -21.18165;
1830 deadZoneCenter[3] = 39.51105;
1831 deadZoneCenter[4] = 100.2939;
1832 deadZoneCenter[5] = 160.58;
1834 if (localPos.
y() > yBorder &&
1835 ((localPos.
y() > deadZoneCenter[0] + cutZone && localPos.
y() < deadZoneCenter[1] - cutZone) ||
1836 (localPos.
y() > deadZoneCenter[1] + cutZone && localPos.
y() < deadZoneCenter[2] - cutZone) ||
1837 (localPos.
y() > deadZoneCenter[2] + cutZone && localPos.
y() < deadZoneCenter[3] - cutZone) ||
1838 (localPos.
y() > deadZoneCenter[3] + cutZone && localPos.
y() < deadZoneCenter[4] - cutZone) ||
1839 (localPos.
y() > deadZoneCenter[4] + cutZone && localPos.
y() < deadZoneCenter[5] - cutZone))) {
1842 }
else if (1 ==
ring) {
1844 deadZoneCenter[0] = -95.80;
1845 deadZoneCenter[1] = -27.47;
1846 deadZoneCenter[2] = 33.67;
1847 deadZoneCenter[3] = 90.85;
1849 deadZoneCenter[0] = -89.305;
1850 deadZoneCenter[1] = -39.705;
1851 deadZoneCenter[2] = 20.195;
1852 deadZoneCenter[3] = 77.395;
1854 deadZoneCenter[0] = -75.645;
1855 deadZoneCenter[1] = -26.055;
1856 deadZoneCenter[2] = 23.855;
1857 deadZoneCenter[3] = 70.575;
1859 if (localPos.
y() > yBorder &&
1860 ((localPos.
y() > deadZoneCenter[0] + cutZone && localPos.
y() < deadZoneCenter[1] - cutZone) ||
1861 (localPos.
y() > deadZoneCenter[1] + cutZone && localPos.
y() < deadZoneCenter[2] - cutZone) ||
1862 (localPos.
y() > deadZoneCenter[2] + cutZone && localPos.
y() < deadZoneCenter[3] - cutZone))) {
1868 deadZoneCenter[0] = -83.155;
1869 deadZoneCenter[1] = -22.7401;
1870 deadZoneCenter[2] = 27.86665;
1871 deadZoneCenter[3] = 81.005;
1872 if (localPos.
y() > yBorder &&
1873 ((localPos.
y() > deadZoneCenter[0] + cutZone && localPos.
y() < deadZoneCenter[1] - cutZone) ||
1874 (localPos.
y() > deadZoneCenter[1] + cutZone && localPos.
y() < deadZoneCenter[2] - cutZone) ||
1875 (localPos.
y() > deadZoneCenter[2] + cutZone && localPos.
y() < deadZoneCenter[3] - cutZone))) {
1878 }
else if (2 ==
ring) {
1879 deadZoneCenter[0] = -86.285;
1880 deadZoneCenter[1] = -32.88305;
1881 deadZoneCenter[2] = 32.867423;
1882 deadZoneCenter[3] = 88.205;
1883 if (localPos.
y() > (yBorder) &&
1884 ((localPos.
y() > deadZoneCenter[0] + cutZone && localPos.
y() < deadZoneCenter[1] - cutZone) ||
1885 (localPos.
y() > deadZoneCenter[1] + cutZone && localPos.
y() < deadZoneCenter[2] - cutZone) ||
1886 (localPos.
y() > deadZoneCenter[2] + cutZone && localPos.
y() < deadZoneCenter[3] - cutZone))) {
1890 deadZoneCenter[0] = -81.0;
1891 deadZoneCenter[1] = 81.0;
1892 if (localPos.
y() > (yBorder) &&
1893 (localPos.
y() > deadZoneCenter[0] + cutZone && localPos.
y() < deadZoneCenter[1] - cutZone)) {
References funct::abs(), relativeConstraints::ring, relativeConstraints::station, PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::y().
◆ al_token
◆ AllRechits
◆ cd_token
◆ chisqMax
double CSCValidation::chisqMax |
|
private |
◆ cl_token
◆ cleanEvent
bool CSCValidation::cleanEvent |
|
private |
◆ co_token
◆ deltaPhiMax
double CSCValidation::deltaPhiMax |
|
private |
◆ detailedAnalysis
bool CSCValidation::detailedAnalysis |
|
private |
◆ distRHmap
◆ firstEvent
bool CSCValidation::firstEvent |
|
private |
◆ hEffDenominator
TH2F* CSCValidation::hEffDenominator |
|
private |
◆ histos
◆ hORecHits
TH2I* CSCValidation::hORecHits |
|
private |
◆ hOSegments
TH2I* CSCValidation::hOSegments |
|
private |
◆ hOStrips
TH2I* CSCValidation::hOStrips |
|
private |
◆ hOWires
TH2I* CSCValidation::hOWires |
|
private |
◆ hRHEff
TH1F* CSCValidation::hRHEff |
|
private |
◆ hRHEff2
TH2F* CSCValidation::hRHEff2 |
|
private |
◆ hRHSTE
TH1F* CSCValidation::hRHSTE |
|
private |
◆ hRHSTE2
TH2F* CSCValidation::hRHSTE2 |
|
private |
◆ hSEff
TH1F* CSCValidation::hSEff |
|
private |
◆ hSEff2
TH2F* CSCValidation::hSEff2 |
|
private |
◆ hSensitiveAreaEvt
TH2F* CSCValidation::hSensitiveAreaEvt |
|
private |
◆ hSSTE
TH1F* CSCValidation::hSSTE |
|
private |
◆ hSSTE2
TH2F* CSCValidation::hSSTE2 |
|
private |
◆ hStripEff2
TH2F* CSCValidation::hStripEff2 |
|
private |
◆ hStripSTE2
TH2F* CSCValidation::hStripSTE2 |
|
private |
◆ hWireEff2
TH2F* CSCValidation::hWireEff2 |
|
private |
◆ hWireSTE2
TH2F* CSCValidation::hWireSTE2 |
|
private |
◆ isSimulation
bool CSCValidation::isSimulation |
|
private |
◆ l1_token
◆ lengthMax
double CSCValidation::lengthMax |
|
private |
◆ lengthMin
double CSCValidation::lengthMin |
|
private |
◆ m_single_wire_layer
std::map<int, int> CSCValidation::m_single_wire_layer |
|
private |
◆ m_wire_hvsegm
std::map<int, std::vector<int> > CSCValidation::m_wire_hvsegm |
|
private |
◆ makeADCTimingPlots
bool CSCValidation::makeADCTimingPlots |
|
private |
◆ makeAFEBTimingPlots
bool CSCValidation::makeAFEBTimingPlots |
|
private |
◆ makeCalibPlots
bool CSCValidation::makeCalibPlots |
|
private |
◆ makeComparisonPlots
bool CSCValidation::makeComparisonPlots |
|
private |
◆ makeCompTimingPlots
bool CSCValidation::makeCompTimingPlots |
|
private |
◆ makeEfficiencyPlots
bool CSCValidation::makeEfficiencyPlots |
|
private |
◆ makeGasGainPlots
bool CSCValidation::makeGasGainPlots |
|
private |
◆ makeHLTPlots
bool CSCValidation::makeHLTPlots |
|
private |
◆ makeOccupancyPlots
bool CSCValidation::makeOccupancyPlots |
|
private |
◆ makePedNoisePlots
bool CSCValidation::makePedNoisePlots |
|
private |
◆ makePlots
bool CSCValidation::makePlots |
|
private |
◆ makeRecHitPlots
bool CSCValidation::makeRecHitPlots |
|
private |
◆ makeResolutionPlots
bool CSCValidation::makeResolutionPlots |
|
private |
◆ makeRHNoisePlots
bool CSCValidation::makeRHNoisePlots |
|
private |
◆ makeSegmentPlots
bool CSCValidation::makeSegmentPlots |
|
private |
◆ makeSimHitPlots
bool CSCValidation::makeSimHitPlots |
|
private |
◆ makeStandalonePlots
bool CSCValidation::makeStandalonePlots |
|
private |
◆ makeStripPlots
bool CSCValidation::makeStripPlots |
|
private |
◆ makeTimeMonitorPlots
bool CSCValidation::makeTimeMonitorPlots |
|
private |
◆ makeTriggerPlots
bool CSCValidation::makeTriggerPlots |
|
private |
◆ makeWirePlots
bool CSCValidation::makeWirePlots |
|
private |
◆ nCSCHitsMax
int CSCValidation::nCSCHitsMax |
|
private |
◆ nCSCHitsMin
int CSCValidation::nCSCHitsMin |
|
private |
◆ nEventsAnalyzed
int CSCValidation::nEventsAnalyzed |
|
private |
◆ nmbhvsegm
std::vector<int> CSCValidation::nmbhvsegm |
|
private |
◆ NonAssociatedRechits
◆ pMin
double CSCValidation::pMin |
|
private |
◆ polarMax
double CSCValidation::polarMax |
|
private |
◆ polarMin
double CSCValidation::polarMin |
|
private |
◆ rd_token
◆ refRootFile
std::string CSCValidation::refRootFile |
|
private |
◆ rh_token
◆ rhTreeCount
int CSCValidation::rhTreeCount |
|
private |
◆ rootFileName
std::string CSCValidation::rootFileName |
|
private |
◆ sa_token
◆ sd_token
◆ se_token
◆ SegRechits
◆ segTreeCount
int CSCValidation::segTreeCount |
|
private |
◆ sh_token
◆ theFile
TFile* CSCValidation::theFile |
|
private |
◆ tr_token
◆ useDigis
bool CSCValidation::useDigis |
|
private |
◆ useQualityFilter
bool CSCValidation::useQualityFilter |
|
private |
◆ useTriggerFilter
bool CSCValidation::useTriggerFilter |
|
private |
◆ wd_token
◆ writeTreeToFile
bool CSCValidation::writeTreeToFile |
|
private |
edm::EDGetTokenT< CSCALCTDigiCollection > al_token
T const * product() const
float fitX(const CLHEP::HepMatrix &sp, const CLHEP::HepMatrix &ep)
void fillCalibHist(float x, std::string name, std::string title, int bins, float xmin, float xmax, int bin, std::string folder)
void fillProfileByType(float x, float y, std::string name, std::string title, CSCDetId id, int binsx, float xmin, float xmax, float ymin, float ymax, std::string folder)
bool doTrigger(edm::Handle< L1MuGMTReadoutCollection > pCollection)
PedestalContainer pedestals
void doRecHits(edm::Handle< CSCRecHit2DCollection > recHits, edm::ESHandle< CSCGeometry > cscGeom)
void doEfficiencies(edm::Handle< CSCWireDigiCollection > wires, edm::Handle< CSCStripDigiCollection > strips, edm::Handle< CSCRecHit2DCollection > recHits, edm::Handle< CSCSegmentCollection > cscSegments, edm::ESHandle< CSCGeometry > cscGeom)
edm::EDGetTokenT< CSCCorrelatedLCTDigiCollection > co_token
void doOccupancies(edm::Handle< CSCStripDigiCollection > strips, edm::Handle< CSCWireDigiCollection > wires, edm::Handle< CSCRecHit2DCollection > recHits, edm::Handle< CSCSegmentCollection > cscSegments)
const CSCLayer * layer(CSCDetId id) const
Return the layer corresponding to the given id.
edm::EDGetTokenT< CSCRecHit2DCollection > rh_token
const std::vector< CSCDDUEventData > & dduData() const
accessor to dduData
ExaminerStatusType errors(void) const
edm::EDGetTokenT< FEDRawDataCollection > rd_token
float ChiSquaredProbability(double chiSquared, double nrDOF)
std::vector< int > nmbhvsegm
Maps and vectors for module doGasGain()
Geom::Theta< T > theta() const
int ringSerial(CSCDetId id)
std::map< int, int > m_single_wire_layer
void doResolution(edm::Handle< CSCSegmentCollection > cscSegments, edm::ESHandle< CSCGeometry > cscGeom)
std::multimap< CSCDetId, CSCRecHit2D > NonAssociatedRechits
bool makeTimeMonitorPlots
NoiseMatrixContainer matrix
void fill1DHist(float x, std::string name, std::string title, int bins, float xmin, float xmax, std::string folder)
void doTimeMonitoring(edm::Handle< CSCRecHit2DCollection > recHits, edm::Handle< CSCSegmentCollection > cscSegments, edm::Handle< CSCALCTDigiCollection > alcts, edm::Handle< CSCCLCTDigiCollection > clcts, edm::Handle< CSCCorrelatedLCTDigiCollection > correlatedlcts, edm::Handle< L1MuGMTReadoutCollection > pCollection, edm::ESHandle< CSCGeometry > cscGeom, const edm::EventSetup &eventSetup, const edm::Event &event)
void fill1DHistByLayer(float x, std::string name, std::string title, CSCDetId id, int bins, float xmin, float xmax, std::string folder)
void doNoiseHits(edm::Handle< CSCRecHit2DCollection > recHits, edm::Handle< CSCSegmentCollection > cscSegments, edm::ESHandle< CSCGeometry > cscGeom, edm::Handle< CSCStripDigiCollection > strips)
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
std::vector< DigiType >::const_iterator const_iterator
edm::EDGetTokenT< edm::TriggerResults > tr_token
int chamberSerial(CSCDetId id)
void doCalibrations(const edm::EventSetup &eventSetup)
void writeTrees(TFile *theFile)
float getthisSignal(const CSCStripDigiCollection &stripdigis, CSCDetId idRH, int centerStrip)
void doWireDigis(edm::Handle< CSCWireDigiCollection > wires)
void doSimHits(edm::Handle< CSCRecHit2DCollection > recHits, edm::Handle< edm::PSimHitContainer > simHits)
void fillProfile(float x, float y, std::string name, std::string title, int binsx, float xmin, float xmax, float ymin, float ymax, std::string folder)
void writeHists(TFile *theFile)
double lineParametrization(double z1Position, double z2Position, double z1Direction)
void insertPlot(TH1 *thePlot, std::string name, std::string folder)
virtual const std::array< const float, 4 > parameters() const
void doAFEBTiming(const CSCWireDigiCollection &)
void getEfficiency(float bin, float Norm, std::vector< float > &eff)
float getSignal(const CSCStripDigiCollection &stripdigis, CSCDetId idRH, int centerStrip)
Geom::Theta< T > theta() const
const CSCLayerGeometry * geometry() const
Global3DPoint GlobalPoint
edm::EDGetTokenT< CSCSegmentCollection > se_token
void findNonAssociatedRecHits(edm::ESHandle< CSCGeometry > cscGeom, edm::Handle< CSCStripDigiCollection > strips)
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
const FEDRawData & FEDData(int fedid) const
retrieve data for fed
std::multimap< CSCDetId, CSCRecHit2D > AllRechits
void fill1DHistByType(float x, std::string name, std::string title, CSCDetId id, int bins, float xmin, float xmax, std::string folder)
edm::EDGetTokenT< CSCCLCTDigiCollection > cl_token
void fill2DHistByLayer(float x, float y, std::string name, std::string title, CSCDetId id, int binsx, float xmin, float xmax, int binsy, float ymin, float ymax, std::string folder)
void fill2DHist(float x, float y, std::string name, std::string title, int binsx, float xmin, float xmax, int binsy, float ymin, float ymax, std::string folder)
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
edm::EDGetTokenT< reco::TrackCollection > sa_token
void doStandalone(edm::Handle< reco::TrackCollection > saMuons)
std::vector< L1MuGMTReadoutRecord > const & getRecords() const
void doPedestalNoise(edm::Handle< CSCStripDigiCollection > strips)
edm::EDGetTokenT< L1MuGMTReadoutCollection > l1_token
bool doHLT(edm::Handle< edm::TriggerResults > hltResults)
void setMask(ExaminerMaskType mask)
C::const_iterator const_iterator
constant access iterator type
int getWidth(const CSCStripDigiCollection &stripdigis, CSCDetId idRH, int centerStrip)
std::string chamberTypeName() const
LocalVector localDirection() const override
Local direction.
int32_t check(const uint16_t *&buffer, int32_t length)
std::vector< const CSCChamber * > ChamberContainer
CSCDetId chamberId() const
const CSCChamberSpecs * specs() const
std::vector< std::pair< float, float > >::iterator itr
for(int i=first, nt=offsets[nh];i< nt;i+=gridDim.x *blockDim.x)
size_t size() const
Lenght of the data buffer in bytes.
void doGasGain(const CSCWireDigiCollection &, const CSCStripDigiCollection &, const CSCRecHit2DCollection &)
nStrips
1.2 is to make the matching window safely the two nearest strips 0.35 is the size of an ME0 chamber i...
void fillRechitTree(float x, float y, float gx, float gy, int en, int st, int ri, int ch, int la)
edm::EDGetTokenT< CSCWireDigiCollection > wd_token
void doADCTiming(const CSCRecHit2DCollection &)
bool filterEvents(edm::Handle< CSCRecHit2DCollection > recHits, edm::Handle< CSCSegmentCollection > cscSegments, edm::Handle< reco::TrackCollection > saMuons)
const CSCLayer * layer(CSCDetId id) const
Return the layer corresponding to given DetId.
CrosstalkContainer crosstalk
int dbIndex(const CSCDetId &id, int &channel)
std::multimap< CSCDetId, CSCRecHit2D > SegRechits
void fill1DHistByStation(float x, std::string name, std::string title, CSCDetId id, int bins, float xmin, float xmax, std::string folder)
edm::EDGetTokenT< CSCStripDigiCollection > sd_token
void crcALCT(bool enable)
void fill1DHistByChamber(float x, std::string name, std::string title, CSCDetId id, int bins, float xmin, float xmax, std::string folder)
CSCDetId detId(int vme, int dmb, int cfeb, int layer=0) const
bool withinSensitiveRegion(LocalPoint localPos, const std::array< const float, 4 > &layerBounds, int station, int ring, float shiftFromEdge, float shiftFromDeadZone)
std::map< int, std::vector< int > > m_wire_hvsegm
edm::EDGetTokenT< CSCComparatorDigiCollection > cd_token
std::pair< const_iterator, const_iterator > Range
void doSegments(edm::Handle< CSCSegmentCollection > cscSegments, edm::ESHandle< CSCGeometry > cscGeom)
const ChamberContainer & chambers() const
Return a vector of all chambers.
char data[epos_bytes_allocation]
std::map< CSCRecHit2D, float, ltrh > distRHmap
int typeIndex(CSCDetId id)
Power< A, B >::type pow(const A &a, const B &b)
void crcCFEB(bool enable)
Abs< T >::type abs(const T &t)
double extrapolate1D(double initPosition, double initDirection, double parameterOfTheLine)
void fillSegmentTree(float x, float y, float gx, float gy, int en, int st, int ri, int ch)
static const double slope[3]
CSCDetId id() const
Get the (concrete) DetId.
edm::EDGetTokenT< edm::PSimHitContainer > sh_token
LocalPoint localPosition() const override
void doStripDigis(edm::Handle< CSCStripDigiCollection > strips)
strips
#turn off noise in all subdetectors simHcalUnsuppressedDigis.doNoise = False mix.digitizers....
void histoEfficiency(TH1F *readHisto, TH1F *writeHisto)
Geom::Phi< T > phi() const
const CSCChamber * chamber(CSCDetId id) const
Return the chamber corresponding to given DetId.
void doCompTiming(const CSCComparatorDigiCollection &)
static const std::string kLayer("layer")
void fill2DHistByStation(float x, float y, std::string name, std::string title, CSCDetId id, int binsx, float xmin, float xmax, int binsy, float ymin, float ymax, std::string folder)