69 edm::LogInfo(
"RPCRecHitValid") <<
"Cannot find simHit collection\n";
77 edm::LogInfo(
"RPCRecHitValid") <<
"Cannot find recHit collection\n";
81 typedef edm::PSimHitContainer::const_iterator SimHitIter;
85 for ( SimHitIter simHitIter = simHitHandle->begin();
86 simHitIter != simHitHandle->end(); ++simHitIter )
88 if (
abs(simHitIter->particleType()) != 13 )
continue;
91 const RPCRoll* roll =
dynamic_cast<const RPCRoll*
>(rpcGeom->roll(detId()));
92 if ( !roll )
continue;
94 const int region = roll->
id().
region();
116 for ( RecHitIter recHitIter = recHitHandle->begin();
117 recHitIter != recHitHandle->end(); ++recHitIter )
120 const RPCRoll* roll =
dynamic_cast<const RPCRoll*
>(rpcGeom->roll(detId()));
121 if ( !roll )
continue;
123 const int region = roll->
id().
region();
124 const int ring = roll->
id().
ring();
126 const int station = roll->
id().
station();
147 typedef std::map<SimHitIter, RecHitIter> SimToRecHitMap;
148 SimToRecHitMap simToRecHitMap;
150 for ( SimHitIter simHitIter = simHitHandle->begin();
151 simHitIter != simHitHandle->end(); ++simHitIter )
153 if (
abs(simHitIter->particleType()) != 13 )
continue;
155 const RPCDetId simDetId =
static_cast<const RPCDetId>(simHitIter->detUnitId());
156 const RPCRoll* simRoll =
dynamic_cast<const RPCRoll*
>(rpcGeom->roll(simDetId));
157 if ( !simRoll )
continue;
159 const double simX = simHitIter->localPosition().x();
161 for ( RecHitIter recHitIter = recHitHandle->begin();
162 recHitIter != recHitHandle->end(); ++recHitIter )
165 const RPCRoll* recRoll =
dynamic_cast<const RPCRoll*
>(rpcGeom->roll(recDetId));
166 if ( !recRoll )
continue;
168 if ( simDetId != recDetId )
continue;
170 const double recX = recHitIter->localPosition().x();
171 const double newDx = fabs(recX - simX);
174 SimToRecHitMap::const_iterator prevSimToReco = simToRecHitMap.find(simHitIter);
175 if ( prevSimToReco == simToRecHitMap.end() )
177 simToRecHitMap.insert(std::make_pair(simHitIter, recHitIter));
181 const double oldDx = fabs(prevSimToReco->second->localPosition().x() - simX);
185 simToRecHitMap[simHitIter] = recHitIter;
193 for ( SimToRecHitMap::const_iterator
match = simToRecHitMap.begin();
196 SimHitIter simHitIter =
match->first;
197 RecHitIter recHitIter =
match->second;
199 const RPCDetId detId =
static_cast<const RPCDetId>(simHitIter->detUnitId());
200 const RPCRoll* roll =
dynamic_cast<const RPCRoll*
>(rpcGeom->roll(detId));
202 const int region = roll->
id().
region();
203 const int ring = roll->
id().
ring();
205 const int station = roll->
id().
station();
209 const double simX = simHitIter->localPosition().x();
210 const double recX = recHitIter->localPosition().x();
211 const double errX = recHitIter->localPositionError().xx();
212 const double dX = recX - simX;
213 const double pull = errX == 0 ? -999 : dX/errX;
242 for ( SimHitIter simHitIter = simHitHandle->begin();
243 simHitIter != simHitHandle->end(); ++simHitIter )
245 const RPCDetId detId =
static_cast<const RPCDetId>(simHitIter->detUnitId());
246 const RPCRoll* roll =
dynamic_cast<const RPCRoll*
>(rpcGeom->roll(detId));
248 const int region = roll->
id().
region();
249 const int ring = roll->
id().
ring();
251 const int station = roll->
id().
station();
255 bool matched =
false;
256 for ( SimToRecHitMap::const_iterator
match = simToRecHitMap.begin();
259 if ( simHitIter ==
match->first )
282 for ( RecHitIter recHitIter = recHitHandle->begin();
283 recHitIter != recHitHandle->end(); ++recHitIter )
286 const RPCRoll* roll =
dynamic_cast<const RPCRoll*
>(rpcGeom->roll(detId));
288 const int region = roll->
id().
region();
289 const int ring = roll->
id().
ring();
291 const int station = roll->
id().
station();
295 bool matched =
false;
296 for ( SimToRecHitMap::const_iterator
match = simToRecHitMap.begin();
299 if ( recHitIter ==
match->second )
MEP nUnMatchedRefHit_DvsR
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
C::const_iterator const_iterator
constant access iterator type
edm::InputTag recHitLabel_
edm::InputTag simHitLabel_
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
MEP nUnMatchedRecHit_DvsR
MEP nUnMatchedRefHit_WvsR
MEP nUnMatchedRecHit_WvsR
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
int region() const
Region id: 0 for Barrel, +/-1 For +/- Endcap.