26 edm::LogError(
"GEMDigiMatcher")<<
"Copad is missing from collections.Pass copad.";
47 for (
auto id: det_ids)
55 cout<<
"hit_strips_fat ";
56 copy(hit_strips.begin(), hit_strips.end(), ostream_iterator<int>(
cout,
" "));
60 auto digis_in_det = digis.get(
GEMDetId(
id));
62 for (
auto d = digis_in_det.first;
d != digis_in_det.second; ++
d)
68 if (hit_strips.find(
d->strip()) == hit_strips.end())
continue;
87 for (
auto id: det_ids)
93 auto pads_in_det = pads.get(p_id);
97 cout<<
"checkpads "<<hit_pads.size()<<
" "<<
std::distance(pads_in_det.first, pads_in_det.second)<<
" hit_pads: ";
98 copy(hit_pads.begin(), hit_pads.end(), ostream_iterator<int>(
cout,
" "));
102 for (
auto pad = pads_in_det.first; pad != pads_in_det.second; ++pad)
109 if (hit_pads.find(pad->pad()) == hit_pads.end())
continue;
125 for (
auto id: det_ids)
131 auto co_pads_in_det = co_pads.get(p_id);
133 for (
auto pad = co_pads_in_det.first; pad != co_pads_in_det.second; ++pad)
139 if (hit_co_pads.find(pad->pad(1)) == hit_co_pads.end())
continue;
140 if (hit_co_pads.find(pad->pad(2)) == hit_co_pads.end())
continue;
151 std::set<unsigned int>
154 std::set<unsigned int>
result;
160 std::set<unsigned int>
163 std::set<unsigned int>
result;
167 std::set<unsigned int>
170 std::set<unsigned int>
result;
174 std::set<unsigned int>
177 std::set<unsigned int>
result;
181 std::set<unsigned int>
184 std::set<unsigned int>
result;
188 std::set<unsigned int>
191 std::set<unsigned int>
result;
195 std::set<unsigned int>
198 std::set<unsigned int>
result;
272 layers.insert(idd.
layer());
274 return layers.size();
286 layers.insert(idd.
layer());
288 return layers.size();
360 for (
auto id: detids)
363 result.insert( idd.
roll() );
374 for (
auto id: detids)
377 result.insert( idd.
roll() );
std::set< unsigned int > detIdsGEM() const
GEM partitions' detIds with SimHits.
const DigiContainer & digisInChamber(unsigned int) const
T getUntrackedParameter(std::string const &, T const &) const
std::set< int > padNumbersInDetId(unsigned int) const
std::map< unsigned int, DigiContainer > detid_to_pads_
std::set< unsigned int > superChamberIdsWithPads() const
std::set< unsigned int > detIds() const
std::vector< LayerSetAndLayers > layers(const SeedingLayerSetsHits &sets)
const DigiContainer no_digis_
const SimHitMatcher & simhit_matcher_
edm::Handle< GEMPadDigiCollection > gem_pads_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
std::set< int > stripNumbersInDetId(unsigned int) const
std::set< int > partitionNumbers() const
std::set< int > hitStripsInDetId(unsigned int, int margin_n_strips=0) const
const DigiContainer & padsInDetId(unsigned int) const
void matchPadsToSimTrack(const GEMPadDigiCollection &pads)
edm::Handle< GEMDigiCollection > gem_digis_
std::vector< Digi > DigiContainer
int chamber() const
Chamber id: it identifies a chamber in a ring it goes from 1 to 36.
std::map< unsigned int, DigiContainer > superchamber_to_copads_
std::map< unsigned int, DigiContainer > chamber_to_digis_
std::set< unsigned int > superChamberIds() const
void matchDigisToSimTrack(const GEMDigiCollection &digis)
GEMDetId chamberId() const
Return the corresponding ChamberId.
uint32_t rawId() const
get the raw id
const DigiContainer & digisInSuperChamber(unsigned int) const
std::map< unsigned int, DigiContainer > detid_to_digis_
const DigiContainer & padsInSuperChamber(unsigned int) const
const DigiContainer & digisInDetId(unsigned int) const
std::set< int > partitionNumbersWithCoPads() const
std::set< int > hitPadsInDetId(unsigned int) const
std::map< unsigned int, DigiContainer > superchamber_to_pads_
int layer() const
Layer id: each station have two layers of chambers: layer 1 is the inner chamber and layer 2 is the o...
int station() const
Station id : the station is the pair of chambers at same disk.
const DigiContainer & coPadsInSuperChamber(unsigned int) const
std::set< unsigned int > detIdsGEMCoincidences() const
int nLayersWithDigisInSuperChamber(unsigned int) const
int region() const
Region id: 0 for Barrel Not in use, +/-1 For +/- Endcap.
const DigiContainer & coPadsInDetId(unsigned int) const
std::map< unsigned int, DigiContainer > superchamber_to_digis_
std::set< unsigned int > superChamberIdsWithCoPads() const
T const * product() const
std::map< unsigned int, DigiContainer > detid_to_copads_
const DigiContainer & padsInChamber(unsigned int) const
GEMDigiMatcher(const SimHitMatcher &sh, const edm::Event &, const GEMGeometry &geom, const edm::ParameterSet &cfg, edm::EDGetToken &, edm::EDGetToken &, edm::EDGetToken &)
std::set< unsigned int > detIdsWithCoPads() const
int digi_channel(const Digi &d)
std::set< unsigned int > chamberIdsWithPads() const
int nLayersWithPadsInSuperChamber(unsigned int) const
std::set< unsigned int > chamberIds() const
edm::Handle< GEMCoPadDigiCollection > gem_co_pads_
std::map< unsigned int, DigiContainer > chamber_to_pads_
int nPads() const
How many pads in GEM did this simtrack get in total?
void matchCoPadsToSimTrack(const GEMCoPadDigiCollection &co_pads)
std::set< int > hitCoPadsInDetId(unsigned int) const
std::set< int > coPadNumbersInDetId(unsigned int) const
void init(const edm::Event &)
unsigned int digi_id(const Digi &d)
int nCoPads() const
How many coincidence pads in GEM did this simtrack get in total?