Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:08:23

0001 // Package:    SiPixelMonitorTrack
0002 // Class:      SiPixelHitEfficiencyModule
0003 //
0004 // class SiPixelHitEfficiencyModule SiPixelHitEfficiencyModule.h
0005 //       DQM/SiPixelMonitorTrack/src/SiPixelHitEfficiencyModule.h
0006 //
0007 // Description: SiPixel hit efficiency data quality monitoring modules
0008 // Implementation: prototype -> improved -> never final - end of the 1st step
0009 //
0010 // Original Authors: Romain Rougny & Luca Mucibello
0011 //         Created: Mar Nov 10 13:29:00 CET 2009
0012 
0013 #ifndef SiPixelMonitorTrack_SiPixelHitEfficiencyModule_h
0014 #define SiPixelMonitorTrack_SiPixelHitEfficiencyModule_h
0015 
0016 #include <utility>
0017 
0018 #include "DQMServices/Core/interface/DQMStore.h"
0019 #include "DataFormats/TrackerCommon/interface/TrackerTopology.h"
0020 #include "Geometry/Records/interface/TrackerTopologyRcd.h"
0021 #include "DataFormats/TrackerRecHit2D/interface/SiPixelRecHitCollection.h"
0022 #include "DataFormats/TrajectoryState/interface/LocalTrajectoryParameters.h"
0023 #include <cstdint>
0024 
0025 namespace edm {
0026   class EventSetup;
0027 }
0028 
0029 class SiPixelHitEfficiencyModule {
0030 public:
0031   typedef dqm::reco::DQMStore DQMStore;
0032   typedef dqm::reco::MonitorElement MonitorElement;
0033 
0034   SiPixelHitEfficiencyModule();
0035   SiPixelHitEfficiencyModule(const uint32_t);
0036   ~SiPixelHitEfficiencyModule();
0037 
0038   void book(
0039       const edm::ParameterSet &, const TrackerTopology *, DQMStore::IBooker &, int type = 0, bool isUpgrade = false);
0040   void fill(const TrackerTopology *pTT,
0041             const LocalTrajectoryParameters &ltp,
0042             bool isHitValid,
0043             bool modon = true,
0044             bool ladon = true,
0045             bool layon = true,
0046             bool phion = true,
0047             bool bladeon = true,
0048             bool diskon = true,
0049             bool ringon = true);
0050   void computeEfficiencies(bool modon = true,
0051                            bool ladon = true,
0052                            bool layon = true,
0053                            bool phion = true,
0054                            bool bladeon = true,
0055                            bool diskon = true,
0056                            bool ringon = true);
0057   std::pair<double, double> eff(double nValid, double nMissing);
0058 
0059 private:
0060   uint32_t id_;
0061   bool bBookTracks;
0062   bool debug_;
0063   bool updateEfficiencies;
0064 
0065   // EFFICIENCY
0066   MonitorElement *meEfficiency_;
0067   MonitorElement *meEfficiencyX_;
0068   MonitorElement *meEfficiencyY_;
0069   MonitorElement *meEfficiencyAlpha_;
0070   MonitorElement *meEfficiencyBeta_;
0071 
0072   MonitorElement *meEfficiencyLad_;
0073   MonitorElement *meEfficiencyXLad_;
0074   MonitorElement *meEfficiencyYLad_;
0075   MonitorElement *meEfficiencyAlphaLad_;
0076   MonitorElement *meEfficiencyBetaLad_;
0077 
0078   MonitorElement *meEfficiencyLay_;
0079   MonitorElement *meEfficiencyXLay_;
0080   MonitorElement *meEfficiencyYLay_;
0081   MonitorElement *meEfficiencyAlphaLay_;
0082   MonitorElement *meEfficiencyBetaLay_;
0083 
0084   MonitorElement *meEfficiencyPhi_;
0085   MonitorElement *meEfficiencyXPhi_;
0086   MonitorElement *meEfficiencyYPhi_;
0087   MonitorElement *meEfficiencyAlphaPhi_;
0088   MonitorElement *meEfficiencyBetaPhi_;
0089 
0090   MonitorElement *meEfficiencyBlade_;
0091   MonitorElement *meEfficiencyXBlade_;
0092   MonitorElement *meEfficiencyYBlade_;
0093   MonitorElement *meEfficiencyAlphaBlade_;
0094   MonitorElement *meEfficiencyBetaBlade_;
0095 
0096   MonitorElement *meEfficiencyDisk_;
0097   MonitorElement *meEfficiencyXDisk_;
0098   MonitorElement *meEfficiencyYDisk_;
0099   MonitorElement *meEfficiencyAlphaDisk_;
0100   MonitorElement *meEfficiencyBetaDisk_;
0101 
0102   MonitorElement *meEfficiencyRing_;
0103   MonitorElement *meEfficiencyXRing_;
0104   MonitorElement *meEfficiencyYRing_;
0105   MonitorElement *meEfficiencyAlphaRing_;
0106   MonitorElement *meEfficiencyBetaRing_;
0107 
0108   // VALID HITS
0109   MonitorElement *meValid_;
0110   MonitorElement *meValidX_;
0111   MonitorElement *meValidY_;
0112   MonitorElement *meValidAlpha_;
0113   MonitorElement *meValidBeta_;
0114 
0115   MonitorElement *meValidLad_;
0116   MonitorElement *meValidXLad_;
0117   MonitorElement *meValidYLad_;
0118   MonitorElement *meValidModLad_;
0119   MonitorElement *meValidAlphaLad_;
0120   MonitorElement *meValidBetaLad_;
0121 
0122   MonitorElement *meValidLay_;
0123   MonitorElement *meValidXLay_;
0124   MonitorElement *meValidYLay_;
0125   MonitorElement *meValidAlphaLay_;
0126   MonitorElement *meValidBetaLay_;
0127 
0128   MonitorElement *meValidPhi_;
0129   MonitorElement *meValidXPhi_;
0130   MonitorElement *meValidYPhi_;
0131   MonitorElement *meValidAlphaPhi_;
0132   MonitorElement *meValidBetaPhi_;
0133 
0134   MonitorElement *meValidBlade_;
0135   MonitorElement *meValidXBlade_;
0136   MonitorElement *meValidYBlade_;
0137   MonitorElement *meValidAlphaBlade_;
0138   MonitorElement *meValidBetaBlade_;
0139 
0140   MonitorElement *meValidDisk_;
0141   MonitorElement *meValidXDisk_;
0142   MonitorElement *meValidYDisk_;
0143   MonitorElement *meValidAlphaDisk_;
0144   MonitorElement *meValidBetaDisk_;
0145 
0146   MonitorElement *meValidRing_;
0147   MonitorElement *meValidXRing_;
0148   MonitorElement *meValidYRing_;
0149   MonitorElement *meValidAlphaRing_;
0150   MonitorElement *meValidBetaRing_;
0151 
0152   // MISSING HITS
0153   MonitorElement *meMissing_;
0154   MonitorElement *meMissingX_;
0155   MonitorElement *meMissingY_;
0156   MonitorElement *meMissingAlpha_;
0157   MonitorElement *meMissingBeta_;
0158 
0159   MonitorElement *meMissingLad_;
0160   MonitorElement *meMissingXLad_;
0161   MonitorElement *meMissingYLad_;
0162   MonitorElement *meMissingModLad_;
0163   MonitorElement *meMissingAlphaLad_;
0164   MonitorElement *meMissingBetaLad_;
0165 
0166   MonitorElement *meMissingLay_;
0167   MonitorElement *meMissingXLay_;
0168   MonitorElement *meMissingYLay_;
0169   MonitorElement *meMissingAlphaLay_;
0170   MonitorElement *meMissingBetaLay_;
0171 
0172   MonitorElement *meMissingPhi_;
0173   MonitorElement *meMissingXPhi_;
0174   MonitorElement *meMissingYPhi_;
0175   MonitorElement *meMissingAlphaPhi_;
0176   MonitorElement *meMissingBetaPhi_;
0177 
0178   MonitorElement *meMissingBlade_;
0179   MonitorElement *meMissingXBlade_;
0180   MonitorElement *meMissingYBlade_;
0181   MonitorElement *meMissingAlphaBlade_;
0182   MonitorElement *meMissingBetaBlade_;
0183 
0184   MonitorElement *meMissingDisk_;
0185   MonitorElement *meMissingXDisk_;
0186   MonitorElement *meMissingYDisk_;
0187   MonitorElement *meMissingAlphaDisk_;
0188   MonitorElement *meMissingBetaDisk_;
0189 
0190   MonitorElement *meMissingRing_;
0191   MonitorElement *meMissingXRing_;
0192   MonitorElement *meMissingYRing_;
0193   MonitorElement *meMissingAlphaRing_;
0194   MonitorElement *meMissingBetaRing_;
0195 };
0196 
0197 #endif