20 desc.add<
int>(
"idxFirstDigi", 0);
21 desc.add<
int>(
"numDivideEtaPartitionInRPhi", 10);
22 desc.add<
int>(
"clsMax", 10);
23 desc.add<
int>(
"ClusterSizeBinNum", 9);
27 descriptions.
add(
"GEMRecHitSource",
desc);
31 std::vector<GEMDetId> listLayerOcc;
44 MEMap3Inf(
this,
"occ_xy",
"RecHit xy Occupancy", 160, -250, 250, 160, -250, 250,
"X [cm]",
"Y [cm]");
47 MEMap3Inf(
this,
"occ_phi",
"RecHit Phi Occupancy", 72, -5, 355,
"#phi (degree)",
"Number of RecHits");
50 "Total number of RecHits per event for each layers",
59 "Total number of RecHits per event for each eta partitions",
67 this,
"cls",
"Cluster size of RecHits",
nCLSMax_, 0.5,
nCLSMax_ + 0.5,
"Cluster size",
"Number of RecHits");
70 "Average of Cluster Sizes",
82 this,
"largeCls_occ",
"Occupancy of Large Clusters (>5)", 36, 0.5, 36.5, 8, 0.5, 8.5,
"Chamber",
"iEta");
85 this,
"cls",
"Cluster size of RecHits",
nCLSMax_, 0.5,
nCLSMax_ + 0.5, 1, 0.5, 1.5,
"Cluster size",
"iEta");
130 Float_t fRangeRadius = (
int)(
std::max(fR1, fR2) * 0.11 + 0.99999) * 10.0;
221 event.getByToken(this->
tagRecHit_, gemRecHits);
227 std::map<ME3IdsKey, Int_t> total_rechit_layer;
228 std::map<ME3IdsKey, Int_t> total_rechit_iEta;
229 std::map<ME4IdsKey, std::map<Int_t, Bool_t>> mapCLSOver5;
233 ME3IdsKey key3{gid.region(), gid.station(), gid.layer()};
234 ME4IdsKey key4Ch{gid.region(), gid.station(), gid.layer(), gid.chamber()};
240 ME4IdsKey key4IEta{gid.region(), gid.station(), gid.layer(), eId.
ieta()};
242 Int_t nEtaModule = eId.
ieta();
243 if (gid.station() == 2) {
244 nEtaModule =
getIdxModule(2, 24 - (nEtaModule - 1) / 4);
246 ME4IdsKey key4IEtaMod{gid.region(), gid.station(), gid.layer(), nEtaModule};
248 if (total_rechit_layer.find(key3) == total_rechit_layer.end())
249 total_rechit_layer[key3] = 0;
251 const auto& recHitsRange =
gemRecHits->get(eId);
264 Float_t fPhi = recHitGP.
phi();
266 Float_t fPhiDeg = fPhiShift * 180.0 /
M_PI;
270 total_rechit_layer[key3]++;
271 total_rechit_iEta[key3IEta]++;
274 Int_t nCLS =
hit->clusterSize();
280 mapCLSOver5[key4IEtaMod][
chamber] =
true;
284 for (
auto [
key, num_total_rechit] : total_rechit_layer) {
287 for (
auto [
key, num_total_rechit] : total_rechit_iEta) {
290 for (
auto [
key, mapSub] : mapCLSOver5) {
void analyze(edm::Event const &e, edm::EventSetup const &eSetup) override
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
MEMapInfT< MEMap4Ids, ME4IdsKey > MEMap4Inf
int ProcessWithMEMap3WithChamber(BookingHelper &bh, ME4IdsKey key) override
int getIdxModule(const int, const int)
std::vector< GEMDetId > listChamberId_
virtual void setCurrentFolder(std::string const &fullpath)
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
MEMapInfT< MEMap3Ids, ME3IdsKey > MEMap3Inf
Geom::Phi< T > phi() const
int initGeometry(edm::EventSetup const &iSetup)
std::tuple< Int_t, Int_t, Int_t, Int_t > ME4IdsKey
const GeomDet * idToDet(DetId) const override
int ProcessWithMEMap3(BookingHelper &bh, ME3IdsKey key) override
GEMRecHitSource(const edm::ParameterSet &cfg)
std::map< ME3IdsKey, MEStationInfo > mapStationInfo_
void SetBinHighEdgeX(Double_t dXH)
Log< level::Error, false > LogError
std::vector< Float_t > listRadiusOddChamber_
MEMap3Inf mapRecHitOcc_ieta_
int Fill(K key, Double_t x)
int nNumDivideEtaPartitionInRPhi_
std::string log_category_
MEMap3Inf mapRecHitXY_layer_
MEMap3Inf mapTotalRecHitPerEvtIEta_
void SetBinLowEdgeX(Double_t dXL)
int GenerateMEPerChamber(DQMStore::IBooker &ibooker)
std::vector< Float_t > listRadiusEvenChamber_
Float_t restrictAngle(const Float_t fTheta, const Float_t fStart)
Abs< T >::type abs(const T &t)
edm::EDGetToken tagRecHit_
void SetBinHighEdgeY(Double_t dYH)
#define DEFINE_FWK_MODULE(type)
MEMap3Inf mapRecHitOcc_phi_
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
int keyToStation(ME2IdsKey key)
std::string strFolderMain_
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
constexpr int ieta() const
MEMap3Inf mapCLSRecHit_ieta_
const GEMGeometry * GEMGeometry_
virtual void setYTitle(std::string const &title)
MEMap3Inf mapTotalRecHitPerEvtLayer_
void SetNoUnderOverflowBin()
int ProcessWithMEMap2AbsReWithEta(BookingHelper &bh, ME3IdsKey key) override
int SetLabelForIEta(K key, Int_t nAxis, Int_t nNumBin=-1)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
DQMStore::IBooker * getBooker()
std::string getNameDirLayer(ME3IdsKey key3)
int bookND(BookingHelper &bh, K key)
ME3IdsKey key4Tokey3(ME4IdsKey key)
std::map< GEMDetId, std::vector< const GEMEtaPartition * > > mapEtaPartition_
std::tuple< Int_t, Int_t, Int_t > ME3IdsKey
void SetBinConfX(Int_t nBins, Double_t dL=0.5, Double_t dH=-1048576.0)
int ProcessWithMEMap2WithEta(BookingHelper &bh, ME3IdsKey key) override
void SetBinConfY(Int_t nBins, Double_t dL=0.5, Double_t dH=-1048576.0)
int keyToIEta(ME3IdsKey key)
dqm::impl::MonitorElement * FindHist(K key)
int SetLabelForChambers(K key, Int_t nAxis, Int_t nNumBin=-1, Int_t nIdxStart=1, Int_t nNumModules=1)
void SetBinLowEdgeY(Double_t dYL)