77 virtual void endJob()
override ;
121 m_digicollectionToken(consumes<edm::DetSetVector<
SiStripRawDigi> >(iConfig.getParameter<edm::
InputTag>(
"digiCollection"))),
124 m_digibadmodulecollectionToken(consumes<
DetIdCollection>(iConfig.getParameter<edm::
InputTag>(
"badModuleDigiCollection"))),
125 m_phasepart(iConfig.getUntrackedParameter<std::
string>(
"phasePartition",
"None")),
126 m_ignorebadfedmod(iConfig.getParameter<bool>(
"ignoreBadFEDMod")),
127 m_ignorenotconnected(iConfig.getParameter<bool>(
"ignoreNotConnected")),
137 m_rhm(consumesCollector()),
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";
227 if(apvphase.isValid() && !apvphase.failedToGet()) {
247 for(
unsigned int isel=0;isel<
m_selections.size(); ++isel) {
249 unsigned int strip = 0;
252 LogDebug(
"StripNumber") <<
"Strip number " << strip;
254 ((conns.size() > strip/2) && conns[strip/2] && conns[strip/2]->isConnected())) {
257 if(isphaseok)
m_cmvsdbxincycle[isel]->Fill(he->deltaBXinCycle(thephase),digi->adc());
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)
virtual void endRun(const edm::Run &, const edm::EventSetup &) override
virtual 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)
virtual 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
virtual void beginJob() override
const std::vector< const FedChannelConnection * > & getConnections(uint32_t det_id) const
const bool m_ignorenotconnected
std::vector< TProfile ** > m_cmvsorbitrun
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
m_rhm(consumesCollector())
virtual void endJob() override
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
std::vector< std::string > m_labels
void beginRun(const edm::Run &iRun)
T const * product() const
std::vector< DetIdSelector > m_selections
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)
edm::EDGetTokenT< APVCyclePhaseCollection > m_apvphasecollToken