39 const auto& gem_ch_ids =
detIds();
40 for (
const auto&
id : gem_ch_ids) {
43 edm::LogInfo(
"GEMSimHitMatcher") <<
"gemchid " <<
GEMDetId(
id) <<
": nHits " << gem_simhits.size() <<
" phi " 53 for (
const auto&
id : gem_sch_ids) {
57 << gem_simhits.size() <<
" " << gem_simhits_gp.phi() <<
" " 66 if (
h.trackId() != track_id)
71 int pdgid =
h.particleType();
89 const auto& detids =
detIds();
91 for (
const auto&
d : detids) {
97 for (
const auto&
h :
hits) {
99 pads.insert(static_cast<int>(roll->padTopology().channel(lp)));
105 for (
const auto&
d : detids) {
107 if (
id1.layer() != 1)
117 for (
const auto&
h : hits1) {
119 pads1.insert(static_cast<int>(roll1->padTopology().channel(lp)));
121 edm::LogInfo(
"GEMSimHitMatcher") <<
"GEMHits detid1 " <<
id1 <<
" pad1 " 122 <<
static_cast<int>(roll1->padTopology().channel(lp)) << std::endl;
126 for (
const auto& d2 : detids) {
135 for (
const auto&
h : hits2) {
137 pads2.insert(static_cast<int>(roll2->padTopology().channel(lp)));
139 edm::LogInfo(
"GEMSimHitMatcher") <<
"GEMHits detid2 " <<
id2 <<
" pad2 " 140 <<
static_cast<int>(roll2->padTopology().channel(lp)) << std::endl;
144 for (
const auto&
pad1 : pads1) {
145 for (
const auto&
pad2 : pads2) {
147 if (copads.find(
pad1) == copads.end())
149 if (copads.find(
pad2) == copads.end())
164 std::set<unsigned int>
result;
166 const auto&
id =
p.first;
178 std::set<unsigned int>
result;
185 std::set<unsigned int>
result;
187 const auto&
id =
p.first;
199 std::set<unsigned int>
result;
206 std::set<unsigned int>
result;
226 set<int> layers_with_hits;
228 for (
const auto&
h :
hits) {
230 layers_with_hits.insert(idd.layer());
232 return layers_with_hits.size();
253 if (sim_hits.empty())
258 for (
const auto&
h : sim_hits) {
266 edm::LogWarning(
"GEMSimHitMatcher") <<
"warning! find more than one simhits in GEM chamber " << std::endl;
274 if (sim_hits.empty())
279 for (
const auto&
h : sim_hits) {
281 const auto&
d =
h.detUnitId();
298 static_cast<int>(
dynamic_cast<const GEMGeometry*
>(
geometry_)->etaPartition(
id)->topology().channel(lp));
299 int smin = central_strip - margin_n_strips;
300 smin = (smin > 0) ? smin : 0;
301 int smax = central_strip + margin_n_strips;
302 smax = (smax <= max_nstrips) ? smax : max_nstrips;
303 for (
int ss = smin;
ss <= smax; ++
ss)
326 const auto& detids =
detIds();
327 for (
const auto&
id : detids) {
336 const auto& pad_ids =
detIds();
337 for (
const auto&
id : pad_ids) {
346 for (
const auto&
id : copad_ids) {
constexpr int station() const
int nLayersWithHitsInSuperChamber(unsigned int) const
T getParameter(std::string const &) const
const TrackingGeometry * geometry_
std::map< unsigned int, std::set< int > > detids_to_pads_
void init(const edm::Event &e, const edm::EventSetup &eventSetup)
initialize the event
edm::PSimHitContainer hits_
const edm::PSimHitContainer & hitsInSuperChamber(unsigned int) const
std::set< unsigned int > detIdsCoincidences() const
std::set< int > hitStripsInDetId(unsigned int, int margin_n_strips=1) const
std::map< unsigned int, edm::PSimHitContainer > detid_to_hits_
GlobalPoint simHitsMeanPosition(const edm::PSimHitContainer &sim_hits) const
edm::ESGetToken< GEMGeometry, MuonGeometryRecord > geomToken_
bool hitStation(int, int) const
ParameterSet const & getParameterSet(std::string const &) const
GEMSimHitMatcher(const edm::ParameterSet &iPS, edm::ConsumesCollector &&iC)
static int toGEMType(int st, int ri)
std::vector< unsigned > track_ids_
int nCoincidencePadsWithHits() const
int nStations(int nl=2) const
std::set< unsigned int > superChamberIds() const
edm::PSimHitContainer simHits_
edm::ParameterSet simHitPSet_
std::set< int > hitPartitions() const
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
std::map< unsigned int, edm::PSimHitContainer > superchamber_to_hits_
std::map< unsigned int, edm::PSimHitContainer > chamber_to_hits_
Abs< T >::type abs(const T &t)
constexpr int ring() const
std::set< int > hitCoPadsInDetId(unsigned int) const
bool getData(T &iHolder) const
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
Log< level::Info, false > LogInfo
edm::PSimHitContainer no_hits_
std::set< unsigned int > detIds(int gem_type=MuonHitHelper::GEM_ALL) const
std::set< int > hitPadsInDetId(unsigned int) const
virtual const GeomDet * idToDet(DetId) const =0
constexpr uint32_t rawId() const
get the raw id
float simHitsMeanStrip(const edm::PSimHitContainer &sim_hits) const
std::map< unsigned int, std::set< int > > detids_to_copads_
void match(const SimTrack &t, const SimVertex &v)
do the matching
std::set< unsigned int > chamberIds(int gem_type=MuonHitHelper::GEM_ALL) const
static bool isGEM(unsigned int detId)
edm::EDGetTokenT< edm::PSimHitContainer > simHitInput_
void matchSimHitsToSimTrack()
float simHitsGEMCentralPosition(const edm::PSimHitContainer &sim_hits) const
int nPadsWithHits() const
constexpr GEMDetId superChamberId() const
const edm::PSimHitContainer & hitsInDetId(unsigned int) const
constexpr int roll() const
void match(const SimTrack &t, const SimVertex &v)
do the matching
strips
#turn off noise in all subdetectors simHcalUnsuppressedDigis.doNoise = False mix.digitizers.hcal.doNoise = False simEcalUnsuppressedDigis.doNoise = False mix.digitizers.ecal.doNoise = False simEcalUnsuppressedDigis.doESNoise = False simSiPixelDigis.AddNoise = False mix.digitizers.pixel.AddNoise = False simSiStripDigis.Noise = False mix.digitizers.strip.AddNoise = False
std::vector< PSimHit > PSimHitContainer
void init(const edm::Event &e, const edm::EventSetup &eventSetup)
initialize the event
Log< level::Warning, false > LogWarning
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
std::set< unsigned int > superChamberIdsCoincidences() const