118 : m_digicollectionToken(
122 m_digibadmodulecollectionToken(
124 m_phasepart(iConfig.getUntrackedParameter<std::
string>(
"phasePartition",
"None")),
125 m_ignorebadfedmod(iConfig.getParameter<bool>(
"ignoreBadFEDMod")),
126 m_ignorenotconnected(iConfig.getParameter<bool>(
"ignoreNotConnected")),
136 m_rhm(consumesCollector()),
144 std::vector<edm::ParameterSet> selconfigs = iConfig.
getParameter<std::vector<edm::ParameterSet> >(
"selections");
146 for (std::vector<edm::ParameterSet>::const_iterator selconfig = selconfigs.begin(); selconfig != selconfigs.end();
155 m_cmdist.push_back(tfserv->
make<TH1D>(hname.c_str(), htitle.c_str(), 1024, -0.5, 1024 - 0.5));
156 m_cmdist.back()->GetXaxis()->SetTitle(
"ADC");
160 std::string htitle = label +
" Number of Modules with CM value";
161 m_nmodules.push_back(tfserv->
make<TH1D>(hname.c_str(), htitle.c_str(), 20000, -0.5, 20000 - 0.5));
162 m_nmodules.back()->GetXaxis()->SetTitle(
"#modules");
166 std::string htitle = label +
" Number of APVs with CM value";
167 m_napvs.push_back(tfserv->
make<TH1D>(hname.c_str(), htitle.c_str(), 2000, -0.5, 80000 - 0.5));
168 m_napvs.back()->GetXaxis()->SetTitle(
"#apvs");
172 std::string htitle = label +
" Common Mode vs DBX in Cycle";
173 m_cmvsdbxincycle.push_back(tfserv->
make<TProfile>(hname.c_str(), htitle.c_str(), 1000, -0.5, 1000 - 0.5));
184 std::string htitle = label +
" Common Mode vs Orbit";
217 if (apvphase.isValid() && !apvphase.failedToGet()) {
235 for (
unsigned int isel = 0; isel <
m_selections.size(); ++isel) {
237 unsigned int strip = 0;
242 ((conns.size() > strip / 2) && conns[strip / 2] && conns[strip / 2]->isConnected())) {
251 }
else if (digi->adc() > 0) {
253 <<
" Non zero CM in " <<
mod->detId() <<
" APV " << strip <<
" with " << conns.size()
254 <<
" connections and connection pointer" << conns[strip / 2];
261 for (
unsigned int isel = 0; isel <
m_selections.size(); ++isel) {
263 m_napvs[isel]->Fill(napvs[isel]);
270 for (std::vector<TProfile**>::const_iterator cmvsbx =
m_cmvsbxrun.begin(); cmvsbx !=
m_cmvsbxrun.end(); ++cmvsbx) {
271 if (*cmvsbx && *(*cmvsbx)) {
272 (*(*cmvsbx))->GetXaxis()->SetTitle(
"BX");
273 (*(*cmvsbx))->GetYaxis()->SetTitle(
"CM (ADC counts)");
278 if (*cmvsorbit && *(*cmvsorbit)) {
279 (*(*cmvsorbit))->GetXaxis()->SetTitle(
"orbit");
280 (*(*cmvsorbit))->GetYaxis()->SetTitle(
"CM (ADC counts)");
281 (*(*cmvsorbit))->SetCanExtend(TH1::kXaxis);
static const std::string kSharedResource
std::vector< TH1D * > m_nmodules
void endRun(const edm::Run &, const edm::EventSetup &) override
void analyze(const edm::Event &, const edm::EventSetup &) override
std::vector< TProfile ** > m_cmvsbxrun
bool getByToken(EDGetToken token, Handle< PROD > &result) const
std::vector< TH1D * > m_cmdist
#define DEFINE_FWK_MODULE(type)
void beginRun(const edm::Run &, const edm::EventSetup &) override
int bunchCrossing() const
const SiStripDetCabling * m_detCabling
The cabling object.
T * make(const Args &...args) const
make new ROOT object
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
edm::ESGetToken< SiStripDetCabling, SiStripDetCablingRcd > m_detCablingToken
const std::string m_phasepart
const std::vector< const FedChannelConnection * > & getConnections(uint32_t det_id) const
const bool m_ignorenotconnected
ProductT const & get(ESGetToken< ProductT, DepRecordT > const &iToken) const
std::vector< TProfile ** > m_cmvsorbitrun
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
m_rhm(consumesCollector())
TProfile ** makeTProfile(const char *name, const char *title, const unsigned int nbinx, const double xmin, const double xmax)
CommonModeAnalyzer(const edm::ParameterSet &)
edm::EDGetTokenT< EventWithHistory > m_historyProductToken
RunHistogramManager m_rhm
edm::EDGetTokenT< edm::DetSetVector< SiStripRawDigi > > m_digicollectionToken
edm::ESWatcher< SiStripDetCablingRcd > m_detCablingWatcher
const bool m_ignorebadfedmod
Log< level::Info, false > LogInfo
~CommonModeAnalyzer() override
std::vector< std::string > m_labels
void beginRun(const edm::Run &iRun)
T getParameter(std::string const &) const
bool isSelected(const std::vector< L1HPSPFTauQualityCut > &qualityCuts, const l1t::PFCandidate &pfCand, float_t primaryVertexZ)
bool check(const edm::EventSetup &iSetup)
std::vector< DetIdSelector > m_selections
std::vector< TProfile * > m_cmvsdbxincycle
edm::EDGetTokenT< DetIdCollection > m_digibadmodulecollectionToken
void updateDetCabling(const SiStripDetCablingRcd &iRcd)
Log< level::Warning, false > LogWarning
collection_type::const_iterator const_iterator
collection_type::const_iterator const_iterator
std::vector< TH1D * > m_napvs
A Digi for the silicon strip detector, containing only adc information, and suitable for storing raw ...
T mod(const T &a, const T &b)
edm::EDGetTokenT< APVCyclePhaseCollection > m_apvphasecollToken