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()),
143 std::vector<edm::ParameterSet> selconfigs = iConfig.
getParameter<std::vector<edm::ParameterSet> >(
"selections");
145 for (std::vector<edm::ParameterSet>::const_iterator selconfig = selconfigs.begin(); selconfig != selconfigs.end();
154 m_cmdist.push_back(tfserv->
make<TH1D>(hname.c_str(), htitle.c_str(), 1024, -0.5, 1024 - 0.5));
155 m_cmdist.back()->GetXaxis()->SetTitle(
"ADC");
159 std::string htitle = label +
" Number of Modules with CM value";
160 m_nmodules.push_back(tfserv->
make<TH1D>(hname.c_str(), htitle.c_str(), 20000, -0.5, 20000 - 0.5));
161 m_nmodules.back()->GetXaxis()->SetTitle(
"#modules");
165 std::string htitle = label +
" Number of APVs with CM value";
166 m_napvs.push_back(tfserv->
make<TH1D>(hname.c_str(), htitle.c_str(), 2000, -0.5, 80000 - 0.5));
167 m_napvs.back()->GetXaxis()->SetTitle(
"#apvs");
171 std::string htitle = label +
" Common Mode vs DBX in Cycle";
172 m_cmvsdbxincycle.push_back(tfserv->
make<TProfile>(hname.c_str(), htitle.c_str(), 1000, -0.5, 1000 - 0.5));
183 std::string htitle = label +
" Common Mode vs Orbit";
216 if (apvphase.isValid() && !apvphase.failedToGet()) {
234 for (
unsigned int isel = 0; isel <
m_selections.size(); ++isel) {
236 unsigned int strip = 0;
241 ((conns.size() > strip / 2) && conns[strip / 2] && conns[strip / 2]->isConnected())) {
250 }
else if (digi->adc() > 0) {
252 <<
" Non zero CM in " <<
mod->detId() <<
" APV " << strip <<
" with " << conns.size()
253 <<
" connections and connection pointer" << conns[strip / 2];
260 for (
unsigned int isel = 0; isel <
m_selections.size(); ++isel) {
262 m_napvs[isel]->Fill(napvs[isel]);
269 for (std::vector<TProfile**>::const_iterator cmvsbx =
m_cmvsbxrun.begin(); cmvsbx !=
m_cmvsbxrun.end(); ++cmvsbx) {
270 if (*cmvsbx && *(*cmvsbx)) {
271 (*(*cmvsbx))->GetXaxis()->SetTitle(
"BX");
272 (*(*cmvsbx))->GetYaxis()->SetTitle(
"CM (ADC counts)");
277 if (*cmvsorbit && *(*cmvsorbit)) {
278 (*(*cmvsorbit))->GetXaxis()->SetTitle(
"orbit");
279 (*(*cmvsorbit))->GetYaxis()->SetTitle(
"CM (ADC counts)");
280 (*(*cmvsorbit))->SetCanExtend(TH1::kXaxis);
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