CMS 3D CMS Logo

SiPixelTrackingRecHitsValid.h
Go to the documentation of this file.
1 
2 // File: SiPixelTrackingRecHitsValid.hh
3 // // Authors: Xingtao Huang (Puerto Rico Univ.)
4 // Gavril Giurgiu (JHU)
5 // Creation Date: Oct. 2006.
6 //
7 //--------------------------------------------
8 
9 #ifndef Validation_RecoTrack_SiPixelTrackingRecHitsValid_h
10 #define Validation_RecoTrack_SiPixelTrackingRecHitsValid_h
11 
12 //DQM services for histogram
17 
38 //#include "Validation/RecoTrack/interface/TrackLocalAngle.h"
39 #include <TROOT.h>
40 #include <TTree.h>
41 #include <TFile.h>
42 #include <TH1F.h>
43 #include <TProfile.h>
44 
50 
51 //--- for SimHit association
63 
64 #include <string>
65 
66 class TTree;
67 class TFile;
68 
70 {
71  public:
72 
73  explicit SiPixelTrackingRecHitsValid(const edm::ParameterSet& conf);
74 
76 
77  void analyze(const edm::Event& e, const edm::EventSetup& c) override;
78  void bookHistograms(DQMStore::IBooker & ibooker,const edm::Run& run, const edm::EventSetup& es) override;
79  virtual void beginJob();
80  virtual void endJob();
81 
82  //xt std::pair<LocalPoint,LocalVector> projectHit( const PSimHit& hit, const StripGeomDetUnit* stripDet,const BoundPlane& plane);
83  std::pair<LocalPoint,LocalVector> projectHit( const PSimHit& hit, const PixelGeomDetUnit* pixelDet,const BoundPlane& plane);
84 
85  private:
86 
88  //TrackLocalAngle *anglefinder_;
96  bool MTCCtrack_;
97 
98  bool checkType_; // do we check that the simHit associated with recHit is of the expected particle type ?
99  int genType_; // the type of particle that the simHit associated with recHits should be
100 
101  // Pixel barrel detector has 3 layers and 8 modules; book histograms for each module = (layer, ring) pair
102 
127 
128  // All layers and modules together
153 
162 
175 
188 
197 
198  // Split barrel x/y residuals and pulls in 3 layers
203 
212 
213  // Pixel forward detector has 2 sides, 2 disks per side, 2 panels per disk and either 3 or 4 plaquettes per blade
214  // Panel 1 has 4 plaquettes
215  // Panel 2 has 3 plaquettes
216 
217  // Negative Z side
218  // Panel 1: 2 disks, 4 plaquets
219 
244 
245  // Panel 2: 2 disks, 3 plaquets
270 
271  // Positive Z side
272  // Panel 1: 2 disks, 4 plaquets
297 
298  // Panel 2: 2 disks, 3 plaquets
323 
324  // All disks and plaquettes together
325 
326  // Negative Z side, panel 1
351 
356 
357  // Negative Z side, panel 2
382 
387 
388  // Positive Z side, panel 1
413 
418 
419  // Positive Z side, panel 2
444 
449 
450  // all hits (not only from tracks)
453 
458 
463 
464  // control histograms
467 
468 
469  // variables that go in the output tree
470  float rechitx; // x position of hit
471  float rechity; // y position of hit
472  float rechitz; // z position of hit
473  float rechiterrx; // x position error of hit (error not squared)
474  float rechiterry; // y position error of hit (error not squared)
475 
476  float rechitresx; // difference between reconstructed hit x position and 'true' x position
477  float rechitresy; // difference between reconstructed hit y position and 'true' y position
478  float rechitpullx; // x residual divideded by error
479  float rechitpully; // y residual divideded by error
480 
481  int npix; // number of pixel in the cluster
482  int nxpix; // size of cluster (number of pixels) along x direction
483  int nypix; // size of cluster (number of pixels) along y direction
484  float charge; // total charge in cluster
485 
486  float alpha; // track angle in the xz plane of the module local coordinate system
487  float beta; // track angle in the yz plane of the module local coordinate system
488 
489  float phi; // polar track angle
490  float eta; // pseudo-rapidity (function of theta, the azimuthal angle)
491 
492  int subdetId;
493  int layer;
494  int ladder;
495  int mod;
496  int side;
497  int disk;
498  int blade;
499  int panel;
500  int plaq;
501  int half; // half = 1 if the barrel module is half size and 0 if it is full size (only defined for barrel)
502  int flipped; // flipped = 1 if the module is flipped and 0 if non-flipped (only defined for barrel)
503 
504  int nsimhit; // number of simhits associated with a rechit
505  int pidhit; // PID of the particle that produced the simHit associated with the recHit
506 
507  float simhitx; // true x position of hit
508  float simhity; // true y position of hit
509 
512 
513  TFile * tfile_;
514  TTree * t_;
515 };
516 
517 #endif
MonitorElement * meWPullXvsAlphaBarrelNonFlippedLadders
edm::EDGetTokenT< SiPixelRecHitCollection > siPixelRecHitCollectionToken_
MonitorElement * meResXvsAlphaBarrelNonFlippedLaddersLayer[3]
MonitorElement * meErryBarrelLayerModule[3][8]
MonitorElement * meNpixZmPanel1DiskPlaq[2][4]
MonitorElement * meResYvsAlphaBarrelFlippedLaddersLayer[3]
MonitorElement * mePullYvsEtaBarrelLayerModule[3][8]
MonitorElement * meErryZpPanel2DiskPlaq[2][3]
MonitorElement * meResyZpPanel1DiskPlaq[2][4]
MonitorElement * mePullxZpPanel2DiskPlaq[2][3]
MonitorElement * mePullXvsBetaBarrelLayerModule[3][8]
MonitorElement * meResyZmPanel2DiskPlaq[2][3]
MonitorElement * mePullXvsAlphaZmPanel1DiskPlaq[2][4]
MonitorElement * meResYvsAlphaBarrelNonFlippedLaddersLayer[3]
MonitorElement * mePullYvsAlphaBarrelNonFlippedLadders
MonitorElement * mePullYvsAlphaZmPanel1DiskPlaq[2][4]
MonitorElement * meChargeZmPanel2DiskPlaq[2][3]
MonitorElement * mePosxZmPanel1DiskPlaq[2][4]
MonitorElement * mePosyBarrelLayerModule[3][8]
MonitorElement * meResxZpPanel1DiskPlaq[2][4]
MonitorElement * meNpixZpPanel2DiskPlaq[2][3]
MonitorElement * meResyZmPanel1DiskPlaq[2][4]
MonitorElement * meResXvsBetaZmPanel1DiskPlaq[2][4]
MonitorElement * mePullYvsEtaZpPanel1DiskPlaq[2][4]
MonitorElement * meWPullXvsBetaBarrelNonFlippedLadders
MonitorElement * meResYvsBetaZmPanel1DiskPlaq[2][4]
MonitorElement * mePullYvsEtaZmPanel2DiskPlaq[2][3]
MonitorElement * meErrxZmPanel1DiskPlaq[2][4]
MonitorElement * meResXvsBetaBarrelNonFlippedLaddersLayer[3]
MonitorElement * meErrxZpPanel2DiskPlaq[2][3]
MonitorElement * meResYvsBetaBarrelFlippedLaddersLayer[3]
MonitorElement * mePullxBarrelLayerModule[3][8]
MonitorElement * mePosyZpPanel1DiskPlaq[2][4]
MonitorElement * meNxpixZpPanel1DiskPlaq[2][4]
MonitorElement * mePullYvsBetaZpPanel1DiskPlaq[2][4]
MonitorElement * mePullXvsPhiZmPanel1DiskPlaq[2][4]
MonitorElement * meResXvsBetaBarrelFlippedLaddersLayer[3]
MonitorElement * mePullyZmPanel1DiskPlaq[2][4]
MonitorElement * meErrxBarrelLayerModule[3][8]
MonitorElement * meErryZmPanel2DiskPlaq[2][3]
MonitorElement * mePosxZmPanel2DiskPlaq[2][3]
unsigned long long EventNumber_t
MonitorElement * meChargeZpPanel2DiskPlaq[2][3]
MonitorElement * mePullXvsEtaZpPanel2DiskPlaq[2][3]
MonitorElement * meResYvsAlphaZmPanel1DiskPlaq[2][4]
MonitorElement * mePullXvsBetaZmPanel1DiskPlaq[2][4]
MonitorElement * meResXvsAlphaZmPanel2DiskPlaq[2][3]
MonitorElement * mePullYvsAlphaZmPanel2DiskPlaq[2][3]
MonitorElement * mePullxZmPanel1DiskPlaq[2][4]
MonitorElement * mePullyZpPanel2DiskPlaq[2][3]
MonitorElement * mePullXvsAlphaBarrelLayerModule[3][8]
MonitorElement * meNpixZpPanel1DiskPlaq[2][4]
MonitorElement * mePosyZmPanel2DiskPlaq[2][3]
TrackerHitAssociator::Config trackerHitAssociatorConfig_
MonitorElement * mePullyBarrelLayerModule[3][8]
MonitorElement * mePullXvsPhiZpPanel2DiskPlaq[2][3]
MonitorElement * meResyBarrelLayerModule[3][8]
MonitorElement * meWPullYvsBetaBarrelNonFlippedLadders
MonitorElement * meNypixBarrelLayerModule[3][8]
edm::EDGetTokenT< reco::TrackCollection > recoTrackCollectionToken_
MonitorElement * mePullyZpPanel1DiskPlaq[2][4]
MonitorElement * meNypixZpPanel1DiskPlaq[2][4]
MonitorElement * mePullXvsAlphaZpPanel1DiskPlaq[2][4]
MonitorElement * meErryZmPanel1DiskPlaq[2][4]
MonitorElement * mePullxZmPanel2DiskPlaq[2][3]
MonitorElement * mePullXvsEtaZpPanel1DiskPlaq[2][4]
MonitorElement * mePullXvsPhiZmPanel2DiskPlaq[2][3]
MonitorElement * mePullYvsBetaZmPanel2DiskPlaq[2][3]
MonitorElement * mePullXvsPhiBarrelLayerModule[3][8]
MonitorElement * mePullYvsPhiZmPanel2DiskPlaq[2][3]
MonitorElement * meWPullYvsAlphaBarrelNonFlippedLadders
MonitorElement * meResYvsAlphaZpPanel2DiskPlaq[2][3]
void bookHistograms(DQMStore::IBooker &ibooker, const edm::Run &run, const edm::EventSetup &es) override
MonitorElement * meNpixBarrelLayerModule[3][8]
MonitorElement * meResxZpPanel2DiskPlaq[2][3]
MonitorElement * meChargeZpPanel1DiskPlaq[2][4]
MonitorElement * mePullXvsBetaZpPanel2DiskPlaq[2][3]
MonitorElement * meResYvsAlphaZpPanel1DiskPlaq[2][4]
MonitorElement * meResxBarrelLayerModule[3][8]
MonitorElement * meNxpixZmPanel1DiskPlaq[2][4]
void analyze(const edm::Event &e, const edm::EventSetup &c) override
MonitorElement * mePosxZpPanel2DiskPlaq[2][3]
MonitorElement * mePosxZpPanel1DiskPlaq[2][4]
MonitorElement * meNxpixZpPanel2DiskPlaq[2][3]
MonitorElement * mePullYvsEtaZpPanel2DiskPlaq[2][3]
MonitorElement * mePullYvsPhiZpPanel1DiskPlaq[2][4]
MonitorElement * meResxZmPanel2DiskPlaq[2][3]
std::pair< LocalPoint, LocalVector > projectHit(const PSimHit &hit, const PixelGeomDetUnit *pixelDet, const BoundPlane &plane)
MonitorElement * meResXvsBetaZmPanel2DiskPlaq[2][3]
MonitorElement * mePullyZmPanel2DiskPlaq[2][3]
MonitorElement * mePullYvsBetaBarrelLayerModule[3][8]
MonitorElement * meErrxZmPanel2DiskPlaq[2][3]
MonitorElement * meNypixZmPanel1DiskPlaq[2][4]
MonitorElement * mePullXvsEtaZmPanel1DiskPlaq[2][4]
MonitorElement * meErrxZpPanel1DiskPlaq[2][4]
MonitorElement * meErryZpPanel1DiskPlaq[2][4]
MonitorElement * meResXvsBetaZpPanel2DiskPlaq[2][3]
MonitorElement * meResXvsBetaZpPanel1DiskPlaq[2][4]
MonitorElement * mePullYvsPhiZmPanel1DiskPlaq[2][4]
MonitorElement * meChargeZmPanel1DiskPlaq[2][4]
MonitorElement * mePullYvsAlphaZpPanel2DiskPlaq[2][3]
MonitorElement * meNypixZmPanel2DiskPlaq[2][3]
MonitorElement * mePullYvsPhiZpPanel2DiskPlaq[2][3]
MonitorElement * mePullYvsBetaZmPanel1DiskPlaq[2][4]
MonitorElement * mePullXvsEtaBarrelLayerModule[3][8]
MonitorElement * mePullXvsBetaZmPanel2DiskPlaq[2][3]
MonitorElement * mePullXvsAlphaZpPanel2DiskPlaq[2][3]
MonitorElement * meResYvsBetaBarrelLayerModule[3][8]
MonitorElement * mePullXvsAlphaBarrelNonFlippedLadders
SiPixelTrackingRecHitsValid(const edm::ParameterSet &conf)
MonitorElement * mePullYvsAlphaBarrelLayerModule[3][8]
MonitorElement * mePullYvsEtaZmPanel1DiskPlaq[2][4]
MonitorElement * meResXvsAlphaZmPanel1DiskPlaq[2][4]
MonitorElement * mePullYvsAlphaZpPanel1DiskPlaq[2][4]
MonitorElement * meChargeBarrelLayerModule[3][8]
MonitorElement * meResXvsAlphaZpPanel1DiskPlaq[2][4]
MonitorElement * mePullYvsBetaZpPanel2DiskPlaq[2][3]
MonitorElement * meResYvsBetaZpPanel1DiskPlaq[2][4]
MonitorElement * mePosxBarrelLayerModule[3][8]
MonitorElement * meResYvsAlphaZmPanel2DiskPlaq[2][3]
MonitorElement * meResyZpPanel2DiskPlaq[2][3]
MonitorElement * mePullXvsBetaZpPanel1DiskPlaq[2][4]
MonitorElement * meResYvsBetaZpPanel2DiskPlaq[2][3]
MonitorElement * mePullXvsEtaZmPanel2DiskPlaq[2][3]
MonitorElement * meResYvsAlphaBarrelLayerModule[3][8]
unsigned int RunNumber_t
MonitorElement * mePosyZpPanel2DiskPlaq[2][3]
MonitorElement * mePullXvsAlphaZmPanel2DiskPlaq[2][3]
MonitorElement * mePullxZpPanel1DiskPlaq[2][4]
MonitorElement * meResXvsAlphaZpPanel2DiskPlaq[2][3]
MonitorElement * meResXvsAlphaBarrelLayerModule[3][8]
MonitorElement * meResYvsBetaZmPanel2DiskPlaq[2][3]
MonitorElement * meNpixZmPanel2DiskPlaq[2][3]
MonitorElement * meResXvsAlphaBarrelFlippedLaddersLayer[3]
MonitorElement * meResXvsBetaBarrelLayerModule[3][8]
MonitorElement * mePullYvsPhiBarrelLayerModule[3][8]
MonitorElement * meNypixZpPanel2DiskPlaq[2][3]
Definition: Run.h:43
MonitorElement * mePosyZmPanel1DiskPlaq[2][4]
MonitorElement * mePullXvsPhiZpPanel1DiskPlaq[2][4]
MonitorElement * meNxpixBarrelLayerModule[3][8]
MonitorElement * meNxpixZmPanel2DiskPlaq[2][3]
MonitorElement * meResxZmPanel1DiskPlaq[2][4]
MonitorElement * meResYvsBetaBarrelNonFlippedLaddersLayer[3]