CMS 3D CMS Logo

List of all members | Public Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes
CSCSegmentValidation Class Reference

#include <CSCSegmentValidation.h>

Inheritance diagram for CSCSegmentValidation:
CSCBaseValidation

Public Member Functions

virtual void analyze (const edm::Event &, const edm::EventSetup &)
 
void bookHistograms (DQMStore::IBooker &)
 
 CSCSegmentValidation (const edm::InputTag &inputTag, edm::ConsumesCollector &&iC)
 
virtual ~CSCSegmentValidation ()
 
- Public Member Functions inherited from CSCBaseValidation
 CSCBaseValidation (const edm::InputTag &inputTag)
 
void setGeometry (const CSCGeometry *geom)
 
void setSimHitMap (const PSimHitMap *simHitMap)
 
virtual ~CSCBaseValidation ()
 

Private Types

typedef std::map< int, std::vector< int > > ChamberHitMap
 
typedef std::map< int, std::vector< CSCSegment > > ChamberSegmentMap
 

Private Member Functions

void fillEfficiencyPlots ()
 
void fillLayerHitsPerChamber ()
 
bool hasSegment (int chamberId) const
 
const PSimHitkeyHit (int chamberId) const
 
void plotResolution (const PSimHit &simHit, const CSCSegment &recHit, const CSCLayer *layer, int chamberType)
 

Static Private Member Functions

static int whatChamberType (int detId)
 

Private Attributes

edm::EDGetTokenT< CSCSegmentCollectionsegments_Token_
 
ChamberSegmentMap theChamberSegmentMap
 
MonitorElementthedXdZPullPlots [10]
 
MonitorElementthedXdZResolutionPlots [10]
 
MonitorElementthedYdZPullPlots [10]
 
MonitorElementthedYdZResolutionPlots [10]
 
ChamberHitMap theLayerHitsPerChamber
 
MonitorElementtheNPerChamberTypePlot
 
MonitorElementtheNPerEventPlot
 
MonitorElementtheNRecHitsPlot
 
MonitorElementtheRdPhiPullPlots [10]
 
MonitorElementtheRdPhiResolutionPlots [10]
 
int theShowerThreshold
 
MonitorElementtheThetaPullPlots [10]
 
MonitorElementtheThetaResolutionPlots [10]
 
MonitorElementtheTypePlot4HitsNoShower
 
MonitorElementtheTypePlot4HitsNoShowerSeg
 
MonitorElementtheTypePlot4HitsShower
 
MonitorElementtheTypePlot4HitsShowerSeg
 
MonitorElementtheTypePlot5HitsNoShower
 
MonitorElementtheTypePlot5HitsNoShowerSeg
 
MonitorElementtheTypePlot5HitsShower
 
MonitorElementtheTypePlot5HitsShowerSeg
 
MonitorElementtheTypePlot6HitsNoShower
 
MonitorElementtheTypePlot6HitsNoShowerSeg
 
MonitorElementtheTypePlot6HitsShower
 
MonitorElementtheTypePlot6HitsShowerSeg
 

Additional Inherited Members

- Protected Member Functions inherited from CSCBaseValidation
const CSCLayerfindLayer (int detId) const
 
- Protected Attributes inherited from CSCBaseValidation
const CSCGeometrytheCSCGeometry
 
edm::InputTag theInputTag
 
const PSimHitMaptheSimHitMap
 

Detailed Description

Definition at line 12 of file CSCSegmentValidation.h.

Member Typedef Documentation

typedef std::map<int, std::vector<int> > CSCSegmentValidation::ChamberHitMap
private

Definition at line 32 of file CSCSegmentValidation.h.

typedef std::map<int, std::vector<CSCSegment> > CSCSegmentValidation::ChamberSegmentMap
private

Definition at line 39 of file CSCSegmentValidation.h.

Constructor & Destructor Documentation

CSCSegmentValidation::CSCSegmentValidation ( const edm::InputTag inputTag,
edm::ConsumesCollector &&  iC 
)

Definition at line 6 of file CSCSegmentValidation.cc.

References HiClusterCompatibility_cfi::inputTag, and segments_Token_.

7 : CSCBaseValidation(inputTag),
11 {
13 }
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
CSCBaseValidation(const edm::InputTag &inputTag)
edm::EDGetTokenT< CSCSegmentCollection > segments_Token_
ChamberHitMap theLayerHitsPerChamber
ChamberSegmentMap theChamberSegmentMap
CSCSegmentValidation::~CSCSegmentValidation ( )
virtual

Definition at line 15 of file CSCSegmentValidation.cc.

16 {
17 }

Member Function Documentation

void CSCSegmentValidation::analyze ( const edm::Event e,
const edm::EventSetup eventSetup 
)
virtual

Implements CSCBaseValidation.

Definition at line 60 of file CSCSegmentValidation.cc.

References PSimHit::detUnitId(), MonitorElement::Fill(), fillEfficiencyPlots(), fillLayerHitsPerChamber(), CSCBaseValidation::findLayer(), edm::Event::getByToken(), keyHit(), plotResolution(), edm::Handle< T >::product(), segments_Token_, theChamberSegmentMap, theNPerChamberTypePlot, theNPerEventPlot, theNRecHitsPlot, and whatChamberType().

Referenced by CSCRecHitValidation::analyze().

61 {
62  // get the collection of CSCRecHsegmentItrD
64  e.getByToken(segments_Token_, hRecHits);
65  const CSCSegmentCollection * cscRecHits = hRecHits.product();
66 
67  theChamberSegmentMap.clear();
68  unsigned nPerEvent = 0;
69  for(CSCSegmentCollection::const_iterator segmentItr = cscRecHits->begin();
70  segmentItr != cscRecHits->end(); segmentItr++)
71  {
72  ++nPerEvent;
73  int detId = segmentItr->geographicalId().rawId();
74  int chamberType = whatChamberType(detId);
75 
76  theNRecHitsPlot->Fill(segmentItr->nRecHits());
77  theNPerChamberTypePlot->Fill(chamberType);
78  theChamberSegmentMap[detId].push_back(*segmentItr);
79 
80  // do the resolution plots
81  const PSimHit * hit = keyHit(detId);
82  if(hit != 0)
83  {
84  const CSCLayer * layer = findLayer(hit->detUnitId());
85  plotResolution(*hit, *segmentItr, layer, chamberType);
86  }
87  }
88 
89  theNPerEventPlot->Fill(nPerEvent);
90 
93 }
MonitorElement * theNPerEventPlot
void plotResolution(const PSimHit &simHit, const CSCSegment &recHit, const CSCLayer *layer, int chamberType)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:457
MonitorElement * theNPerChamberTypePlot
static int whatChamberType(int detId)
edm::EDGetTokenT< CSCSegmentCollection > segments_Token_
MonitorElement * theNRecHitsPlot
void Fill(long long x)
T const * product() const
Definition: Handle.h:81
const PSimHit * keyHit(int chamberId) const
ChamberSegmentMap theChamberSegmentMap
const CSCLayer * findLayer(int detId) const
unsigned int detUnitId() const
Definition: PSimHit.h:93
void CSCSegmentValidation::bookHistograms ( DQMStore::IBooker iBooker)

Definition at line 19 of file CSCSegmentValidation.cc.

References DQMStore::IBooker::book1D(), mps_fire::i, thedXdZPullPlots, thedXdZResolutionPlots, thedYdZPullPlots, thedYdZResolutionPlots, theNPerChamberTypePlot, theNPerEventPlot, theNRecHitsPlot, theRdPhiPullPlots, theRdPhiResolutionPlots, theThetaPullPlots, theThetaResolutionPlots, theTypePlot4HitsNoShower, theTypePlot4HitsNoShowerSeg, theTypePlot4HitsShower, theTypePlot4HitsShowerSeg, theTypePlot5HitsNoShower, theTypePlot5HitsNoShowerSeg, theTypePlot5HitsShower, theTypePlot5HitsShowerSeg, theTypePlot6HitsNoShower, theTypePlot6HitsNoShowerSeg, theTypePlot6HitsShower, and theTypePlot6HitsShowerSeg.

Referenced by CSCRecHitValidation::bookHistograms().

20 {
21  theNPerEventPlot = iBooker.book1D("CSCSegmentsPerEvent", "Number of CSC segments per event", 100, 0, 50);
22  theNRecHitsPlot = iBooker.book1D("CSCRecHitsPerSegment", "Number of CSC rec hits per segment" , 8, 0, 7);
23  theNPerChamberTypePlot = iBooker.book1D("CSCSegmentsPerChamberType", "Number of CSC segments per chamber type", 11, 0, 10);
24  theTypePlot4HitsNoShower = iBooker.book1D("CSCSegments4HitsNoShower", "", 100, 0, 10);
25  theTypePlot4HitsNoShowerSeg = iBooker.book1D("CSCSegments4HitsNoShowerSeg", "", 100, 0, 10);
26  theTypePlot4HitsShower = iBooker.book1D("CSCSegments4HitsShower", "", 100, 0, 10);
27  theTypePlot4HitsShowerSeg = iBooker.book1D("CSCSegments4HitsShowerSeg", "", 100, 0, 10);
28  theTypePlot5HitsNoShower = iBooker.book1D("CSCSegments5HitsNoShower", "", 100, 0, 10);
29  theTypePlot5HitsNoShowerSeg = iBooker.book1D("CSCSegments5HitsNoShowerSeg", "", 100, 0, 10);
30  theTypePlot5HitsShower = iBooker.book1D("CSCSegments5HitsShower", "", 100, 0, 10);
31  theTypePlot5HitsShowerSeg = iBooker.book1D("CSCSegments5HitsShowerSeg", "", 100, 0, 10);
32  theTypePlot6HitsNoShower = iBooker.book1D("CSCSegments6HitsNoShower", "", 100, 0, 10);
33  theTypePlot6HitsNoShowerSeg = iBooker.book1D("CSCSegments6HitsNoShowerSeg", "", 100, 0, 10);
34  theTypePlot6HitsShower = iBooker.book1D("CSCSegments6HitsShower", "", 100, 0, 10);
35  theTypePlot6HitsShowerSeg = iBooker.book1D("CSCSegments6HitsShowerSeg", "", 100, 0, 10);
36  for(int i = 0; i < 10; ++i)
37  {
38  char title1[200], title2[200], title3[200], title4[200],
39  title5[200], title6[200], title7[200], title8[200];
40  sprintf(title1, "CSCSegmentRdPhiResolution%d", i+1);
41  sprintf(title2, "CSCSegmentRdPhiPull%d", i+1);
42  sprintf(title3, "CSCSegmentThetaResolution%d", i+1);
43  sprintf(title4, "CSCSegmentThetaPull%d", i+1);
44  sprintf(title5, "CSCSegmentdXdZResolution%d", i+1);
45  sprintf(title6, "CSCSegmentdXdZPull%d", i+1);
46  sprintf(title7, "CSCSegmentdYdZResolution%d", i+1);
47  sprintf(title8, "CSCSegmentdYdZPull%d", i+1);
48 
49  theRdPhiResolutionPlots[i] = iBooker.book1D(title1, title1, 100, -0.4, 0.4);
50  theRdPhiPullPlots[i] = iBooker.book1D(title2, title2, 100, -5, 5);
51  theThetaResolutionPlots[i] = iBooker.book1D(title3, title3, 100, -1, 1);
52  theThetaPullPlots[i] = iBooker.book1D(title4, title4, 100, -5, 5);
53  thedXdZResolutionPlots[i] = iBooker.book1D(title5, title5, 100, -1, 1);
54  thedXdZPullPlots[i] = iBooker.book1D(title6, title6, 100, -5, 5);
55  thedYdZResolutionPlots[i] = iBooker.book1D(title7, title7, 100, -1, 1);
56  thedYdZPullPlots[i] = iBooker.book1D(title8, title8, 100, -5, 5);
57  }
58 }
MonitorElement * theNPerEventPlot
MonitorElement * theTypePlot5HitsNoShowerSeg
MonitorElement * theTypePlot4HitsShowerSeg
MonitorElement * theNPerChamberTypePlot
MonitorElement * theTypePlot6HitsShower
MonitorElement * theTypePlot5HitsNoShower
MonitorElement * theNRecHitsPlot
MonitorElement * theTypePlot4HitsShower
MonitorElement * theRdPhiResolutionPlots[10]
MonitorElement * theTypePlot6HitsShowerSeg
MonitorElement * theTypePlot4HitsNoShower
MonitorElement * theTypePlot6HitsNoShowerSeg
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
MonitorElement * theTypePlot6HitsNoShower
MonitorElement * thedYdZResolutionPlots[10]
MonitorElement * theRdPhiPullPlots[10]
MonitorElement * theThetaPullPlots[10]
MonitorElement * thedXdZPullPlots[10]
MonitorElement * theTypePlot5HitsShowerSeg
MonitorElement * theThetaResolutionPlots[10]
MonitorElement * theTypePlot4HitsNoShowerSeg
MonitorElement * theTypePlot5HitsShower
MonitorElement * thedXdZResolutionPlots[10]
MonitorElement * thedYdZPullPlots[10]
void CSCSegmentValidation::fillEfficiencyPlots ( )
private

Definition at line 95 of file CSCSegmentValidation.cc.

References MonitorElement::Fill(), hasSegment(), theLayerHitsPerChamber, theShowerThreshold, theTypePlot4HitsNoShower, theTypePlot4HitsNoShowerSeg, theTypePlot4HitsShower, theTypePlot4HitsShowerSeg, theTypePlot5HitsNoShower, theTypePlot5HitsNoShowerSeg, theTypePlot5HitsShower, theTypePlot5HitsShowerSeg, theTypePlot6HitsNoShower, theTypePlot6HitsNoShowerSeg, theTypePlot6HitsShower, theTypePlot6HitsShowerSeg, tier0::unique(), findQualityFiles::v, and whatChamberType().

Referenced by analyze().

96 {
97  // now plot efficiency by looping over all chambers with hits
98  for(ChamberHitMap::const_iterator mapItr = theLayerHitsPerChamber.begin(),
99  mapEnd = theLayerHitsPerChamber.end();
100  mapItr != mapEnd;
101  ++mapItr)
102  {
103  int chamberId = mapItr->first;
104  int nHitsInChamber = mapItr->second.size();
105  bool isShower = (nHitsInChamber > theShowerThreshold);
106  bool hasSeg = hasSegment(chamberId);
107  int chamberType = whatChamberType(chamberId);
108  // find how many layers were hit in this chamber
109  std::vector<int> v = mapItr->second;
110  std::sort(v.begin(), v.end());
111  // maybe can just count
112  v.erase(std::unique(v.begin(), v.end()), v.end());
113  int nLayersHit = v.size();
114 
115  if(nLayersHit == 4)
116  {
117 
118  if(isShower) theTypePlot4HitsShower->Fill(chamberType);
119  else theTypePlot4HitsNoShower->Fill(chamberType);
120 
121  if(hasSeg)
122  {
123  if(isShower) theTypePlot4HitsShowerSeg->Fill(chamberType);
124  else theTypePlot4HitsNoShowerSeg->Fill(chamberType);
125  }
126  }
127 
128  if(nLayersHit == 5)
129  {
130 
131  if(isShower) theTypePlot5HitsShower->Fill(chamberType);
132  else theTypePlot5HitsNoShower->Fill(chamberType);
133 
134  if(hasSeg)
135  {
136  if(isShower) theTypePlot5HitsShowerSeg->Fill(chamberType);
137  else theTypePlot5HitsNoShowerSeg->Fill(chamberType);
138  }
139  }
140 
141  if(nLayersHit == 6)
142  {
143 
144  if(isShower) theTypePlot6HitsShower->Fill(chamberType);
145  else theTypePlot6HitsNoShower->Fill(chamberType);
146 
147  if(hasSeg)
148  {
149  if(isShower) theTypePlot6HitsShowerSeg->Fill(chamberType);
150  else theTypePlot6HitsNoShowerSeg->Fill(chamberType);
151  }
152  }
153 
154 
155  }
156 }
MonitorElement * theTypePlot5HitsNoShowerSeg
MonitorElement * theTypePlot4HitsShowerSeg
static int whatChamberType(int detId)
MonitorElement * theTypePlot6HitsShower
MonitorElement * theTypePlot5HitsNoShower
MonitorElement * theTypePlot4HitsShower
MonitorElement * theTypePlot6HitsShowerSeg
void Fill(long long x)
MonitorElement * theTypePlot4HitsNoShower
def unique(seq, keepstr=True)
Definition: tier0.py:24
MonitorElement * theTypePlot6HitsNoShowerSeg
MonitorElement * theTypePlot6HitsNoShower
ChamberHitMap theLayerHitsPerChamber
bool hasSegment(int chamberId) const
MonitorElement * theTypePlot5HitsShowerSeg
MonitorElement * theTypePlot4HitsNoShowerSeg
MonitorElement * theTypePlot5HitsShower
void CSCSegmentValidation::fillLayerHitsPerChamber ( )
private

Definition at line 203 of file CSCSegmentValidation.cc.

References CSCDetId::chamberId(), PSimHitMap::detsWithHits(), PSimHitMap::hits(), mps_fire::i, nhits, DetId::rawId(), theLayerHitsPerChamber, and CSCBaseValidation::theSimHitMap.

Referenced by analyze().

204 {
205  theLayerHitsPerChamber.clear();
206  std::vector<int> layersHit = theSimHitMap->detsWithHits();
207  for(std::vector<int>::const_iterator layerItr = layersHit.begin(),
208  layersHitEnd = layersHit.end();
209  layerItr != layersHitEnd;
210  ++layerItr)
211  {
212  CSCDetId layerId(*layerItr);
213  CSCDetId chamberId = layerId.chamberId();
214  int nhits = theSimHitMap->hits(*layerItr).size();
215  // multiple entries, so we can see showers
216  for(int i = 0; i < nhits; ++i) {
217  theLayerHitsPerChamber[chamberId.rawId()].push_back(*layerItr);
218  }
219  }
220 
221 }
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
const PSimHitMap * theSimHitMap
const edm::PSimHitContainer & hits(int detId) const
Definition: PSimHitMap.cc:22
CSCDetId chamberId() const
Definition: CSCDetId.h:53
ChamberHitMap theLayerHitsPerChamber
std::vector< int > detsWithHits() const
Definition: PSimHitMap.cc:37
bool CSCSegmentValidation::hasSegment ( int  chamberId) const
private

Definition at line 158 of file CSCSegmentValidation.cc.

References theChamberSegmentMap.

Referenced by fillEfficiencyPlots().

159 {
160  return (theChamberSegmentMap.find(chamberId) != theChamberSegmentMap.end());
161 }
ChamberSegmentMap theChamberSegmentMap
const PSimHit * CSCSegmentValidation::keyHit ( int  chamberId) const
private

Definition at line 231 of file CSCSegmentValidation.cc.

References PSimHitMap::hits(), mps_fire::result, CSCSegmentValidationUtils::SimHitPabsLessThan(), and CSCBaseValidation::theSimHitMap.

Referenced by analyze().

232 {
233  const PSimHit * result = 0;
234  int layerId = chamberId + 3;
235  const edm::PSimHitContainer & layerHits = theSimHitMap->hits(layerId);
236 
237  if(!layerHits.empty())
238  {
239  // pick the hit with maximum energy
240  edm::PSimHitContainer::const_iterator hitItr = std::max_element(layerHits.begin(), layerHits.end(),
242  result = &(*hitItr);
243  }
244  return result;
245 }
const PSimHitMap * theSimHitMap
const edm::PSimHitContainer & hits(int detId) const
Definition: PSimHitMap.cc:22
std::vector< PSimHit > PSimHitContainer
bool SimHitPabsLessThan(const PSimHit &p1, const PSimHit &p2)
void CSCSegmentValidation::plotResolution ( const PSimHit simHit,
const CSCSegment recHit,
const CSCLayer layer,
int  chamberType 
)
private

Definition at line 171 of file CSCSegmentValidation.cc.

References MonitorElement::Fill(), CSCSegment::localDirection(), PSimHit::localDirection(), CSCSegment::localDirectionError(), CSCSegment::localPosition(), PSimHit::localPosition(), CSCSegment::localPositionError(), PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::phi(), mathSSE::sqrt(), thedXdZPullPlots, thedXdZResolutionPlots, thedYdZPullPlots, thedYdZResolutionPlots, theRdPhiPullPlots, theRdPhiResolutionPlots, PV3DBase< T, PVType, FrameType >::theta(), theThetaResolutionPlots, GeomDet::toGlobal(), PV3DBase< T, PVType, FrameType >::x(), LocalError::xx(), PV3DBase< T, PVType, FrameType >::y(), LocalError::yy(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by analyze().

173 {
174  GlobalPoint simHitPos = layer->toGlobal(simHit.localPosition());
175  GlobalPoint segmentPos = layer->toGlobal(segment.localPosition());
176  LocalVector simHitDir = simHit.localDirection();
177  LocalVector segmentDir = segment.localDirection();
178 
179  double dphi = segmentPos.phi() - simHitPos.phi();
180  double rdphi = segmentPos.perp() * dphi;
181  double dtheta = segmentPos.theta() - simHitPos.theta();
182 
183  double sigmax = sqrt(segment.localPositionError().xx());
184  //double sigmay = sqrt(segment.localPositionError().yy());
185 
186  double ddxdz = segmentDir.x()/segmentDir.z() - simHitDir.x()/simHitDir.z();
187  double ddydz = segmentDir.y()/segmentDir.z() - simHitDir.y()/simHitDir.z();
188  double sigmadxdz = sqrt(segment.localDirectionError().xx());
189  double sigmadydz = sqrt(segment.localDirectionError().yy());
190 
191  theRdPhiResolutionPlots[chamberType-1]->Fill( rdphi );
192  theRdPhiPullPlots[chamberType-1]->Fill( rdphi/sigmax );
193  theThetaResolutionPlots[chamberType-1]->Fill( dtheta );
194  //theThetaPullPlots[chamberType-1]->Fill( dy/sigmay );
195 
196  thedXdZResolutionPlots[chamberType-1]->Fill( ddxdz );
197  thedXdZPullPlots[chamberType-1]->Fill( ddxdz/sigmadxdz );
198  thedYdZResolutionPlots[chamberType-1]->Fill( ddydz );
199  thedYdZPullPlots[chamberType-1]->Fill( ddydz/sigmadydz );
200 }
T perp() const
Definition: PV3DBase.h:72
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
Definition: GeomDet.h:54
Geom::Phi< T > phi() const
Definition: PV3DBase.h:69
T y() const
Definition: PV3DBase.h:63
MonitorElement * theRdPhiResolutionPlots[10]
void Fill(long long x)
Geom::Theta< T > theta() const
Definition: PV3DBase.h:75
Local3DPoint localPosition() const
Definition: PSimHit.h:44
T sqrt(T t)
Definition: SSEVec.h:18
T z() const
Definition: PV3DBase.h:64
MonitorElement * thedYdZResolutionPlots[10]
MonitorElement * theRdPhiPullPlots[10]
LocalVector localDirection() const
Obsolete. Same as momentumAtEntry().unit(), for backward compatibility.
Definition: PSimHit.h:52
MonitorElement * thedXdZPullPlots[10]
MonitorElement * theThetaResolutionPlots[10]
T x() const
Definition: PV3DBase.h:62
MonitorElement * thedXdZResolutionPlots[10]
MonitorElement * thedYdZPullPlots[10]
int CSCSegmentValidation::whatChamberType ( int  detId)
staticprivate

Definition at line 164 of file CSCSegmentValidation.cc.

References CSCDetId::ring(), CSCDetId::station(), and CSCChamberSpecs::whatChamberType().

Referenced by analyze(), and fillEfficiencyPlots().

165 {
166  CSCDetId cscDetId(detId);
167  return CSCChamberSpecs::whatChamberType(cscDetId.station(), cscDetId.ring());
168 }
static int whatChamberType(int istation, int iring)

Member Data Documentation

edm::EDGetTokenT<CSCSegmentCollection> CSCSegmentValidation::segments_Token_
private

Definition at line 28 of file CSCSegmentValidation.h.

Referenced by analyze(), and CSCSegmentValidation().

ChamberSegmentMap CSCSegmentValidation::theChamberSegmentMap
private

Definition at line 40 of file CSCSegmentValidation.h.

Referenced by analyze(), and hasSegment().

MonitorElement* CSCSegmentValidation::thedXdZPullPlots[10]
private

Definition at line 52 of file CSCSegmentValidation.h.

Referenced by bookHistograms(), and plotResolution().

MonitorElement* CSCSegmentValidation::thedXdZResolutionPlots[10]
private

Definition at line 51 of file CSCSegmentValidation.h.

Referenced by bookHistograms(), and plotResolution().

MonitorElement* CSCSegmentValidation::thedYdZPullPlots[10]
private

Definition at line 54 of file CSCSegmentValidation.h.

Referenced by bookHistograms(), and plotResolution().

MonitorElement* CSCSegmentValidation::thedYdZResolutionPlots[10]
private

Definition at line 53 of file CSCSegmentValidation.h.

Referenced by bookHistograms(), and plotResolution().

ChamberHitMap CSCSegmentValidation::theLayerHitsPerChamber
private

Definition at line 33 of file CSCSegmentValidation.h.

Referenced by fillEfficiencyPlots(), and fillLayerHitsPerChamber().

MonitorElement* CSCSegmentValidation::theNPerChamberTypePlot
private

Definition at line 46 of file CSCSegmentValidation.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* CSCSegmentValidation::theNPerEventPlot
private

Definition at line 44 of file CSCSegmentValidation.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* CSCSegmentValidation::theNRecHitsPlot
private

Definition at line 45 of file CSCSegmentValidation.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* CSCSegmentValidation::theRdPhiPullPlots[10]
private

Definition at line 48 of file CSCSegmentValidation.h.

Referenced by bookHistograms(), and plotResolution().

MonitorElement* CSCSegmentValidation::theRdPhiResolutionPlots[10]
private

Definition at line 47 of file CSCSegmentValidation.h.

Referenced by bookHistograms(), and plotResolution().

int CSCSegmentValidation::theShowerThreshold
private

Definition at line 42 of file CSCSegmentValidation.h.

Referenced by fillEfficiencyPlots().

MonitorElement* CSCSegmentValidation::theThetaPullPlots[10]
private

Definition at line 50 of file CSCSegmentValidation.h.

Referenced by bookHistograms().

MonitorElement* CSCSegmentValidation::theThetaResolutionPlots[10]
private

Definition at line 49 of file CSCSegmentValidation.h.

Referenced by bookHistograms(), and plotResolution().

MonitorElement* CSCSegmentValidation::theTypePlot4HitsNoShower
private

Definition at line 56 of file CSCSegmentValidation.h.

Referenced by bookHistograms(), and fillEfficiencyPlots().

MonitorElement* CSCSegmentValidation::theTypePlot4HitsNoShowerSeg
private

Definition at line 57 of file CSCSegmentValidation.h.

Referenced by bookHistograms(), and fillEfficiencyPlots().

MonitorElement* CSCSegmentValidation::theTypePlot4HitsShower
private

Definition at line 58 of file CSCSegmentValidation.h.

Referenced by bookHistograms(), and fillEfficiencyPlots().

MonitorElement* CSCSegmentValidation::theTypePlot4HitsShowerSeg
private

Definition at line 59 of file CSCSegmentValidation.h.

Referenced by bookHistograms(), and fillEfficiencyPlots().

MonitorElement* CSCSegmentValidation::theTypePlot5HitsNoShower
private

Definition at line 60 of file CSCSegmentValidation.h.

Referenced by bookHistograms(), and fillEfficiencyPlots().

MonitorElement* CSCSegmentValidation::theTypePlot5HitsNoShowerSeg
private

Definition at line 61 of file CSCSegmentValidation.h.

Referenced by bookHistograms(), and fillEfficiencyPlots().

MonitorElement* CSCSegmentValidation::theTypePlot5HitsShower
private

Definition at line 62 of file CSCSegmentValidation.h.

Referenced by bookHistograms(), and fillEfficiencyPlots().

MonitorElement* CSCSegmentValidation::theTypePlot5HitsShowerSeg
private

Definition at line 63 of file CSCSegmentValidation.h.

Referenced by bookHistograms(), and fillEfficiencyPlots().

MonitorElement* CSCSegmentValidation::theTypePlot6HitsNoShower
private

Definition at line 64 of file CSCSegmentValidation.h.

Referenced by bookHistograms(), and fillEfficiencyPlots().

MonitorElement* CSCSegmentValidation::theTypePlot6HitsNoShowerSeg
private

Definition at line 65 of file CSCSegmentValidation.h.

Referenced by bookHistograms(), and fillEfficiencyPlots().

MonitorElement* CSCSegmentValidation::theTypePlot6HitsShower
private

Definition at line 66 of file CSCSegmentValidation.h.

Referenced by bookHistograms(), and fillEfficiencyPlots().

MonitorElement* CSCSegmentValidation::theTypePlot6HitsShowerSeg
private

Definition at line 67 of file CSCSegmentValidation.h.

Referenced by bookHistograms(), and fillEfficiencyPlots().