CMS 3D CMS Logo

List of all members | Classes | Public Types | Public Member Functions | Private Types | Private Attributes
SiStripLAProfileBooker Class Reference

#include <SiStripLAProfileBooker.h>

Inheritance diagram for SiStripLAProfileBooker:
edm::EDAnalyzer edm::EDConsumerBase

Classes

struct  detparameters
 

Public Types

typedef dqm::legacy::DQMStore DQMStore
 
typedef dqm::legacy::MonitorElement MonitorElement
 
- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 

Public Member Functions

void analyze (const edm::Event &e, const edm::EventSetup &c) override
 
void beginRun (edm::Run const &, const edm::EventSetup &c) override
 
void endJob () override
 
void getlayer (const DetId &detid, const TrackerTopology *tTopo, std::string &name, unsigned int &layerid)
 
 SiStripLAProfileBooker (const edm::ParameterSet &conf)
 
 ~SiStripLAProfileBooker () override
 
- Public Member Functions inherited from edm::EDAnalyzer
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzer ()
 
SerialTaskQueueglobalLuminosityBlocksQueue ()
 
SerialTaskQueueglobalRunsQueue ()
 
ModuleDescription const & moduleDescription () const
 
std::string workerType () const
 
 ~EDAnalyzer () override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () 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
 
EDConsumerBaseoperator= (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)
 

Private Types

typedef std::map< unsigned int, detparameters * > detparmap
 
typedef std::map< unsigned int, MonitorElement * > histomap
 

Private Attributes

uint8_t Amplitudes [100]
 
float barycenter
 
int better_double_hit
 
int bw_fw
 
float chi2norm
 
int ClSize
 
edm::ParameterSet conf_
 
DQMStoredbe_
 
detparmap detmap
 
float EtaTrack
 
TDirectory * Event_Tree
 
int eventcounter
 
int EventCounter
 
int EventNumber
 
TTree * EventTree
 
int Ext_Int
 
TFile * hFile
 
histomap histos
 
float hit_std_dev
 
TDirectory * Hit_Tree
 
int HitCharge
 
int hitcounter
 
int hitcounter_2ndloop
 
int HitNr
 
int HitPerTrack
 
TTree * HitsTree
 
int id_detector
 
int Layer
 
float MagField
 
float Momentum
 
int MonoStereo
 
int nstrip
 
int ParticleCharge
 
float PhiTrack
 
float pitch_detector
 
float pt
 
int RunNumber
 
float SignCorrection
 
int size
 
detparmap summarydetmap
 
histomap summaryhisto
 
float sumx
 
float TanTrackAngle
 
float TanTrackAngleParallel
 
float thick_detector
 
TDirectory * Track_Tree
 
int trackcollsize
 
int TrackCounter
 
const TrackerGeometrytracker
 
TTree * TrackTree
 
int trajsize
 
std::string treename_
 
int Type
 
int Wheel
 
int worse_double_hit
 
float XGlobal
 
float YGlobal
 
float ZGlobal
 

Additional Inherited Members

- Static Public Member Functions inherited from edm::EDAnalyzer
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 ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
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)
 

Detailed Description

Definition at line 26 of file SiStripLAProfileBooker.h.

Member Typedef Documentation

◆ detparmap

typedef std::map<unsigned int, detparameters*> SiStripLAProfileBooker::detparmap
private

Definition at line 48 of file SiStripLAProfileBooker.h.

◆ DQMStore

Definition at line 29 of file SiStripLAProfileBooker.h.

◆ histomap

typedef std::map<unsigned int, MonitorElement*> SiStripLAProfileBooker::histomap
private

Definition at line 49 of file SiStripLAProfileBooker.h.

◆ MonitorElement

Definition at line 28 of file SiStripLAProfileBooker.h.

Constructor & Destructor Documentation

◆ SiStripLAProfileBooker()

SiStripLAProfileBooker::SiStripLAProfileBooker ( const edm::ParameterSet conf)
explicit

Definition at line 61 of file SiStripLAProfileBooker.cc.

61 : conf_(conf) {}

◆ ~SiStripLAProfileBooker()

SiStripLAProfileBooker::~SiStripLAProfileBooker ( )
override

Definition at line 251 of file SiStripLAProfileBooker.cc.

251  {
252  detparmap::iterator detpariter;
253  for (detpariter = detmap.begin(); detpariter != detmap.end(); ++detpariter)
254  delete detpariter->second;
255  for (detpariter = summarydetmap.begin(); detpariter != summarydetmap.end(); ++detpariter)
256  delete detpariter->second;
257  delete hFile;
258 }

References detmap, cms::cuda::for(), hFile, and summarydetmap.

Member Function Documentation

◆ analyze()

void SiStripLAProfileBooker::analyze ( const edm::Event e,
const edm::EventSetup c 
)
overridevirtual

Implements edm::EDAnalyzer.

Definition at line 262 of file SiStripLAProfileBooker.cc.

262  {
263  //Retrieve tracker topology from geometry
264  edm::ESHandle<TrackerTopology> tTopoHandle;
265  es.get<TrackerTopologyRcd>().get(tTopoHandle);
266  const TrackerTopology* const tTopo = tTopoHandle.product();
267 
268  RunNumber = e.id().run();
269  EventNumber = e.id().event();
270 
271  eventcounter++;
272 
273  EventTree->Fill();
274 
275  //Analysis of Trajectory-RecHits
276 
277  edm::InputTag TkTag = conf_.getParameter<edm::InputTag>("Tracks");
278 
280  e.getByLabel(TkTag, trackCollection);
281 
283  e.getByLabel(TkTag, TrajectoryCollection);
284 
286  e.getByLabel(TkTag, TrajTrackMap);
287 
288  const reco::TrackCollection* tracks = trackCollection.product();
289 
290  // FIXME this has to be changed to use pointers to clusters...
291  std::map<const SiStripRecHit2D*, std::pair<float, float>, DetIdLess> hitangleassociation;
292  std::list<SiStripRecHit2D> cache; // ugly, inefficient, effective in making the above working
293 
294  trackcollsize = tracks->size();
295  trajsize = TrajectoryCollection->size();
296 
297  edm::LogInfo("SiStripLAProfileBooker::analyze") << " Number of tracks in event = " << trackcollsize << "\n";
298  edm::LogInfo("SiStripLAProfileBooker::analyze") << " Number of trajectories in event = " << trajsize << "\n";
299 
301 
302  for (TrajTrackIter = TrajTrackMap->begin(); TrajTrackIter != TrajTrackMap->end();
303  TrajTrackIter++) { //loop on trajectories
304 
305  if (TrajTrackIter->key->foundHits() >= 5) {
306  TrackTree->Fill();
307 
308  ParticleCharge = -99;
309  Momentum = -99;
310  pt = -99;
311  chi2norm = -99;
312  HitPerTrack = -99;
313  EtaTrack = -99;
314  PhiTrack = -99;
315 
316  ParticleCharge = TrajTrackIter->val->charge();
317  pt = TrajTrackIter->val->pt();
318  Momentum = TrajTrackIter->val->p();
319  chi2norm = TrajTrackIter->val->normalizedChi2();
320  EtaTrack = TrajTrackIter->val->eta();
321  PhiTrack = TrajTrackIter->val->phi();
322  HitPerTrack = TrajTrackIter->key->foundHits();
323 
324  std::vector<TrajectoryMeasurement> TMeas = TrajTrackIter->key->measurements();
325  std::vector<TrajectoryMeasurement>::iterator itm;
326 
327  for (itm = TMeas.begin(); itm != TMeas.end(); itm++) { //loop on hits
328 
329  int i;
330  for (i = 0; i < 100; i++) {
331  Amplitudes[i] = 0;
332  }
333 
334  TanTrackAngle = -99;
335  TanTrackAngleParallel = -99;
336  ClSize = -99;
337  HitCharge = 0;
338  Type = -99;
339  Layer = -99;
340  Wheel = -99;
341  bw_fw = -99;
342  Ext_Int = -99;
343  MonoStereo = -99;
344  MagField = -99;
345  SignCorrection = -99;
346  XGlobal = -99;
347  YGlobal = -99;
348  ZGlobal = -99;
349  barycenter = -99;
350  hit_std_dev = -99;
351  sumx = 0;
352  id_detector = -1;
353  thick_detector = -1;
354  pitch_detector = -1;
355  HitNr = 1;
356 
357  SiStripRecHit2D lhit;
358  TrajectoryStateOnSurface tsos = itm->updatedState();
359  const TransientTrackingRecHit::ConstRecHitPointer thit = itm->recHit();
360  if ((thit->geographicalId().subdetId() == int(StripSubdetector::TIB)) ||
361  thit->geographicalId().subdetId() == int(StripSubdetector::TOB)) { //include only barrel
362  const SiStripMatchedRecHit2D* matchedhit = dynamic_cast<const SiStripMatchedRecHit2D*>((*thit).hit());
363  const ProjectedSiStripRecHit2D* phit = dynamic_cast<const ProjectedSiStripRecHit2D*>((*thit).hit());
364  const SiStripRecHit2D* hit = dynamic_cast<const SiStripRecHit2D*>((*thit).hit());
365  if (phit) {
366  lhit = phit->originalHit();
367  hit = &lhit;
368  }
369 
370  LocalVector trackdirection = tsos.localDirection();
371 
372  if (matchedhit) { //if matched hit...
373 
374  GluedGeomDet* gdet = (GluedGeomDet*)tracker->idToDet(matchedhit->geographicalId());
375 
376  GlobalVector gtrkdir = gdet->toGlobal(trackdirection);
377 
378  // THIS THE POINTER TO THE MONO HIT OF A MATCHED HIT
379 
380  // top be migrated to the more direct interface of matchedhit
381  cache.push_back(matchedhit->monoHit());
382  const SiStripRecHit2D* monohit = &cache.back();
383  const SiStripRecHit2D::ClusterRef& monocluster = monohit->cluster();
384  const GeomDetUnit* monodet = gdet->monoDet();
385  // this does not exists anymore! either project the matched or use CPE
386  const LocalPoint monoposition = monohit->localPosition();
387 
389  id_detector = detid.rawId();
391  const StripTopology& mtopol = (StripTopology&)monodet->topology();
392  pitch_detector = mtopol.localPitch(monoposition);
393  const GlobalPoint monogposition = (monodet->surface()).toGlobal(monoposition);
394  ClSize = (monocluster->amplitudes()).size();
395 
396  const auto& amplitudes = monocluster->amplitudes();
397 
398  barycenter = monocluster->barycenter() - 0.5;
399  uint16_t FirstStrip = monocluster->firstStrip();
400  auto begin = amplitudes.begin();
401  nstrip = 0;
402  for (auto idigi = begin; idigi != amplitudes.end(); idigi++) {
403  Amplitudes[nstrip] = *idigi;
404  sumx += pow(((FirstStrip + idigi - begin) - barycenter), 2) * (*idigi);
405  HitCharge += *idigi;
406  }
408 
409  XGlobal = monogposition.x();
410  YGlobal = monogposition.y();
411  ZGlobal = monogposition.z();
412 
413  Type = detid.subdetId();
414  MonoStereo = detid.stereo();
415 
416  if (detid.subdetId() == int(StripSubdetector::TIB)) {
417  Layer = tTopo->tibLayer(detid);
418  bw_fw = tTopo->tibStringInfo(detid)[0];
419  Ext_Int = tTopo->tibStringInfo(detid)[1];
420  }
421  if (detid.subdetId() == int(StripSubdetector::TOB)) {
422  Layer = tTopo->tobLayer(detid);
423  bw_fw = tTopo->tobRodInfo(detid)[0];
424  }
425  if (detid.subdetId() == int(StripSubdetector::TID)) {
426  Wheel = tTopo->tidWheel(detid);
427  bw_fw = tTopo->tidModuleInfo(detid)[0];
428  }
429  if (detid.subdetId() == int(StripSubdetector::TEC)) {
430  Wheel = tTopo->tecWheel(detid);
431  bw_fw = tTopo->tecPetalInfo(detid)[0];
432  }
433 
434  LocalVector monotkdir = monodet->toLocal(gtrkdir);
435 
436  if (monotkdir.z() != 0) {
437  // THE LOCAL ANGLE (MONO)
438  float tanangle = monotkdir.x() / monotkdir.z();
439  TanTrackAngleParallel = monotkdir.y() / monotkdir.z();
440  TanTrackAngle = tanangle;
441  detparmap::iterator TheDet = detmap.find(detid.rawId());
442  LocalVector localmagdir;
443  if (TheDet != detmap.end())
444  localmagdir = TheDet->second->magfield;
445  MagField = localmagdir.mag();
446  if (MagField != 0.) {
447  LocalVector monoylocal(0, 1, 0);
448  float signcorrection = (localmagdir * monoylocal) / (MagField);
449  if (signcorrection != 0)
450  SignCorrection = 1 / signcorrection;
451  }
452 
453  std::map<const SiStripRecHit2D*, std::pair<float, float>, DetIdLess>::iterator alreadystored =
454  hitangleassociation.find(monohit);
455 
456  if (alreadystored != hitangleassociation.end()) { //decide which hit take
457  if (itm->estimate() > alreadystored->second.first) {
459  }
460  if (itm->estimate() < alreadystored->second.first) {
462  hitangleassociation.insert(std::make_pair(monohit, std::make_pair(itm->estimate(), tanangle)));
463  }
464  } else {
465  hitangleassociation.insert(make_pair(monohit, std::make_pair(itm->estimate(), tanangle)));
466  HitsTree->Fill();
467  hitcounter++;
468  }
469 
470  // THIS THE POINTER TO THE STEREO HIT OF A MATCHED HIT
471 
472  // top be migrated to the more direct interface of matchedhit
473  cache.push_back(matchedhit->stereoHit());
474  const SiStripRecHit2D* stereohit = &cache.back();
475  const SiStripRecHit2D::ClusterRef& stereocluster = stereohit->cluster();
476  const GeomDetUnit* stereodet = gdet->stereoDet();
477  // this does not exists anymore! either project the matched or use CPE
478  const LocalPoint stereoposition = stereohit->localPosition();
479  StripSubdetector detid = (StripSubdetector)stereohit->geographicalId();
480  id_detector = detid.rawId();
481  thick_detector = stereodet->specificSurface().bounds().thickness();
482  const StripTopology& stopol = (StripTopology&)stereodet->topology();
483  pitch_detector = stopol.localPitch(stereoposition);
484  const GlobalPoint stereogposition = (stereodet->surface()).toGlobal(stereoposition);
485 
486  ClSize = (stereocluster->amplitudes()).size();
487 
488  const auto& amplitudes = stereocluster->amplitudes();
489 
490  barycenter = stereocluster->barycenter() - 0.5;
491  uint16_t FirstStrip = stereocluster->firstStrip();
492  auto begin = amplitudes.begin();
493  nstrip = 0;
494  for (auto idigi = begin; idigi != amplitudes.end(); idigi++) {
495  Amplitudes[nstrip] = *idigi;
496  sumx += pow(((FirstStrip + idigi - begin) - barycenter), 2) * (*idigi);
497  HitCharge += *idigi;
498  }
500 
501  XGlobal = stereogposition.x();
502  YGlobal = stereogposition.y();
503  ZGlobal = stereogposition.z();
504 
505  Type = detid.subdetId();
506  MonoStereo = detid.stereo();
507 
508  if (detid.subdetId() == int(StripSubdetector::TIB)) {
509  Layer = tTopo->tibLayer(detid);
510  bw_fw = tTopo->tibStringInfo(detid)[0];
511  Ext_Int = tTopo->tibStringInfo(detid)[1];
512  }
513  if (detid.subdetId() == int(StripSubdetector::TOB)) {
514  Layer = tTopo->tobLayer(detid);
515  bw_fw = tTopo->tobRodInfo(detid)[0];
516  }
517  if (detid.subdetId() == int(StripSubdetector::TID)) {
518  Wheel = tTopo->tidWheel(detid);
519  bw_fw = tTopo->tidModuleInfo(detid)[0];
520  }
521  if (detid.subdetId() == int(StripSubdetector::TEC)) {
522  Wheel = tTopo->tecWheel(detid);
523  bw_fw = tTopo->tecPetalInfo(detid)[0];
524  }
525 
526  LocalVector stereotkdir = stereodet->toLocal(gtrkdir);
527 
528  if (stereotkdir.z() != 0) {
529  // THE LOCAL ANGLE (STEREO)
530  float tanangle = stereotkdir.x() / stereotkdir.z();
531  TanTrackAngleParallel = stereotkdir.y() / stereotkdir.z();
532  TanTrackAngle = tanangle;
533  detparmap::iterator TheDet = detmap.find(detid.rawId());
534  LocalVector localmagdir;
535  if (TheDet != detmap.end())
536  localmagdir = TheDet->second->magfield;
537  MagField = localmagdir.mag();
538  LocalVector stereoylocal(0, 1, 0);
539  if (MagField != 0.) {
540  float signcorrection = (localmagdir * stereoylocal) / (MagField);
541  if (signcorrection != 0)
542  SignCorrection = 1 / signcorrection;
543  }
544 
545  std::map<const SiStripRecHit2D*, std::pair<float, float>, DetIdLess>::iterator alreadystored =
546  hitangleassociation.find(stereohit);
547 
548  if (alreadystored != hitangleassociation.end()) { //decide which hit take
549  if (itm->estimate() > alreadystored->second.first) {
551  }
552  if (itm->estimate() < alreadystored->second.first) {
554  hitangleassociation.insert(std::make_pair(stereohit, std::make_pair(itm->estimate(), tanangle)));
555  }
556  } else {
557  hitangleassociation.insert(std::make_pair(stereohit, std::make_pair(itm->estimate(), tanangle)));
558  HitsTree->Fill();
559  hitcounter++;
560  }
561  }
562  }
563  } else if (hit) {
564  // hit= POINTER TO THE RECHIT
565 
566  const SiStripRecHit2D::ClusterRef& cluster = hit->cluster();
567 
568  GeomDetUnit* gdet = (GeomDetUnit*)tracker->idToDet(hit->geographicalId());
569  const LocalPoint position = hit->localPosition();
570  StripSubdetector detid = (StripSubdetector)hit->geographicalId();
571  id_detector = detid.rawId();
573  const StripTopology& topol = (StripTopology&)gdet->topology();
575  const GlobalPoint gposition = (gdet->surface()).toGlobal(position);
576 
577  ClSize = (cluster->amplitudes()).size();
578 
579  const auto& amplitudes = cluster->amplitudes();
580 
581  barycenter = cluster->barycenter() - 0.5;
582  uint16_t FirstStrip = cluster->firstStrip();
583  nstrip = 0;
584  auto begin = amplitudes.begin();
585  for (auto idigi = amplitudes.begin(); idigi != amplitudes.end(); idigi++) {
586  Amplitudes[nstrip] = *idigi;
587  sumx += pow(((FirstStrip + idigi - begin) - barycenter), 2) * (*idigi);
588  HitCharge += *idigi;
589  }
591 
592  XGlobal = gposition.x();
593  YGlobal = gposition.y();
594  ZGlobal = gposition.z();
595 
596  Type = detid.subdetId();
597  MonoStereo = detid.stereo();
598 
599  if (detid.subdetId() == int(StripSubdetector::TIB)) {
600  Layer = tTopo->tibLayer(detid);
601  bw_fw = tTopo->tibStringInfo(detid)[0];
602  Ext_Int = tTopo->tibStringInfo(detid)[1];
603  }
604  if (detid.subdetId() == int(StripSubdetector::TOB)) {
605  Layer = tTopo->tobLayer(detid);
606  bw_fw = tTopo->tobRodInfo(detid)[0];
607  }
608  if (detid.subdetId() == int(StripSubdetector::TID)) {
609  Wheel = tTopo->tidWheel(detid);
610  bw_fw = tTopo->tidModuleInfo(detid)[0];
611  }
612  if (detid.subdetId() == int(StripSubdetector::TEC)) {
613  Wheel = tTopo->tecWheel(detid);
614  bw_fw = tTopo->tecPetalInfo(detid)[0];
615  }
616 
617  if (trackdirection.z() != 0) {
618  // THE LOCAL ANGLE
619  float tanangle = trackdirection.x() / trackdirection.z();
620  TanTrackAngleParallel = trackdirection.y() / trackdirection.z();
621  TanTrackAngle = tanangle;
622  detparmap::iterator TheDet = detmap.find(detid.rawId());
623  LocalVector localmagdir;
624  if (TheDet != detmap.end())
625  localmagdir = TheDet->second->magfield;
626  MagField = localmagdir.mag();
627  if (MagField != 0.) {
628  LocalVector ylocal(0, 1, 0);
629  float signcorrection = (localmagdir * ylocal) / (MagField);
630  if (signcorrection != 0)
631  SignCorrection = 1 / signcorrection;
632  }
633 
634  std::map<const SiStripRecHit2D*, std::pair<float, float>, DetIdLess>::iterator alreadystored =
635  hitangleassociation.find(hit);
636 
637  if (alreadystored != hitangleassociation.end()) { //decide which hit take
638  if (itm->estimate() > alreadystored->second.first) {
640  }
641  if (itm->estimate() < alreadystored->second.first) {
643  hitangleassociation.insert(std::make_pair(hit, std::make_pair(itm->estimate(), tanangle)));
644  }
645  } else {
646  hitangleassociation.insert(std::make_pair(hit, std::make_pair(itm->estimate(), tanangle)));
647  HitsTree->Fill();
648  hitcounter++;
649  }
650  }
651  }
652  }
653  }
654  }
655  }
656  std::map<const SiStripRecHit2D*, std::pair<float, float>, DetIdLess>::iterator hitsiter;
657 
658  for (hitsiter = hitangleassociation.begin(); hitsiter != hitangleassociation.end(); hitsiter++) {
660 
661  const SiStripRecHit2D* hit = hitsiter->first;
662  const SiStripRecHit2D::ClusterRef& cluster = hit->cluster();
663 
664  size = (cluster->amplitudes()).size();
665 
666  StripSubdetector detid = (StripSubdetector)hit->geographicalId();
667 
668  float tangent = hitsiter->second.second;
669 
670  //Sign and XZ plane projection correction applied in TrackLocalAngle (TIB|TOB layers)
671 
672  detparmap::iterator thedet = detmap.find(detid.rawId());
673  LocalVector localmagdir;
674  if (thedet != detmap.end())
675  localmagdir = thedet->second->magfield;
676  float localmagfield = localmagdir.mag();
677 
678  if (localmagfield != 0.) {
679  LocalVector ylocal(0, 1, 0);
680 
681  float normprojection = (localmagdir * ylocal) / (localmagfield);
682 
683  if (normprojection == 0.)
684  LogDebug("SiStripLAProfileBooker::analyze") << "Error: YBprojection = 0";
685 
686  else {
687  float signprojcorrection = 1 / normprojection;
688  tangent *= signprojcorrection;
689  }
690  }
691 
692  //Filling histograms
693 
694  histomap::iterator thehisto = histos.find(detid.rawId());
695 
696  if (thehisto == histos.end())
697  edm::LogError("SiStripLAProfileBooker::analyze")
698  << "Error: the profile associated to" << detid.rawId() << "does not exist! ";
699  else
700  thehisto->second->Fill(tangent, size);
701 
702  //Summary histograms
704  unsigned int layerid;
705  getlayer(detid, tTopo, name, layerid);
706  histomap::iterator thesummaryhisto = summaryhisto.find(layerid);
707  if (thesummaryhisto == summaryhisto.end())
708  edm::LogError("SiStripLAProfileBooker::analyze")
709  << "Error: the profile associated to subdet " << name << "does not exist! ";
710  else
711  thesummaryhisto->second->Fill(tangent, size);
712  }
713 }

References Amplitudes, barycenter, begin, edm::AssociationMap< Tag >::begin(), better_double_hit, Surface::bounds(), bw_fw, utilities::cache(), chi2norm, ClSize, SiStripRecHit2D::cluster(), conf_, edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::TrackCollection, unsigned short > >::const_iterator, detmap, MillePedeFileConverter_cfg::e, edm::AssociationMap< Tag >::end(), EtaTrack, eventcounter, EventNumber, EventTree, Ext_Int, TrackingRecHit::geographicalId(), edm::EventSetup::get(), get, getlayer(), edm::ParameterSet::getParameter(), histos, hit_std_dev, HitCharge, hitcounter, hitcounter_2ndloop, HitNr, HitPerTrack, HitsTree, mps_fire::i, id_detector, TrackerGeometry::idToDet(), createfilelist::int, Layer, TrajectoryStateOnSurface::localDirection(), StripTopology::localPitch(), BaseTrackerRecHit::localPosition(), LogDebug, PV3DBase< T, PVType, FrameType >::mag(), MagField, Momentum, GluedGeomDet::monoDet(), SiStripMatchedRecHit2D::monoHit(), MonoStereo, Skims_PA_cff::name, nstrip, ParticleCharge, PhiTrack, pitch_detector, position, funct::pow(), edm::ESHandle< T >::product(), pt, DetId::rawId(), RunNumber, SignCorrection, size, GeomDet::specificSurface(), mathSSE::sqrt(), StripSubdetector::stereo(), GluedGeomDet::stereoDet(), SiStripMatchedRecHit2D::stereoHit(), AlCaHLTBitMon_QueryRunRegistry::string, DetId::subdetId(), summaryhisto, sumx, GeomDet::surface(), TanTrackAngle, TanTrackAngleParallel, StripSubdetector::TEC, TrackerTopology::tecPetalInfo(), TrackerTopology::tecWheel(), thick_detector, Bounds::thickness(), StripSubdetector::TIB, TrackerTopology::tibLayer(), TrackerTopology::tibStringInfo(), StripSubdetector::TID, TrackerTopology::tidModuleInfo(), TrackerTopology::tidWheel(), StripSubdetector::TOB, TrackerTopology::tobLayer(), TrackerTopology::tobRodInfo(), GeomDet::toGlobal(), GeomDet::toLocal(), GeomDet::topology(), duplicaterechits_cfi::trackCollection, trackcollsize, tracker, PDWG_EXOHSCP_cff::tracks, TrackTree, trajsize, Type, Wheel, worse_double_hit, PV3DBase< T, PVType, FrameType >::x(), XGlobal, PV3DBase< T, PVType, FrameType >::y(), YGlobal, PV3DBase< T, PVType, FrameType >::z(), and ZGlobal.

◆ beginRun()

void SiStripLAProfileBooker::beginRun ( edm::Run const &  ,
const edm::EventSetup c 
)
overridevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 65 of file SiStripLAProfileBooker.cc.

65  {
66  //Retrieve tracker topology from geometry
68  c.get<TrackerTopologyRcd>().get(tTopoHandle);
69  const TrackerTopology* const tTopo = tTopoHandle.product();
70 
71  //get magnetic field and geometry from ES
73  c.get<IdealMagneticFieldRecord>().get(esmagfield);
74  const MagneticField* magfield = &(*esmagfield);
75 
77  c.get<TrackerDigiGeometryRecord>().get(estracker);
78  tracker = &(*estracker);
79 
80  std::vector<uint32_t> activeDets;
81  edm::ESHandle<SiStripDetCabling> tkmechstruct = nullptr;
82  if (conf_.getParameter<bool>("UseStripCablingDB")) {
83  c.get<SiStripDetCablingRcd>().get(tkmechstruct);
84  activeDets.clear();
85  tkmechstruct->addActiveDetectorsRawIds(activeDets);
86  } else {
87  const TrackerGeometry::DetIdContainer& Id = estracker->detIds();
88  TrackerGeometry::DetIdContainer::const_iterator Iditer;
89  activeDets.clear();
90  for (Iditer = Id.begin(); Iditer != Id.end(); Iditer++) {
91  activeDets.push_back(Iditer->rawId());
92  }
93  }
94 
95  edm::InputTag TkTag = conf_.getParameter<edm::InputTag>("Tracks");
96  //Get Ids;
97  double ModuleRangeMin = conf_.getParameter<double>("ModuleXMin");
98  double ModuleRangeMax = conf_.getParameter<double>("ModuleXMax");
99  double TIBRangeMin = conf_.getParameter<double>("TIBXMin");
100  double TIBRangeMax = conf_.getParameter<double>("TIBXMax");
101  double TOBRangeMin = conf_.getParameter<double>("TOBXMin");
102  double TOBRangeMax = conf_.getParameter<double>("TOBXMax");
103  int TIB_bin = conf_.getParameter<int>("TIB_bin");
104  int TOB_bin = conf_.getParameter<int>("TOB_bin");
105  int SUM_bin = conf_.getParameter<int>("SUM_bin");
106 
107  hFile = new TFile(conf_.getUntrackedParameter<std::string>("treeName").c_str(), "RECREATE");
108 
109  Hit_Tree = hFile->mkdir("Hit_Tree");
110  Track_Tree = hFile->mkdir("Track_Tree");
111  Event_Tree = hFile->mkdir("Event_Tree");
112 
113  HitsTree = new TTree("HitsTree", "HitsTree");
114 
115  HitsTree->Branch("RunNumber", &RunNumber, "RunNumber/I");
116  HitsTree->Branch("EventNumber", &EventNumber, "EventNumber/I");
117  HitsTree->Branch("TanTrackAngle", &TanTrackAngle, "TanTrackAngle/F");
118  HitsTree->Branch("TanTrackAngleParallel", &TanTrackAngleParallel, "TanTrackAngleParallel/F");
119  HitsTree->Branch("ClSize", &ClSize, "ClSize/I");
120  HitsTree->Branch("HitCharge", &HitCharge, "HitCharge/I");
121  HitsTree->Branch("Hit_Std_Dev", &hit_std_dev, "hit_std_dev/F");
122  HitsTree->Branch("Type", &Type, "Type/I");
123  HitsTree->Branch("Layer", &Layer, "Layer/I");
124  HitsTree->Branch("Wheel", &Wheel, "Wheel/I");
125  HitsTree->Branch("bw_fw", &bw_fw, "bw_fw/I");
126  HitsTree->Branch("Ext_Int", &Ext_Int, "Ext_Int/I");
127  HitsTree->Branch("MonoStereo", &MonoStereo, "MonoStereo/I");
128  HitsTree->Branch("MagField", &MagField, "MagField/F");
129  HitsTree->Branch("SignCorrection", &SignCorrection, "SignCorrection/F");
130  HitsTree->Branch("XGlobal", &XGlobal, "XGlobal/F");
131  HitsTree->Branch("YGlobal", &YGlobal, "YGlobal/F");
132  HitsTree->Branch("ZGlobal", &ZGlobal, "ZGlobal/F");
133  HitsTree->Branch("ParticleCharge", &ParticleCharge, "ParticleCharge/I");
134  HitsTree->Branch("Momentum", &Momentum, "Momentum/F");
135  HitsTree->Branch("pt", &pt, "pt/F");
136  HitsTree->Branch("chi2norm", &chi2norm, "chi2norm/F");
137  HitsTree->Branch("EtaTrack", &EtaTrack, "EtaTrack/F");
138  HitsTree->Branch("PhiTrack", &PhiTrack, "PhiTrack/F");
139  HitsTree->Branch("TrajSize", &trajsize, "trajsize/I");
140  HitsTree->Branch("HitNr", &HitNr, "HitNr/I");
141  HitsTree->Branch("HitPerTrack", &HitPerTrack, "HitPerTrack/I");
142  HitsTree->Branch("id_detector", &id_detector, "id_detector/I");
143  HitsTree->Branch("thick_detector", &thick_detector, "thick_detector/F");
144  HitsTree->Branch("pitch_detector", &pitch_detector, "pitch_detector/F");
145  HitsTree->Branch("Amplitudes", Amplitudes, "Amplitudes[ClSize]/I");
146 
147  HitsTree->SetDirectory(Hit_Tree);
148 
149  TrackTree = new TTree("TrackTree", "TrackTree");
150 
151  TrackTree->Branch("TrackCounter", &TrackCounter, "TrackCounter/I");
152 
153  TrackTree->SetDirectory(Track_Tree);
154 
155  EventTree = new TTree("EventTree", "EventTree");
156 
157  EventTree->Branch("EventCounter", &EventCounter, "EventCounter/I");
158 
159  EventTree->SetDirectory(Event_Tree);
160 
161  // use SistripHistoId for producing histogram id (and title)
162  SiStripHistoId hidmanager;
163 
164  // create SiStripFolderOrganizer
165  SiStripFolderOrganizer folder_organizer;
166 
167  dbe_ = edm::Service<DQMStore>().operator->();
168 
169  //get all detids
170 
171  for (std::vector<uint32_t>::const_iterator Id = activeDets.begin(); Id != activeDets.end(); Id++) {
172  // for(Iditer=Id.begin();Iditer!=Id.end();Iditer++){ //loop on detids
173  DetId Iditero = DetId(*Id);
174  DetId* Iditer = &Iditero;
175  if ((Iditer->subdetId() == int(StripSubdetector::TIB)) ||
176  (Iditer->subdetId() == int(StripSubdetector::TOB))) { //include only barrel
177 
178  int module_bin = 0;
179  if (Iditer->subdetId() == int(StripSubdetector::TIB)) {
180  module_bin = TIB_bin;
181  } else {
182  module_bin = TOB_bin;
183  }
184 
185  // create a TProfile for each module
186  StripSubdetector subid(*Iditer);
187  std::string hid;
188  //Mono single sided detectors
189  LocalPoint p;
190  auto stripdet = tracker->idToDet(subid);
191  if (!stripdet->isLeaf())
192  continue;
193  const StripTopology& topol = (const StripTopology&)stripdet->topology();
194  float thickness = stripdet->specificSurface().bounds().thickness();
195 
196  folder_organizer.setDetectorFolder(Iditer->rawId(), tTopo);
197  hid = hidmanager.createHistoId(TkTag.label(), "det", Iditer->rawId());
198  MonitorElement* profile = dbe_->bookProfile(hid, hid, module_bin, ModuleRangeMin, ModuleRangeMax, 20, 0, 5, "");
199  detparameters* param = new detparameters;
200  histos[Iditer->rawId()] = profile;
201  detmap[Iditer->rawId()] = param;
202  param->thickness = thickness * 10000;
203  param->pitch = topol.localPitch(p) * 10000;
204 
205  const GlobalPoint globalp = (stripdet->surface()).toGlobal(p);
206  GlobalVector globalmagdir = magfield->inTesla(globalp);
207  param->magfield = (stripdet->surface()).toLocal(globalmagdir);
208 
209  profile->setAxisTitle("tan(#theta_{t})", 1);
210  profile->setAxisTitle("Cluster size", 2);
211 
212  // create a summary histo if it does not exist already
214  unsigned int layerid;
215  getlayer(subid, tTopo, name, layerid);
216  name += TkTag.label();
217  if (summaryhisto.find(layerid) == (summaryhisto.end())) {
218  folder_organizer.setSiStripFolder();
219  MonitorElement* summaryprofile = nullptr;
220  if (subid.subdetId() == int(StripSubdetector::TIB) || subid.subdetId() == int(StripSubdetector::TID))
221  summaryprofile = dbe_->bookProfile(name, name, SUM_bin, TIBRangeMin, TIBRangeMax, 20, 0, 5, "");
222  else if (subid.subdetId() == int(StripSubdetector::TOB) || subid.subdetId() == int(StripSubdetector::TEC))
223  summaryprofile = dbe_->bookProfile(name, name, SUM_bin, TOBRangeMin, TOBRangeMax, 20, 0, 5, "");
224  if (summaryprofile) {
225  detparameters* summaryparam = new detparameters;
226  summaryhisto[layerid] = summaryprofile;
227  summarydetmap[layerid] = summaryparam;
228  summaryparam->thickness = thickness * 10000;
229  summaryparam->pitch = topol.localPitch(p) * 10000;
230  summaryprofile->setAxisTitle("tan(#theta_{t})", 1);
231  summaryprofile->setAxisTitle("Cluster size", 2);
232  }
233  }
234  }
235  }
236 
237  trackcollsize = 0;
238  trajsize = 0;
239  RunNumber = 0;
240  EventNumber = 0;
241  hitcounter = 0;
242  hitcounter_2ndloop = 0;
243  worse_double_hit = 0;
244  better_double_hit = 0;
245  eventcounter = 0;
246 
247  EventCounter = 1;
248  TrackCounter = 1;
249 }

References SiStripDetCabling::addActiveDetectorsRawIds(), Amplitudes, better_double_hit, dqm::implementation::IBooker::bookProfile(), bw_fw, HltBtagPostValidation_cff::c, chi2norm, ClSize, conf_, SiStripHistoId::createHistoId(), dbe_, TrackerGeometry::detIds(), detmap, EtaTrack, Event_Tree, eventcounter, EventCounter, EventNumber, EventTree, Ext_Int, get, getlayer(), edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), hFile, histos, hit_std_dev, Hit_Tree, HitCharge, hitcounter, hitcounter_2ndloop, HitNr, HitPerTrack, HitsTree, id_detector, TrackerGeometry::idToDet(), createfilelist::int, edm::InputTag::label(), Layer, StripTopology::localPitch(), volumeBasedMagneticField_160812_cfi::magfield, SiStripLAProfileBooker::detparameters::magfield, MagField, Momentum, MonoStereo, Skims_PA_cff::name, AlCaHLTBitMon_ParallelJobs::p, ParticleCharge, PhiTrack, SiStripLAProfileBooker::detparameters::pitch, pitch_detector, edm::ESHandle< T >::product(), PostProcessor_cff::profile, pt, DetId::rawId(), RunNumber, dqm::impl::MonitorElement::setAxisTitle(), SiStripFolderOrganizer::setDetectorFolder(), SiStripFolderOrganizer::setSiStripFolder(), SignCorrection, AlCaHLTBitMon_QueryRunRegistry::string, DetId::subdetId(), summarydetmap, summaryhisto, TanTrackAngle, TanTrackAngleParallel, StripSubdetector::TEC, thick_detector, SiStripLAProfileBooker::detparameters::thickness, Calorimetry_cff::thickness, StripSubdetector::TIB, StripSubdetector::TID, StripSubdetector::TOB, toLocal(), Track_Tree, trackcollsize, TrackCounter, tracker, TrackTree, trajsize, Type, Wheel, worse_double_hit, XGlobal, YGlobal, and ZGlobal.

◆ endJob()

void SiStripLAProfileBooker::endJob ( void  )
overridevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 749 of file SiStripLAProfileBooker.cc.

749  {
750  std::string outputFile_ = conf_.getUntrackedParameter<std::string>("fileName", "LorentzAngle.root");
751  dbe_->save(outputFile_);
752 
753  hFile->Write();
754  hFile->Close();
755 }

References conf_, dbe_, edm::ParameterSet::getUntrackedParameter(), hFile, dqm::implementation::DQMStore::save(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by o2olib.O2ORunMgr::executeJob().

◆ getlayer()

void SiStripLAProfileBooker::getlayer ( const DetId detid,
const TrackerTopology tTopo,
std::string &  name,
unsigned int &  layerid 
)

Definition at line 717 of file SiStripLAProfileBooker.cc.

720  {
721  int layer = 0;
722  std::stringstream layernum;
723 
724  if (detid.subdetId() == int(StripSubdetector::TIB)) {
725  name += "TIB_Layer_";
726  layer = tTopo->tibLayer(detid);
727  }
728 
729  else if (detid.subdetId() == int(StripSubdetector::TID)) {
730  name += "TID_Ring_";
731  layer = tTopo->tidRing(detid);
732  }
733 
734  else if (detid.subdetId() == int(StripSubdetector::TOB)) {
735  name += "TOB_Layer_";
736  layer = tTopo->tobLayer(detid);
737 
738  }
739 
740  else if (detid.subdetId() == int(StripSubdetector::TEC)) {
741  name += "TEC_Ring_";
742  layer = tTopo->tecRing(detid);
743  }
744  layernum << layer;
745  name += layernum.str();
746  layerid = detid.subdetId() * 10 + layer;
747 }

References createfilelist::int, Skims_PA_cff::name, DetId::subdetId(), StripSubdetector::TEC, TrackerTopology::tecRing(), StripSubdetector::TIB, TrackerTopology::tibLayer(), StripSubdetector::TID, TrackerTopology::tidRing(), StripSubdetector::TOB, and TrackerTopology::tobLayer().

Referenced by analyze(), and beginRun().

Member Data Documentation

◆ Amplitudes

uint8_t SiStripLAProfileBooker::Amplitudes[100]
private

Definition at line 59 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ barycenter

float SiStripLAProfileBooker::barycenter
private

Definition at line 53 of file SiStripLAProfileBooker.h.

Referenced by analyze().

◆ better_double_hit

int SiStripLAProfileBooker::better_double_hit
private

Definition at line 55 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ bw_fw

int SiStripLAProfileBooker::bw_fw
private

Definition at line 51 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ chi2norm

float SiStripLAProfileBooker::chi2norm
private

Definition at line 53 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ ClSize

int SiStripLAProfileBooker::ClSize
private

Definition at line 51 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ conf_

edm::ParameterSet SiStripLAProfileBooker::conf_
private

Definition at line 73 of file SiStripLAProfileBooker.h.

Referenced by analyze(), beginRun(), and endJob().

◆ dbe_

DQMStore* SiStripLAProfileBooker::dbe_
private

Definition at line 69 of file SiStripLAProfileBooker.h.

Referenced by beginRun(), and endJob().

◆ detmap

detparmap SiStripLAProfileBooker::detmap
private

Definition at line 71 of file SiStripLAProfileBooker.h.

Referenced by analyze(), beginRun(), and ~SiStripLAProfileBooker().

◆ EtaTrack

float SiStripLAProfileBooker::EtaTrack
private

Definition at line 53 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ Event_Tree

TDirectory * SiStripLAProfileBooker::Event_Tree
private

Definition at line 64 of file SiStripLAProfileBooker.h.

Referenced by beginRun().

◆ eventcounter

int SiStripLAProfileBooker::eventcounter
private

Definition at line 55 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ EventCounter

int SiStripLAProfileBooker::EventCounter
private

Definition at line 57 of file SiStripLAProfileBooker.h.

Referenced by beginRun().

◆ EventNumber

int SiStripLAProfileBooker::EventNumber
private

Definition at line 51 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ EventTree

TTree * SiStripLAProfileBooker::EventTree
private

Definition at line 61 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ Ext_Int

int SiStripLAProfileBooker::Ext_Int
private

Definition at line 51 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ hFile

TFile* SiStripLAProfileBooker::hFile
private

Definition at line 62 of file SiStripLAProfileBooker.h.

Referenced by beginRun(), endJob(), and ~SiStripLAProfileBooker().

◆ histos

histomap SiStripLAProfileBooker::histos
private

Definition at line 66 of file SiStripLAProfileBooker.h.

Referenced by analyze(), beginRun(), and DisplayManager.DisplayManager::Draw().

◆ hit_std_dev

float SiStripLAProfileBooker::hit_std_dev
private

Definition at line 53 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ Hit_Tree

TDirectory* SiStripLAProfileBooker::Hit_Tree
private

Definition at line 64 of file SiStripLAProfileBooker.h.

Referenced by beginRun().

◆ HitCharge

int SiStripLAProfileBooker::HitCharge
private

Definition at line 51 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ hitcounter

int SiStripLAProfileBooker::hitcounter
private

Definition at line 55 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ hitcounter_2ndloop

int SiStripLAProfileBooker::hitcounter_2ndloop
private

Definition at line 55 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ HitNr

int SiStripLAProfileBooker::HitNr
private

Definition at line 55 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ HitPerTrack

int SiStripLAProfileBooker::HitPerTrack
private

Definition at line 55 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ HitsTree

TTree* SiStripLAProfileBooker::HitsTree
private

Definition at line 61 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ id_detector

int SiStripLAProfileBooker::id_detector
private

Definition at line 57 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ Layer

int SiStripLAProfileBooker::Layer
private

Definition at line 51 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ MagField

float SiStripLAProfileBooker::MagField
private

Definition at line 53 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ Momentum

float SiStripLAProfileBooker::Momentum
private

Definition at line 53 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ MonoStereo

int SiStripLAProfileBooker::MonoStereo
private

Definition at line 51 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ nstrip

int SiStripLAProfileBooker::nstrip
private

Definition at line 55 of file SiStripLAProfileBooker.h.

Referenced by analyze().

◆ ParticleCharge

int SiStripLAProfileBooker::ParticleCharge
private

Definition at line 51 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ PhiTrack

float SiStripLAProfileBooker::PhiTrack
private

Definition at line 53 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ pitch_detector

float SiStripLAProfileBooker::pitch_detector
private

Definition at line 58 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ pt

float SiStripLAProfileBooker::pt
private

◆ RunNumber

int SiStripLAProfileBooker::RunNumber
private

Definition at line 51 of file SiStripLAProfileBooker.h.

Referenced by analyze(), beginRun(), and Page1Parser.Page1Parser::ParsePage1().

◆ SignCorrection

float SiStripLAProfileBooker::SignCorrection
private

Definition at line 53 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ size

int SiStripLAProfileBooker::size
private

◆ summarydetmap

detparmap SiStripLAProfileBooker::summarydetmap
private

Definition at line 72 of file SiStripLAProfileBooker.h.

Referenced by beginRun(), and ~SiStripLAProfileBooker().

◆ summaryhisto

histomap SiStripLAProfileBooker::summaryhisto
private

Definition at line 67 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ sumx

float SiStripLAProfileBooker::sumx
private

Definition at line 53 of file SiStripLAProfileBooker.h.

Referenced by analyze().

◆ TanTrackAngle

float SiStripLAProfileBooker::TanTrackAngle
private

Definition at line 53 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ TanTrackAngleParallel

float SiStripLAProfileBooker::TanTrackAngleParallel
private

Definition at line 53 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ thick_detector

float SiStripLAProfileBooker::thick_detector
private

Definition at line 58 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ Track_Tree

TDirectory * SiStripLAProfileBooker::Track_Tree
private

Definition at line 64 of file SiStripLAProfileBooker.h.

Referenced by beginRun().

◆ trackcollsize

int SiStripLAProfileBooker::trackcollsize
private

Definition at line 51 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ TrackCounter

int SiStripLAProfileBooker::TrackCounter
private

Definition at line 57 of file SiStripLAProfileBooker.h.

Referenced by beginRun().

◆ tracker

const TrackerGeometry* SiStripLAProfileBooker::tracker
private

Definition at line 76 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ TrackTree

TTree * SiStripLAProfileBooker::TrackTree
private

Definition at line 61 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ trajsize

int SiStripLAProfileBooker::trajsize
private

Definition at line 51 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ treename_

std::string SiStripLAProfileBooker::treename_
private

Definition at line 74 of file SiStripLAProfileBooker.h.

◆ Type

int SiStripLAProfileBooker::Type
private

Definition at line 51 of file SiStripLAProfileBooker.h.

Referenced by analyze(), beginRun(), and BeamSpotObj.BeamSpot::Reset().

◆ Wheel

int SiStripLAProfileBooker::Wheel
private

Definition at line 51 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ worse_double_hit

int SiStripLAProfileBooker::worse_double_hit
private

Definition at line 55 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ XGlobal

float SiStripLAProfileBooker::XGlobal
private

Definition at line 53 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ YGlobal

float SiStripLAProfileBooker::YGlobal
private

Definition at line 53 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

◆ ZGlobal

float SiStripLAProfileBooker::ZGlobal
private

Definition at line 53 of file SiStripLAProfileBooker.h.

Referenced by analyze(), and beginRun().

Vector3DBase< float, LocalTag >
SiStripLAProfileBooker::Track_Tree
TDirectory * Track_Tree
Definition: SiStripLAProfileBooker.h:64
TrackerGeometry::idToDet
const TrackerGeomDet * idToDet(DetId) const override
Definition: TrackerGeometry.cc:193
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
SiStripDetCabling::addActiveDetectorsRawIds
void addActiveDetectorsRawIds(std::vector< uint32_t > &) const
Definition: SiStripDetCabling.cc:134
SiStripLAProfileBooker::MagField
float MagField
Definition: SiStripLAProfileBooker.h:53
PDWG_EXOHSCP_cff.tracks
tracks
Definition: PDWG_EXOHSCP_cff.py:28
SiStripRecHit2D::cluster
ClusterRef cluster() const
Definition: SiStripRecHit2D.h:22
SiStripLAProfileBooker::ZGlobal
float ZGlobal
Definition: SiStripLAProfileBooker.h:53
mps_fire.i
i
Definition: mps_fire.py:355
SiStripLAProfileBooker::trajsize
int trajsize
Definition: SiStripLAProfileBooker.h:51
SiStripLAProfileBooker::YGlobal
float YGlobal
Definition: SiStripLAProfileBooker.h:53
SiStripLAProfileBooker::HitNr
int HitNr
Definition: SiStripLAProfileBooker.h:55
SiStripLAProfileBooker::hitcounter
int hitcounter
Definition: SiStripLAProfileBooker.h:55
GeomDet
Definition: GeomDet.h:27
SiStripLAProfileBooker::HitCharge
int HitCharge
Definition: SiStripLAProfileBooker.h:51
SiStripLAProfileBooker::EtaTrack
float EtaTrack
Definition: SiStripLAProfileBooker.h:53
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
SiStripLAProfileBooker::SignCorrection
float SignCorrection
Definition: SiStripLAProfileBooker.h:53
TrackerTopology
Definition: TrackerTopology.h:16
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
StripSubdetector::stereo
unsigned int stereo() const
stereo
Definition: StripSubdetector.h:46
StripSubdetector
Definition: StripSubdetector.h:12
SiStripLAProfileBooker::chi2norm
float chi2norm
Definition: SiStripLAProfileBooker.h:53
edm::LogInfo
Definition: MessageLogger.h:254
SiStripLAProfileBooker::pt
float pt
Definition: SiStripLAProfileBooker.h:53
GluedGeomDet::monoDet
const GeomDetUnit * monoDet() const
Definition: GluedGeomDet.h:19
GeomDet::topology
virtual const Topology & topology() const
Definition: GeomDet.cc:67
SiStripRecHit2D
Definition: SiStripRecHit2D.h:7
dqm::legacy::MonitorElement
Definition: MonitorElement.h:461
SiStripLAProfileBooker::detmap
detparmap detmap
Definition: SiStripLAProfileBooker.h:71
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
edm::Handle< reco::TrackCollection >
SiStripLAProfileBooker::TrackCounter
int TrackCounter
Definition: SiStripLAProfileBooker.h:57
StripTopology::localPitch
virtual float localPitch(const LocalPoint &) const =0
TrackingRecHit::geographicalId
DetId geographicalId() const
Definition: TrackingRecHit.h:120
ProjectedSiStripRecHit2D
Definition: ProjectedSiStripRecHit2D.h:8
TrackerTopology::tidRing
unsigned int tidRing(const DetId &id) const
Definition: TrackerTopology.h:218
edm::Ref
Definition: AssociativeIterator.h:58
TrackerTopology::tidWheel
unsigned int tidWheel(const DetId &id) const
Definition: TrackerTopology.h:201
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
IdealMagneticFieldRecord
Definition: IdealMagneticFieldRecord.h:11
edm::InputTag::label
std::string const & label() const
Definition: InputTag.h:36
DetId
Definition: DetId.h:17
TrackerTopology::tobRodInfo
std::vector< unsigned int > tobRodInfo(const DetId &id) const
Definition: TrackerTopology.h:226
edm::AssociationMap::end
const_iterator end() const
last iterator over the map (read only)
Definition: AssociationMap.h:171
GeomDet::surface
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
SiStripLAProfileBooker::size
int size
Definition: SiStripLAProfileBooker.h:55
TrackerTopology::tibStringInfo
std::vector< unsigned int > tibStringInfo(const DetId &id) const
Definition: TrackerTopology.h:421
SiStripLAProfileBooker::TanTrackAngleParallel
float TanTrackAngleParallel
Definition: SiStripLAProfileBooker.h:53
SiStripLAProfileBooker::dbe_
DQMStore * dbe_
Definition: SiStripLAProfileBooker.h:69
SiStripLAProfileBooker::PhiTrack
float PhiTrack
Definition: SiStripLAProfileBooker.h:53
TrackerTopology::tidModuleInfo
std::vector< unsigned int > tidModuleInfo(const DetId &id) const
Definition: TrackerTopology.h:434
SiStripLAProfileBooker::MonoStereo
int MonoStereo
Definition: SiStripLAProfileBooker.h:51
SiStripLAProfileBooker::EventTree
TTree * EventTree
Definition: SiStripLAProfileBooker.h:61
TrajectoryStateOnSurface::localDirection
LocalVector localDirection() const
Definition: TrajectoryStateOnSurface.h:76
Calorimetry_cff.thickness
thickness
Definition: Calorimetry_cff.py:114
SiStripLAProfileBooker::TanTrackAngle
float TanTrackAngle
Definition: SiStripLAProfileBooker.h:53
SiStripLAProfileBooker::Momentum
float Momentum
Definition: SiStripLAProfileBooker.h:53
TrackerDigiGeometryRecord
Definition: TrackerDigiGeometryRecord.h:15
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
Surface::bounds
const Bounds & bounds() const
Definition: Surface.h:87
edm::ESHandle< TrackerTopology >
dqm::implementation::IBooker::bookProfile
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int, double lowY, double highY, char const *option="s", FUNC onbooking=NOOP())
Definition: DQMStore.h:322
SiStripMatchedRecHit2D::stereoHit
SiStripRecHit2D stereoHit() const
Definition: SiStripMatchedRecHit2D.h:25
SiStripLAProfileBooker::HitPerTrack
int HitPerTrack
Definition: SiStripLAProfileBooker.h:55
StripSubdetector::TIB
static constexpr auto TIB
Definition: StripSubdetector.h:16
SiStripLAProfileBooker::sumx
float sumx
Definition: SiStripLAProfileBooker.h:53
SiStripDetCablingRcd
Definition: SiStripDependentRecords.h:19
Point3DBase< float, LocalTag >
GeomDet::toLocal
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
Definition: GeomDet.h:58
dqm::implementation::DQMStore::save
DQM_DEPRECATED void save(std::string const &filename, std::string const &path="")
Definition: DQMStore.cc:760
SiStripLAProfileBooker::Hit_Tree
TDirectory * Hit_Tree
Definition: SiStripLAProfileBooker.h:64
SiStripLAProfileBooker::EventCounter
int EventCounter
Definition: SiStripLAProfileBooker.h:57
GluedGeomDet
Definition: GluedGeomDet.h:7
utilities.cache
def cache(function)
Definition: utilities.py:3
DetId::subdetId
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum)
Definition: DetId.h:48
SiStripLAProfileBooker::thick_detector
float thick_detector
Definition: SiStripLAProfileBooker.h:58
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
PostProcessor_cff.profile
profile
Definition: PostProcessor_cff.py:38
SiStripLAProfileBooker::HitsTree
TTree * HitsTree
Definition: SiStripLAProfileBooker.h:61
TrackingGeometry::DetIdContainer
std::vector< DetId > DetIdContainer
Definition: TrackingGeometry.h:30
edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::TrackCollection, unsigned short > >::const_iterator
friend struct const_iterator
Definition: AssociationMap.h:274
SiStripLAProfileBooker::RunNumber
int RunNumber
Definition: SiStripLAProfileBooker.h:51
Bounds::thickness
virtual float thickness() const =0
GeomDet::toGlobal
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
Definition: GeomDet.h:49
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:670
edm::LogError
Definition: MessageLogger.h:183
duplicaterechits_cfi.trackCollection
trackCollection
Definition: duplicaterechits_cfi.py:4
SiStripLAProfileBooker::trackcollsize
int trackcollsize
Definition: SiStripLAProfileBooker.h:51
SiStripLAProfileBooker::bw_fw
int bw_fw
Definition: SiStripLAProfileBooker.h:51
SiStripLAProfileBooker::Wheel
int Wheel
Definition: SiStripLAProfileBooker.h:51
BaseTrackerRecHit::localPosition
LocalPoint localPosition() const final
Definition: BaseTrackerRecHit.h:54
SiStripMatchedRecHit2D::monoHit
SiStripRecHit2D monoHit() const
Definition: SiStripMatchedRecHit2D.h:26
position
static int position[264][3]
Definition: ReadPGInfo.cc:289
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
TrackingRecHit::ConstRecHitPointer
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
Definition: TrackingRecHit.h:25
edm::Service
Definition: Service.h:30
createfilelist.int
int
Definition: createfilelist.py:10
SiStripLAProfileBooker::id_detector
int id_detector
Definition: SiStripLAProfileBooker.h:57
SiStripLAProfileBooker::ParticleCharge
int ParticleCharge
Definition: SiStripLAProfileBooker.h:51
TrackerTopology::tecRing
unsigned int tecRing(const DetId &id) const
ring id
Definition: TrackerTopology.h:217
SiStripLAProfileBooker::TrackTree
TTree * TrackTree
Definition: SiStripLAProfileBooker.h:61
SiStripLAProfileBooker::tracker
const TrackerGeometry * tracker
Definition: SiStripLAProfileBooker.h:76
SiStripLAProfileBooker::worse_double_hit
int worse_double_hit
Definition: SiStripLAProfileBooker.h:55
SiStripFolderOrganizer::setSiStripFolder
void setSiStripFolder()
Definition: SiStripFolderOrganizer.cc:45
GeomDet::specificSurface
const Plane & specificSurface() const
Same as surface(), kept for backward compatibility.
Definition: GeomDet.h:40
HltBtagPostValidation_cff.c
c
Definition: HltBtagPostValidation_cff.py:31
SiStripLAProfileBooker::barycenter
float barycenter
Definition: SiStripLAProfileBooker.h:53
get
#define get
SiStripHistoId::createHistoId
std::string createHistoId(std::string description, std::string id_type, uint32_t component_id)
Definition: SiStripHistoId.cc:26
cms::cuda::for
for(int i=first, nt=offsets[nh];i< nt;i+=gridDim.x *blockDim.x)
Definition: HistoContainer.h:27
SiStripLAProfileBooker::Type
int Type
Definition: SiStripLAProfileBooker.h:51
SiStripLAProfileBooker::Ext_Int
int Ext_Int
Definition: SiStripLAProfileBooker.h:51
SiStripLAProfileBooker::hit_std_dev
float hit_std_dev
Definition: SiStripLAProfileBooker.h:53
SiStripLAProfileBooker::summarydetmap
detparmap summarydetmap
Definition: SiStripLAProfileBooker.h:72
SiStripFolderOrganizer::setDetectorFolder
void setDetectorFolder(uint32_t rawdetid, const TrackerTopology *tTopo)
Definition: SiStripFolderOrganizer.cc:202
SiStripLAProfileBooker::hFile
TFile * hFile
Definition: SiStripLAProfileBooker.h:62
PV3DBase::mag
T mag() const
Definition: PV3DBase.h:64
GluedGeomDet::stereoDet
const GeomDetUnit * stereoDet() const
Definition: GluedGeomDet.h:20
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
SiStripHistoId
Definition: SiStripHistoId.h:25
TrackerTopology::tobLayer
unsigned int tobLayer(const DetId &id) const
Definition: TrackerTopology.h:147
SiStripLAProfileBooker::hitcounter_2ndloop
int hitcounter_2ndloop
Definition: SiStripLAProfileBooker.h:55
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
StripSubdetector::TEC
static constexpr auto TEC
Definition: StripSubdetector.h:19
SiStripMatchedRecHit2D
Definition: SiStripMatchedRecHit2D.h:8
SiStripLAProfileBooker::Event_Tree
TDirectory * Event_Tree
Definition: SiStripLAProfileBooker.h:64
SiStripLAProfileBooker::Layer
int Layer
Definition: SiStripLAProfileBooker.h:51
SiStripLAProfileBooker::ClSize
int ClSize
Definition: SiStripLAProfileBooker.h:51
edm::AssociationMap::begin
const_iterator begin() const
first iterator over the map (read only)
Definition: AssociationMap.h:169
SiStripFolderOrganizer
Definition: SiStripFolderOrganizer.h:27
toLocal
LocalVector toLocal(const reco::Track::Vector &v, const Surface &s)
Definition: ConversionProducer.h:192
StripSubdetector::TOB
static constexpr auto TOB
Definition: StripSubdetector.h:18
SiStripLAProfileBooker::Amplitudes
uint8_t Amplitudes[100]
Definition: SiStripLAProfileBooker.h:59
SiStripLAProfileBooker::summaryhisto
histomap summaryhisto
Definition: SiStripLAProfileBooker.h:67
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
SiStripLAProfileBooker::pitch_detector
float pitch_detector
Definition: SiStripLAProfileBooker.h:58
TrackerGeometry::detIds
const DetIdContainer & detIds() const override
Returm a vector of all GeomDet DetIds (including those of GeomDetUnits)
Definition: TrackerGeometry.h:64
SiStripLAProfileBooker::XGlobal
float XGlobal
Definition: SiStripLAProfileBooker.h:53
funct::pow
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:30
TrackerTopology::tecPetalInfo
std::vector< unsigned int > tecPetalInfo(const DetId &id) const
Definition: TrackerTopology.h:407
SiStripLAProfileBooker::conf_
edm::ParameterSet conf_
Definition: SiStripLAProfileBooker.h:73
SiStripLAProfileBooker::nstrip
int nstrip
Definition: SiStripLAProfileBooker.h:55
TrackerTopologyRcd
Definition: TrackerTopologyRcd.h:10
SiStripLAProfileBooker::histos
histomap histos
Definition: SiStripLAProfileBooker.h:66
SiStripLAProfileBooker::getlayer
void getlayer(const DetId &detid, const TrackerTopology *tTopo, std::string &name, unsigned int &layerid)
Definition: SiStripLAProfileBooker.cc:717
TrajectoryCollection
std::vector< Trajectory > TrajectoryCollection
Definition: TrajectoryToSeedMap.h:17
MagneticField
Definition: MagneticField.h:19
TrackerTopology::tecWheel
unsigned int tecWheel(const DetId &id) const
Definition: TrackerTopology.h:198
volumeBasedMagneticField_160812_cfi.magfield
magfield
Definition: volumeBasedMagneticField_160812_cfi.py:11
StripTopology
Definition: StripTopology.h:11
dqm::impl::MonitorElement::setAxisTitle
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
Definition: MonitorElement.cc:800
edm::InputTag
Definition: InputTag.h:15
begin
#define begin
Definition: vmac.h:32
reco::TrackCollection
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
SiStripLAProfileBooker::eventcounter
int eventcounter
Definition: SiStripLAProfileBooker.h:55
SiStripLAProfileBooker::better_double_hit
int better_double_hit
Definition: SiStripLAProfileBooker.h:55
StripSubdetector::TID
static constexpr auto TID
Definition: StripSubdetector.h:17
hit
Definition: SiStripHitEffFromCalibTree.cc:88
SiStripLAProfileBooker::EventNumber
int EventNumber
Definition: SiStripLAProfileBooker.h:51
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
TrackerTopology::tibLayer
unsigned int tibLayer(const DetId &id) const
Definition: TrackerTopology.h:150