22 edm::LogInfo(
"Phase2ITValidateRecHitBase") <<
">>> Construct Phase2ITValidateRecHitBase ";
36 edm::LogInfo(
"Phase2ITValidateRecHitBase") <<
" Booking Histograms in : " << top_folder;
38 if (theTkDigiGeomWatcher.
check(iSetup)) {
44 unsigned int detId_raw = det_u->geographicalId().rawId();
125 const std::map<unsigned int, SimTrack>& selectedSimTrackMap,
126 std::map<std::string, unsigned int>& nrechitLayerMap_primary) {
134 auto simTrackIt(selectedSimTrackMap.find(simhitClosest->
trackId()));
137 if (simTrackIt != selectedSimTrackMap.end())
147 pullx = (lp.
x() - simlp.x()) /
std::sqrt(lperr.xx());
149 pully = (lp.
y() - simlp.y()) /
std::sqrt(lperr.yy());
150 float eta = geomDetunit->surface().toGlobal(lp).eta();
151 float phi = geomDetunit->surface().toGlobal(lp).phi();
175 nrechitLayerMap_primary[
key]--;
182 psd0.
add<
std::string>(
"title",
"Delta_X;RecHit resolution X coordinate [#mum]");
183 psd0.
add<
bool>(
"switch",
true);
184 psd0.
add<
double>(
"xmin", -100.0);
185 psd0.
add<
double>(
"xmax", 100.0);
186 psd0.
add<
int>(
"NxBins", 100);
191 psd1.add<
std::string>(
"title",
"Delta_Y;RecHit resolution Y coordinate [#mum];");
192 psd1.add<
bool>(
"switch",
true);
193 psd1.add<
double>(
"xmin", -100.0);
194 psd1.add<
double>(
"xmax", 100.0);
195 psd1.add<
int>(
"NxBins", 100);
201 psd2.add<
double>(
"xmin", -4.0);
202 psd2.add<
bool>(
"switch",
true);
203 psd2.add<
double>(
"xmax", 4.0);
204 psd2.add<
int>(
"NxBins", 100);
210 psd3.add<
double>(
"xmin", -4.0);
211 psd3.add<
bool>(
"switch",
true);
212 psd3.add<
double>(
"xmax", 4.0);
213 psd3.add<
int>(
"NxBins", 100);
218 psd4.add<
std::string>(
"title",
"Delta_X_vs_Eta;|#eta|;#Delta x [#mum]");
219 psd4.add<
int>(
"NyBins", 100);
220 psd4.add<
double>(
"ymin", -100.0);
221 psd4.add<
double>(
"ymax", 100.0);
222 psd4.add<
int>(
"NxBins", 41);
223 psd4.add<
bool>(
"switch",
true);
224 psd4.add<
double>(
"xmax", 4.1);
225 psd4.add<
double>(
"xmin", 0.);
231 psd4_y.add<
std::string>(
"title",
"Delta_X_vs_Phi;#phi;#Delta x [#mum]");
232 psd4_y.add<
int>(
"NyBins", 100);
233 psd4_y.add<
double>(
"ymin", -100.0);
234 psd4_y.add<
double>(
"ymax", 100.0);
235 psd4_y.add<
int>(
"NxBins", 36);
236 psd4_y.add<
bool>(
"switch",
true);
237 psd4_y.add<
double>(
"xmax",
M_PI);
238 psd4_y.add<
double>(
"xmin", -
M_PI);
243 psd5.add<
std::string>(
"title",
"Delta_Y_vs_Eta;|#eta|;#Delta y [#mum]");
244 psd5.add<
int>(
"NyBins", 100);
245 psd5.add<
double>(
"ymin", -100.0);
246 psd5.add<
double>(
"ymax", 100.0);
247 psd5.add<
int>(
"NxBins", 41);
248 psd5.add<
bool>(
"switch",
true);
249 psd5.add<
double>(
"xmax", 4.1);
250 psd5.add<
double>(
"xmin", 0.);
255 psd5_y.add<
std::string>(
"title",
"Delta_Y_vs_Phi;#phi;#Delta y [#mum]");
256 psd5_y.add<
int>(
"NyBins", 100);
257 psd5_y.add<
double>(
"ymin", -100.0);
258 psd5_y.add<
double>(
"ymax", 100.0);
259 psd5_y.add<
int>(
"NxBins", 36);
260 psd5_y.add<
bool>(
"switch",
true);
261 psd5_y.add<
double>(
"xmax",
M_PI);
262 psd5_y.add<
double>(
"xmin", -
M_PI);
267 psd6.add<
std::string>(
"title",
";Cluster size X;#Delta x [#mum]");
268 psd6.add<
double>(
"ymin", -100.0);
269 psd6.add<
double>(
"ymax", 100.0);
270 psd6.add<
int>(
"NxBins", 21);
271 psd6.add<
bool>(
"switch",
true);
272 psd6.add<
double>(
"xmax", 20.5);
273 psd6.add<
double>(
"xmin", -0.5);
278 psd7.add<
std::string>(
"title",
";Cluster size Y;#Delta x [#mum]");
279 psd7.add<
double>(
"ymin", -100.0);
280 psd7.add<
double>(
"ymax", 100.0);
281 psd7.add<
int>(
"NxBins", 21);
282 psd7.add<
bool>(
"switch",
true);
283 psd7.add<
double>(
"xmax", 20.5);
284 psd7.add<
double>(
"xmin", -0.5);
289 psd8.add<
std::string>(
"title",
";Cluster size X;#Delta y [#mum]");
290 psd8.add<
double>(
"ymin", -100.0);
291 psd8.add<
double>(
"ymax", 100.0);
292 psd8.add<
int>(
"NxBins", 21);
293 psd8.add<
bool>(
"switch",
true);
294 psd8.add<
double>(
"xmax", 20.5);
295 psd8.add<
double>(
"xmin", -0.5);
300 psd9.add<
std::string>(
"title",
";Cluster size Y;#Delta y [#mum]");
301 psd9.add<
double>(
"ymin", -100.0);
302 psd9.add<
double>(
"ymax", 100.0);
303 psd9.add<
int>(
"NxBins", 21);
304 psd9.add<
bool>(
"switch",
true);
305 psd9.add<
double>(
"xmax", 20.5);
306 psd9.add<
double>(
"xmin", -0.5);
311 psd10.add<
std::string>(
"title",
";#Delta x[#mum];#Delta y[#mum]");
312 psd10.add<
bool>(
"switch",
true);
313 psd10.add<
double>(
"ymin", -100.0);
314 psd10.add<
double>(
"ymax", 100.0);
315 psd10.add<
int>(
"NyBins", 100);
316 psd10.add<
double>(
"xmax", 100.);
317 psd10.add<
double>(
"xmin", -100.);
318 psd10.add<
int>(
"NxBins", 100);
323 psd11.add<
std::string>(
"title",
"Pull_X_vs_Eta;#eta;pull x");
324 psd11.add<
double>(
"ymax", 4.0);
325 psd11.add<
int>(
"NxBins", 82);
326 psd11.add<
bool>(
"switch",
true);
327 psd11.add<
double>(
"xmax", 4.1);
328 psd11.add<
double>(
"xmin", -4.1);
329 psd11.add<
double>(
"ymin", -4.0);
334 psd12.add<
std::string>(
"title",
"Pull_Y_vs_Eta;#eta;pull y");
335 psd12.add<
double>(
"ymax", 4.0);
336 psd12.add<
int>(
"NxBins", 82);
337 psd12.add<
bool>(
"switch",
true);
338 psd12.add<
double>(
"xmax", 4.1);
339 psd12.add<
double>(
"xmin", -4.1);
340 psd12.add<
double>(
"ymin", -4.0);
346 psd13.
add<
std::string>(
"name",
"Number_RecHits_matched_PrimarySimTrack");
347 psd13.add<
std::string>(
"title",
"Number of RecHits matched to primary SimTrack;;");
348 psd13.add<
double>(
"xmin", 0.0);
349 psd13.add<
bool>(
"switch",
true);
350 psd13.add<
double>(
"xmax", 0.0);
351 psd13.add<
int>(
"NxBins", 100);
356 psd14.add<
std::string>(
"title",
"Delta_X_SimHitPrimary;#delta x [#mum];");
357 psd14.add<
double>(
"xmin", -100.0);
358 psd14.add<
bool>(
"switch",
true);
359 psd14.add<
double>(
"xmax", 100.0);
360 psd14.add<
int>(
"NxBins", 100);
365 psd15.add<
std::string>(
"title",
"Delta_Y_SimHitPrimary;#Delta y [#mum];");
366 psd15.add<
double>(
"xmin", -100.0);
367 psd15.add<
bool>(
"switch",
true);
368 psd15.add<
double>(
"xmax", 100.0);
369 psd15.add<
int>(
"NxBins", 100);
374 psd16.add<
std::string>(
"title",
"Pull_X_SimHitPrimary;pull x;");
375 psd16.add<
double>(
"ymax", 4.0);
376 psd16.add<
int>(
"NxBins", 82);
377 psd16.add<
bool>(
"switch",
true);
378 psd16.add<
double>(
"xmax", 4.1);
379 psd16.add<
double>(
"xmin", -4.1);
380 psd16.add<
double>(
"ymin", -4.0);
385 psd17.add<
std::string>(
"title",
"Pull_Y_SimHitPrimary;pull y;");
386 psd17.add<
double>(
"ymax", 4.0);
387 psd17.add<
int>(
"NxBins", 82);
388 psd17.add<
bool>(
"switch",
true);
389 psd17.add<
double>(
"xmax", 4.1);
390 psd17.add<
double>(
"xmin", -4.1);
391 psd17.add<
double>(
"ymin", -4.0);
ClusterRef cluster() const
T getParameter(std::string const &) const
MonitorElement * book2DFromPSet(const edm::ParameterSet &hpars, DQMStore::IBooker &ibooker)
std::map< std::string, RecHitME > layerMEs_
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
const TrackerGeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
static constexpr float cmtomicron
virtual void setCurrentFolder(std::string const &fullpath)
bool isPrimary(const SimTrack &simTrk, const PSimHit *simHit)
MonitorElement * deltaY_eta
MonitorElement * bookProfile1DFromPSet(const edm::ParameterSet &hpars, DQMStore::IBooker &ibooker)
MonitorElement * deltaY_primary
const DetContainer & detUnits() const override
Returm a vector of all GeomDet.
std::string getITHistoId(uint32_t det_id, const TrackerTopology *tTopo)
void bookLayerHistos(DQMStore::IBooker &ibooker, unsigned int det_id, std::string &subdir)
const TrackerGeometry * tkGeom_
MonitorElement * deltaX_eta
const TrackerTopology * tTopo_
MonitorElement * deltaX_clsizex
Abs< T >::type abs(const T &t)
~Phase2ITValidateRecHitBase() override
key
prepare the HTCondor submission files and eventually submit them
void bookHistograms(DQMStore::IBooker &ibooker, edm::Run const &iRun, edm::EventSetup const &iSetup) override
unsigned int trackId() const
MonitorElement * deltaX_primary
ParameterDescriptionBase * add(U const &iLabel, T const &value)
MonitorElement * book1DFromPSet(const edm::ParameterSet &hpars, DQMStore::IBooker &ibooker)
static void fillPSetDescription(edm::ParameterSetDescription &desc)
void dqmBeginRun(const edm::Run &, const edm::EventSetup &) override
MonitorElement * numberRecHitsprimary
Log< level::Info, false > LogInfo
LocalError localPositionError() const override
MonitorElement * deltaYvsdeltaX
Phase2ITValidateRecHitBase(const edm::ParameterSet &)
MonitorElement * pullX_primary
MonitorElement * pullY_primary
DetId geographicalId() const
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > topoToken_
Local3DPoint localPosition() const
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomToken_
MonitorElement * deltaY_phi
bool check(const edm::EventSetup &iSetup)
LocalPoint localPosition() const override
MonitorElement * pullX_eta
MonitorElement * pullY_eta
edm::ParameterSet config_
void fillRechitHistos(const PSimHit *simhitClosest, const SiPixelRecHit *rechit, const std::map< unsigned int, SimTrack > &selectedSimTrackMap, std::map< std::string, unsigned int > &nrechitLayerMap_primary)
MonitorElement * deltaX_phi
MonitorElement * deltaY_clsizex
MonitorElement * deltaY_clsizey
MonitorElement * deltaX_clsizey