17 : simhit_matcher_(sh), gem_geo_(geom) {
47 for (
auto id : det_ids) {
53 cout <<
"hit_strips_fat ";
54 copy(hit_strips.begin(), hit_strips.end(), ostream_iterator<int>(
cout,
" "));
58 auto digis_in_det = digis.get(
GEMDetId(
id));
60 for (
auto d = digis_in_det.first;
d != digis_in_det.second; ++
d) {
62 cout <<
"gdigi " << p_id <<
" " << *
d << endl;
67 if (hit_strips.find(
d->strip()) == hit_strips.end())
70 cout <<
"oki" << endl;
86 for (
auto id : det_ids) {
91 auto pads_in_det = pads.get(p_id);
94 cout <<
"checkpads " << hit_pads.size() <<
" " <<
std::distance(pads_in_det.first, pads_in_det.second)
96 copy(hit_pads.begin(), hit_pads.end(), ostream_iterator<int>(
cout,
" "));
100 for (
auto pad = pads_in_det.first; pad != pads_in_det.second; ++pad) {
102 cout <<
"chp " << *pad << endl;
107 cout <<
"chp1" << endl;
109 if (hit_pads.find(pad->pad()) == hit_pads.end())
112 cout <<
"chp2" << endl;
124 for (
auto id : det_ids) {
129 auto co_pads_in_det = co_pads.get(p_id);
131 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())
141 if (hit_co_pads.find(pad->pad(2)) == hit_co_pads.end())
154 std::set<unsigned int>
result;
156 result.insert(
p.first);
161 std::set<unsigned int>
result;
163 result.insert(
p.first);
167 std::set<unsigned int>
result;
169 result.insert(
p.first);
173 std::set<unsigned int>
result;
175 result.insert(
p.first);
179 std::set<unsigned int>
result;
181 result.insert(
p.first);
185 std::set<unsigned int>
result;
187 result.insert(
p.first);
191 std::set<unsigned int>
result;
193 result.insert(
p.first);
248 for (
auto &
d : digis) {
250 layers.insert(idd.
layer());
252 return layers.size();
258 for (
auto &
d : digis) {
260 layers.insert(idd.
layer());
262 return layers.size();
268 for (
auto id : ids) {
277 for (
auto id : ids) {
286 for (
auto &
d : digis) {
295 for (
auto &
d : digis) {
304 for (
auto &
d : digis) {
314 for (
auto id : detids) {
316 result.insert(idd.
roll());
325 for (
auto id : detids) {
327 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)
constexpr uint32_t rawId() const
get the raw id
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.
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?