13 |
|
#include "Geometry/CommonDetUnit/interface/GeomDet.h" |
14 |
|
#include "DataFormats/MuonDetId/interface/RPCDetId.h" |
15 |
|
#include "DataFormats/RPCRecHit/interface/RPCRecHitCollection.h" |
16 |
+ |
#include "DataFormats/RPCDigi/interface/RPCDigiCollection.h" |
17 |
|
#include "DataFormats/DetId/interface/DetIdCollection.h" |
18 |
|
#include "DataFormats/TrackReco/interface/HitPattern.h" |
19 |
|
|
93 |
|
*/ |
94 |
|
// |
95 |
|
TrajectoryStateOnSurface trackAtHit= trackAtSurface.atDetFromClose(rpcDet,hitPosition); |
96 |
< |
if(!trackAtHit.isValid()) std::cout <<" TRAJ NOT VALID! "<< std::endl; |
96 |
> |
// if(!trackAtHit.isValid()) std::cout <<" TRAJ NOT VALID! "<< std::endl; |
97 |
|
if (!trackAtHit.isValid()) continue; |
98 |
|
LocalPoint hitPoint = ih->localPosition(); |
99 |
|
LocalError hitError = ih->localPositionError(); |
129 |
|
return detsHitsCompatibleWithMuon; |
130 |
|
} |
131 |
|
|
132 |
+ |
std::vector<uint32_t> DetHitCompatibleCollector::nDigisCompDets(const std::vector<uint32_t> & detIds, const edm::Event &ev, const edm::EventSetup &es) |
133 |
+ |
{ |
134 |
+ |
std::vector<uint32_t> digisInDets; |
135 |
+ |
edm::Handle<RPCDigiCollection> rpcDigis; |
136 |
+ |
ev.getByLabel("muonRPCDigis", rpcDigis); |
137 |
+ |
|
138 |
+ |
for (std::vector<uint32_t>::const_iterator it = detIds.begin(); it != detIds.end(); ++it) { |
139 |
+ |
const RPCDigiCollection::Range range = rpcDigis->get(*it); |
140 |
+ |
//unsigned int ndigis = (range.second-range.first); |
141 |
+ |
std::map<int, bool> strips; |
142 |
+ |
for (RPCDigiCollection::const_iterator id = range.first; id != range.second; ++id) if (id->bx() == 0) strips[id->strip()] = true; |
143 |
+ |
digisInDets.push_back( strips.size()); |
144 |
+ |
} |
145 |
+ |
return digisInDets; |
146 |
+ |
|
147 |
+ |
} |
148 |
|
std::vector<uint32_t> DetHitCompatibleCollector::compatibleDets( const reco::Muon* muon, const edm::Event &ev, const edm::EventSetup &es, bool deepInside) |
149 |
|
{ |
150 |
|
std::vector<uint32_t> detsCrossedByMuon; |