CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
SiStripRecHitsValid Class Reference

#include <SiStripRecHitsValid.h>

Inheritance diagram for SiStripRecHitsValid:
DQMEDAnalyzer edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >

Classes

struct  LayerMEs
 
struct  RecHitProperties
 
struct  StereoAndMatchedMEs
 
struct  SubDetMEs
 
struct  TotalMEs
 

Public Member Functions

 SiStripRecHitsValid (const edm::ParameterSet &conf)
 
 ~SiStripRecHitsValid () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
void beginStream (edm::StreamID id) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
void endLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Protected Member Functions

void analyze (const edm::Event &e, const edm::EventSetup &c) override
 
void bookHistograms (DQMStore::IBooker &ibooker, const edm::Run &run, const edm::EventSetup &es) override
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 

Private Member Functions

MonitorElementbookME1D (DQMStore::IBooker &ibooker, const char *ParameterSetLabel, const char *HistoName, const char *HistoTitle)
 
void createLayerMEs (DQMStore::IBooker &ibooker, std::string label)
 
void createMEs (DQMStore::IBooker &ibooker, const edm::EventSetup &es)
 
void createStereoAndMatchedMEs (DQMStore::IBooker &ibooker, std::string label)
 
void createSubDetMEs (DQMStore::IBooker &ibooker, std::string label)
 
void createTotalMEs (DQMStore::IBooker &ibooker)
 
void fillME (MonitorElement *ME, float value1)
 
void fillME (MonitorElement *ME, float value1, float value2)
 
void fillME (MonitorElement *ME, float value1, float value2, float value3)
 
void fillME (MonitorElement *ME, float value1, float value2, float value3, float value4)
 
std::pair< LocalPoint, LocalVectorprojectHit (const PSimHit &hit, const StripGeomDetUnit *stripDet, const BoundPlane &plane)
 
void rechitanalysis (SiStripRecHit2D const rechit, const StripTopology &topol, TrackerHitAssociator &associate)
 
void rechitanalysis_matched (SiStripMatchedRecHit2D const rechit, const GluedGeomDet *gluedDet, TrackerHitAssociator &associate)
 

Private Attributes

edm::ParameterSet conf_
 
std::map< std::string, std::vector< uint32_t > > LayerDetMap
 
std::map< std::string, LayerMEsLayerMEsMap
 
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecordm_geomToken
 
const edm::ESGetToken< SiStripDetCabling, SiStripDetCablingRcdm_SiStripDetCablingToken
 
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcdm_topoToken
 
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcdm_topoTokenBR
 
edm::EDGetTokenT< SiStripMatchedRecHit2DCollectionmatchedRecHitsToken_
 
RecHitProperties rechitpro
 
edm::EDGetTokenT< SiStripRecHit2DCollectionrphiRecHitsToken_
 
edm::ESHandle< SiStripDetCablingSiStripDetCabling_
 
std::map< std::string, std::vector< uint32_t > > StereoAndMatchedDetMap
 
std::map< std::string, StereoAndMatchedMEsStereoAndMatchedMEsMap
 
edm::EDGetTokenT< SiStripRecHit2DCollectionstereoRecHitsToken_
 
std::vector< std::string > SubDetList_
 
std::map< std::string, SubDetMEsSubDetMEsMap
 
bool switchAdcrphi
 
bool switchAdcStereo
 
bool switchBunchMatched
 
bool switchBunchrphi
 
bool switchBunchStereo
 
bool switchChi2Matched
 
bool switchChi2rphi
 
bool switchChi2Stereo
 
bool switchEventMatched
 
bool switchEventrphi
 
bool switchEventStereo
 
bool switchNsimHitMatched
 
bool switchNsimHitrphi
 
bool switchNsimHitStereo
 
bool switchNumMatched
 
bool switchNumrphi
 
bool switchNumStereo
 
bool switchNumTotMatched
 
bool switchNumTotrphi
 
bool switchNumTotStereo
 
bool switchPosxMatched
 
bool switchPosxrphi
 
bool switchPosxStereo
 
bool switchPosyMatched
 
bool switchPullLFrphi
 
bool switchPullLFStereo
 
bool switchPullMFrphi
 
bool switchPullMFStereo
 
bool switchResolxMatched
 
bool switchResolxrphi
 
bool switchResolxStereo
 
bool switchResolyMatched
 
bool switchResrphi
 
bool switchResStereo
 
bool switchResxMatched
 
bool switchResyMatched
 
bool switchWclusrphi
 
bool switchWclusStereo
 
std::string topFolderName_
 
TotalMEs totalMEs
 
TrackerHitAssociator::Config trackerHitAssociatorConfig_
 
edm::ESWatcher< SiStripDetCablingRcdwatchSiStripDetCablingRcd_
 

Additional Inherited Members

- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static void globalEndJob (DQMEDAnalyzerGlobalCache const *)
 
static void globalEndLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup, LuminosityBlockContext const *context)
 
static void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup, RunContext const *context)
 
static std::unique_ptr< DQMEDAnalyzerGlobalCacheinitializeGlobalCache (edm::ParameterSet const &)
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 

Detailed Description

Definition at line 53 of file SiStripRecHitsValid.h.

Constructor & Destructor Documentation

◆ SiStripRecHitsValid()

SiStripRecHitsValid::SiStripRecHitsValid ( const edm::ParameterSet conf)

Definition at line 24 of file SiStripRecHitsValid.cc.

References edm::BeginRun, conf_, edm::ParameterSet::getParameter(), matchedRecHitsToken_, rphiRecHitsToken_, stereoRecHitsToken_, AlCaHLTBitMon_QueryRunRegistry::string, SubDetList_, switchAdcrphi, switchAdcStereo, switchBunchMatched, switchBunchrphi, switchBunchStereo, switchChi2Matched, switchChi2rphi, switchChi2Stereo, switchEventMatched, switchEventrphi, switchEventStereo, switchNsimHitMatched, switchNsimHitrphi, switchNsimHitStereo, switchNumMatched, switchNumrphi, switchNumStereo, switchNumTotMatched, switchNumTotrphi, switchNumTotStereo, switchPosxMatched, switchPosxrphi, switchPosxStereo, switchPosyMatched, switchPullLFrphi, switchPullLFStereo, switchPullMFrphi, switchPullMFStereo, switchResolxMatched, switchResolxrphi, switchResolxStereo, switchResolyMatched, switchResrphi, switchResStereo, switchResxMatched, switchResyMatched, switchWclusrphi, switchWclusStereo, and topFolderName_.

27  m_topoTokenBR(esConsumes<edm::Transition::BeginRun>()),
28  m_SiStripDetCablingToken(esConsumes<edm::Transition::BeginRun>()),
29  conf_(ps),
30  trackerHitAssociatorConfig_(ps, consumesCollector())
31 // matchedRecHits_( ps.getParameter<edm::InputTag>("matchedRecHits") ),
32 // rphiRecHits_( ps.getParameter<edm::InputTag>("rphiRecHits") ),
33 // stereoRecHits_( ps.getParameter<edm::InputTag>("stereoRecHits") )
34 {
35  matchedRecHitsToken_ = consumes<SiStripMatchedRecHit2DCollection>(ps.getParameter<edm::InputTag>("matchedRecHits"));
36 
37  rphiRecHitsToken_ = consumes<SiStripRecHit2DCollection>(ps.getParameter<edm::InputTag>("rphiRecHits"));
38 
39  stereoRecHitsToken_ = consumes<SiStripRecHit2DCollection>(ps.getParameter<edm::InputTag>("stereoRecHits"));
40 
41  topFolderName_ = conf_.getParameter<std::string>("TopFolderName");
42 
43  SubDetList_ = conf_.getParameter<std::vector<std::string> >("SubDetList");
44 
45  edm::ParameterSet ParametersNumTotrphi = conf_.getParameter<edm::ParameterSet>("TH1NumTotrphi");
46  switchNumTotrphi = ParametersNumTotrphi.getParameter<bool>("switchon");
47 
48  edm::ParameterSet ParametersNumTotStereo = conf_.getParameter<edm::ParameterSet>("TH1NumTotStereo");
49  switchNumTotStereo = ParametersNumTotStereo.getParameter<bool>("switchon");
50 
51  edm::ParameterSet ParametersNumTotMatched = conf_.getParameter<edm::ParameterSet>("TH1NumTotMatched");
52  switchNumTotMatched = ParametersNumTotMatched.getParameter<bool>("switchon");
53 
54  edm::ParameterSet ParametersNumrphi = conf_.getParameter<edm::ParameterSet>("TH1Numrphi");
55  switchNumrphi = ParametersNumrphi.getParameter<bool>("switchon");
56 
57  edm::ParameterSet ParametersBunchrphi = conf_.getParameter<edm::ParameterSet>("TH1Bunchrphi");
58  switchBunchrphi = ParametersBunchrphi.getParameter<bool>("switchon");
59 
60  edm::ParameterSet ParametersEventrphi = conf_.getParameter<edm::ParameterSet>("TH1Eventrphi");
61  switchEventrphi = ParametersEventrphi.getParameter<bool>("switchon");
62 
63  edm::ParameterSet ParametersNumStereo = conf_.getParameter<edm::ParameterSet>("TH1NumStereo");
64  switchNumStereo = ParametersNumStereo.getParameter<bool>("switchon");
65 
66  edm::ParameterSet ParametersBunchStereo = conf_.getParameter<edm::ParameterSet>("TH1BunchStereo");
67  switchBunchStereo = ParametersBunchStereo.getParameter<bool>("switchon");
68 
69  edm::ParameterSet ParametersEventStereo = conf_.getParameter<edm::ParameterSet>("TH1EventStereo");
70  switchEventStereo = ParametersEventStereo.getParameter<bool>("switchon");
71 
72  edm::ParameterSet ParametersNumMatched = conf_.getParameter<edm::ParameterSet>("TH1NumMatched");
73  switchNumMatched = ParametersNumMatched.getParameter<bool>("switchon");
74 
75  edm::ParameterSet ParametersBunchMatched = conf_.getParameter<edm::ParameterSet>("TH1BunchMatched");
76  switchBunchMatched = ParametersBunchMatched.getParameter<bool>("switchon");
77 
78  edm::ParameterSet ParametersEventMatched = conf_.getParameter<edm::ParameterSet>("TH1EventMatched");
79  switchEventMatched = ParametersEventMatched.getParameter<bool>("switchon");
80 
81  edm::ParameterSet ParametersWclusrphi = conf_.getParameter<edm::ParameterSet>("TH1Wclusrphi");
82  switchWclusrphi = ParametersWclusrphi.getParameter<bool>("switchon");
83 
84  edm::ParameterSet ParametersAdcrphi = conf_.getParameter<edm::ParameterSet>("TH1Adcrphi");
85  switchAdcrphi = ParametersAdcrphi.getParameter<bool>("switchon");
86 
87  edm::ParameterSet ParametersPosxrphi = conf_.getParameter<edm::ParameterSet>("TH1Posxrphi");
88  switchPosxrphi = ParametersPosxrphi.getParameter<bool>("switchon");
89 
90  edm::ParameterSet ParametersResolxrphi = conf_.getParameter<edm::ParameterSet>("TH1Resolxrphi");
91  switchResolxrphi = ParametersResolxrphi.getParameter<bool>("switchon");
92 
93  edm::ParameterSet ParametersResrphi = conf_.getParameter<edm::ParameterSet>("TH1Resrphi");
94  switchResrphi = ParametersResrphi.getParameter<bool>("switchon");
95 
96  edm::ParameterSet ParametersPullLFrphi = conf_.getParameter<edm::ParameterSet>("TH1PullLFrphi");
97  switchPullLFrphi = ParametersPullLFrphi.getParameter<bool>("switchon");
98 
99  edm::ParameterSet ParametersPullMFrphi = conf_.getParameter<edm::ParameterSet>("TH1PullMFrphi");
100  switchPullMFrphi = ParametersPullMFrphi.getParameter<bool>("switchon");
101 
102  edm::ParameterSet ParametersChi2rphi = conf_.getParameter<edm::ParameterSet>("TH1Chi2rphi");
103  switchChi2rphi = ParametersChi2rphi.getParameter<bool>("switchon");
104 
105  edm::ParameterSet ParametersNsimHitrphi = conf_.getParameter<edm::ParameterSet>("TH1NsimHitrphi");
106  switchNsimHitrphi = ParametersNsimHitrphi.getParameter<bool>("switchon");
107 
108  edm::ParameterSet ParametersWclusStereo = conf_.getParameter<edm::ParameterSet>("TH1WclusStereo");
109  switchWclusStereo = ParametersWclusStereo.getParameter<bool>("switchon");
110 
111  edm::ParameterSet ParametersAdcStereo = conf_.getParameter<edm::ParameterSet>("TH1AdcStereo");
112  switchAdcStereo = ParametersAdcStereo.getParameter<bool>("switchon");
113 
114  edm::ParameterSet ParametersPosxStereo = conf_.getParameter<edm::ParameterSet>("TH1PosxStereo");
115  switchPosxStereo = ParametersPosxStereo.getParameter<bool>("switchon");
116 
117  edm::ParameterSet ParametersResolxStereo = conf_.getParameter<edm::ParameterSet>("TH1ResolxStereo");
118  switchResolxStereo = ParametersResolxStereo.getParameter<bool>("switchon");
119 
120  edm::ParameterSet ParametersResStereo = conf_.getParameter<edm::ParameterSet>("TH1ResStereo");
121  switchResStereo = ParametersResStereo.getParameter<bool>("switchon");
122 
123  edm::ParameterSet ParametersPullLFStereo = conf_.getParameter<edm::ParameterSet>("TH1PullLFStereo");
124  switchPullLFStereo = ParametersPullLFStereo.getParameter<bool>("switchon");
125 
126  edm::ParameterSet ParametersPullMFStereo = conf_.getParameter<edm::ParameterSet>("TH1PullMFStereo");
127  switchPullMFStereo = ParametersPullMFStereo.getParameter<bool>("switchon");
128 
129  edm::ParameterSet ParametersChi2Stereo = conf_.getParameter<edm::ParameterSet>("TH1Chi2Stereo");
130  switchChi2Stereo = ParametersChi2Stereo.getParameter<bool>("switchon");
131 
132  edm::ParameterSet ParametersNsimHitStereo = conf_.getParameter<edm::ParameterSet>("TH1NsimHitStereo");
133  switchNsimHitStereo = ParametersNsimHitStereo.getParameter<bool>("switchon");
134 
135  edm::ParameterSet ParametersPosxMatched = conf_.getParameter<edm::ParameterSet>("TH1PosxMatched");
136  switchPosxMatched = ParametersPosxMatched.getParameter<bool>("switchon");
137 
138  edm::ParameterSet ParametersPosyMatched = conf_.getParameter<edm::ParameterSet>("TH1PosyMatched");
139  switchPosyMatched = ParametersPosyMatched.getParameter<bool>("switchon");
140 
141  edm::ParameterSet ParametersResolxMatched = conf_.getParameter<edm::ParameterSet>("TH1ResolxMatched");
142  switchResolxMatched = ParametersResolxMatched.getParameter<bool>("switchon");
143 
144  edm::ParameterSet ParametersResolyMatched = conf_.getParameter<edm::ParameterSet>("TH1ResolyMatched");
145  switchResolyMatched = ParametersResolyMatched.getParameter<bool>("switchon");
146 
147  edm::ParameterSet ParametersResxMatched = conf_.getParameter<edm::ParameterSet>("TH1ResxMatched");
148  switchResxMatched = ParametersResxMatched.getParameter<bool>("switchon");
149 
150  edm::ParameterSet ParametersResyMatched = conf_.getParameter<edm::ParameterSet>("TH1ResyMatched");
151  switchResyMatched = ParametersResyMatched.getParameter<bool>("switchon");
152 
153  edm::ParameterSet ParametersChi2Matched = conf_.getParameter<edm::ParameterSet>("TH1Chi2Matched");
154  switchChi2Matched = ParametersChi2Matched.getParameter<bool>("switchon");
155 
156  edm::ParameterSet ParametersNsimHitMatched = conf_.getParameter<edm::ParameterSet>("TH1NsimHitMatched");
157  switchNsimHitMatched = ParametersNsimHitMatched.getParameter<bool>("switchon");
158 }
std::vector< std::string > SubDetList_
ESGetTokenH3DDVariant esConsumes(std::string const &Record, edm::ConsumesCollector &)
Definition: DeDxTools.cc:283
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
TrackerHitAssociator::Config trackerHitAssociatorConfig_
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > m_topoToken
edm::EDGetTokenT< SiStripRecHit2DCollection > stereoRecHitsToken_
const edm::ESGetToken< SiStripDetCabling, SiStripDetCablingRcd > m_SiStripDetCablingToken
edm::EDGetTokenT< SiStripRecHit2DCollection > rphiRecHitsToken_
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > m_topoTokenBR
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > m_geomToken
edm::ParameterSet conf_
edm::EDGetTokenT< SiStripMatchedRecHit2DCollection > matchedRecHitsToken_

◆ ~SiStripRecHitsValid()

SiStripRecHitsValid::~SiStripRecHitsValid ( )
override

Definition at line 160 of file SiStripRecHitsValid.cc.

160 {}

Member Function Documentation

◆ analyze()

void SiStripRecHitsValid::analyze ( const edm::Event e,
const edm::EventSetup c 
)
overrideprotectedvirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 172 of file SiStripRecHitsValid.cc.

References SiStripRecHitsValid::RecHitProperties::bunch, SiStripRecHitsValid::RecHitProperties::chi2, SiStripRecHitsValid::RecHitProperties::cluchg, SiStripRecHitsValid::RecHitProperties::clusiz, MillePedeFileConverter_cfg::e, SiStripRecHitsValid::RecHitProperties::event, fillME(), edm::EventSetup::getData(), SiStripFolderOrganizer::GetSubDetAndLayer(), SiStripHistoId::getSubdetid(), label, LayerMEsMap, m_geomToken, m_topoToken, matchedRecHitsToken_, SiStripRecHitsValid::TotalMEs::meNumTotMatched, SiStripRecHitsValid::TotalMEs::meNumTotrphi, SiStripRecHitsValid::TotalMEs::meNumTotStereo, SiStripRecHitsValid::RecHitProperties::NsimHit, SiStripRecHitsValid::RecHitProperties::pullMF, DetId::rawId(), rechitanalysis(), rechitanalysis_matched(), rechitpro, SiStripRecHitsValid::RecHitProperties::resolxx, SiStripRecHitsValid::RecHitProperties::resolyy, SiStripRecHitsValid::RecHitProperties::resx, SiStripRecHitsValid::RecHitProperties::resy, rphiRecHitsToken_, mathSSE::sqrt(), StereoAndMatchedMEsMap, stereoRecHitsToken_, AlCaHLTBitMon_QueryRunRegistry::string, SubDetList_, SubDetMEsMap, totalMEs, PbPb_ZMuSkimMuonDPG_cff::tracker, trackerHitAssociatorConfig_, SiStripRecHitsValid::RecHitProperties::x, and SiStripRecHitsValid::RecHitProperties::y.

172  {
173  LogInfo("EventInfo") << " Run = " << e.id().run() << " Event = " << e.id().event();
174 
175  //Retrieve tracker topology from geometry
176  const TrackerTopology* const tTopo = &es.getData(m_topoToken);
177 
178  // Step A: Get Inputs
182  e.getByToken(matchedRecHitsToken_, rechitsmatched);
183  e.getByToken(rphiRecHitsToken_, rechitsrphi);
184  e.getByToken(stereoRecHitsToken_, rechitsstereo);
185 
186  //Variables in order to count total num of rechitrphi,rechitstereo, rechitmatched in subdetectors
187  std::map<std::string, int> totnumrechitrphi;
188  std::map<std::string, int> totnumrechitstereo;
189  std::map<std::string, int> totnumrechitmatched;
190  int totrechitrphi = 0;
191  int totrechitstereo = 0;
192  int totrechitmatched = 0;
193 
195 
196  const TrackerGeometry& tracker = es.getData(m_geomToken);
197 
198  SiStripHistoId hidmanager;
199  SiStripFolderOrganizer fold_organ;
200  for (auto const& theDetSet : *rechitsrphi) {
201  DetId detid = theDetSet.detId();
202  uint32_t myid = detid.rawId();
203  totrechitrphi += theDetSet.size();
204 
205  std::string label = hidmanager.getSubdetid(myid, tTopo, true);
206  std::map<std::string, LayerMEs>::iterator iLayerME = LayerMEsMap.find(label);
207  std::pair<std::string, int32_t> det_lay_pair = fold_organ.GetSubDetAndLayer(myid, tTopo, true);
208 
209  totnumrechitrphi[det_lay_pair.first] = totnumrechitrphi[det_lay_pair.first] + theDetSet.size();
210  //loop over rechits-rphi in the same subdetector
211  if (iLayerME != LayerMEsMap.end()) {
212  for (auto const& rechit : theDetSet) {
213  const GeomDetUnit* det = tracker.idToDetUnit(detid);
214  const StripTopology& topol = static_cast<const StripGeomDetUnit*>(det)->specificTopology();
215  //analyze RecHits
216  rechitanalysis(rechit, topol, associate);
217  // fill the result in a histogram
218  fillME(iLayerME->second.meWclusrphi, rechitpro.clusiz);
219  fillME(iLayerME->second.meAdcrphi, rechitpro.cluchg);
220  fillME(iLayerME->second.mePosxrphi, rechitpro.x);
221  fillME(iLayerME->second.meResolxrphi, rechitpro.resolxx);
222  fillME(iLayerME->second.meNsimHitrphi, rechitpro.NsimHit);
223  if (rechitpro.NsimHit > 0) {
224  std::map<std::string, SubDetMEs>::iterator iSubDetME = SubDetMEsMap.find(det_lay_pair.first);
225  fillME(iSubDetME->second.meBunchrphi, rechitpro.bunch);
226  if (rechitpro.bunch == 0)
227  fillME(iSubDetME->second.meEventrphi, rechitpro.event);
228  }
229  if (rechitpro.resx != -999999. || rechitpro.pullMF != -999999. || rechitpro.chi2 != -999999.) {
230  fillME(iLayerME->second.meResrphi, rechitpro.resx);
231  fillME(iLayerME->second.mePullLFrphi, rechitpro.resx / sqrt(rechitpro.resolxx));
232  fillME(iLayerME->second.mePullMFrphi, rechitpro.pullMF);
233  fillME(iLayerME->second.meChi2rphi, rechitpro.chi2);
234  }
235  }
236  }
237  }
238 
239  // start loops over detectors with detected rechitsstereo
240  for (auto const& theDetSet : *rechitsstereo) {
241  DetId detid = theDetSet.detId();
242  uint32_t myid = detid.rawId();
243  totrechitstereo += theDetSet.size();
244 
245  std::string label = hidmanager.getSubdetid(myid, tTopo, true);
246  std::map<std::string, StereoAndMatchedMEs>::iterator iStereoAndMatchedME = StereoAndMatchedMEsMap.find(label);
247  std::pair<std::string, int32_t> det_lay_pair = fold_organ.GetSubDetAndLayer(myid, tTopo, true);
248 
249  totnumrechitstereo[det_lay_pair.first] = totnumrechitstereo[det_lay_pair.first] + theDetSet.size();
250  //loop over rechits-stereo in the same subdetector
251  if (iStereoAndMatchedME != StereoAndMatchedMEsMap.end()) {
252  for (auto const& rechit : theDetSet) {
253  const GeomDetUnit* det = tracker.idToDetUnit(detid);
254  const StripTopology& topol = static_cast<const StripGeomDetUnit*>(det)->specificTopology();
255  //analyze RecHits
256  rechitanalysis(rechit, topol, associate);
257  // fill the result in a histogram
258  fillME(iStereoAndMatchedME->second.meWclusStereo, rechitpro.clusiz);
259  fillME(iStereoAndMatchedME->second.meAdcStereo, rechitpro.cluchg);
260  fillME(iStereoAndMatchedME->second.mePosxStereo, rechitpro.x);
261  fillME(iStereoAndMatchedME->second.meResolxStereo, sqrt(rechitpro.resolxx));
262  fillME(iStereoAndMatchedME->second.meNsimHitStereo, rechitpro.NsimHit);
263  if (rechitpro.NsimHit > 0) {
264  std::map<std::string, SubDetMEs>::iterator iSubDetME = SubDetMEsMap.find(det_lay_pair.first);
265  fillME(iSubDetME->second.meBunchStereo, rechitpro.bunch);
266  if (rechitpro.bunch == 0)
267  fillME(iSubDetME->second.meEventStereo, rechitpro.event);
268  }
269  if (rechitpro.resx != -999999. || rechitpro.pullMF != -999999. || rechitpro.chi2 != -999999.) {
270  fillME(iStereoAndMatchedME->second.meResStereo, rechitpro.resx);
271  fillME(iStereoAndMatchedME->second.mePullLFStereo, rechitpro.resx / sqrt(rechitpro.resolxx));
272  fillME(iStereoAndMatchedME->second.mePullMFStereo, rechitpro.pullMF);
273  fillME(iStereoAndMatchedME->second.meChi2Stereo, rechitpro.chi2);
274  }
275  }
276  }
277  }
278 
279  // start loops over detectors with detected rechitmatched
280  for (auto const& theDetSet : *rechitsmatched) {
281  DetId detid = theDetSet.detId();
282  uint32_t myid = detid.rawId();
283  totrechitmatched += theDetSet.size();
284 
285  std::string label = hidmanager.getSubdetid(myid, tTopo, true);
286  std::map<std::string, StereoAndMatchedMEs>::iterator iStereoAndMatchedME = StereoAndMatchedMEsMap.find(label);
287  std::pair<std::string, int32_t> det_lay_pair = fold_organ.GetSubDetAndLayer(myid, tTopo, true);
288 
289  totnumrechitmatched[det_lay_pair.first] = totnumrechitmatched[det_lay_pair.first] + theDetSet.size();
290  //loop over rechits-matched in the same subdetector
291  if (iStereoAndMatchedME != StereoAndMatchedMEsMap.end()) {
292  for (auto const& rechit : theDetSet) {
293  const GluedGeomDet* gluedDet = static_cast<const GluedGeomDet*>(tracker.idToDet(rechit.geographicalId()));
294  //analyze RecHits
295  rechitanalysis_matched(rechit, gluedDet, associate);
296  // fill the result in a histogram
297  fillME(iStereoAndMatchedME->second.mePosxMatched, rechitpro.x);
298  fillME(iStereoAndMatchedME->second.mePosyMatched, rechitpro.y);
299  fillME(iStereoAndMatchedME->second.meResolxMatched, sqrt(rechitpro.resolxx));
300  fillME(iStereoAndMatchedME->second.meResolyMatched, sqrt(rechitpro.resolyy));
301  fillME(iStereoAndMatchedME->second.meNsimHitMatched, rechitpro.NsimHit);
302  if (rechitpro.NsimHit > 0) {
303  std::map<std::string, SubDetMEs>::iterator iSubDetME = SubDetMEsMap.find(det_lay_pair.first);
304  fillME(iSubDetME->second.meBunchMatched, rechitpro.bunch);
305  if (rechitpro.bunch == 0)
306  fillME(iSubDetME->second.meEventMatched, rechitpro.event);
307  }
308  if (rechitpro.resx != -999999. || rechitpro.resy != -999999. || rechitpro.chi2 != -999999.) {
309  fillME(iStereoAndMatchedME->second.meResxMatched, rechitpro.resx);
310  fillME(iStereoAndMatchedME->second.meResyMatched, rechitpro.resy);
311  fillME(iStereoAndMatchedME->second.meChi2Matched, rechitpro.chi2);
312  }
313  }
314  }
315  } //End of loops over detectors
316 
317  //now fill the cumulative histograms of the hits
318  for (std::vector<std::string>::iterator iSubdet = SubDetList_.begin(); iSubdet != SubDetList_.end(); ++iSubdet) {
319  std::map<std::string, SubDetMEs>::iterator iSubDetME = SubDetMEsMap.find((*iSubdet));
320  fillME(iSubDetME->second.meNumrphi, totnumrechitrphi[(*iSubdet)]);
321  fillME(iSubDetME->second.meNumStereo, totnumrechitstereo[(*iSubdet)]);
322  fillME(iSubDetME->second.meNumMatched, totnumrechitmatched[(*iSubdet)]);
323  }
324 
325  fillME(totalMEs.meNumTotrphi, totrechitrphi);
326  fillME(totalMEs.meNumTotStereo, totrechitstereo);
327  fillME(totalMEs.meNumTotMatched, totrechitmatched);
328 }
RecHitProperties rechitpro
std::vector< std::string > SubDetList_
void rechitanalysis_matched(SiStripMatchedRecHit2D const rechit, const GluedGeomDet *gluedDet, TrackerHitAssociator &associate)
TrackerHitAssociator::Config trackerHitAssociatorConfig_
std::map< std::string, SubDetMEs > SubDetMEsMap
void rechitanalysis(SiStripRecHit2D const rechit, const StripTopology &topol, TrackerHitAssociator &associate)
std::map< std::string, StereoAndMatchedMEs > StereoAndMatchedMEsMap
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > m_topoToken
edm::EDGetTokenT< SiStripRecHit2DCollection > stereoRecHitsToken_
char const * label
T sqrt(T t)
Definition: SSEVec.h:19
edm::EDGetTokenT< SiStripRecHit2DCollection > rphiRecHitsToken_
std::string getSubdetid(uint32_t id, const TrackerTopology *tTopo, bool flag_ring)
Log< level::Info, false > LogInfo
Definition: DetId.h:17
std::map< std::string, LayerMEs > LayerMEsMap
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > m_geomToken
std::pair< std::string, int32_t > GetSubDetAndLayer(const uint32_t &detid, const TrackerTopology *tTopo, bool ring_flag=false)
edm::EDGetTokenT< SiStripMatchedRecHit2DCollection > matchedRecHitsToken_
void fillME(MonitorElement *ME, float value1)

◆ bookHistograms()

void SiStripRecHitsValid::bookHistograms ( DQMStore::IBooker ibooker,
const edm::Run run,
const edm::EventSetup es 
)
overrideprotectedvirtual

Implements DQMEDAnalyzer.

Definition at line 163 of file SiStripRecHitsValid.cc.

References edm::ESWatcher< T >::check(), createMEs(), and watchSiStripDetCablingRcd_.

163  {
165  edm::LogInfo("SiStripRecHitsValid") << "SiStripRecHitsValid::beginRun: "
166  << " Creating MEs for new Cabling ";
167 
168  createMEs(ibooker, es);
169  }
170 }
edm::ESWatcher< SiStripDetCablingRcd > watchSiStripDetCablingRcd_
void createMEs(DQMStore::IBooker &ibooker, const edm::EventSetup &es)
Log< level::Info, false > LogInfo
bool check(const edm::EventSetup &iSetup)
Definition: ESWatcher.h:57

◆ bookME1D()

SiStripRecHitsValid::MonitorElement * SiStripRecHitsValid::bookME1D ( DQMStore::IBooker ibooker,
const char *  ParameterSetLabel,
const char *  HistoName,
const char *  HistoTitle 
)
inlineprivate

Definition at line 990 of file SiStripRecHitsValid.cc.

References dqm::implementation::IBooker::book1D(), conf_, and edm::ParameterSet::getParameter().

Referenced by createLayerMEs(), createStereoAndMatchedMEs(), createSubDetMEs(), and createTotalMEs().

993  {
995  return ibooker.book1D(HistoName,
996  HistoTitle,
997  parameters.getParameter<int32_t>("Nbinx"),
998  parameters.getParameter<double>("xmin"),
999  parameters.getParameter<double>("xmax"));
1000 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
std::string HistoName
edm::ParameterSet conf_
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98

◆ createLayerMEs()

void SiStripRecHitsValid::createLayerMEs ( DQMStore::IBooker ibooker,
std::string  label 
)
private

Definition at line 652 of file SiStripRecHitsValid.cc.

References bookME1D(), SiStripHistoId::createHistoLayer(), label, LayerMEsMap, SiStripRecHitsValid::LayerMEs::meAdcrphi, SiStripRecHitsValid::LayerMEs::meChi2rphi, SiStripRecHitsValid::LayerMEs::meNsimHitrphi, SiStripRecHitsValid::LayerMEs::mePosxrphi, SiStripRecHitsValid::LayerMEs::mePullLFrphi, SiStripRecHitsValid::LayerMEs::mePullMFrphi, SiStripRecHitsValid::LayerMEs::meResolxrphi, SiStripRecHitsValid::LayerMEs::meResrphi, SiStripRecHitsValid::LayerMEs::meWclusrphi, dqm::impl::MonitorElement::setAxisTitle(), switchAdcrphi, switchChi2rphi, switchNsimHitrphi, switchPosxrphi, switchPullLFrphi, switchPullMFrphi, switchResolxrphi, switchResrphi, and switchWclusrphi.

Referenced by createMEs().

652  {
653  SiStripHistoId hidmanager;
654  LayerMEs layerMEs;
655 
656  layerMEs.meWclusrphi = nullptr;
657  layerMEs.meAdcrphi = nullptr;
658  layerMEs.mePosxrphi = nullptr;
659  layerMEs.meResolxrphi = nullptr;
660  layerMEs.meResrphi = nullptr;
661  layerMEs.mePullLFrphi = nullptr;
662  layerMEs.mePullMFrphi = nullptr;
663  layerMEs.meChi2rphi = nullptr;
664  layerMEs.meNsimHitrphi = nullptr;
665 
666  //Wclusrphi
667  if (switchWclusrphi) {
668  layerMEs.meWclusrphi = bookME1D(ibooker,
669  "TH1Wclusrphi",
670  hidmanager.createHistoLayer("Wclus_rphi", "layer", label, "").c_str(),
671  "Cluster Width - Number of strips that belong to the RecHit cluster");
672  layerMEs.meWclusrphi->setAxisTitle("Cluster Width [nr strips] in " + label);
673  }
674  //Adcrphi
675  if (switchAdcrphi) {
676  layerMEs.meAdcrphi = bookME1D(ibooker,
677  "TH1Adcrphi",
678  hidmanager.createHistoLayer("Adc_rphi", "layer", label, "").c_str(),
679  "RecHit Cluster Charge");
680  layerMEs.meAdcrphi->setAxisTitle("cluster charge [ADC] in " + label);
681  }
682  //Posxrphi
683  if (switchPosxrphi) {
684  layerMEs.mePosxrphi = bookME1D(ibooker,
685  "TH1Posxrphi",
686  hidmanager.createHistoLayer("Posx_rphi", "layer", label, "").c_str(),
687  "RecHit x coord.");
688  layerMEs.mePosxrphi->setAxisTitle("x RecHit coord. (local frame) in " + label);
689  }
690  //Resolxrphi
691  if (switchResolxrphi) {
692  layerMEs.meResolxrphi = bookME1D(ibooker,
693  "TH1Resolxrphi",
694  hidmanager.createHistoLayer("Resolx_rphi", "layer", label, "").c_str(),
695  "RecHit resol(x) coord."); //<resolor>~20micron
696  layerMEs.meResolxrphi->setAxisTitle("resol(x) RecHit coord. (local frame) in " + label);
697  }
698  //Resrphi
699  if (switchResrphi) {
700  layerMEs.meResrphi = bookME1D(ibooker,
701  "TH1Resrphi",
702  hidmanager.createHistoLayer("Res_rphi", "layer", label, "").c_str(),
703  "Residuals of the hit x coordinate");
704  layerMEs.meResrphi->setAxisTitle("RecHit Res(x) in " + label);
705  }
706  //PullLFrphi
707  if (switchPullLFrphi) {
708  layerMEs.mePullLFrphi = bookME1D(ibooker,
709  "TH1PullLFrphi",
710  hidmanager.createHistoLayer("Pull_LF_rphi", "layer", label, "").c_str(),
711  "Pull distribution");
712  layerMEs.mePullLFrphi->setAxisTitle("Pull distribution (local frame) in " + label);
713  }
714  //PullMFrphi
715  if (switchPullMFrphi) {
716  layerMEs.mePullMFrphi = bookME1D(ibooker,
717  "TH1PullMFrphi",
718  hidmanager.createHistoLayer("Pull_MF_rphi", "layer", label, "").c_str(),
719  "Pull distribution");
720  layerMEs.mePullMFrphi->setAxisTitle("Pull distribution (measurement frame) in " + label);
721  }
722  //Chi2rphi
723  if (switchChi2rphi) {
724  layerMEs.meChi2rphi = bookME1D(ibooker,
725  "TH1Chi2rphi",
726  hidmanager.createHistoLayer("Chi2_rphi", "layer", label, "").c_str(),
727  "RecHit Chi2 test");
728  layerMEs.meChi2rphi->setAxisTitle("RecHit Chi2 test in " + label);
729  }
730  //NsimHitrphi
731  if (switchNsimHitrphi) {
732  layerMEs.meNsimHitrphi = bookME1D(ibooker,
733  "TH1NsimHitrphi",
734  hidmanager.createHistoLayer("NsimHit_rphi", "layer", label, "").c_str(),
735  "No. of assoc. simHits");
736  layerMEs.meNsimHitrphi->setAxisTitle("Number of assoc. simHits in " + label);
737  }
738 
739  LayerMEsMap[label] = layerMEs;
740 }
char const * label
MonitorElement * bookME1D(DQMStore::IBooker &ibooker, const char *ParameterSetLabel, const char *HistoName, const char *HistoTitle)
std::map< std::string, LayerMEs > LayerMEsMap
std::string createHistoLayer(std::string description, std::string id_type, std::string path, std::string flag)
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)

◆ createMEs()

void SiStripRecHitsValid::createMEs ( DQMStore::IBooker ibooker,
const edm::EventSetup es 
)
private

Definition at line 514 of file SiStripRecHitsValid.cc.

References funct::abs(), SiStripDetCabling::addActiveDetectorsRawIds(), createLayerMEs(), createStereoAndMatchedMEs(), createSubDetMEs(), createTotalMEs(), edm::EventSetup::getData(), SiStripFolderOrganizer::GetSubDetAndLayer(), SiStripFolderOrganizer::getSubDetFolderAndTag(), SiStripHistoId::getSubdetid(), SiStripSubStructure::getTECDetectors(), SiStripSubStructure::getTIBDetectors(), SiStripSubStructure::getTIDDetectors(), SiStripSubStructure::getTOBDetectors(), label, LayerDetMap, LayerMEsMap, m_SiStripDetCablingToken, m_topoTokenBR, dqm::implementation::NavigatorBase::setCurrentFolder(), SiStripFolderOrganizer::setLayerFolder(), SiStripFolderOrganizer::setSiStripFolder(), SiStripFolderOrganizer::setSiStripFolderName(), SiStripDetCabling_, StereoAndMatchedDetMap, StereoAndMatchedMEsMap, AlCaHLTBitMon_QueryRunRegistry::string, SubDetMEsMap, TrackerTopology::tecIsStereo(), TrackerTopology::tibIsStereo(), TrackerTopology::tidIsStereo(), TrackerTopology::tobIsStereo(), and topFolderName_.

Referenced by bookHistograms().

514  {
515  //Retrieve tracker topology from geometry
516  const TrackerTopology* const tTopo = &es.getData(m_topoTokenBR);
517 
518  // take from eventSetup the SiStripDetCabling object - here will use SiStripDetControl later on
520 
521  // get list of active detectors from SiStripDetCabling
522  std::vector<uint32_t> activeDets;
524 
525  SiStripFolderOrganizer folder_organizer;
526  // folder_organizer.setSiStripFolderName(topFolderName_);
527  std::string curfold = topFolderName_;
528  folder_organizer.setSiStripFolderName(curfold);
529  folder_organizer.setSiStripFolder();
530 
531  createTotalMEs(ibooker);
532  // loop over detectors and book MEs
533  edm::LogInfo("SiStripTkRecHits|SiStripRecHitsValid") << "nr. of activeDets: " << activeDets.size();
534  const std::string &tec = "TEC", tid = "TID", tob = "TOB", tib = "TIB";
535  for (auto detid_iterator = activeDets.begin(), detid_end = activeDets.end(); detid_iterator != detid_end;
536  ++detid_iterator) {
537  uint32_t detid = (*detid_iterator);
538  // remove any eventual zero elements - there should be none, but just in case
539  if (detid == 0) {
540  activeDets.erase(detid_iterator);
541  continue;
542  }
543 
544  // Create Layer Level MEs
545  std::pair<std::string, int32_t> det_layer_pair = folder_organizer.GetSubDetAndLayer(detid, tTopo, true);
546  SiStripHistoId hidmanager;
547  std::string label = hidmanager.getSubdetid(detid, tTopo, true);
548 
549  if (LayerMEsMap.find(label) == LayerMEsMap.end()) {
550  // get detids for the layer
551  // Keep in mind that when we are on the TID or TEC we deal with rings not wheel
552  int32_t lnumber = det_layer_pair.second;
553  const std::string& lname = det_layer_pair.first;
554  std::vector<uint32_t> layerDetIds;
555  if (lname == tec) {
556  if (lnumber > 0) {
557  SiStripSubStructure::getTECDetectors(activeDets, layerDetIds, tTopo, 2, 0, 0, 0, abs(lnumber), 0);
558  } else if (lnumber < 0) {
559  SiStripSubStructure::getTECDetectors(activeDets, layerDetIds, tTopo, 1, 0, 0, 0, abs(lnumber), 0);
560  }
561  } else if (lname == tid) {
562  if (lnumber > 0) {
563  SiStripSubStructure::getTIDDetectors(activeDets, layerDetIds, tTopo, 2, 0, abs(lnumber), 0);
564  } else if (lnumber < 0) {
565  SiStripSubStructure::getTIDDetectors(activeDets, layerDetIds, tTopo, 1, 0, abs(lnumber), 0);
566  }
567  } else if (lname == tob) {
568  SiStripSubStructure::getTOBDetectors(activeDets, layerDetIds, tTopo, lnumber, 0, 0);
569  } else if (lname == tib) {
570  SiStripSubStructure::getTIBDetectors(activeDets, layerDetIds, tTopo, lnumber, 0, 0, 0);
571  }
572  LayerDetMap[label] = layerDetIds;
573 
574  // book Layer MEs
575  folder_organizer.setLayerFolder(detid, tTopo, det_layer_pair.second, true);
576  createLayerMEs(ibooker, label);
577  }
578  // book sub-detector plots
579  if (SubDetMEsMap.find(det_layer_pair.first) == SubDetMEsMap.end()) {
580  auto sdet_pair = folder_organizer.getSubDetFolderAndTag(detid, tTopo);
581  ibooker.setCurrentFolder(sdet_pair.first);
582  createSubDetMEs(ibooker, det_layer_pair.first);
583  }
584  //Create StereoAndMatchedMEs
586  // get detids for the stereo and matched layer. We are going to need a bool for these layers
587  bool isStereo = false;
588  // Keep in mind that when we are on the TID or TEC we deal with rings not wheel
589  std::vector<uint32_t> stereoandmatchedDetIds;
590  int32_t stereolnumber = det_layer_pair.second;
591  const std::string& stereolname = det_layer_pair.first;
592  if (stereolname == tec && (tTopo->tecIsStereo(detid))) {
593  if (stereolnumber > 0) {
595  activeDets, stereoandmatchedDetIds, tTopo, 2, 0, 0, 0, abs(stereolnumber), 1);
596  isStereo = true;
597  } else if (stereolnumber < 0) {
599  activeDets, stereoandmatchedDetIds, tTopo, 1, 0, 0, 0, abs(stereolnumber), 1);
600  isStereo = true;
601  }
602  } else if (stereolname == tid && (tTopo->tidIsStereo(detid))) {
603  if (stereolnumber > 0) {
604  SiStripSubStructure::getTIDDetectors(activeDets, stereoandmatchedDetIds, tTopo, 2, 0, abs(stereolnumber), 1);
605  isStereo = true;
606  } else if (stereolnumber < 0) {
607  SiStripSubStructure::getTIDDetectors(activeDets, stereoandmatchedDetIds, tTopo, 1, 0, abs(stereolnumber), 1);
608  isStereo = true;
609  }
610  } else if (stereolname == tob && (tTopo->tobIsStereo(detid))) {
611  SiStripSubStructure::getTOBDetectors(activeDets, stereoandmatchedDetIds, tTopo, stereolnumber, 0, 0);
612  isStereo = true;
613  } else if (stereolname == tib && (tTopo->tibIsStereo(detid))) {
614  SiStripSubStructure::getTIBDetectors(activeDets, stereoandmatchedDetIds, tTopo, stereolnumber, 0, 0, 0);
615  isStereo = true;
616  }
617 
618  StereoAndMatchedDetMap[label] = stereoandmatchedDetIds;
619 
620  if (isStereo) {
621  //book StereoAndMatched MEs
622  folder_organizer.setLayerFolder(detid, tTopo, det_layer_pair.second, true);
623  //Create the Monitor Elements only when we have a stereo module
625  }
626  }
627  } //end of loop over detectors
628 }
void getTIBDetectors(const std::vector< uint32_t > &inputDetRawIds, std::vector< uint32_t > &tibDetRawIds, const TrackerTopology *trackerTopology, uint32_t layer=0, uint32_t bkw_frw=0, uint32_t int_ext=0, uint32_t string=0)
void createStereoAndMatchedMEs(DQMStore::IBooker &ibooker, std::string label)
void setSiStripFolderName(std::string name)
std::pair< const std::string, const char * > getSubDetFolderAndTag(const uint32_t &detid, const TrackerTopology *tTopo)
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
void createSubDetMEs(DQMStore::IBooker &ibooker, std::string label)
std::map< std::string, SubDetMEs > SubDetMEsMap
std::map< std::string, StereoAndMatchedMEs > StereoAndMatchedMEsMap
void getTIDDetectors(const std::vector< uint32_t > &inputDetRawIds, std::vector< uint32_t > &tidDetRawIds, const TrackerTopology *trackerTopology, uint32_t side=0, uint32_t wheel=0, uint32_t ring=0, uint32_t ster=0)
void setLayerFolder(uint32_t rawdetid, const TrackerTopology *tTopo, int32_t layer=0, bool ring_flag=false)
void getTECDetectors(const std::vector< uint32_t > &inputDetRawIds, std::vector< uint32_t > &tecDetRawIds, const TrackerTopology *trackerTopology, uint32_t side=0, uint32_t wheel=0, uint32_t petal_bkw_frw=0, uint32_t petal=0, uint32_t ring=0, uint32_t ster=0)
bool tibIsStereo(const DetId &id) const
bool tobIsStereo(const DetId &id) const
char const * label
const edm::ESGetToken< SiStripDetCabling, SiStripDetCablingRcd > m_SiStripDetCablingToken
std::map< std::string, std::vector< uint32_t > > LayerDetMap
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool getData(T &iHolder) const
Definition: EventSetup.h:122
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > m_topoTokenBR
std::string getSubdetid(uint32_t id, const TrackerTopology *tTopo, bool flag_ring)
Log< level::Info, false > LogInfo
std::map< std::string, LayerMEs > LayerMEsMap
edm::ESHandle< SiStripDetCabling > SiStripDetCabling_
bool tecIsStereo(const DetId &id) const
std::pair< std::string, int32_t > GetSubDetAndLayer(const uint32_t &detid, const TrackerTopology *tTopo, bool ring_flag=false)
bool tidIsStereo(const DetId &id) const
void createTotalMEs(DQMStore::IBooker &ibooker)
void createLayerMEs(DQMStore::IBooker &ibooker, std::string label)
void getTOBDetectors(const std::vector< uint32_t > &inputDetRawIds, std::vector< uint32_t > &tobDetRawIds, const TrackerTopology *trackerTopology, uint32_t layer=0, uint32_t bkw_frw=0, uint32_t rod=0)
std::map< std::string, std::vector< uint32_t > > StereoAndMatchedDetMap
void addActiveDetectorsRawIds(std::vector< uint32_t > &) const

◆ createStereoAndMatchedMEs()

void SiStripRecHitsValid::createStereoAndMatchedMEs ( DQMStore::IBooker ibooker,
std::string  label 
)
private

Definition at line 742 of file SiStripRecHitsValid.cc.

References bookME1D(), SiStripHistoId::createHistoLayer(), label, SiStripRecHitsValid::StereoAndMatchedMEs::meAdcStereo, SiStripRecHitsValid::StereoAndMatchedMEs::meChi2Matched, SiStripRecHitsValid::StereoAndMatchedMEs::meChi2Stereo, SiStripRecHitsValid::StereoAndMatchedMEs::meNsimHitMatched, SiStripRecHitsValid::StereoAndMatchedMEs::meNsimHitStereo, SiStripRecHitsValid::StereoAndMatchedMEs::mePosxMatched, SiStripRecHitsValid::StereoAndMatchedMEs::mePosxStereo, SiStripRecHitsValid::StereoAndMatchedMEs::mePosyMatched, SiStripRecHitsValid::StereoAndMatchedMEs::mePullLFStereo, SiStripRecHitsValid::StereoAndMatchedMEs::mePullMFStereo, SiStripRecHitsValid::StereoAndMatchedMEs::meResolxMatched, SiStripRecHitsValid::StereoAndMatchedMEs::meResolxStereo, SiStripRecHitsValid::StereoAndMatchedMEs::meResolyMatched, SiStripRecHitsValid::StereoAndMatchedMEs::meResStereo, SiStripRecHitsValid::StereoAndMatchedMEs::meResxMatched, SiStripRecHitsValid::StereoAndMatchedMEs::meResyMatched, SiStripRecHitsValid::StereoAndMatchedMEs::meWclusStereo, dqm::impl::MonitorElement::setAxisTitle(), StereoAndMatchedMEsMap, switchAdcStereo, switchChi2Matched, switchChi2Stereo, switchNsimHitMatched, switchNsimHitStereo, switchPosxMatched, switchPosxStereo, switchPosyMatched, switchPullLFStereo, switchPullMFStereo, switchResolxMatched, switchResolxStereo, switchResolyMatched, switchResStereo, switchResxMatched, switchResyMatched, and switchWclusStereo.

Referenced by createMEs().

742  {
743  SiStripHistoId hidmanager;
744  StereoAndMatchedMEs stereoandmatchedMEs;
745 
746  stereoandmatchedMEs.meWclusStereo = nullptr;
747  stereoandmatchedMEs.meAdcStereo = nullptr;
748  stereoandmatchedMEs.mePosxStereo = nullptr;
749  stereoandmatchedMEs.meResolxStereo = nullptr;
750  stereoandmatchedMEs.meResStereo = nullptr;
751  stereoandmatchedMEs.mePullLFStereo = nullptr;
752  stereoandmatchedMEs.mePullMFStereo = nullptr;
753  stereoandmatchedMEs.meChi2Stereo = nullptr;
754  stereoandmatchedMEs.meNsimHitStereo = nullptr;
755  stereoandmatchedMEs.mePosxMatched = nullptr;
756  stereoandmatchedMEs.mePosyMatched = nullptr;
757  stereoandmatchedMEs.meResolxMatched = nullptr;
758  stereoandmatchedMEs.meResolyMatched = nullptr;
759  stereoandmatchedMEs.meResxMatched = nullptr;
760  stereoandmatchedMEs.meResyMatched = nullptr;
761  stereoandmatchedMEs.meChi2Matched = nullptr;
762  stereoandmatchedMEs.meNsimHitMatched = nullptr;
763 
764  //WclusStereo
765  if (switchWclusStereo) {
766  stereoandmatchedMEs.meWclusStereo =
767  bookME1D(ibooker,
768  "TH1WclusStereo",
769  hidmanager.createHistoLayer("Wclus_stereo", "layer", label, "").c_str(),
770  "Cluster Width - Number of strips that belong to the RecHit cluster");
771  stereoandmatchedMEs.meWclusStereo->setAxisTitle("Cluster Width [nr strips] in stereo modules in " + label);
772  }
773  //AdcStereo
774  if (switchAdcStereo) {
775  stereoandmatchedMEs.meAdcStereo = bookME1D(ibooker,
776  "TH1AdcStereo",
777  hidmanager.createHistoLayer("Adc_stereo", "layer", label, "").c_str(),
778  "RecHit Cluster Charge");
779  stereoandmatchedMEs.meAdcStereo->setAxisTitle("cluster charge [ADC] in stereo modules in " + label);
780  }
781  //PosxStereo
782  if (switchPosxStereo) {
783  stereoandmatchedMEs.mePosxStereo = bookME1D(ibooker,
784  "TH1PosxStereo",
785  hidmanager.createHistoLayer("Posx_stereo", "layer", label, "").c_str(),
786  "RecHit x coord.");
787  stereoandmatchedMEs.mePosxStereo->setAxisTitle("x RecHit coord. (local frame) in stereo modules in " + label);
788  }
789  //ResolxStereo
790  if (switchResolxStereo) {
791  stereoandmatchedMEs.meResolxStereo =
792  bookME1D(ibooker,
793  "TH1ResolxStereo",
794  hidmanager.createHistoLayer("Resolx_stereo", "layer", label, "").c_str(),
795  "RecHit resol(x) coord.");
796  stereoandmatchedMEs.meResolxStereo->setAxisTitle("resol(x) RecHit coord. (local frame) in stereo modules in " +
797  label);
798  }
799  //ResStereo
800  if (switchResStereo) {
801  stereoandmatchedMEs.meResStereo = bookME1D(ibooker,
802  "TH1ResStereo",
803  hidmanager.createHistoLayer("Res_stereo", "layer", label, "").c_str(),
804  "Residuals of the hit x coordinate");
805  stereoandmatchedMEs.meResStereo->setAxisTitle("RecHit Res(x) in stereo modules in " + label);
806  }
807  //PullLFStereo
808  if (switchPullLFStereo) {
809  stereoandmatchedMEs.mePullLFStereo =
810  bookME1D(ibooker,
811  "TH1PullLFStereo",
812  hidmanager.createHistoLayer("Pull_LF_stereo", "layer", label, "").c_str(),
813  "Pull distribution");
814  stereoandmatchedMEs.mePullLFStereo->setAxisTitle("Pull distribution (local frame) in stereo modules in " + label);
815  }
816  //PullMFStereo
817  if (switchPullMFStereo) {
818  stereoandmatchedMEs.mePullMFStereo =
819  bookME1D(ibooker,
820  "TH1PullMFStereo",
821  hidmanager.createHistoLayer("Pull_MF_stereo", "layer", label, "").c_str(),
822  "Pull distribution");
823  stereoandmatchedMEs.mePullMFStereo->setAxisTitle("Pull distribution (measurement frame) in stereo modules in " +
824  label);
825  }
826  //Chi2Stereo
827  if (switchChi2Stereo) {
828  stereoandmatchedMEs.meChi2Stereo = bookME1D(ibooker,
829  "TH1Chi2Stereo",
830  hidmanager.createHistoLayer("Chi2_stereo", "layer", label, "").c_str(),
831  "RecHit Chi2 test");
832  stereoandmatchedMEs.meChi2Stereo->setAxisTitle("RecHit Chi2 test in stereo modules in " + label);
833  }
834  //NsimHitStereo
835  if (switchNsimHitStereo) {
836  stereoandmatchedMEs.meNsimHitStereo =
837  bookME1D(ibooker,
838  "TH1NsimHitStereo",
839  hidmanager.createHistoLayer("NsimHit_stereo", "layer", label, "").c_str(),
840  "No. of assoc. simHits");
841  stereoandmatchedMEs.meNsimHitStereo->setAxisTitle("Number of assoc. simHits in stereo modules in " + label);
842  }
843  //PosxMatched
844  if (switchPosxMatched) {
845  stereoandmatchedMEs.mePosxMatched =
846  bookME1D(ibooker,
847  "TH1PosxMatched",
848  hidmanager.createHistoLayer("Posx_matched", "layer", label, "").c_str(),
849  "RecHit x coord.");
850  stereoandmatchedMEs.mePosxMatched->setAxisTitle("x coord. matched RecHit (local frame) in " + label);
851  }
852  //PosyMatched
853  if (switchPosyMatched) {
854  stereoandmatchedMEs.mePosyMatched =
855  bookME1D(ibooker,
856  "TH1PosyMatched",
857  hidmanager.createHistoLayer("Posy_matched", "layer", label, "").c_str(),
858  "RecHit y coord.");
859  stereoandmatchedMEs.mePosyMatched->setAxisTitle("y coord. matched RecHit (local frame) in " + label);
860  }
861  //ResolxMatched
862  if (switchResolxMatched) {
863  stereoandmatchedMEs.meResolxMatched =
864  bookME1D(ibooker,
865  "TH1ResolxMatched",
866  hidmanager.createHistoLayer("Resolx_matched", "layer", label, "").c_str(),
867  "RecHit resol(x) coord.");
868  stereoandmatchedMEs.meResolxMatched->setAxisTitle("resol(x) coord. matched RecHit (local frame) in " + label);
869  }
870  //ResolyMatched
871  if (switchResolyMatched) {
872  stereoandmatchedMEs.meResolyMatched =
873  bookME1D(ibooker,
874  "TH1ResolyMatched",
875  hidmanager.createHistoLayer("Resoly_matched", "layer", label, "").c_str(),
876  "RecHit resol(y) coord.");
877  stereoandmatchedMEs.meResolyMatched->setAxisTitle("resol(y) coord. matched RecHit (local frame) in " + label);
878  }
879  //ResxMatched
880  if (switchResxMatched) {
881  stereoandmatchedMEs.meResxMatched =
882  bookME1D(ibooker,
883  "TH1ResxMatched",
884  hidmanager.createHistoLayer("Resx_matched", "layer", label, "").c_str(),
885  "Residuals of the hit x coord.");
886  stereoandmatchedMEs.meResxMatched->setAxisTitle("Res(x) in matched RecHit in " + label);
887  }
888  //ResyMatched
889  if (switchResyMatched) {
890  stereoandmatchedMEs.meResyMatched =
891  bookME1D(ibooker,
892  "TH1ResyMatched",
893  hidmanager.createHistoLayer("Resy_matched", "layer", label, "").c_str(),
894  "Residuals of the hit y coord.");
895  stereoandmatchedMEs.meResyMatched->setAxisTitle("Res(y) in matched RecHit in " + label);
896  }
897  //Chi2Matched
898  if (switchChi2Matched) {
899  stereoandmatchedMEs.meChi2Matched =
900  bookME1D(ibooker,
901  "TH1Chi2Matched",
902  hidmanager.createHistoLayer("Chi2_matched", "layer", label, "").c_str(),
903  "RecHit Chi2 test");
904  stereoandmatchedMEs.meChi2Matched->setAxisTitle("Matched RecHit Chi2 test in " + label);
905  }
906  //NsimHitMatched
907  if (switchNsimHitMatched) {
908  stereoandmatchedMEs.meNsimHitMatched =
909  bookME1D(ibooker,
910  "TH1NsimHitMatched",
911  hidmanager.createHistoLayer("NsimHit_matched", "layer", label, "").c_str(),
912  "No. of assoc. simHits");
913  stereoandmatchedMEs.meNsimHitMatched->setAxisTitle("Number of assoc. simHits in " + label);
914  }
915 
916  StereoAndMatchedMEsMap[label] = stereoandmatchedMEs;
917 }
std::map< std::string, StereoAndMatchedMEs > StereoAndMatchedMEsMap
char const * label
MonitorElement * bookME1D(DQMStore::IBooker &ibooker, const char *ParameterSetLabel, const char *HistoName, const char *HistoTitle)
std::string createHistoLayer(std::string description, std::string id_type, std::string path, std::string flag)
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)

◆ createSubDetMEs()

void SiStripRecHitsValid::createSubDetMEs ( DQMStore::IBooker ibooker,
std::string  label 
)
private

Definition at line 919 of file SiStripRecHitsValid.cc.

References bookME1D(), label, SiStripRecHitsValid::SubDetMEs::meBunchMatched, SiStripRecHitsValid::SubDetMEs::meBunchrphi, SiStripRecHitsValid::SubDetMEs::meBunchStereo, SiStripRecHitsValid::SubDetMEs::meEventMatched, SiStripRecHitsValid::SubDetMEs::meEventrphi, SiStripRecHitsValid::SubDetMEs::meEventStereo, SiStripRecHitsValid::SubDetMEs::meNumMatched, SiStripRecHitsValid::SubDetMEs::meNumrphi, SiStripRecHitsValid::SubDetMEs::meNumStereo, dqm::impl::MonitorElement::setAxisTitle(), AlCaHLTBitMon_QueryRunRegistry::string, SubDetMEsMap, switchBunchMatched, switchBunchrphi, switchBunchStereo, switchEventMatched, switchEventrphi, switchEventStereo, switchNumMatched, switchNumrphi, and switchNumStereo.

Referenced by createMEs().

919  {
920  SubDetMEs subdetMEs;
921  subdetMEs.meNumrphi = nullptr;
922  subdetMEs.meBunchrphi = nullptr;
923  subdetMEs.meEventrphi = nullptr;
924  subdetMEs.meNumStereo = nullptr;
925  subdetMEs.meBunchStereo = nullptr;
926  subdetMEs.meEventStereo = nullptr;
927  subdetMEs.meNumMatched = nullptr;
928  subdetMEs.meBunchMatched = nullptr;
929  subdetMEs.meEventMatched = nullptr;
930 
932  //Numrphi
933  if (switchNumrphi) {
934  HistoName = "TH1Numrphi__" + label;
935  subdetMEs.meNumrphi = bookME1D(ibooker, "TH1Numrphi", HistoName.c_str(), "Num of RecHits");
936  subdetMEs.meNumrphi->setAxisTitle("Total number of RecHits in " + label);
937  }
938  //Bunchrphi
939  if (switchBunchrphi) {
940  HistoName = "TH1Bunchrphi__" + label;
941  subdetMEs.meBunchrphi = bookME1D(ibooker, "TH1Bunchrphi", HistoName.c_str(), "Bunch Crossing");
942  subdetMEs.meBunchrphi->setAxisTitle("Bunch crossing in " + label);
943  }
944  //Eventrphi
945  if (switchEventrphi) {
946  HistoName = "TH1Eventrphi__" + label;
947  subdetMEs.meEventrphi = bookME1D(ibooker, "TH1Eventrphi", HistoName.c_str(), "Event (in-time bunch)");
948  subdetMEs.meEventrphi->setAxisTitle("Event (in-time bunch) in " + label);
949  }
950  //NumStereo
951  if (switchNumStereo) {
952  HistoName = "TH1NumStereo__" + label;
953  subdetMEs.meNumStereo = bookME1D(ibooker, "TH1NumStereo", HistoName.c_str(), "Num of RecHits in stereo modules");
954  subdetMEs.meNumStereo->setAxisTitle("Total number of RecHits, stereo modules in " + label);
955  }
956  //BunchStereo
957  if (switchBunchStereo) {
958  HistoName = "TH1BunchStereo__" + label;
959  subdetMEs.meBunchStereo = bookME1D(ibooker, "TH1BunchStereo", HistoName.c_str(), "Bunch Crossing");
960  subdetMEs.meBunchStereo->setAxisTitle("Bunch crossing, stereo modules in " + label);
961  }
962  //EventStereo
963  if (switchEventStereo) {
964  HistoName = "TH1EventStereo__" + label;
965  subdetMEs.meEventStereo = bookME1D(ibooker, "TH1EventStereo", HistoName.c_str(), "Event (in-time bunch)");
966  subdetMEs.meEventStereo->setAxisTitle("Event (in-time bunch), stereo modules in " + label);
967  }
968  //NumMatched
969  if (switchNumMatched) {
970  HistoName = "TH1NumMatched__" + label;
971  subdetMEs.meNumMatched = bookME1D(ibooker, "TH1NumMatched", HistoName.c_str(), "Num of matched RecHits");
972  subdetMEs.meNumMatched->setAxisTitle("Total number of matched RecHits in " + label);
973  }
974  //BunchMatched
975  if (switchBunchMatched) {
976  HistoName = "TH1BunchMatched__" + label;
977  subdetMEs.meBunchMatched = bookME1D(ibooker, "TH1BunchMatched", HistoName.c_str(), "Bunch Crossing");
978  subdetMEs.meBunchMatched->setAxisTitle("Bunch crossing, matched RecHits in " + label);
979  }
980  //EventMatched
981  if (switchEventMatched) {
982  HistoName = "TH1EventMatched__" + label;
983  subdetMEs.meEventMatched = bookME1D(ibooker, "TH1EventMatched", HistoName.c_str(), "Event (in-time bunch)");
984  subdetMEs.meEventMatched->setAxisTitle("Event (in-time bunch), matched RecHits in " + label);
985  }
986 
987  SubDetMEsMap[label] = subdetMEs;
988 }
std::map< std::string, SubDetMEs > SubDetMEsMap
char const * label
MonitorElement * bookME1D(DQMStore::IBooker &ibooker, const char *ParameterSetLabel, const char *HistoName, const char *HistoTitle)
std::string HistoName
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)

◆ createTotalMEs()

void SiStripRecHitsValid::createTotalMEs ( DQMStore::IBooker ibooker)
private

Definition at line 630 of file SiStripRecHitsValid.cc.

References bookME1D(), SiStripRecHitsValid::TotalMEs::meNumTotMatched, SiStripRecHitsValid::TotalMEs::meNumTotrphi, SiStripRecHitsValid::TotalMEs::meNumTotStereo, dqm::impl::MonitorElement::setAxisTitle(), switchNumTotMatched, switchNumTotrphi, switchNumTotStereo, and totalMEs.

Referenced by createMEs().

630  {
631  totalMEs.meNumTotrphi = nullptr;
632  totalMEs.meNumTotStereo = nullptr;
633  totalMEs.meNumTotMatched = nullptr;
634 
635  //NumTotrphi
636  if (switchNumTotrphi) {
637  totalMEs.meNumTotrphi = bookME1D(ibooker, "TH1NumTotrphi", "TH1NumTotrphi", "Num of RecHits rphi");
638  totalMEs.meNumTotrphi->setAxisTitle("Total number of RecHits");
639  }
640  //NumTotStereo
641  if (switchNumTotStereo) {
642  totalMEs.meNumTotStereo = bookME1D(ibooker, "TH1NumTotStereo", "TH1NumTotStereo", "Num of RecHits stereo");
643  totalMEs.meNumTotStereo->setAxisTitle("Total number of RecHits (stereo)");
644  }
645  //NumTotMatched
646  if (switchNumTotMatched) {
647  totalMEs.meNumTotMatched = bookME1D(ibooker, "TH1NumTotMatched", "TH1NumTotMatched", "Num of RecHits matched");
648  totalMEs.meNumTotMatched->setAxisTitle("Total number of matched RecHits");
649  }
650 }
MonitorElement * bookME1D(DQMStore::IBooker &ibooker, const char *ParameterSetLabel, const char *HistoName, const char *HistoTitle)
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)

◆ fillME() [1/4]

void SiStripRecHitsValid::fillME ( MonitorElement ME,
float  value1 
)
inlineprivate

Definition at line 206 of file SiStripRecHitsValid.h.

References HLT_2022v15_cff::value1.

Referenced by analyze().

206  {
207  if (ME != nullptr)
208  ME->Fill(value1);
209  }
Definition: ME.h:11

◆ fillME() [2/4]

void SiStripRecHitsValid::fillME ( MonitorElement ME,
float  value1,
float  value2 
)
inlineprivate

Definition at line 210 of file SiStripRecHitsValid.h.

References HLT_2022v15_cff::value1, and HLT_2022v15_cff::value2.

210  {
211  if (ME != nullptr)
212  ME->Fill(value1, value2);
213  }
Definition: ME.h:11

◆ fillME() [3/4]

void SiStripRecHitsValid::fillME ( MonitorElement ME,
float  value1,
float  value2,
float  value3 
)
inlineprivate

Definition at line 214 of file SiStripRecHitsValid.h.

References HLT_2022v15_cff::value1, and HLT_2022v15_cff::value2.

214  {
215  if (ME != nullptr)
216  ME->Fill(value1, value2, value3);
217  }
Definition: ME.h:11

◆ fillME() [4/4]

void SiStripRecHitsValid::fillME ( MonitorElement ME,
float  value1,
float  value2,
float  value3,
float  value4 
)
inlineprivate

Definition at line 218 of file SiStripRecHitsValid.h.

References HLT_2022v15_cff::value1, and HLT_2022v15_cff::value2.

218  {
219  if (ME != nullptr)
220  ME->Fill(value1, value2, value3, value4);
221  }
Definition: ME.h:11

◆ projectHit()

std::pair< LocalPoint, LocalVector > SiStripRecHitsValid::projectHit ( const PSimHit hit,
const StripGeomDetUnit stripDet,
const BoundPlane plane 
)
private

Definition at line 331 of file SiStripRecHitsValid.cc.

References funct::cos(), DeadROC_duringRun::dir, L1EGammaClusterEmuProducer_cfi::scale, funct::sin(), StripGeomDetUnit::specificTopology(), StripTopology::strip(), StripTopology::stripAngle(), GeomDet::surface(), Surface::toGlobal(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by rechitanalysis_matched().

333  {
334  // const StripGeomDetUnit* stripDet = dynamic_cast<const StripGeomDetUnit*>(hit.det());
335  //if (stripDet == nullptr) throw MeasurementDetException("HitMatcher hit is not on StripGeomDetUnit");
336 
337  const StripTopology& topol = stripDet->specificTopology();
338  GlobalPoint globalpos = stripDet->surface().toGlobal(hit.localPosition());
339  LocalPoint localHit = plane.toLocal(globalpos);
340  //track direction
341  LocalVector locdir = hit.localDirection();
342  //rotate track in new frame
343 
344  GlobalVector globaldir = stripDet->surface().toGlobal(locdir);
345  LocalVector dir = plane.toLocal(globaldir);
346  double scale = -localHit.z() / dir.z();
347 
348  LocalPoint projectedPos = localHit + scale * dir;
349 
350  double selfAngle = topol.stripAngle(topol.strip(hit.localPosition()));
351 
352  LocalVector stripDir(sin(selfAngle), cos(selfAngle), 0); // vector along strip in hit frame
353 
354  LocalVector localStripDir(plane.toLocal(stripDet->surface().toGlobal(stripDir)));
355 
356  return std::pair<LocalPoint, LocalVector>(projectedPos, localStripDir);
357 }
virtual float stripAngle(float strip) const =0
T z() const
Definition: PV3DBase.h:61
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
virtual float strip(const LocalPoint &) const =0
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
virtual const StripTopology & specificTopology() const
Returns a reference to the strip proxy topology.
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:79
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37

◆ rechitanalysis()

void SiStripRecHitsValid::rechitanalysis ( SiStripRecHit2D const  rechit,
const StripTopology topol,
TrackerHitAssociator associate 
)
private

Definition at line 359 of file SiStripRecHitsValid.cc.

References TrackerHitAssociator::associateHit(), SiStripRecHitsValid::RecHitProperties::bunch, SiStripRecHitsValid::RecHitProperties::chi2, pv::closest(), SiStripRecHitsValid::RecHitProperties::cluchg, SiStripRecHitsValid::RecHitProperties::clusiz, SiStripRecHit2D::cluster(), relativeConstraints::error, SiStripRecHitsValid::RecHitProperties::event, BaseTrackerRecHit::localPosition(), BaseTrackerRecHit::localPositionError(), visualization-live-secondInstance_cfg::m, muonTagProbeFilters_cff::matched, SiStripPI::max, Topology::measurementError(), Topology::measurementPosition(), SiStripRecHitsValid::RecHitProperties::NsimHit, position, SiStripRecHitsValid::RecHitProperties::pullMF, dttmaxenums::R, alignCSCRings::r, rechitpro, SiStripRecHitsValid::RecHitProperties::resolxx, SiStripRecHitsValid::RecHitProperties::resolyy, SiStripRecHitsValid::RecHitProperties::resx, SiStripRecHitsValid::RecHitProperties::resy, mathSSE::sqrt(), MeasurementError::uu(), PV2DBase< T, PVType, FrameType >::x(), SiStripRecHitsValid::RecHitProperties::x, and SiStripRecHitsValid::RecHitProperties::y.

Referenced by analyze().

361  {
362  rechitpro.resx = -999999.;
363  rechitpro.resy = -999999.;
364  rechitpro.pullMF = -999999.;
365  rechitpro.chi2 = -999999.;
366  rechitpro.bunch = -999999.;
367  rechitpro.event = -999999.;
368 
369  LocalPoint position = rechit.localPosition();
370  LocalError error = rechit.localPositionError();
371  MeasurementPoint Mposition = topol.measurementPosition(position);
373  const auto& amplitudes = (rechit.cluster())->amplitudes();
374  int totcharge = 0;
375  for (auto ia : amplitudes) {
376  totcharge += ia;
377  }
378  rechitpro.x = position.x();
379  rechitpro.y = position.y();
380  //rechitpro.z = position.z();
381  rechitpro.resolxx = error.xx();
382  //rechitpro.resolxy = error.xy();
383  rechitpro.resolyy = error.yy();
384  rechitpro.clusiz = amplitudes.size();
385  rechitpro.cluchg = totcharge;
386 
387  auto const& matched = associate.associateHit(rechit);
388  rechitpro.NsimHit = matched.size();
389 
390  if (!matched.empty()) {
391  float mindist = std::numeric_limits<float>::max();
392  float dist = std::numeric_limits<float>::max();
393  PSimHit const* closest = nullptr;
394 
395  for (auto const& m : matched) {
396  dist = fabs(rechitpro.x - m.localPosition().x());
397  if (dist < mindist) {
398  mindist = dist;
399  closest = &m;
400  }
401  }
402 
403  if (!closest)
404  return;
405 
406  rechitpro.bunch = closest->eventId().bunchCrossing();
407  rechitpro.event = closest->eventId().event();
408  rechitpro.resx = rechitpro.x - closest->localPosition().x();
409  rechitpro.pullMF = (Mposition.x() - (topol.measurementPosition(closest->localPosition())).x()) / sqrt(Merror.uu());
410 
411  //chi2test compare rechit errors with the simhit position ( using null matrix for the simhit).
412  //Can spot problems in the geometry better than a simple residual. (thanks to BorisM)
413  AlgebraicVector rhparameters(2); //= rechit.parameters();
414  rhparameters[0] = position.x();
415  rhparameters[1] = position.y();
416  AlgebraicVector shparameters(2);
417  shparameters[0] = closest->localPosition().x();
418  shparameters[1] = closest->localPosition().y();
419  AlgebraicVector r(rhparameters - shparameters);
420  AlgebraicSymMatrix R(2); // = rechit.parametersError();
421  R[0][0] = error.xx();
422  R[0][1] = error.xy();
423  R[1][1] = error.yy();
424  int ierr;
425  R.invert(ierr); // if (ierr != 0) throw exception;
426  float est = R.similarity(r);
427  rechitpro.chi2 = est;
428  }
429 }
RecHitProperties rechitpro
float uu() const
int closest(std::vector< int > const &vec, int value)
T x() const
Definition: PV2DBase.h:43
virtual MeasurementError measurementError(const LocalPoint &, const LocalError &) const =0
std::vector< PSimHit > associateHit(const TrackingRecHit &thit) const
T sqrt(T t)
Definition: SSEVec.h:19
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0
CLHEP::HepVector AlgebraicVector
static int position[264][3]
Definition: ReadPGInfo.cc:289
CLHEP::HepSymMatrix AlgebraicSymMatrix

◆ rechitanalysis_matched()

void SiStripRecHitsValid::rechitanalysis_matched ( SiStripMatchedRecHit2D const  rechit,
const GluedGeomDet gluedDet,
TrackerHitAssociator associate 
)
private

Definition at line 432 of file SiStripRecHitsValid.cc.

References TrackerHitAssociator::associateHit(), SiStripRecHitsValid::RecHitProperties::bunch, SiStripRecHitsValid::RecHitProperties::chi2, pv::closest(), SiStripRecHitsValid::RecHitProperties::cluchg, SiStripRecHitsValid::RecHitProperties::clusiz, relativeConstraints::error, SiStripRecHitsValid::RecHitProperties::event, BaseTrackerRecHit::localPosition(), BaseTrackerRecHit::localPositionError(), visualization-live-secondInstance_cfg::m, muonTagProbeFilters_cff::matched, SiStripPI::max, SiStripRecHitsValid::RecHitProperties::NsimHit, position, projectHit(), SiStripRecHitsValid::RecHitProperties::pullMF, dttmaxenums::R, alignCSCRings::r, rechitpro, SiStripRecHitsValid::RecHitProperties::resolxx, SiStripRecHitsValid::RecHitProperties::resolyy, SiStripRecHitsValid::RecHitProperties::resx, SiStripRecHitsValid::RecHitProperties::resy, mathSSE::sqrt(), GluedGeomDet::stereoDet(), GeomDet::surface(), PV3DBase< T, PVType, FrameType >::x(), SiStripRecHitsValid::RecHitProperties::x, PV3DBase< T, PVType, FrameType >::y(), and SiStripRecHitsValid::RecHitProperties::y.

Referenced by analyze().

434  {
435  rechitpro.resx = -999999.;
436  rechitpro.resy = -999999.;
437  rechitpro.pullMF = -999999.;
438  rechitpro.chi2 = -999999.;
439  rechitpro.bunch = -999999.;
440  rechitpro.event = -999999.;
441  rechitpro.clusiz = -999999.;
442  rechitpro.cluchg = -999999.;
443 
444  LocalPoint position = rechit.localPosition();
445  LocalError error = rechit.localPositionError();
446 
447  rechitpro.x = position.x();
448  rechitpro.y = position.y();
449  //rechitpro.z = position.z();
450  rechitpro.resolxx = error.xx();
451  //rechitpro.resolxy = error.xy();
452  rechitpro.resolyy = error.yy();
453 
454  auto const& matched = associate.associateHit(rechit);
455  rechitpro.NsimHit = matched.size();
456 
457  if (matched.empty())
458  return;
459  float mindist = std::numeric_limits<float>::max();
460  float dist = std::numeric_limits<float>::max();
461  float dist2 = std::numeric_limits<float>::max();
462  float distx = std::numeric_limits<float>::max();
463  float disty = std::numeric_limits<float>::max();
464  PSimHit const* closest = nullptr;
465  std::pair<LocalPoint, LocalVector> closestPair;
466 
467  const StripGeomDetUnit* partnerstripdet = static_cast<const StripGeomDetUnit*>(gluedDet->stereoDet());
468  std::pair<LocalPoint, LocalVector> hitPair;
469 
470  for (auto const& m : matched) {
471  SiStripDetId hitDetId(m.detUnitId());
472  if (hitDetId.stereo()) { // project from the stereo sensor
473  //project simhit;
474  hitPair = projectHit(m, partnerstripdet, gluedDet->surface());
475  distx = rechitpro.x - hitPair.first.x();
476  disty = rechitpro.y - hitPair.first.y();
477  dist2 = distx * distx + disty * disty;
478  dist = sqrt(dist2);
479  if (dist < mindist) {
480  mindist = dist;
481  closestPair = hitPair;
482  closest = &m;
483  }
484  }
485  }
486  if (!closest)
487  return;
488  rechitpro.bunch = closest->eventId().bunchCrossing();
489  rechitpro.event = closest->eventId().event();
490  rechitpro.resx = rechitpro.x - closestPair.first.x();
491  rechitpro.resy = rechitpro.y - closestPair.first.y();
492 
493  //chi2test compare rechit errors with the simhit position ( using null matrix for the simhit).
494  //Can spot problems in the geometry better than a simple residual. (thanks to BorisM)
495  AlgebraicVector rhparameters(2); //= rechit.parameters();
496  rhparameters[0] = position.x();
497  rhparameters[1] = position.y();
498  LocalPoint sh = closestPair.first;
499  AlgebraicVector shparameters(2);
500  shparameters[0] = sh.x();
501  shparameters[1] = sh.y();
502  AlgebraicVector r(rhparameters - shparameters);
503  AlgebraicSymMatrix R(2); // = rechit.parametersError();
504  R[0][0] = error.xx();
505  R[0][1] = error.xy();
506  R[1][1] = error.yy();
507  int ierr;
508  R.invert(ierr); // if (ierr != 0) throw exception;
509  float est = R.similarity(r);
510  rechitpro.chi2 = est;
511 }
RecHitProperties rechitpro
int closest(std::vector< int > const &vec, int value)
T x() const
Definition: PV3DBase.h:59
T y() const
Definition: PV3DBase.h:60
std::vector< PSimHit > associateHit(const TrackingRecHit &thit) const
T sqrt(T t)
Definition: SSEVec.h:19
Detector identifier class for the strip tracker.
Definition: SiStripDetId.h:18
CLHEP::HepVector AlgebraicVector
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
const GeomDetUnit * stereoDet() const
Definition: GluedGeomDet.h:20
std::pair< LocalPoint, LocalVector > projectHit(const PSimHit &hit, const StripGeomDetUnit *stripDet, const BoundPlane &plane)
static int position[264][3]
Definition: ReadPGInfo.cc:289
CLHEP::HepSymMatrix AlgebraicSymMatrix

Member Data Documentation

◆ conf_

edm::ParameterSet SiStripRecHitsValid::conf_
private

Definition at line 223 of file SiStripRecHitsValid.h.

Referenced by bookME1D(), and SiStripRecHitsValid().

◆ LayerDetMap

std::map<std::string, std::vector<uint32_t> > SiStripRecHitsValid::LayerDetMap
private

Definition at line 187 of file SiStripRecHitsValid.h.

Referenced by createMEs().

◆ LayerMEsMap

std::map<std::string, LayerMEs> SiStripRecHitsValid::LayerMEsMap
private

Definition at line 184 of file SiStripRecHitsValid.h.

Referenced by analyze(), createLayerMEs(), and createMEs().

◆ m_geomToken

const edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> SiStripRecHitsValid::m_geomToken
private

Definition at line 132 of file SiStripRecHitsValid.h.

Referenced by analyze().

◆ m_SiStripDetCablingToken

const edm::ESGetToken<SiStripDetCabling, SiStripDetCablingRcd> SiStripRecHitsValid::m_SiStripDetCablingToken
private

Definition at line 134 of file SiStripRecHitsValid.h.

Referenced by createMEs().

◆ m_topoToken

const edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> SiStripRecHitsValid::m_topoToken
private

Definition at line 133 of file SiStripRecHitsValid.h.

Referenced by analyze().

◆ m_topoTokenBR

const edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> SiStripRecHitsValid::m_topoTokenBR
private

Definition at line 133 of file SiStripRecHitsValid.h.

Referenced by createMEs().

◆ matchedRecHitsToken_

edm::EDGetTokenT<SiStripMatchedRecHit2DCollection> SiStripRecHitsValid::matchedRecHitsToken_
private

Definition at line 239 of file SiStripRecHitsValid.h.

Referenced by analyze(), and SiStripRecHitsValid().

◆ rechitpro

RecHitProperties SiStripRecHitsValid::rechitpro
private

Definition at line 232 of file SiStripRecHitsValid.h.

Referenced by analyze(), rechitanalysis(), and rechitanalysis_matched().

◆ rphiRecHitsToken_

edm::EDGetTokenT<SiStripRecHit2DCollection> SiStripRecHitsValid::rphiRecHitsToken_
private

Definition at line 240 of file SiStripRecHitsValid.h.

Referenced by analyze(), and SiStripRecHitsValid().

◆ SiStripDetCabling_

edm::ESHandle<SiStripDetCabling> SiStripRecHitsValid::SiStripDetCabling_
private

Definition at line 190 of file SiStripRecHitsValid.h.

Referenced by createMEs().

◆ StereoAndMatchedDetMap

std::map<std::string, std::vector<uint32_t> > SiStripRecHitsValid::StereoAndMatchedDetMap
private

Definition at line 188 of file SiStripRecHitsValid.h.

Referenced by createMEs().

◆ StereoAndMatchedMEsMap

std::map<std::string, StereoAndMatchedMEs> SiStripRecHitsValid::StereoAndMatchedMEsMap
private

Definition at line 185 of file SiStripRecHitsValid.h.

Referenced by analyze(), createMEs(), and createStereoAndMatchedMEs().

◆ stereoRecHitsToken_

edm::EDGetTokenT<SiStripRecHit2DCollection> SiStripRecHitsValid::stereoRecHitsToken_
private

Definition at line 241 of file SiStripRecHitsValid.h.

Referenced by analyze(), and SiStripRecHitsValid().

◆ SubDetList_

std::vector<std::string> SiStripRecHitsValid::SubDetList_
private

Definition at line 182 of file SiStripRecHitsValid.h.

Referenced by analyze(), and SiStripRecHitsValid().

◆ SubDetMEsMap

std::map<std::string, SubDetMEs> SiStripRecHitsValid::SubDetMEsMap
private

Definition at line 186 of file SiStripRecHitsValid.h.

Referenced by analyze(), createMEs(), and createSubDetMEs().

◆ switchAdcrphi

bool SiStripRecHitsValid::switchAdcrphi
private

Definition at line 155 of file SiStripRecHitsValid.h.

Referenced by createLayerMEs(), and SiStripRecHitsValid().

◆ switchAdcStereo

bool SiStripRecHitsValid::switchAdcStereo
private

Definition at line 164 of file SiStripRecHitsValid.h.

Referenced by createStereoAndMatchedMEs(), and SiStripRecHitsValid().

◆ switchBunchMatched

bool SiStripRecHitsValid::switchBunchMatched
private

Definition at line 151 of file SiStripRecHitsValid.h.

Referenced by createSubDetMEs(), and SiStripRecHitsValid().

◆ switchBunchrphi

bool SiStripRecHitsValid::switchBunchrphi
private

Definition at line 145 of file SiStripRecHitsValid.h.

Referenced by createSubDetMEs(), and SiStripRecHitsValid().

◆ switchBunchStereo

bool SiStripRecHitsValid::switchBunchStereo
private

Definition at line 148 of file SiStripRecHitsValid.h.

Referenced by createSubDetMEs(), and SiStripRecHitsValid().

◆ switchChi2Matched

bool SiStripRecHitsValid::switchChi2Matched
private

Definition at line 178 of file SiStripRecHitsValid.h.

Referenced by createStereoAndMatchedMEs(), and SiStripRecHitsValid().

◆ switchChi2rphi

bool SiStripRecHitsValid::switchChi2rphi
private

Definition at line 161 of file SiStripRecHitsValid.h.

Referenced by createLayerMEs(), and SiStripRecHitsValid().

◆ switchChi2Stereo

bool SiStripRecHitsValid::switchChi2Stereo
private

Definition at line 170 of file SiStripRecHitsValid.h.

Referenced by createStereoAndMatchedMEs(), and SiStripRecHitsValid().

◆ switchEventMatched

bool SiStripRecHitsValid::switchEventMatched
private

Definition at line 152 of file SiStripRecHitsValid.h.

Referenced by createSubDetMEs(), and SiStripRecHitsValid().

◆ switchEventrphi

bool SiStripRecHitsValid::switchEventrphi
private

Definition at line 146 of file SiStripRecHitsValid.h.

Referenced by createSubDetMEs(), and SiStripRecHitsValid().

◆ switchEventStereo

bool SiStripRecHitsValid::switchEventStereo
private

Definition at line 149 of file SiStripRecHitsValid.h.

Referenced by createSubDetMEs(), and SiStripRecHitsValid().

◆ switchNsimHitMatched

bool SiStripRecHitsValid::switchNsimHitMatched
private

Definition at line 179 of file SiStripRecHitsValid.h.

Referenced by createStereoAndMatchedMEs(), and SiStripRecHitsValid().

◆ switchNsimHitrphi

bool SiStripRecHitsValid::switchNsimHitrphi
private

Definition at line 162 of file SiStripRecHitsValid.h.

Referenced by createLayerMEs(), and SiStripRecHitsValid().

◆ switchNsimHitStereo

bool SiStripRecHitsValid::switchNsimHitStereo
private

Definition at line 171 of file SiStripRecHitsValid.h.

Referenced by createStereoAndMatchedMEs(), and SiStripRecHitsValid().

◆ switchNumMatched

bool SiStripRecHitsValid::switchNumMatched
private

Definition at line 150 of file SiStripRecHitsValid.h.

Referenced by createSubDetMEs(), and SiStripRecHitsValid().

◆ switchNumrphi

bool SiStripRecHitsValid::switchNumrphi
private

Definition at line 144 of file SiStripRecHitsValid.h.

Referenced by createSubDetMEs(), and SiStripRecHitsValid().

◆ switchNumStereo

bool SiStripRecHitsValid::switchNumStereo
private

Definition at line 147 of file SiStripRecHitsValid.h.

Referenced by createSubDetMEs(), and SiStripRecHitsValid().

◆ switchNumTotMatched

bool SiStripRecHitsValid::switchNumTotMatched
private

Definition at line 142 of file SiStripRecHitsValid.h.

Referenced by createTotalMEs(), and SiStripRecHitsValid().

◆ switchNumTotrphi

bool SiStripRecHitsValid::switchNumTotrphi
private

Definition at line 140 of file SiStripRecHitsValid.h.

Referenced by createTotalMEs(), and SiStripRecHitsValid().

◆ switchNumTotStereo

bool SiStripRecHitsValid::switchNumTotStereo
private

Definition at line 141 of file SiStripRecHitsValid.h.

Referenced by createTotalMEs(), and SiStripRecHitsValid().

◆ switchPosxMatched

bool SiStripRecHitsValid::switchPosxMatched
private

Definition at line 172 of file SiStripRecHitsValid.h.

Referenced by createStereoAndMatchedMEs(), and SiStripRecHitsValid().

◆ switchPosxrphi

bool SiStripRecHitsValid::switchPosxrphi
private

Definition at line 156 of file SiStripRecHitsValid.h.

Referenced by createLayerMEs(), and SiStripRecHitsValid().

◆ switchPosxStereo

bool SiStripRecHitsValid::switchPosxStereo
private

Definition at line 165 of file SiStripRecHitsValid.h.

Referenced by createStereoAndMatchedMEs(), and SiStripRecHitsValid().

◆ switchPosyMatched

bool SiStripRecHitsValid::switchPosyMatched
private

Definition at line 173 of file SiStripRecHitsValid.h.

Referenced by createStereoAndMatchedMEs(), and SiStripRecHitsValid().

◆ switchPullLFrphi

bool SiStripRecHitsValid::switchPullLFrphi
private

Definition at line 159 of file SiStripRecHitsValid.h.

Referenced by createLayerMEs(), and SiStripRecHitsValid().

◆ switchPullLFStereo

bool SiStripRecHitsValid::switchPullLFStereo
private

Definition at line 168 of file SiStripRecHitsValid.h.

Referenced by createStereoAndMatchedMEs(), and SiStripRecHitsValid().

◆ switchPullMFrphi

bool SiStripRecHitsValid::switchPullMFrphi
private

Definition at line 160 of file SiStripRecHitsValid.h.

Referenced by createLayerMEs(), and SiStripRecHitsValid().

◆ switchPullMFStereo

bool SiStripRecHitsValid::switchPullMFStereo
private

Definition at line 169 of file SiStripRecHitsValid.h.

Referenced by createStereoAndMatchedMEs(), and SiStripRecHitsValid().

◆ switchResolxMatched

bool SiStripRecHitsValid::switchResolxMatched
private

Definition at line 174 of file SiStripRecHitsValid.h.

Referenced by createStereoAndMatchedMEs(), and SiStripRecHitsValid().

◆ switchResolxrphi

bool SiStripRecHitsValid::switchResolxrphi
private

Definition at line 157 of file SiStripRecHitsValid.h.

Referenced by createLayerMEs(), and SiStripRecHitsValid().

◆ switchResolxStereo

bool SiStripRecHitsValid::switchResolxStereo
private

Definition at line 166 of file SiStripRecHitsValid.h.

Referenced by createStereoAndMatchedMEs(), and SiStripRecHitsValid().

◆ switchResolyMatched

bool SiStripRecHitsValid::switchResolyMatched
private

Definition at line 175 of file SiStripRecHitsValid.h.

Referenced by createStereoAndMatchedMEs(), and SiStripRecHitsValid().

◆ switchResrphi

bool SiStripRecHitsValid::switchResrphi
private

Definition at line 158 of file SiStripRecHitsValid.h.

Referenced by createLayerMEs(), and SiStripRecHitsValid().

◆ switchResStereo

bool SiStripRecHitsValid::switchResStereo
private

Definition at line 167 of file SiStripRecHitsValid.h.

Referenced by createStereoAndMatchedMEs(), and SiStripRecHitsValid().

◆ switchResxMatched

bool SiStripRecHitsValid::switchResxMatched
private

Definition at line 176 of file SiStripRecHitsValid.h.

Referenced by createStereoAndMatchedMEs(), and SiStripRecHitsValid().

◆ switchResyMatched

bool SiStripRecHitsValid::switchResyMatched
private

Definition at line 177 of file SiStripRecHitsValid.h.

Referenced by createStereoAndMatchedMEs(), and SiStripRecHitsValid().

◆ switchWclusrphi

bool SiStripRecHitsValid::switchWclusrphi
private

Definition at line 154 of file SiStripRecHitsValid.h.

Referenced by createLayerMEs(), and SiStripRecHitsValid().

◆ switchWclusStereo

bool SiStripRecHitsValid::switchWclusStereo
private

Definition at line 163 of file SiStripRecHitsValid.h.

Referenced by createStereoAndMatchedMEs(), and SiStripRecHitsValid().

◆ topFolderName_

std::string SiStripRecHitsValid::topFolderName_
private

Definition at line 181 of file SiStripRecHitsValid.h.

Referenced by createMEs(), and SiStripRecHitsValid().

◆ totalMEs

TotalMEs SiStripRecHitsValid::totalMEs
private

Definition at line 138 of file SiStripRecHitsValid.h.

Referenced by analyze(), and createTotalMEs().

◆ trackerHitAssociatorConfig_

TrackerHitAssociator::Config SiStripRecHitsValid::trackerHitAssociatorConfig_
private

Definition at line 224 of file SiStripRecHitsValid.h.

Referenced by analyze().

◆ watchSiStripDetCablingRcd_

edm::ESWatcher<SiStripDetCablingRcd> SiStripRecHitsValid::watchSiStripDetCablingRcd_
private

Definition at line 136 of file SiStripRecHitsValid.h.

Referenced by bookHistograms().