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
14 
34 //#include "Validation/RecoTrack/interface/TrackLocalAngle.h"
35 #include <TROOT.h>
36 #include <TTree.h>
37 #include <TFile.h>
38 #include <TH1F.h>
39 #include <TProfile.h>
40 
46 
47 //--- for SimHit association
59 
60 #include <string>
61 
62 class TTree;
63 class TFile;
64 
66 public:
67  explicit SiPixelTrackingRecHitsValid(const edm::ParameterSet& conf);
68 
70 
71  void analyze(const edm::Event& e, const edm::EventSetup& c) override;
72  void bookHistograms(DQMStore::IBooker& ibooker, const edm::Run& run, const edm::EventSetup& es) override;
73  void beginJob() override;
74  void endJob() override;
75 
76  //xt std::pair<LocalPoint,LocalVector> projectHit( const PSimHit& hit, const StripGeomDetUnit* stripDet,const BoundPlane& plane);
77  std::pair<LocalPoint, LocalVector> projectHit(const PSimHit& hit,
78  const PixelGeomDetUnit* pixelDet,
79  const BoundPlane& plane);
80 
81 private:
84 
86  //TrackLocalAngle *anglefinder_;
94  bool MTCCtrack_;
95 
96  bool checkType_; // do we check that the simHit associated with recHit is of the expected particle type ?
97  int genType_; // the type of particle that the simHit associated with recHits should be
98 
99  // Pixel barrel detector has 3 layers and 8 modules; book histograms for each module = (layer, ring) pair
100 
125 
126  // All layers and modules together
151 
160 
173 
186 
195 
196  // Split barrel x/y residuals and pulls in 3 layers
201 
210 
211  // Pixel forward detector has 2 sides, 2 disks per side, 2 panels per disk and either 3 or 4 plaquettes per blade
212  // Panel 1 has 4 plaquettes
213  // Panel 2 has 3 plaquettes
214 
215  // Negative Z side
216  // Panel 1: 2 disks, 4 plaquets
217 
242 
243  // Panel 2: 2 disks, 3 plaquets
268 
269  // Positive Z side
270  // Panel 1: 2 disks, 4 plaquets
295 
296  // Panel 2: 2 disks, 3 plaquets
321 
322  // All disks and plaquettes together
323 
324  // Negative Z side, panel 1
349 
354 
355  // Negative Z side, panel 2
380 
385 
386  // Positive Z side, panel 1
411 
416 
417  // Positive Z side, panel 2
442 
447 
448  // all hits (not only from tracks)
451 
456 
461 
462  // control histograms
465 
466  // variables that go in the output tree
467  float rechitx; // x position of hit
468  float rechity; // y position of hit
469  float rechitz; // z position of hit
470  float rechiterrx; // x position error of hit (error not squared)
471  float rechiterry; // y position error of hit (error not squared)
472 
473  float rechitresx; // difference between reconstructed hit x position and 'true' x position
474  float rechitresy; // difference between reconstructed hit y position and 'true' y position
475  float rechitpullx; // x residual divideded by error
476  float rechitpully; // y residual divideded by error
477 
478  int npix; // number of pixel in the cluster
479  int nxpix; // size of cluster (number of pixels) along x direction
480  int nypix; // size of cluster (number of pixels) along y direction
481  float charge; // total charge in cluster
482 
483  float alpha; // track angle in the xz plane of the module local coordinate system
484  float beta; // track angle in the yz plane of the module local coordinate system
485 
486  float phi; // polar track angle
487  float eta; // pseudo-rapidity (function of theta, the azimuthal angle)
488 
489  int subdetId;
490  int layer;
491  int ladder;
492  int mod;
493  int side;
494  int disk;
495  int blade;
496  int panel;
497  int plaq;
498  int half; // half = 1 if the barrel module is half size and 0 if it is full size (only defined for barrel)
499  int flipped; // flipped = 1 if the module is flipped and 0 if non-flipped (only defined for barrel)
500 
501  int nsimhit; // number of simhits associated with a rechit
502  int pidhit; // PID of the particle that produced the simHit associated with the recHit
503 
504  float simhitx; // true x position of hit
505  float simhity; // true y position of hit
506 
509 
510  TFile* tfile_;
511  TTree* t_;
512 };
513 
514 #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]
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > tTopoEsToken_
MonitorElement * mePullXvsBetaBarrelLayerModule[3][8]
MonitorElement * meResyZmPanel2DiskPlaq[2][3]
MonitorElement * mePullXvsAlphaZmPanel1DiskPlaq[2][4]
MonitorElement * meResYvsAlphaBarrelNonFlippedLaddersLayer[3]
std::pair< LocalPoint, LocalVector > projectHit(const PSimHit &hit, const PixelGeomDetUnit *pixelDet, const BoundPlane &plane)
MonitorElement * mePullYvsAlphaBarrelNonFlippedLadders
MonitorElement * mePullYvsAlphaZmPanel1DiskPlaq[2][4]
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > tGeomEsToken_
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]
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:45
MonitorElement * mePosyZmPanel1DiskPlaq[2][4]
MonitorElement * mePullXvsPhiZpPanel1DiskPlaq[2][4]
MonitorElement * meNxpixBarrelLayerModule[3][8]
MonitorElement * meNxpixZmPanel2DiskPlaq[2][3]
MonitorElement * meResxZmPanel1DiskPlaq[2][4]
MonitorElement * meResYvsBetaBarrelNonFlippedLaddersLayer[3]