35 checkNoisyChannels =
false;
38 theRecHits4DLabel_ = consumes<DTRecSegment4DCollection>(parameters.getParameter<
std::string>(
"recHits4DLabel"));
53 phiHistos.push_back(ibooker.
book2D(
"phiSegments_numHitsVsWheel",
"phiSegments_numHitsVsWheel", 5, -2.5, 2.5, 20, 0, 20));
54 phiHistos[0]->setBinLabel(1,
"W-2",1);
55 phiHistos[0]->setBinLabel(2,
"W-1",1);
56 phiHistos[0]->setBinLabel(3,
"W0",1);
57 phiHistos[0]->setBinLabel(4,
"W1",1);
58 phiHistos[0]->setBinLabel(5,
"W2",1);
59 phiHistos.push_back(ibooker.
book2D(
"phiSegments_numHitsVsSector",
"phiSegments_numHitsVsSector", 14, 0.5, 14.5, 20, 0, 20));
60 phiHistos[1]->setBinLabel(1,
"Sec1",1);
61 phiHistos[1]->setBinLabel(2,
"Sec2",1);
62 phiHistos[1]->setBinLabel(3,
"Sec3",1);
63 phiHistos[1]->setBinLabel(4,
"Sec4",1);
64 phiHistos[1]->setBinLabel(5,
"Sec5",1);
65 phiHistos[1]->setBinLabel(6,
"Sec6",1);
66 phiHistos[1]->setBinLabel(7,
"Sec7",1);
67 phiHistos[1]->setBinLabel(8,
"Sec8",1);
68 phiHistos[1]->setBinLabel(9,
"Sec9",1);
69 phiHistos[1]->setBinLabel(10,
"Sec10",1);
70 phiHistos[1]->setBinLabel(11,
"Sec11",1);
71 phiHistos[1]->setBinLabel(12,
"Sec12",1);
72 phiHistos[1]->setBinLabel(13,
"Sec13",1);
73 phiHistos[1]->setBinLabel(14,
"Sec14",1);
74 phiHistos.push_back(ibooker.
book2D(
"phiSegments_numHitsVsStation",
"phiSegments_numHitsVsStation", 4, 0.5, 4.5, 20, 0, 20));
75 phiHistos[2]->setBinLabel(1,
"St1",1);
76 phiHistos[2]->setBinLabel(2,
"St2",1);
77 phiHistos[2]->setBinLabel(3,
"St3",1);
78 phiHistos[2]->setBinLabel(4,
"St4",1);
81 thetaHistos.push_back(ibooker.
book2D(
"thetaSegments_numHitsVsWheel",
"thetaSegments_numHitsVsWheel", 5, -2.5, 2.5, 20, 0, 20));
82 thetaHistos[0]->setBinLabel(1,
"W-2",1);
83 thetaHistos[0]->setBinLabel(2,
"W-1",1);
84 thetaHistos[0]->setBinLabel(3,
"W0",1);
85 thetaHistos[0]->setBinLabel(4,
"W1",1);
86 thetaHistos[0]->setBinLabel(5,
"W2",1);
87 thetaHistos.push_back(ibooker.
book2D(
"thetaSegments_numHitsVsSector",
"thetaSegments_numHitsVsSector", 14, 0.5, 14.5, 20, 0, 20));
88 thetaHistos[1]->setBinLabel(1,
"Sec1",1);
89 thetaHistos[1]->setBinLabel(2,
"Sec2",1);
90 thetaHistos[1]->setBinLabel(3,
"Sec3",1);
91 thetaHistos[1]->setBinLabel(4,
"Sec4",1);
92 thetaHistos[1]->setBinLabel(5,
"Sec5",1);
93 thetaHistos[1]->setBinLabel(6,
"Sec6",1);
94 thetaHistos[1]->setBinLabel(7,
"Sec7",1);
95 thetaHistos[1]->setBinLabel(8,
"Sec8",1);
96 thetaHistos[1]->setBinLabel(9,
"Sec9",1);
97 thetaHistos[1]->setBinLabel(10,
"Sec10",1);
98 thetaHistos[1]->setBinLabel(11,
"Sec11",1);
99 thetaHistos[1]->setBinLabel(12,
"Sec12",1);
100 thetaHistos[1]->setBinLabel(13,
"Sec13",1);
101 thetaHistos[1]->setBinLabel(14,
"Sec14",1);
102 thetaHistos.push_back(ibooker.
book2D(
"thetaSegments_numHitsVsStation",
"thetaSegments_numHitsVsStation", 4, 0.5, 4.5, 20, 0, 20));
103 thetaHistos[2]->setBinLabel(1,
"St1",1);
104 thetaHistos[2]->setBinLabel(2,
"St2",1);
105 thetaHistos[2]->setBinLabel(3,
"St3",1);
106 thetaHistos[2]->setBinLabel(4,
"St4",1);
115 if(checkNoisyChannels) {
121 event.getByToken(theRecHits4DLabel_, all4DSegments);
125 for (chamberId = all4DSegments->id_begin(); chamberId != all4DSegments->id_end(); ++chamberId){
128 int nsegm =
distance(range.first, range.second);
130 cout <<
" Chamber: " << *chamberId <<
" has " << nsegm
131 <<
" 4D segments" << endl;
137 bool segmNoisy =
false;
138 if((*segment4D).hasPhi()){
141 map<DTSuperLayerId,vector<DTRecHit1D> > hitsBySLMap;
142 for(vector<DTRecHit1D>::const_iterator
hit = phiHits.begin();
hit != phiHits.end(); ++
hit) {
146 if(checkNoisyChannels) {
147 bool isNoisy =
false;
148 bool isFEMasked =
false;
149 bool isTDCMasked =
false;
150 bool isTrigMask =
false;
153 statusMap->
cellStatus(wireId, isNoisy, isFEMasked, isTDCMasked, isTrigMask, isDead, isNohv);
156 cout <<
"Wire: " << wireId <<
" is noisy, skipping!" << endl;
163 if((*segment4D).hasZed()) {
167 for(vector<DTRecHit1D>::const_iterator
hit = zHits.begin();
168 hit != zHits.end(); ++
hit) {
170 if(checkNoisyChannels) {
171 bool isNoisy =
false;
172 bool isFEMasked =
false;
173 bool isTDCMasked =
false;
174 bool isTrigMask =
false;
178 statusMap->
cellStatus(wireId, isNoisy, isFEMasked, isTDCMasked, isTrigMask, isDead, isNohv);
181 cout <<
"Wire: " << wireId <<
" is noisy, skipping!" << endl;
190 cout<<
"skipping the segment: it contains noisy cells"<<endl;
197 if((*segment4D).hasPhi()){
198 nHits = (((*segment4D).phiSegment())->specificRecHits()).
size();
200 cout<<
"Phi segment with number of hits: "<<nHits<<endl;
201 phiHistos[0]->Fill((*chamberId).wheel(), nHits);
202 phiHistos[1]->Fill((*chamberId).sector(), nHits);
203 phiHistos[2]->Fill((*chamberId).station(), nHits);
205 if((*segment4D).hasZed()) {
206 nHits = (((*segment4D).zSegment())->specificRecHits()).
size();
208 cout<<
"Zed segment with number of hits: "<<nHits<<endl;
209 thetaHistos[0]->Fill((*chamberId).wheel(), nHits);
210 thetaHistos[1]->Fill((*chamberId).sector(), nHits);
211 thetaHistos[2]->Fill((*chamberId).station(), nHits);
T getUntrackedParameter(std::string const &, T const &) const
std::pair< const_iterator, const_iterator > range
iterator range
def setup(process, global_tag, zero_tesla=False)
C::const_iterator const_iterator
constant access iterator type
void setCurrentFolder(std::string const &fullpath)
void analyze(const edm::Event &, const edm::EventSetup &) override
book the histos
DTSegmentsTask(const edm::ParameterSet &pset)
Constructor.
std::vector< DTRecHit1D > specificRecHits() const
Access to specific components.
MonitorElement * book2D(Args &&...args)
int cellStatus(int wheelId, int stationId, int sectorId, int slId, int layerId, int cellId, bool &noiseFlag, bool &feMask, bool &tdcMask, bool &trigMask, bool &deadFlag, bool &nohvFlag) const
get content
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
~DTSegmentsTask() override
Destructor.