CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
DTRecHitQuality Class Reference

#include <DTRecHitQuality.h>

Inheritance diagram for DTRecHitQuality:
edm::EDAnalyzer edm::EDConsumerBase

Public Member Functions

void analyze (const edm::Event &event, const edm::EventSetup &eventSetup)
 Perform the real analysis. More...
 
 DTRecHitQuality (const edm::ParameterSet &pset)
 Constructor. More...
 
void endJob ()
 
void endLuminosityBlock (edm::LuminosityBlock const &lumiSeg, edm::EventSetup const &c)
 
virtual ~DTRecHitQuality ()
 Destructor. More...
 
- Public Member Functions inherited from edm::EDAnalyzer
 EDAnalyzer ()
 
std::string workerType () const
 
virtual ~EDAnalyzer ()
 
- Public Member Functions inherited from edm::EDConsumerBase
 EDConsumerBase ()
 
ProductHolderIndex indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndex > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndex > &) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Private Member Functions

template<typename type >
void compute (const DTGeometry *dtGeom, std::map< DTWireId, std::vector< PSimHit > > simHitsPerWire, std::map< DTWireId, std::vector< type > > recHitsPerWire, int step)
 
template<typename type >
const typefindBestRecHit (const DTLayer *layer, DTWireId wireId, const std::vector< type > &recHits, const float simHitDist)
 
std::map< DTWireId,
std::vector< DTRecHit1DPair > > 
map1DRecHitsPerWire (const DTRecHitCollection *dt1DRecHitPairs)
 
std::map< DTWireId,
std::vector< DTRecHit1D > > 
map1DRecHitsPerWire (const DTRecSegment2DCollection *segment2Ds)
 
std::map< DTWireId,
std::vector< DTRecHit1D > > 
map1DRecHitsPerWire (const DTRecSegment4DCollection *segment4Ds)
 
float recHitDistFromWire (const DTRecHit1DPair &hitPair, const DTLayer *layer)
 
float recHitDistFromWire (const DTRecHit1D &recHit, const DTLayer *layer)
 
float recHitPositionError (const DTRecHit1DPair &recHit)
 
float recHitPositionError (const DTRecHit1D &recHit)
 
float simHitDistFromFE (const DTLayer *layer, DTWireId wireId, const PSimHit &hit)
 
float simHitDistFromWire (const DTLayer *layer, DTWireId wireId, const PSimHit &hit)
 
float simHitImpactAngle (const DTLayer *layer, DTWireId wireId, const PSimHit &hit)
 

Private Attributes

DQMStoredbe_
 
bool debug
 
bool doall
 
bool doStep1
 
bool doStep2
 
bool doStep3
 
HEff1DHithEff_S1RPhi
 
HEff1DHithEff_S1RZ
 
HEff1DHithEff_S1RZ_W0
 
HEff1DHithEff_S1RZ_W1
 
HEff1DHithEff_S1RZ_W2
 
HEff1DHithEff_S2RPhi
 
HEff1DHithEff_S2RZ
 
HEff1DHithEff_S2RZ_W0
 
HEff1DHithEff_S2RZ_W1
 
HEff1DHithEff_S2RZ_W2
 
HEff1DHithEff_S3RPhi
 
HEff1DHithEff_S3RZ
 
HEff1DHithEff_S3RZ_W0
 
HEff1DHithEff_S3RZ_W1
 
HEff1DHithEff_S3RZ_W2
 
HRes1DHithRes_S1RPhi
 
HRes1DHithRes_S1RPhi_W0
 
HRes1DHithRes_S1RPhi_W1
 
HRes1DHithRes_S1RPhi_W2
 
HRes1DHithRes_S1RZ
 
HRes1DHithRes_S1RZ_W0
 
HRes1DHithRes_S1RZ_W1
 
HRes1DHithRes_S1RZ_W2
 
HRes1DHithRes_S2RPhi
 
HRes1DHithRes_S2RPhi_W0
 
HRes1DHithRes_S2RPhi_W1
 
HRes1DHithRes_S2RPhi_W2
 
HRes1DHithRes_S2RZ
 
HRes1DHithRes_S2RZ_W0
 
HRes1DHithRes_S2RZ_W1
 
HRes1DHithRes_S2RZ_W2
 
HRes1DHithRes_S3RPhi
 
HRes1DHithRes_S3RPhi_W0
 
HRes1DHithRes_S3RPhi_W1
 
HRes1DHithRes_S3RPhi_W2
 
HRes1DHithRes_S3RZ
 
HRes1DHithRes_S3RZ_W0
 
HRes1DHithRes_S3RZ_W1
 
HRes1DHithRes_S3RZ_W2
 
bool local
 
edm::InputTag recHitLabel
 
std::string rootFileName
 
edm::InputTag segment2DLabel
 
edm::InputTag segment4DLabel
 
edm::InputTag simHitLabel
 

Additional Inherited Members

- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
typedef WorkerT< EDAnalyzerWorkerType
 
- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
- Protected Member Functions inherited from edm::EDAnalyzer
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
CurrentProcessingContext const * currentContext () const
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Basic analyzer class which accesses 1D DTRecHits and plot resolution comparing reconstructed and simulated quantities

Date:
2010/09/17 07:48:11
Revision:
1.10
Author
G. Cerminara - INFN Torino

Definition at line 44 of file DTRecHitQuality.h.

Constructor & Destructor Documentation

DTRecHitQuality::DTRecHitQuality ( const edm::ParameterSet pset)

Constructor.

Definition at line 39 of file DTRecHitQuality.cc.

References dbe_, debug, edm::ParameterSet::getUntrackedParameter(), and cppFunctionSkipper::operator.

39  {
40  // Get the debug parameter for verbose output
41  debug = pset.getUntrackedParameter<bool>("debug");
42  // the name of the simhit collection
43  simHitLabel = pset.getUntrackedParameter<InputTag>("simHitLabel");
44  // the name of the 1D rec hit collection
45  recHitLabel = pset.getUntrackedParameter<InputTag>("recHitLabel");
46  // the name of the 2D rec hit collection
47  segment2DLabel = pset.getUntrackedParameter<InputTag>("segment2DLabel");
48  // the name of the 4D rec hit collection
49  segment4DLabel = pset.getUntrackedParameter<InputTag>("segment4DLabel");
50 
51  // Switches for analysis at various steps
52  doStep1 = pset.getUntrackedParameter<bool>("doStep1", false);
53  doStep2 = pset.getUntrackedParameter<bool>("doStep2", false);
54  doStep3 = pset.getUntrackedParameter<bool>("doStep3", false);
55  doall = pset.getUntrackedParameter<bool>("doall", false);
56  local = pset.getUntrackedParameter<bool>("local", true);
57  // if(doall) doStep1
58  // Create the root file
59  //theFile = new TFile(rootFileName.c_str(), "RECREATE");
60  //theFile->cd();
61 
62 
63  // ----------------------
64  // get hold of back-end interface
65  dbe_ = 0;
66  dbe_ = Service<DQMStore>().operator->();
67  /*if ( dbe_ ) {
68  if (debug) {
69  dbe_->setVerbose(1);
70  } else {
71  dbe_->setVerbose(0);
72  }
73  }*/
74  dbe_->setVerbose(0);
75  /*if ( dbe_ ) {
76  if ( debug ) dbe_->showDirStructure();
77  }*/
78  if(doall && doStep1){
79  hRes_S1RPhi= new HRes1DHit("S1RPhi",dbe_,true,local); // RecHits, 1. step, RPhi
80  hRes_S1RPhi_W0= new HRes1DHit("S1RPhi_W0",dbe_,true,local); // RecHits, 1. step, RZ, wheel 0
81  hRes_S1RPhi_W1= new HRes1DHit("S1RPhi_W1",dbe_,true,local); // RecHits, 1. step, RZ, wheel +-1
82  hRes_S1RPhi_W2= new HRes1DHit("S1RPhi_W2",dbe_,true,local); // RecHits, 1. step, RZ, wheel +-2
83  hRes_S1RZ= new HRes1DHit("S1RZ",dbe_,true,local); // RecHits, 1. step, RZ
84  hRes_S1RZ_W0= new HRes1DHit("S1RZ_W0",dbe_,true,local); // RecHits, 1. step, RZ, wheel 0
85  hRes_S1RZ_W1= new HRes1DHit("S1RZ_W1",dbe_,true,local); // RecHits, 1. step, RZ, wheel +-1
86  hRes_S1RZ_W2= new HRes1DHit("S1RZ_W2",dbe_,true,local); // RecHits, 1. step, RZ, wheel +-2
87  hEff_S1RPhi= new HEff1DHit("S1RPhi",dbe_); // RecHits, 1. step, RPhi
88  hEff_S1RZ= new HEff1DHit("S1RZ",dbe_); // RecHits, 1. step, RZ
89  hEff_S1RZ_W0= new HEff1DHit("S1RZ_W0",dbe_); // RecHits, 1. step, RZ, wheel 0
90  hEff_S1RZ_W1= new HEff1DHit("S1RZ_W1",dbe_); // RecHits, 1. step, RZ, wheel +-1
91  hEff_S1RZ_W2= new HEff1DHit("S1RZ_W2",dbe_); // RecHits, 1. step, RZ, wheel +-2
92  }
93  if(doall && doStep2){
94  hRes_S2RPhi= new HRes1DHit("S2RPhi",dbe_,true,local); // RecHits, 2. step, RPhi
95  hRes_S2RPhi_W0= new HRes1DHit("S2RPhi_W0",dbe_,true,local); // RecHits, 2. step, RPhi, wheel 0
96  hRes_S2RPhi_W1= new HRes1DHit("S2RPhi_W1",dbe_,true,local); // RecHits, 2. step, RPhi, wheel +-1
97  hRes_S2RPhi_W2= new HRes1DHit("S2RPhi_W2",dbe_,true,local); // RecHits, 2. step, RPhi, wheel +-2
98  hRes_S2RZ= new HRes1DHit("S2RZ",dbe_,true,local); // RecHits, 2. step, RZ
99  hRes_S2RZ_W0= new HRes1DHit("S2RZ_W0",dbe_,true,local); // RecHits, 2. step, RZ, wheel 0
100  hRes_S2RZ_W1= new HRes1DHit("S2RZ_W1",dbe_,true,local); // RecHits, 2. step, RZ, wheel +-1
101  hRes_S2RZ_W2= new HRes1DHit("S2RZ_W2",dbe_,true,local); // RecHits, 2. step, RZ, wheel +-2
102  hEff_S2RPhi= new HEff1DHit("S2RPhi",dbe_); // RecHits, 2. step, RPhi
103  hEff_S2RZ_W0= new HEff1DHit("S2RZ_W0",dbe_); // RecHits, 2. step, RZ, wheel 0
104  hEff_S2RZ_W1= new HEff1DHit("S2RZ_W1",dbe_); // RecHits, 2. step, RZ, wheel +-1
105  hEff_S2RZ_W2= new HEff1DHit("S2RZ_W2",dbe_); // RecHits, 2. step, RZ, wheel +-2
106  hEff_S2RZ= new HEff1DHit("S2RZ",dbe_); // RecHits, 2. step, RZ
107  }
108  if(doStep3){
109  hRes_S3RPhi= new HRes1DHit("S3RPhi",dbe_,doall,local); // RecHits, 3. step, RPhi
110  hRes_S3RPhi_W0= new HRes1DHit("S3RPhi_W0",dbe_,doall,local); // RecHits, 3. step, RPhi, wheel 0
111  hRes_S3RPhi_W1= new HRes1DHit("S3RPhi_W1",dbe_,doall,local); // RecHits, 3. step, RPhi, wheel +-1
112  hRes_S3RPhi_W2= new HRes1DHit("S3RPhi_W2",dbe_,doall,local); // RecHits, 3. step, RPhi, wheel +-2
113  hRes_S3RZ= new HRes1DHit("S3RZ",dbe_,doall,local); // RecHits, 3. step, RZ
114  hRes_S3RZ_W0= new HRes1DHit("S3RZ_W0",dbe_,doall,local); // RecHits, 3. step, RZ, wheel 0
115  hRes_S3RZ_W1= new HRes1DHit("S3RZ_W1",dbe_,doall,local); // RecHits, 3. step, RZ, wheel +-1
116  hRes_S3RZ_W2= new HRes1DHit("S3RZ_W2",dbe_,doall,local); // RecHits, 3. step, RZ, wheel +-2
117  if(doall){
118  hEff_S3RPhi= new HEff1DHit("S3RPhi",dbe_); // RecHits, 3. step, RPhi
119  hEff_S3RZ= new HEff1DHit("S3RZ",dbe_); // RecHits, 3. step, RZ
120  hEff_S3RZ_W0= new HEff1DHit("S3RZ_W0",dbe_); // RecHits, 3. step, RZ, wheel 0
121  hEff_S3RZ_W1= new HEff1DHit("S3RZ_W1",dbe_); // RecHits, 3. step, RZ, wheel +-1
122  hEff_S3RZ_W2= new HEff1DHit("S3RZ_W2",dbe_); // RecHits, 3. step, RZ, wheel +-2
123  }
124  }
125 }
edm::InputTag simHitLabel
edm::InputTag recHitLabel
T getUntrackedParameter(std::string const &, T const &) const
HEff1DHit * hEff_S3RZ
HEff1DHit * hEff_S2RZ_W0
HRes1DHit * hRes_S3RPhi_W0
HEff1DHit * hEff_S2RZ
HEff1DHit * hEff_S3RPhi
HRes1DHit * hRes_S1RPhi_W1
HRes1DHit * hRes_S1RPhi_W0
HRes1DHit * hRes_S1RZ
HRes1DHit * hRes_S3RZ_W2
HEff1DHit * hEff_S1RZ_W2
HEff1DHit * hEff_S3RZ_W1
HRes1DHit * hRes_S1RZ_W2
HRes1DHit * hRes_S2RPhi_W0
HRes1DHit * hRes_S1RPhi
HRes1DHit * hRes_S2RPhi_W1
void setVerbose(unsigned level)
Definition: DQMStore.cc:398
HRes1DHit * hRes_S2RZ_W1
A set of histograms of residuals and pulls for 1D RecHits.
Definition: Histograms.h:28
HEff1DHit * hEff_S3RZ_W2
HEff1DHit * hEff_S1RZ_W0
HRes1DHit * hRes_S2RZ_W0
HRes1DHit * hRes_S2RPhi_W2
HEff1DHit * hEff_S2RZ_W1
HRes1DHit * hRes_S1RPhi_W2
HRes1DHit * hRes_S1RZ_W1
HEff1DHit * hEff_S3RZ_W0
HEff1DHit * hEff_S2RZ_W2
HRes1DHit * hRes_S2RPhi
HRes1DHit * hRes_S3RPhi_W2
HEff1DHit * hEff_S1RPhi
HEff1DHit * hEff_S1RZ
HRes1DHit * hRes_S3RPhi
HEff1DHit * hEff_S2RPhi
HEff1DHit * hEff_S1RZ_W1
edm::InputTag segment4DLabel
HRes1DHit * hRes_S3RZ_W0
HRes1DHit * hRes_S3RZ_W1
HRes1DHit * hRes_S3RZ
HRes1DHit * hRes_S2RZ
edm::InputTag segment2DLabel
HRes1DHit * hRes_S2RZ_W2
HRes1DHit * hRes_S3RPhi_W1
HRes1DHit * hRes_S1RZ_W0
DTRecHitQuality::~DTRecHitQuality ( )
virtual

Destructor.

Definition at line 129 of file DTRecHitQuality.cc.

129  {
130 }

Member Function Documentation

void DTRecHitQuality::analyze ( const edm::Event event,
const edm::EventSetup eventSetup 
)
virtual

Perform the real analysis.

Implements edm::EDAnalyzer.

Definition at line 211 of file DTRecHitQuality.cc.

References bookConverter::compute(), gather_cfg::cout, debug, edm::EventSetup::get(), edm::HandleBase::isValid(), DTHitQualityUtils::mapSimHitsPerWire(), edm::Handle< T >::product(), edm::ESHandle< class >::product(), and trackerHits::simHits.

211  {
212  if(debug)
213  cout << "--- [DTRecHitQuality] Analysing Event: #Run: " << event.id().run()
214  << " #Event: " << event.id().event() << endl;
215  //theFile->cd();
216  // Get the DT Geometry
217  ESHandle<DTGeometry> dtGeom;
218  eventSetup.get<MuonGeometryRecord>().get(dtGeom);
219 
220  // Get the SimHit collection from the event
222  event.getByLabel(simHitLabel, simHits);
223 
224  // Map simhits per wire
225  map<DTWireId, PSimHitContainer > simHitsPerWire =
227 
228 
229 
230  //=======================================================================================
231  // RecHit analysis at Step 1
232  if(doStep1 && doall) {
233  if(debug)
234  cout << " -- DTRecHit S1: begin analysis:" << endl;
235  // Get the rechit collection from the event
236  Handle<DTRecHitCollection> dtRecHits;
237  event.getByLabel(recHitLabel, dtRecHits);
238 
239  if(!dtRecHits.isValid()) {
240  if(debug) cout << "[DTRecHitQuality]**Warning: no 1DRechits with label: " << recHitLabel << " in this event, skipping!" << endl;
241  return;
242  }
243 
244  // Map rechits per wire
245  map<DTWireId,vector<DTRecHit1DPair> > recHitsPerWire =
246  map1DRecHitsPerWire(dtRecHits.product());
247 
248  compute(dtGeom.product(), simHitsPerWire, recHitsPerWire, 1);
249  }
250 
251 
252  //=======================================================================================
253  // RecHit analysis at Step 2
254  if(doStep2 && doall) {
255  if(debug)
256  cout << " -- DTRecHit S2: begin analysis:" << endl;
257 
258  // Get the 2D rechits from the event
260  event.getByLabel(segment2DLabel, segment2Ds);
261 
262  if(!segment2Ds.isValid()) {
263  if(debug) cout << "[DTRecHitQuality]**Warning: no 2DSegments with label: " << segment2DLabel
264  << " in this event, skipping!" << endl;
265 
266  }
267  else{
268  // Map rechits per wire
269  map<DTWireId,vector<DTRecHit1D> > recHitsPerWire =
270  map1DRecHitsPerWire(segment2Ds.product());
271 
272  compute(dtGeom.product(), simHitsPerWire, recHitsPerWire, 2);
273  }
274  }
275 
276  //=======================================================================================
277  // RecHit analysis at Step 3
278  if(doStep3) {
279  if(debug)
280  cout << " -- DTRecHit S3: begin analysis:" << endl;
281 
282  // Get the 4D rechits from the event
284  event.getByLabel(segment4DLabel, segment4Ds);
285 
286  if(!segment4Ds.isValid()) {
287  if(debug) cout << "[DTRecHitQuality]**Warning: no 4D Segments with label: " << segment4DLabel
288  << " in this event, skipping!" << endl;
289  return;
290  }
291 
292  // Map rechits per wire
293  map<DTWireId,vector<DTRecHit1D> > recHitsPerWire =
294  map1DRecHitsPerWire(segment4Ds.product());
295 
296  compute(dtGeom.product(), simHitsPerWire, recHitsPerWire, 3);
297  }
298 
299  }
edm::InputTag simHitLabel
edm::InputTag recHitLabel
std::map< DTWireId, std::vector< DTRecHit1DPair > > map1DRecHitsPerWire(const DTRecHitCollection *dt1DRecHitPairs)
bool isValid() const
Definition: HandleBase.h:76
void compute(const DTGeometry *dtGeom, std::map< DTWireId, std::vector< PSimHit > > simHitsPerWire, std::map< DTWireId, std::vector< type > > recHitsPerWire, int step)
const T & get() const
Definition: EventSetup.h:55
T const * product() const
Definition: ESHandle.h:62
tuple simHits
Definition: trackerHits.py:16
T const * product() const
Definition: Handle.h:74
edm::InputTag segment4DLabel
tuple cout
Definition: gather_cfg.py:121
edm::InputTag segment2DLabel
static std::map< DTWireId, edm::PSimHitContainer > mapSimHitsPerWire(const edm::PSimHitContainer &simhits)
template<typename type >
void DTRecHitQuality::compute ( const DTGeometry dtGeom,
std::map< DTWireId, std::vector< PSimHit > >  simHitsPerWire,
std::map< DTWireId, std::vector< type > >  recHitsPerWire,
int  step 
)
private

Definition at line 443 of file DTRecHitQuality.cc.

References abs, gather_cfg::cout, debug, PV3DBase< T, PVType, FrameType >::eta(), HRes1DHit::Fill(), HEff1DHit::Fill(), DTHitQualityUtils::findMuSimHit(), DTGeometry::layer(), PSimHit::localPosition(), Association::map, PV3DBase< T, PVType, FrameType >::phi(), DTChamberId::station(), DTSuperLayerId::superLayer(), DTSuperLayerId::superlayer(), GeomDet::toGlobal(), and DTChamberId::wheel().

446  {
447  // Loop over cells with a muon SimHit
448  for(map<DTWireId, vector<PSimHit> >::const_iterator wireAndSHits = simHitsPerWire.begin();
449  wireAndSHits != simHitsPerWire.end();
450  wireAndSHits++) {
451  DTWireId wireId = (*wireAndSHits).first;
452  vector<PSimHit> simHitsInCell = (*wireAndSHits).second;
453 
454  // Get the layer
455  const DTLayer* layer = dtGeom->layer(wireId);
456 
457  // Look for a mu hit in the cell
458  const PSimHit* muSimHit = DTHitQualityUtils::findMuSimHit(simHitsInCell);
459  if (muSimHit==0) {
460  if (debug)
461  cout << " No mu SimHit in channel: " << wireId << ", skipping! " << endl;
462  continue; // Skip this cell
463  }
464 
465  // Find the distance of the simhit from the wire
466  float simHitWireDist = simHitDistFromWire(layer, wireId, *muSimHit);
467  // Skip simhits out of the cell
468  if(simHitWireDist>2.1) {
469  if(debug)
470  cout << " [DTRecHitQuality]###Warning: The mu SimHit in out of the cell, skipping!" << endl;
471  continue; // Skip this cell
472  }
473  GlobalPoint simHitGlobalPos = layer->toGlobal(muSimHit->localPosition());
474 
475  // find SH impact angle
476  float simHitTheta = simHitImpactAngle(layer, wireId, *muSimHit);
477 
478  // find SH distance from FE
479  float simHitFEDist = simHitDistFromFE(layer, wireId, *muSimHit);
480 
481  bool recHitReconstructed = false;
482 
483  // Look for RecHits in the same cell
484  if(recHitsPerWire.find(wireId) == recHitsPerWire.end()) {
485  // No RecHit found in this cell
486  if(debug)
487  cout << " No RecHit found at Step: " << step << " in cell: " << wireId << endl;
488  } else {
489  recHitReconstructed = true;
490  // vector<type> recHits = (*wireAndRecHits).second;
491  vector<type> recHits = recHitsPerWire[wireId];
492  if(debug)
493  cout << " " << recHits.size() << " RecHits, Step " << step << " in channel: " << wireId << endl;
494 
495  // Find the best RecHit
496  const type* theBestRecHit = findBestRecHit(layer, wireId, recHits, simHitWireDist);
497 
498 
499  float recHitWireDist = recHitDistFromWire(*theBestRecHit, layer);
500  if(debug)
501  cout << " SimHit distance from wire: " << simHitWireDist << endl
502  << " SimHit distance from FE: " << simHitFEDist << endl
503  << " SimHit distance angle " << simHitTheta << endl
504  << " RecHit distance from wire: " << recHitWireDist << endl;
505  float recHitErr = recHitPositionError(*theBestRecHit);
506  HRes1DHit *hRes = 0;
507  HRes1DHit *hResTot = 0;
508 
509  // Fill residuals and pulls
510  // Select the histo to be filled
511  if(step == 1) {
512  // Step 1
513  if(wireId.superLayer() != 2) {
514  hResTot = hRes_S1RPhi;
515  if(wireId.wheel() == 0)
516  hRes = hRes_S1RPhi_W0;
517  if(abs(wireId.wheel()) == 1)
518  hRes = hRes_S1RPhi_W1;
519  if(abs(wireId.wheel()) == 2)
520  hRes = hRes_S1RPhi_W2;
521  } else {
522  hResTot = hRes_S1RZ;
523  if(wireId.wheel() == 0)
524  hRes = hRes_S1RZ_W0;
525  if(abs(wireId.wheel()) == 1)
526  hRes = hRes_S1RZ_W1;
527  if(abs(wireId.wheel()) == 2)
528  hRes = hRes_S1RZ_W2;
529  }
530 
531  } else if(step == 2) {
532  // Step 2
533  if(wireId.superlayer() != 2) {
534  hRes = hRes_S2RPhi;
535  if(wireId.wheel() == 0)
536  hRes = hRes_S2RPhi_W0;
537  if(abs(wireId.wheel()) == 1)
538  hRes = hRes_S2RPhi_W1;
539  if(abs(wireId.wheel()) == 2)
540  hRes = hRes_S2RPhi_W2;
541  } else {
542  hResTot = hRes_S2RZ;
543  if(wireId.wheel() == 0)
544  hRes = hRes_S2RZ_W0;
545  if(abs(wireId.wheel()) == 1)
546  hRes = hRes_S2RZ_W1;
547  if(abs(wireId.wheel()) == 2)
548  hRes = hRes_S2RZ_W2;
549  }
550 
551  } else if(step == 3) {
552  // Step 3
553  if(wireId.superlayer() != 2) {
554  hResTot = hRes_S3RPhi;
555  if(wireId.wheel() == 0)
556  hRes = hRes_S3RPhi_W0;
557  if(abs(wireId.wheel()) == 1)
558  hRes = hRes_S3RPhi_W1;
559  if(abs(wireId.wheel()) == 2)
560  hRes = hRes_S3RPhi_W2;
561  } else {
562  hResTot = hRes_S3RZ;
563  if(wireId.wheel() == 0)
564  hRes = hRes_S3RZ_W0;
565  if(abs(wireId.wheel()) == 1)
566  hRes = hRes_S3RZ_W1;
567  if(abs(wireId.wheel()) == 2)
568  hRes = hRes_S3RZ_W2;
569  }
570 
571  }
572  // Fill
573  hRes->Fill(simHitWireDist, simHitTheta, simHitFEDist, recHitWireDist, simHitGlobalPos.eta(),
574  simHitGlobalPos.phi(),recHitErr,wireId.station());
575  if(hResTot != 0)
576  hResTot->Fill(simHitWireDist, simHitTheta, simHitFEDist, recHitWireDist, simHitGlobalPos.eta(),
577  simHitGlobalPos.phi(),recHitErr,wireId.station());
578  }
579 
580  // Fill Efficiencies
581  if(doall){
582  HEff1DHit *hEff = 0;
583  HEff1DHit *hEffTot = 0;
584  if(step == 1) {
585  // Step 1
586  if(wireId.superlayer() != 2) {
587  hEff = hEff_S1RPhi;
588  } else {
589  hEffTot = hEff_S1RZ;
590  if(wireId.wheel() == 0)
591  hEff = hEff_S1RZ_W0;
592  if(abs(wireId.wheel()) == 1)
593  hEff = hEff_S1RZ_W1;
594  if(abs(wireId.wheel()) == 2)
595  hEff = hEff_S1RZ_W2;
596  }
597 
598  } else if(step == 2) {
599  // Step 2
600  if(wireId.superlayer() != 2) {
601  hEff = hEff_S2RPhi;
602  } else {
603  hEffTot = hEff_S2RZ;
604  if(wireId.wheel() == 0)
605  hEff = hEff_S2RZ_W0;
606  if(abs(wireId.wheel()) == 1)
607  hEff = hEff_S2RZ_W1;
608  if(abs(wireId.wheel()) == 2)
609  hEff = hEff_S2RZ_W2;
610  }
611 
612  } else if(step == 3) {
613  // Step 3
614  if(wireId.superlayer() != 2) {
615  hEff = hEff_S3RPhi;
616  } else {
617  hEffTot = hEff_S3RZ;
618  if(wireId.wheel() == 0)
619  hEff = hEff_S3RZ_W0;
620  if(abs(wireId.wheel()) == 1)
621  hEff = hEff_S3RZ_W1;
622  if(abs(wireId.wheel()) == 2)
623  hEff = hEff_S3RZ_W2;
624  }
625 
626  }
627  // Fill
628  hEff->Fill(simHitWireDist, simHitGlobalPos.eta(), simHitGlobalPos.phi(), recHitReconstructed);
629  if(hEffTot != 0)
630  hEffTot->Fill(simHitWireDist, simHitGlobalPos.eta(), simHitGlobalPos.phi(), recHitReconstructed);
631  }
632  }
633 }
type
Definition: HCALResponse.h:21
void Fill(float distSimHit, float etaSimHit, float phiSimHit, bool fillRecHit)
Definition: Histograms.h:219
HEff1DHit * hEff_S3RZ
HEff1DHit * hEff_S2RZ_W0
HRes1DHit * hRes_S3RPhi_W0
HEff1DHit * hEff_S2RZ
HEff1DHit * hEff_S3RPhi
HRes1DHit * hRes_S1RPhi_W1
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
Definition: GeomDet.h:47
Geom::Phi< T > phi() const
Definition: PV3DBase.h:69
void Fill(float distSimHit, float thetaSimHit, float distFESimHit, float distRecHit, float etaSimHit, float phiSimHit, float errRecHit, int station)
Definition: Histograms.h:97
static const PSimHit * findMuSimHit(const edm::PSimHitContainer &hits)
Select the SimHit from a muon in a vector of SimHits.
#define abs(x)
Definition: mlp_lapack.h:159
const type * findBestRecHit(const DTLayer *layer, DTWireId wireId, const std::vector< type > &recHits, const float simHitDist)
HRes1DHit * hRes_S1RPhi_W0
HRes1DHit * hRes_S1RZ
dictionary map
Definition: Association.py:205
float recHitPositionError(const DTRecHit1DPair &recHit)
const DTLayer * layer(DTLayerId id) const
Return a layer given its id.
Definition: DTGeometry.cc:112
HRes1DHit * hRes_S3RZ_W2
float simHitDistFromWire(const DTLayer *layer, DTWireId wireId, const PSimHit &hit)
HEff1DHit * hEff_S1RZ_W2
Local3DPoint localPosition() const
Definition: PSimHit.h:44
HEff1DHit * hEff_S3RZ_W1
HRes1DHit * hRes_S1RZ_W2
HRes1DHit * hRes_S2RPhi_W0
float recHitDistFromWire(const DTRecHit1DPair &hitPair, const DTLayer *layer)
HRes1DHit * hRes_S1RPhi
HRes1DHit * hRes_S2RPhi_W1
int superLayer() const
Return the superlayer number.
HRes1DHit * hRes_S2RZ_W1
A set of histograms of residuals and pulls for 1D RecHits.
Definition: Histograms.h:28
float simHitImpactAngle(const DTLayer *layer, DTWireId wireId, const PSimHit &hit)
HEff1DHit * hEff_S3RZ_W2
HEff1DHit * hEff_S1RZ_W0
HRes1DHit * hRes_S2RZ_W0
HRes1DHit * hRes_S2RPhi_W2
HEff1DHit * hEff_S2RZ_W1
HRes1DHit * hRes_S1RPhi_W2
int superlayer() const
Return the superlayer number (deprecated method name)
HRes1DHit * hRes_S1RZ_W1
HEff1DHit * hEff_S3RZ_W0
HEff1DHit * hEff_S2RZ_W2
HRes1DHit * hRes_S2RPhi
HRes1DHit * hRes_S3RPhi_W2
HEff1DHit * hEff_S1RPhi
float simHitDistFromFE(const DTLayer *layer, DTWireId wireId, const PSimHit &hit)
HEff1DHit * hEff_S1RZ
HRes1DHit * hRes_S3RPhi
HEff1DHit * hEff_S2RPhi
T eta() const
Definition: PV3DBase.h:76
HEff1DHit * hEff_S1RZ_W1
HRes1DHit * hRes_S3RZ_W0
HRes1DHit * hRes_S3RZ_W1
HRes1DHit * hRes_S3RZ
HRes1DHit * hRes_S2RZ
tuple cout
Definition: gather_cfg.py:121
HRes1DHit * hRes_S2RZ_W2
HRes1DHit * hRes_S3RPhi_W1
int station() const
Return the station number.
Definition: DTChamberId.h:53
int wheel() const
Return the wheel number.
Definition: DTChamberId.h:47
HRes1DHit * hRes_S1RZ_W0
void DTRecHitQuality::endJob ( void  )
virtual

Reimplemented from edm::EDAnalyzer.

Definition at line 138 of file DTRecHitQuality.cc.

138  {
139  // Write the histos to file
140  if(doall){
141  if(doStep1){
147  }
148  if(doStep2){
154  }
155  if(doStep3){
161  }
162  }
163  //if ( rootFileName.size() != 0 && dbe_ ) dbe_->save(rootFileName);
164 
165  // Write histos to file
166  /*hRes_S1RPhi->Write();
167  hRes_S2RPhi->Write();
168  hRes_S3RPhi->Write();
169 
170  hRes_S1RZ->Write();
171  hRes_S2RZ->Write();
172  hRes_S3RZ->Write();
173 
174  hRes_S1RZ_W0->Write();
175  hRes_S2RZ_W0->Write();
176  hRes_S3RZ_W0->Write();
177 
178  hRes_S1RZ_W1->Write();
179  hRes_S2RZ_W1->Write();
180  hRes_S3RZ_W1->Write();
181 
182  hRes_S1RZ_W2->Write();
183  hRes_S2RZ_W2->Write();
184  hRes_S3RZ_W2->Write();
185 
186 
187  hEff_S1RPhi->Write();
188  hEff_S2RPhi->Write();
189  hEff_S3RPhi->Write();
190 
191  hEff_S1RZ->Write();
192  hEff_S2RZ->Write();
193  hEff_S3RZ->Write();
194 
195  hEff_S1RZ_W0->Write();
196  hEff_S2RZ_W0->Write();
197  hEff_S3RZ_W0->Write();
198 
199  hEff_S1RZ_W1->Write();
200  hEff_S2RZ_W1->Write();
201  hEff_S3RZ_W1->Write();
202 
203  hEff_S1RZ_W2->Write();
204  hEff_S2RZ_W2->Write();
205  hEff_S3RZ_W2->Write();*/
206 
207  //theFile->Close();
208 }
HEff1DHit * hEff_S3RZ
HEff1DHit * hEff_S2RZ_W0
HEff1DHit * hEff_S2RZ
HEff1DHit * hEff_S3RPhi
void ComputeEfficiency()
Definition: Histograms.h:236
HEff1DHit * hEff_S1RZ_W2
HEff1DHit * hEff_S3RZ_W1
HEff1DHit * hEff_S3RZ_W2
HEff1DHit * hEff_S1RZ_W0
HEff1DHit * hEff_S2RZ_W1
HEff1DHit * hEff_S3RZ_W0
HEff1DHit * hEff_S2RZ_W2
HEff1DHit * hEff_S1RPhi
HEff1DHit * hEff_S1RZ
HEff1DHit * hEff_S2RPhi
HEff1DHit * hEff_S1RZ_W1
void DTRecHitQuality::endLuminosityBlock ( edm::LuminosityBlock const &  lumiSeg,
edm::EventSetup const &  c 
)
virtual

Reimplemented from edm::EDAnalyzer.

Definition at line 133 of file DTRecHitQuality.cc.

134  {
135 
136 }
template<typename type >
const type * DTRecHitQuality::findBestRecHit ( const DTLayer layer,
DTWireId  wireId,
const std::vector< type > &  recHits,
const float  simHitDist 
)
private

Definition at line 404 of file DTRecHitQuality.cc.

407  {
408  float res = 99999;
409  const type* theBestRecHit = 0;
410  // Loop over RecHits within the cell
411  for(typename vector<type>::const_iterator recHit = recHits.begin();
412  recHit != recHits.end();
413  recHit++) {
414  float distTmp = recHitDistFromWire(*recHit, layer);
415  if(fabs(distTmp-simHitDist) < res) {
416  res = fabs(distTmp-simHitDist);
417  theBestRecHit = &(*recHit);
418  }
419  } // End of loop over RecHits within the cell
420 
421  return theBestRecHit;
422 }
type
Definition: HCALResponse.h:21
float recHitDistFromWire(const DTRecHit1DPair &hitPair, const DTLayer *layer)
map< DTWireId, vector< DTRecHit1DPair > > DTRecHitQuality::map1DRecHitsPerWire ( const DTRecHitCollection dt1DRecHitPairs)
private

Definition at line 305 of file DTRecHitQuality.cc.

References run_regression::ret.

305  {
306  map<DTWireId, vector<DTRecHit1DPair> > ret;
307 
308  for(DTRecHitCollection::const_iterator rechit = dt1DRecHitPairs->begin();
309  rechit != dt1DRecHitPairs->end(); rechit++) {
310  ret[(*rechit).wireId()].push_back(*rechit);
311  }
312 
313  return ret;
314 }
C::const_iterator const_iterator
constant access iterator type
Definition: RangeMap.h:45
map< DTWireId, vector< DTRecHit1D > > DTRecHitQuality::map1DRecHitsPerWire ( const DTRecSegment2DCollection segment2Ds)
private

Definition at line 319 of file DTRecHitQuality.cc.

References run_regression::ret.

319  {
320  map<DTWireId, vector<DTRecHit1D> > ret;
321 
322  // Loop over all 2D segments
323  for(DTRecSegment2DCollection::const_iterator segment = segment2Ds->begin();
324  segment != segment2Ds->end();
325  segment++) {
326  vector<DTRecHit1D> component1DHits= (*segment).specificRecHits();
327  // Loop over all component 1D hits
328  for(vector<DTRecHit1D>::const_iterator hit = component1DHits.begin();
329  hit != component1DHits.end();
330  hit++) {
331  ret[(*hit).wireId()].push_back(*hit);
332  }
333  }
334  return ret;
335 }
C::const_iterator const_iterator
constant access iterator type
Definition: RangeMap.h:45
map< DTWireId, std::vector< DTRecHit1D > > DTRecHitQuality::map1DRecHitsPerWire ( const DTRecSegment4DCollection segment4Ds)
private

Definition at line 341 of file DTRecHitQuality.cc.

References run_regression::ret, and DTRecHit1D::wireId().

341  {
342  map<DTWireId, vector<DTRecHit1D> > ret;
343  // Loop over all 4D segments
344  for(DTRecSegment4DCollection::const_iterator segment = segment4Ds->begin();
345  segment != segment4Ds->end();
346  segment++) {
347  // Get component 2D segments
348  vector<const TrackingRecHit*> segment2Ds = (*segment).recHits();
349  // Loop over 2D segments:
350  for(vector<const TrackingRecHit*>::const_iterator segment2D = segment2Ds.begin();
351  segment2D != segment2Ds.end();
352  segment2D++) {
353  // Get 1D component rechits
354  vector<const TrackingRecHit*> hits = (*segment2D)->recHits();
355  // Loop over them
356  for(vector<const TrackingRecHit*>::const_iterator hit = hits.begin();
357  hit != hits.end(); hit++) {
358  const DTRecHit1D* hit1D = dynamic_cast<const DTRecHit1D*>(*hit);
359  ret[hit1D->wireId()].push_back(*hit1D);
360  }
361  }
362  }
363 
364  return ret;
365 }
C::const_iterator const_iterator
constant access iterator type
Definition: RangeMap.h:45
DTWireId wireId() const
Return the wireId.
Definition: DTRecHit1D.h:109
float DTRecHitQuality::recHitDistFromWire ( const DTRecHit1DPair hitPair,
const DTLayer layer 
)
private

Definition at line 427 of file DTRecHitQuality.cc.

References DTEnums::Left, DTRecHit1DPair::localPosition(), DTEnums::Right, and PV3DBase< T, PVType, FrameType >::x().

427  {
428  // Compute the rechit distance from wire
429  return fabs(hitPair.localPosition(DTEnums::Left).x() -
430  hitPair.localPosition(DTEnums::Right).x())/2.;
431 }
T x() const
Definition: PV3DBase.h:62
virtual LocalPoint localPosition() const
float DTRecHitQuality::recHitDistFromWire ( const DTRecHit1D recHit,
const DTLayer layer 
)
private

Definition at line 437 of file DTRecHitQuality.cc.

References DTRecHit1D::localPosition(), DTLayer::specificTopology(), DTWireId::wire(), DTRecHit1D::wireId(), DTTopology::wirePosition(), and PV3DBase< T, PVType, FrameType >::x().

437  {
438  return fabs(recHit.localPosition().x() - layer->specificTopology().wirePosition(recHit.wireId().wire()));
439 }
float wirePosition(int wireNumber) const
Returns the x position in the layer of a given wire number.
Definition: DTTopology.cc:88
const DTTopology & specificTopology() const
Definition: DTLayer.cc:44
virtual LocalPoint localPosition() const
Return the 3-dimensional local position.
Definition: DTRecHit1D.h:62
int wire() const
Return the wire number.
Definition: DTWireId.h:58
T x() const
Definition: PV3DBase.h:62
DTWireId wireId() const
Return the wireId.
Definition: DTRecHit1D.h:109
float DTRecHitQuality::recHitPositionError ( const DTRecHit1DPair recHit)
private

Definition at line 636 of file DTRecHitQuality.cc.

References DTEnums::Left, DTRecHit1DPair::localPositionError(), mathSSE::sqrt(), and LocalError::xx().

636  {
637  return sqrt(recHit.localPositionError(DTEnums::Left).xx());
638 }
float xx() const
Definition: LocalError.h:24
virtual LocalError localPositionError() const
T sqrt(T t)
Definition: SSEVec.h:48
float DTRecHitQuality::recHitPositionError ( const DTRecHit1D recHit)
private

Definition at line 641 of file DTRecHitQuality.cc.

References DTRecHit1D::localPositionError(), mathSSE::sqrt(), and LocalError::xx().

641  {
642  return sqrt(recHit.localPositionError().xx());
643 }
float xx() const
Definition: LocalError.h:24
T sqrt(T t)
Definition: SSEVec.h:48
virtual LocalError localPositionError() const
Return the 3-dimensional error on the local position.
Definition: DTRecHit1D.h:68
float DTRecHitQuality::simHitDistFromFE ( const DTLayer layer,
DTWireId  wireId,
const PSimHit hit 
)
private

Definition at line 391 of file DTRecHitQuality.cc.

References DTTopology::cellLenght(), PSimHit::entryPoint(), PSimHit::exitPoint(), DTLayer::specificTopology(), and PV3DBase< T, PVType, FrameType >::y().

393  {
394  LocalPoint entryP = hit.entryPoint();
395  LocalPoint exitP = hit.exitPoint();
396  float wireLenght=layer->specificTopology().cellLenght();
397  return (entryP.y()+exitP.y())/2.+wireLenght;
398 }
T y() const
Definition: PV3DBase.h:63
const DTTopology & specificTopology() const
Definition: DTLayer.cc:44
Local3DPoint exitPoint() const
Exit point in the local Det frame.
Definition: PSimHit.h:38
float cellLenght() const
Definition: DTTopology.h:75
Local3DPoint entryPoint() const
Entry point in the local Det frame.
Definition: PSimHit.h:35
float DTRecHitQuality::simHitDistFromWire ( const DTLayer layer,
DTWireId  wireId,
const PSimHit hit 
)
private

Definition at line 368 of file DTRecHitQuality.cc.

References PSimHit::entryPoint(), PSimHit::exitPoint(), DTLayer::specificTopology(), DTWireId::wire(), DTTopology::wirePosition(), PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::z().

370  {
371  float xwire = layer->specificTopology().wirePosition(wireId.wire());
372  LocalPoint entryP = hit.entryPoint();
373  LocalPoint exitP = hit.exitPoint();
374  float xEntry = entryP.x()-xwire;
375  float xExit = exitP.x()-xwire;
376 
377  return fabs(xEntry - (entryP.z()*(xExit-xEntry))/(exitP.z()-entryP.z()));//FIXME: check...
378 }
float wirePosition(int wireNumber) const
Returns the x position in the layer of a given wire number.
Definition: DTTopology.cc:88
const DTTopology & specificTopology() const
Definition: DTLayer.cc:44
Local3DPoint exitPoint() const
Exit point in the local Det frame.
Definition: PSimHit.h:38
T z() const
Definition: PV3DBase.h:64
int wire() const
Return the wire number.
Definition: DTWireId.h:58
T x() const
Definition: PV3DBase.h:62
Local3DPoint entryPoint() const
Entry point in the local Det frame.
Definition: PSimHit.h:35
float DTRecHitQuality::simHitImpactAngle ( const DTLayer layer,
DTWireId  wireId,
const PSimHit hit 
)
private

Definition at line 381 of file DTRecHitQuality.cc.

References PSimHit::entryPoint(), PSimHit::exitPoint(), theta(), PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::z().

383  {
384  LocalPoint entryP = hit.entryPoint();
385  LocalPoint exitP = hit.exitPoint();
386  float theta=(exitP.x()-entryP.x())/(exitP.z()-entryP.z());
387  return atan(theta);
388 }
Geom::Theta< T > theta() const
Local3DPoint exitPoint() const
Exit point in the local Det frame.
Definition: PSimHit.h:38
T z() const
Definition: PV3DBase.h:64
T x() const
Definition: PV3DBase.h:62
Local3DPoint entryPoint() const
Entry point in the local Det frame.
Definition: PSimHit.h:35

Member Data Documentation

DQMStore* DTRecHitQuality::dbe_
private

Definition at line 194 of file DTRecHitQuality.h.

bool DTRecHitQuality::debug
private

Definition at line 70 of file DTRecHitQuality.h.

bool DTRecHitQuality::doall
private

Definition at line 195 of file DTRecHitQuality.h.

bool DTRecHitQuality::doStep1
private

Definition at line 79 of file DTRecHitQuality.h.

bool DTRecHitQuality::doStep2
private

Definition at line 80 of file DTRecHitQuality.h.

bool DTRecHitQuality::doStep3
private

Definition at line 81 of file DTRecHitQuality.h.

HEff1DHit* DTRecHitQuality::hEff_S1RPhi
private

Definition at line 175 of file DTRecHitQuality.h.

HEff1DHit* DTRecHitQuality::hEff_S1RZ
private

Definition at line 179 of file DTRecHitQuality.h.

HEff1DHit* DTRecHitQuality::hEff_S1RZ_W0
private

Definition at line 183 of file DTRecHitQuality.h.

HEff1DHit* DTRecHitQuality::hEff_S1RZ_W1
private

Definition at line 187 of file DTRecHitQuality.h.

HEff1DHit* DTRecHitQuality::hEff_S1RZ_W2
private

Definition at line 191 of file DTRecHitQuality.h.

HEff1DHit* DTRecHitQuality::hEff_S2RPhi
private

Definition at line 176 of file DTRecHitQuality.h.

HEff1DHit* DTRecHitQuality::hEff_S2RZ
private

Definition at line 180 of file DTRecHitQuality.h.

HEff1DHit* DTRecHitQuality::hEff_S2RZ_W0
private

Definition at line 184 of file DTRecHitQuality.h.

HEff1DHit* DTRecHitQuality::hEff_S2RZ_W1
private

Definition at line 188 of file DTRecHitQuality.h.

HEff1DHit* DTRecHitQuality::hEff_S2RZ_W2
private

Definition at line 192 of file DTRecHitQuality.h.

HEff1DHit* DTRecHitQuality::hEff_S3RPhi
private

Definition at line 177 of file DTRecHitQuality.h.

HEff1DHit* DTRecHitQuality::hEff_S3RZ
private

Definition at line 181 of file DTRecHitQuality.h.

HEff1DHit* DTRecHitQuality::hEff_S3RZ_W0
private

Definition at line 185 of file DTRecHitQuality.h.

HEff1DHit* DTRecHitQuality::hEff_S3RZ_W1
private

Definition at line 189 of file DTRecHitQuality.h.

HEff1DHit* DTRecHitQuality::hEff_S3RZ_W2
private

Definition at line 193 of file DTRecHitQuality.h.

HRes1DHit* DTRecHitQuality::hRes_S1RPhi
private

Definition at line 143 of file DTRecHitQuality.h.

HRes1DHit* DTRecHitQuality::hRes_S1RPhi_W0
private

Definition at line 163 of file DTRecHitQuality.h.

HRes1DHit* DTRecHitQuality::hRes_S1RPhi_W1
private

Definition at line 167 of file DTRecHitQuality.h.

HRes1DHit* DTRecHitQuality::hRes_S1RPhi_W2
private

Definition at line 171 of file DTRecHitQuality.h.

HRes1DHit* DTRecHitQuality::hRes_S1RZ
private

Definition at line 147 of file DTRecHitQuality.h.

HRes1DHit* DTRecHitQuality::hRes_S1RZ_W0
private

Definition at line 151 of file DTRecHitQuality.h.

HRes1DHit* DTRecHitQuality::hRes_S1RZ_W1
private

Definition at line 155 of file DTRecHitQuality.h.

HRes1DHit* DTRecHitQuality::hRes_S1RZ_W2
private

Definition at line 159 of file DTRecHitQuality.h.

HRes1DHit* DTRecHitQuality::hRes_S2RPhi
private

Definition at line 144 of file DTRecHitQuality.h.

HRes1DHit* DTRecHitQuality::hRes_S2RPhi_W0
private

Definition at line 164 of file DTRecHitQuality.h.

HRes1DHit* DTRecHitQuality::hRes_S2RPhi_W1
private

Definition at line 168 of file DTRecHitQuality.h.

HRes1DHit* DTRecHitQuality::hRes_S2RPhi_W2
private

Definition at line 172 of file DTRecHitQuality.h.

HRes1DHit* DTRecHitQuality::hRes_S2RZ
private

Definition at line 148 of file DTRecHitQuality.h.

HRes1DHit* DTRecHitQuality::hRes_S2RZ_W0
private

Definition at line 152 of file DTRecHitQuality.h.

HRes1DHit* DTRecHitQuality::hRes_S2RZ_W1
private

Definition at line 156 of file DTRecHitQuality.h.

HRes1DHit* DTRecHitQuality::hRes_S2RZ_W2
private

Definition at line 160 of file DTRecHitQuality.h.

HRes1DHit* DTRecHitQuality::hRes_S3RPhi
private

Definition at line 145 of file DTRecHitQuality.h.

HRes1DHit* DTRecHitQuality::hRes_S3RPhi_W0
private

Definition at line 165 of file DTRecHitQuality.h.

HRes1DHit* DTRecHitQuality::hRes_S3RPhi_W1
private

Definition at line 169 of file DTRecHitQuality.h.

HRes1DHit* DTRecHitQuality::hRes_S3RPhi_W2
private

Definition at line 173 of file DTRecHitQuality.h.

HRes1DHit* DTRecHitQuality::hRes_S3RZ
private

Definition at line 149 of file DTRecHitQuality.h.

HRes1DHit* DTRecHitQuality::hRes_S3RZ_W0
private

Definition at line 153 of file DTRecHitQuality.h.

HRes1DHit* DTRecHitQuality::hRes_S3RZ_W1
private

Definition at line 157 of file DTRecHitQuality.h.

HRes1DHit* DTRecHitQuality::hRes_S3RZ_W2
private

Definition at line 161 of file DTRecHitQuality.h.

bool DTRecHitQuality::local
private

Definition at line 82 of file DTRecHitQuality.h.

edm::InputTag DTRecHitQuality::recHitLabel
private

Definition at line 74 of file DTRecHitQuality.h.

std::string DTRecHitQuality::rootFileName
private

Definition at line 72 of file DTRecHitQuality.h.

edm::InputTag DTRecHitQuality::segment2DLabel
private

Definition at line 75 of file DTRecHitQuality.h.

edm::InputTag DTRecHitQuality::segment4DLabel
private

Definition at line 76 of file DTRecHitQuality.h.

edm::InputTag DTRecHitQuality::simHitLabel
private

Definition at line 73 of file DTRecHitQuality.h.