142 std::vector<edm::ParameterSet> selconfigs = iConfig.
getParameter<std::vector<edm::ParameterSet> >(
"selections");
144 for (std::vector<edm::ParameterSet>::const_iterator selconfig = selconfigs.begin(); selconfig != selconfigs.end();
153 m_cmdist.push_back(tfserv->
make<TH1D>(hname.c_str(), htitle.c_str(), 1024, -0.5, 1024 - 0.5));
154 m_cmdist.back()->GetXaxis()->SetTitle(
"ADC");
158 std::string htitle = label +
" Number of Modules with CM value";
159 m_nmodules.push_back(tfserv->
make<TH1D>(hname.c_str(), htitle.c_str(), 20000, -0.5, 20000 - 0.5));
160 m_nmodules.back()->GetXaxis()->SetTitle(
"#modules");
164 std::string htitle = label +
" Number of APVs with CM value";
165 m_napvs.push_back(tfserv->
make<TH1D>(hname.c_str(), htitle.c_str(), 2000, -0.5, 80000 - 0.5));
166 m_napvs.back()->GetXaxis()->SetTitle(
"#apvs");
170 std::string htitle = label +
" Common Mode vs DBX in Cycle";
171 m_cmvsdbxincycle.push_back(tfserv->
make<TProfile>(hname.c_str(), htitle.c_str(), 1000, -0.5, 1000 - 0.5));
182 std::string htitle = label +
" Common Mode vs Orbit";
233 for (
unsigned int isel = 0; isel <
m_selections.size(); ++isel) {
235 unsigned int strip = 0;
240 ((conns.size() > strip / 2) && conns[strip / 2] && conns[strip / 2]->isConnected())) {
249 }
else if (digi->adc() > 0) {
251 <<
" Non zero CM in " <<
mod->detId() <<
" APV " << strip <<
" with " << conns.size()
252 <<
" connections and connection pointer" << conns[strip / 2];
259 for (
unsigned int isel = 0; isel <
m_selections.size(); ++isel) {
261 m_napvs[isel]->Fill(napvs[isel]);
268 for (std::vector<TProfile**>::const_iterator cmvsbx =
m_cmvsbxrun.begin(); cmvsbx !=
m_cmvsbxrun.end(); ++cmvsbx) {
269 if (*cmvsbx && *(*cmvsbx)) {
270 (*(*cmvsbx))->GetXaxis()->SetTitle(
"BX");
271 (*(*cmvsbx))->GetYaxis()->SetTitle(
"CM (ADC counts)");
276 if (*cmvsorbit && *(*cmvsorbit)) {
277 (*(*cmvsorbit))->GetXaxis()->SetTitle(
"orbit");
278 (*(*cmvsorbit))->GetYaxis()->SetTitle(
"CM (ADC counts)");
279 (*(*cmvsorbit))->SetCanExtend(TH1::kXaxis);
std::vector< TH1D * > m_nmodules
T getParameter(std::string const &) const
void updateDetCabling(const edm::EventSetup &setup)
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
const_iterator end() const
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)
uint32_t m_cacheIdDet
DB cache ID used to establish if the cabling has changed during the run.
const std::string m_phasepart
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
const std::vector< const FedChannelConnection * > & getConnections(uint32_t det_id) const
#define DEFINE_FWK_MODULE(type)
const bool m_ignorenotconnected
const int getPhase(const std::string partition) const
std::vector< TProfile ** > m_cmvsorbitrun
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
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
const bool m_ignorebadfedmod
const_iterator begin() const
~CommonModeAnalyzer() override
std::vector< std::string > m_labels
void beginRun(const edm::Run &iRun)
std::vector< DetIdSelector > m_selections
long long deltaBXinCycle(const unsigned int ev2, const unsigned int ev1, const int bx0) const
std::vector< TProfile * > m_cmvsdbxincycle
edm::EDGetTokenT< DetIdCollection > m_digibadmodulecollectionToken
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)
T const * product() const
edm::EDGetTokenT< APVCyclePhaseCollection > m_apvphasecollToken