CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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  virtual ~CSCOfflineMonitor() { };
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);
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;
180 
181  // Resolution
182  std::vector<MonitorElement*> hSResid;
183 
184  // Occupancies
196 
197  // Efficiencies
202  // MonitorElement *hSEff;
203  // MonitorElement *hRHEff;
208  // MonitorElement *hSEff2;
209  // MonitorElement *hRHEff2;
210  // MonitorElement *hStripEff2;
211  // MonitorElement *hWireEff2;
212  // MonitorElement *hStripReadoutEff2;
215 
216  // BX monitoring
219  // MonitorElement *hALCTgetBXChamberMeans;
220  // MonitorElement *hALCTgetBX2DMeans;
223 
226  // MonitorElement *hALCTMatchChamberMeans;
227  // MonitorElement *hALCTMatch2DMeans;
230 
233  // MonitorElement *hCLCTL1AChamberMeans;
234  // MonitorElement *hCLCTL1A2DMeans;
237 
238 
239 };
240 #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)
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 * hWirenGroupsTotal
MonitorElement * hCLCTL1ASerial
MonitorElement * hOStripSerial
edm::ParameterSet param
MonitorElement * hSSTE2
std::vector< MonitorElement * > hWireNumber
MonitorElement * hWireSTE2
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 * hSTimeCombined
MonitorElement * hOWiresAndCLCT
std::vector< MonitorElement * > hRHsterr
MonitorElement * hSden
void fillEfficiencyHistos(int bin, int flag)
MonitorElement * hCLCTL1A2Denominator
virtual ~CSCOfflineMonitor()
MonitorElement * hALCTgetBX2Denominator
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
edm::EDGetTokenT< CSCSegmentCollection > se_token
edm::EDGetTokenT< CSCStripDigiCollection > sd_token
MonitorElement * hSTimeVsZ
void doSegments(edm::Handle< CSCSegmentCollection > cscSegments, edm::ESHandle< CSCGeometry > cscGeom)
void analyze(const edm::Event &event, const edm::EventSetup &eventSetup)
MonitorElement * hRHSTE2
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 * hSTimeCathode
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)
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: Run.h:43
MonitorElement * hSChiSqProbAll
void doRecHits(edm::Handle< CSCRecHit2DCollection > recHits, edm::Handle< CSCStripDigiCollection > strips, edm::ESHandle< CSCGeometry > cscGeom)
std::vector< MonitorElement * > hRHRatioQ
void applyCSClabels(MonitorElement *meHisto, LabelType t, AxisType a)