CMS 3D CMS Logo

CSCOfflineMonitor.h
Go to the documentation of this file.
1 #ifndef RecoLocalMuon_CSCOfflineMonitor_H
2 #define RecoLocalMuon_CSCOfflineMonitor_H
3 
26 
39 
45 
51 
53 
57 
63 
71 
73 
74 public:
75 
77  ~CSCOfflineMonitor() override { };
78 
80  enum AxisType {X=1, Y=2, Z=3};
81 
82 protected:
83  void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override;
84  void analyze(const edm::Event & event, const edm::EventSetup& eventSetup) override;
85 
86 private:
87 
89 
97 
98  // modules
113 
114 
115  // used by modules
116  float fitX(const CLHEP::HepMatrix& sp, const CLHEP::HepMatrix& ep);
117  float getSignal(const CSCStripDigiCollection& stripdigis, CSCDetId idRH, int centerStrip);
118  int typeIndex(CSCDetId id, int flag = 1);
119  int chamberSerial(CSCDetId id);
121 
122  // for efficiency calculations
123  // - these functions handle Stoyan's efficiency code
124 
125  void fillEfficiencyHistos(int bin, int flag);
126  // void getEfficiency(float bin, float Norm, std::vector<float> &eff);
127  // void histoEfficiency(TH1F *readHisto, MonitorElement *writeHisto);
128 
129  double lineParametrization(double z1Position, double z2Position, double z1Direction){
130  double parameterLine = (z2Position-z1Position)/z1Direction;
131  return parameterLine;
132  }
133 
134  double extrapolate1D(double initPosition, double initDirection, double parameterOfTheLine){
135  double extrapolatedPosition = initPosition + initDirection*parameterOfTheLine;
136  return extrapolatedPosition;
137  }
138 
139  bool withinSensitiveRegion(LocalPoint localPos, const std::array<const float, 4> & layerBounds,
140  int station, int ring, float shiftFromEdge, float shiftFromDeadZone);
141 
142  // for BX monitor plots
143  // void harvestChamberMeans(MonitorElement* meMean1D, MonitorElement *meMean2D, MonitorElement *hNum, MonitorElement *meDenom);
144  // void normalize(MonitorElement* me);
145 
146  // Wire digis
148  std::vector<MonitorElement*> hWireTBin;
149  std::vector<MonitorElement*> hWireNumber;
150 
151  // Strip Digis
153  std::vector<MonitorElement*> hStripNumber;
154  std::vector<MonitorElement*> hStripPed;
155 
156  // Rechits
158  std::vector<MonitorElement*> hRHGlobal;
159  std::vector<MonitorElement*> hRHSumQ;
160  std::vector<MonitorElement*> hRHTiming;
161  std::vector<MonitorElement*> hRHTimingAnode;
162  std::vector<MonitorElement*> hRHRatioQ;
163  std::vector<MonitorElement*> hRHstpos;
164  std::vector<MonitorElement*> hRHsterr;
165 
166  // Segments
169  std::vector<MonitorElement*> hSnhits;
171  std::vector<MonitorElement*> hSChiSq;
173  std::vector<MonitorElement*> hSChiSqProb;
177  std::vector<MonitorElement*> hSTimeDiffByChamberType;
179  std::vector<MonitorElement*> hSTimeAnodeByChamberType;
181  std::vector<MonitorElement*> hSTimeCathodeByChamberType;
183  std::vector<MonitorElement*> hSTimeCombinedByChamberType;
190 
191  // Resolution
192  std::vector<MonitorElement*> hSResid;
193 
194  // Occupancies
206 
207  // Efficiencies
212  // MonitorElement *hSEff;
213  // MonitorElement *hRHEff;
218  // MonitorElement *hSEff2;
219  // MonitorElement *hRHEff2;
220  // MonitorElement *hStripEff2;
221  // MonitorElement *hWireEff2;
222  // MonitorElement *hStripReadoutEff2;
225 
226  // BX monitoring
229  // MonitorElement *hALCTgetBXChamberMeans;
230  // MonitorElement *hALCTgetBX2DMeans;
233 
236  // MonitorElement *hALCTMatchChamberMeans;
237  // MonitorElement *hALCTMatch2DMeans;
240 
243  // MonitorElement *hCLCTL1AChamberMeans;
244  // MonitorElement *hCLCTL1A2DMeans;
247 
248 
249 };
250 #endif
MonitorElement * hEffDenominator
MonitorElement * hOSegmentsSerial
edm::EDGetTokenT< CSCALCTDigiCollection > al_token
MonitorElement * hRHden
MonitorElement * hOWireSerial
MonitorElement * hSensitiveAreaEvt
MonitorElement * hOStrips
int chamberSerial(CSCDetId id)
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
MonitorElement * hORecHits
MonitorElement * hStripSTE2
void doResolution(edm::Handle< CSCSegmentCollection > cscSegments, edm::ESHandle< CSCGeometry > cscGeom)
~CSCOfflineMonitor() override
edm::EDGetTokenT< CSCWireDigiCollection > wd_token
MonitorElement * hALCTMatch2DNumerator
std::vector< MonitorElement * > hRHGlobal
MonitorElement * hORecHitsSerial
std::vector< MonitorElement * > hSChiSq
float getSignal(const CSCStripDigiCollection &stripdigis, CSCDetId idRH, int centerStrip)
MonitorElement * hSTimeAnodeSerial
MonitorElement * hWirenGroupsTotal
MonitorElement * hCLCTL1ASerial
MonitorElement * hOStripSerial
edm::ParameterSet param
MonitorElement * hSSTE2
std::vector< MonitorElement * > hWireNumber
MonitorElement * hWireSTE2
void analyze(const edm::Event &event, const edm::EventSetup &eventSetup) override
MonitorElement * hSTimeAnode
MonitorElement * hSGlobalPhi
std::vector< MonitorElement * > hSnhits
CSCOfflineMonitor(const edm::ParameterSet &pset)
MonitorElement * hOWires
MonitorElement * hSnSegments
std::vector< MonitorElement * > hRHSumQ
MonitorElement * hOStripsAndWiresAndCLCT
MonitorElement * hOSegments
edm::EDGetTokenT< FEDRawDataCollection > rd_token
std::vector< MonitorElement * > hStripPed
MonitorElement * hALCTMatchSerial
int typeIndex(CSCDetId id, int flag=1)
MonitorElement * hSnhitsAll
float fitX(const CLHEP::HepMatrix &sp, const CLHEP::HepMatrix &ep)
std::vector< MonitorElement * > hRHTiming
MonitorElement * hALCTgetBX
edm::EDGetTokenT< CSCCLCTDigiCollection > cl_token
MonitorElement * hALCTMatch
MonitorElement * hSGlobalTheta
MonitorElement * hSTimeDiffSerial
MonitorElement * hSTimeCombined
MonitorElement * hOWiresAndCLCT
std::vector< MonitorElement * > hRHsterr
MonitorElement * hSden
void fillEfficiencyHistos(int bin, int flag)
MonitorElement * hCLCTL1A2Denominator
MonitorElement * hALCTgetBX2Denominator
edm::EDGetTokenT< CSCSegmentCollection > se_token
std::vector< MonitorElement * > hSTimeAnodeByChamberType
edm::EDGetTokenT< CSCStripDigiCollection > sd_token
bin
set the eta bin as selection string.
MonitorElement * hSTimeVsZ
void doSegments(edm::Handle< CSCSegmentCollection > cscSegments, edm::ESHandle< CSCGeometry > cscGeom)
MonitorElement * hRHSTE2
std::vector< MonitorElement * > hSTimeCathodeByChamberType
MonitorElement * hSChiSqAll
MonitorElement * hCSCOccupancy
MonitorElement * hCLCTL1A2DNumerator
void doWireDigis(edm::Handle< CSCWireDigiCollection > wires)
MonitorElement * hALCTgetBX2DNumerator
std::vector< MonitorElement * > hStripNumber
MonitorElement * hALCTMatch2Denominator
std::vector< MonitorElement * > hWireTBin
MonitorElement * hCLCTL1A
bool withinSensitiveRegion(LocalPoint localPos, const std::array< const float, 4 > &layerBounds, int station, int ring, float shiftFromEdge, float shiftFromDeadZone)
void doBXMonitor(edm::Handle< CSCALCTDigiCollection > alcts, edm::Handle< CSCCLCTDigiCollection > clcts, const edm::Event &event, const edm::EventSetup &eventSetup)
MonitorElement * hSTimeDiff
std::vector< MonitorElement * > hSTimeDiffByChamberType
MonitorElement * hSTimeCathode
MonitorElement * hSTimeCathodeSerial
double a
Definition: hdecay.h:121
std::vector< MonitorElement * > hRHstpos
void doStripDigis(edm::Handle< CSCStripDigiCollection > strips)
MonitorElement * hStripNFired
void doPedestalNoise(edm::Handle< CSCStripDigiCollection > strips, edm::ESHandle< CSCGeometry > cscGeom)
MonitorElement * hSTimeCombinedSerial
std::vector< MonitorElement * > hSResid
edm::EDGetTokenT< CSCRecHit2DCollection > rh_token
MonitorElement * hALCTgetBXSerial
MonitorElement * hSTimeVsTOF
MonitorElement * hRHnrechits
MonitorElement * hSnum
double extrapolate1D(double initPosition, double initDirection, double parameterOfTheLine)
std::vector< MonitorElement * > hSChiSqProb
std::vector< MonitorElement * > hRHTimingAnode
double lineParametrization(double z1Position, double z2Position, double z1Direction)
void doEfficiencies(edm::Handle< CSCWireDigiCollection > wires, edm::Handle< CSCStripDigiCollection > strips, edm::Handle< CSCRecHit2DCollection > recHits, edm::Handle< CSCSegmentCollection > cscSegments, edm::ESHandle< CSCGeometry > cscGeom)
void doOccupancies(edm::Handle< CSCStripDigiCollection > strips, edm::Handle< CSCWireDigiCollection > wires, edm::Handle< CSCRecHit2DCollection > recHits, edm::Handle< CSCSegmentCollection > cscSegments, edm::Handle< CSCCLCTDigiCollection > clcts)
MonitorElement * hRHnum
Definition: event.py:1
Definition: Run.h:45
MonitorElement * hSChiSqProbAll
void doRecHits(edm::Handle< CSCRecHit2DCollection > recHits, edm::Handle< CSCStripDigiCollection > strips, edm::ESHandle< CSCGeometry > cscGeom)
std::vector< MonitorElement * > hSTimeCombinedByChamberType
std::vector< MonitorElement * > hRHRatioQ
void applyCSClabels(MonitorElement *meHisto, LabelType t, AxisType a)