145 std::vector<edm::ParameterSet> selconfigs = iConfig.
getParameter<std::vector<edm::ParameterSet> >(
"selections");
147 for(std::vector<edm::ParameterSet>::const_iterator selconfig=selconfigs.begin();selconfig!=selconfigs.end();++selconfig) {
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));
183 std::string htitle = label +
" Common Mode vs Orbit";
247 for(
unsigned int isel=0;isel<
m_selections.size(); ++isel) {
249 unsigned int strip = 0;
254 ((conns.size() > strip/2) && conns[strip/2] && conns[strip/2]->isConnected())) {
261 else if(digi->adc()>0) {
263 <<
mod->detId() <<
" APV " << strip
264 <<
" with " << conns.size()
265 <<
" connections and connection pointer" << conns[strip/2];
272 for(
unsigned int isel=0;isel <
m_selections.size(); ++isel) {
274 m_napvs[isel]->Fill(napvs[isel]);
285 for(std::vector<TProfile**>::const_iterator cmvsbx=
m_cmvsbxrun.begin();cmvsbx!=
m_cmvsbxrun.end();++cmvsbx) {
286 if(*cmvsbx && *(*cmvsbx)) {
287 (*(*cmvsbx))->GetXaxis()->SetTitle(
"BX"); (*(*cmvsbx))->GetYaxis()->SetTitle(
"CM (ADC counts)");
291 if(*cmvsorbit && *(*cmvsorbit)) {
292 (*(*cmvsorbit))->GetXaxis()->SetTitle(
"orbit"); (*(*cmvsorbit))->GetYaxis()->SetTitle(
"CM (ADC counts)");
293 (*(*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.
def setup(process, global_tag, zero_tesla=False)
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