54 ibook.
book1D(
"clusterBarycenter",
"cluster barycenter;cluster barycenter;#clusters", 7680., 0., 7680.);
55 h_width_ = ibook.
book1D(
"clusterWidth",
"cluster width;cluster width;#clusters", 128, -0.5, 127.5);
57 ibook.
book1D(
"clusterAvgCharge",
"average strip charge;average strip charge;#clusters", 256, -0.5, 255.5);
58 h_isSaturated_ = ibook.
book1D(
"clusterSaturation",
"cluster saturation;is saturated?;#clusters", 3, -1.5, 1.5);
118 compareClusters_(iConfig.getParameter<
bool>(
"compareClusters")),
121 iConfig.getParameter<
edm::
InputTag>(
"ApproxClustersProducer"))) {
139 const auto tkDets = tkGeom->dets();
144 if (!approx_cluster_detsetvector.
isValid()) {
146 <<
"SiStripApproximate cluster collection is not valid!" << std::endl;
157 if (!cluster_detsetvector.
isValid()) {
159 <<
"Requested to perform comparison, but regular SiStrip cluster collection is not valid!" << std::endl;
166 int nApproxClusters{0};
171 const auto& detid = detClusters.
detId();
177 strip_clusters_detset = (*isearch);
180 for (
const auto& cluster : detClusters) {
189 auto det = std::find_if(tkDets.begin(), tkDets.end(), [detid](
auto& elem) ->
bool {
190 return (elem->geographicalId().rawId() == detid);
199 for (
const auto&
stripCluster : strip_clusters_detset) {
217 if (closestCluster) {
243 h_nclusters_ = ibook.
book1D(
"numberOfClusters",
"total N. of clusters;N. of clusters;#clusters", 500., 0., 500000.);
254 ibook.
book1D(
"deltaBarycenter",
"#Delta barycenter;#Delta barycenter;cluster pairs", 101, -50.5, 50.5);
255 h_deltaSize_ = ibook.
book1D(
"deltaSize",
"#Delta size;#Delta size;cluster pairs", 201, -100.5, 100.5);
256 h_deltaCharge_ = ibook.
book1D(
"deltaCharge",
"#Delta charge;#Delta charge;cluster pairs", 401, -200.5, 200.5);
259 ibook.
book1D(
"deltaFirstStrip",
"#Delta FirstStrip; #Delta firstStrip;cluster pairs", 101, -50.5, 50.5);
261 ibook.
book1D(
"deltaEndStrip",
"#Delta EndStrip; #Delta endStrip; cluster pairs", 101, -50.5, 50.5);
263 h_isMatched_ = ibook.
book1D(
"isClusterMatched",
"cluster matching;is matched?;#clusters", 3, -1.5, 1.5);
272 desc.setComment(
"Monitor SiStripApproximateCluster collection and compare with regular SiStrip clusters");
273 desc.add<
bool>(
"compareClusters",
false)->setComment(
"if true, will compare with regualr Strip clusters");
275 ->setComment(
"approxmate clusters collection");
277 ->setComment(
"regular clusters collection");
278 desc.add<
std::string>(
"folder",
"SiStripApproximateClusters")->setComment(
"Top Level Folder");
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)
T getParameter(std::string const &) const
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
siStripRawPrime::monitorApproxCluster unMatchedClusters
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
virtual void setCurrentFolder(std::string const &fullpath)
MonitorElement * h_deltaFirstStrip_
T const * product() const
cms_uint8_t width() const
dqm::reco::MonitorElement * h_width_
dqm::reco::MonitorElement * h_barycenter_
MonitorElement * h_isMatched_
Log< level::Error, false > LogError
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
dqm::reco::MonitorElement * h_avgCharge_
nStrips
1.2 is to make the matching window safely the two nearest strips 0.35 is the size of an ME0 chamber i...
cms_uint8_t avgCharge() const
void fill(const SiStripApproximateCluster &cluster)
MonitorElement * h_deltaSize_
virtual const StripTopology & specificTopology() const
Returns a reference to the strip proxy topology.
Abs< T >::type abs(const T &t)
#define DEFINE_FWK_MODULE(type)
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > stripClustersToken_
MonitorElement * h_deltaBarycenter_
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > tkGeomToken_
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
MonitorElement * h_deltaCharge_
SiStripMonitorApproximateCluster(const edm::ParameterSet &)
~SiStripMonitorApproximateCluster() override=default
siStripRawPrime::monitorApproxCluster allClusters
const edmNew::DetSetVector< SiStripCluster > * stripClusterCollection_
const_iterator find(id_type i, bool update=false) const
MonitorElement * h_deltaEndStrip_
edm::EDGetTokenT< edmNew::DetSetVector< SiStripApproximateCluster > > approxClustersToken_
cms_uint16_t barycenter() const
void analyze(const edm::Event &, const edm::EventSetup &) override
dqm::reco::MonitorElement * h_isSaturated_
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
MonitorElement * h_nclusters_
void book(dqm::implementation::DQMStore::IBooker &ibook, const std::string &folder)
siStripRawPrime::monitorApproxCluster matchedClusters