124 m_muonCollectionTag(
cfg.getParameter<
edm::
InputTag>(
"muonCollectionTag")),
125 m_minTrackPt(
cfg.getParameter<double>(
"minTrackPt")),
126 m_minTrackP(
cfg.getParameter<double>(
"minTrackP")),
127 m_maxDxy(
cfg.getParameter<double>(
"maxDxy")),
128 m_minTrackerHits(
cfg.getParameter<
int>(
"minTrackerHits")),
129 m_maxTrackerRedChi2(
cfg.getParameter<double>(
"maxTrackerRedChi2")),
130 m_allowTIDTEC(
cfg.getParameter<
bool>(
"allowTIDTEC")),
131 m_minNCrossedChambers(
cfg.getParameter<
int>(
"minNCrossedChambers")),
132 m_minDT13Hits(
cfg.getParameter<
int>(
"minDT13Hits")),
133 m_minDT2Hits(
cfg.getParameter<
int>(
"minDT2Hits")),
134 m_minCSCHits(
cfg.getParameter<
int>(
"minCSCHits")),
135 m_doDT(
cfg.getParameter<
bool>(
"doDT")),
136 m_doCSC(
cfg.getParameter<
bool>(
"doCSC")) {}
139 char name[225],
pos[228], neg[228];
145 char wheel_label[][2] = {
"A",
"B",
"C",
"D",
"E"};
146 for (
int sector = 1; sector <= 12; sector++) {
147 char wheel_sector[50];
148 sprintf(wheel_sector,
"%s_%02d", wheel_label[
wheel + 2], sector);
153 sprintf(
name,
"dt13_resid_%s_12", wheel_sector);
155 sprintf(neg,
"neg%s",
name);
161 sprintf(
name,
"dt13_resid_%s_23", wheel_sector);
163 sprintf(neg,
"neg%s",
name);
169 sprintf(
name,
"dt13_resid_%s_34", wheel_sector);
171 sprintf(neg,
"neg%s",
name);
177 sprintf(
name,
"dt2_resid_%s_12", wheel_sector);
179 sprintf(neg,
"neg%s",
name);
185 sprintf(
name,
"dt2_resid_%s_23", wheel_sector);
187 sprintf(neg,
"neg%s",
name);
193 sprintf(
name,
"dt13_slope_%s_12", wheel_sector);
195 sprintf(neg,
"neg%s",
name);
201 sprintf(
name,
"dt13_slope_%s_23", wheel_sector);
203 sprintf(neg,
"neg%s",
name);
209 sprintf(
name,
"dt13_slope_%s_34", wheel_sector);
211 sprintf(neg,
"neg%s",
name);
217 sprintf(
name,
"dt2_slope_%s_12", wheel_sector);
219 sprintf(neg,
"neg%s",
name);
225 sprintf(
name,
"dt2_slope_%s_23", wheel_sector);
227 sprintf(neg,
"neg%s",
name);
245 sprintf(ec_chamber,
"%s_%02d", endcapletter.c_str(),
chamber);
250 sprintf(
name,
"cscouter_resid_%s_12", ec_chamber);
252 sprintf(neg,
"neg%s",
name);
258 sprintf(
name,
"cscouter_resid_%s_23", ec_chamber);
260 sprintf(neg,
"neg%s",
name);
266 sprintf(
name,
"cscouter_slope_%s_12", ec_chamber);
268 sprintf(neg,
"neg%s",
name);
274 sprintf(
name,
"cscouter_slope_%s_23", ec_chamber);
276 sprintf(neg,
"neg%s",
name);
285 sprintf(ec_chamber,
"%s_%02d", endcapletter.c_str(),
chamber);
290 sprintf(
name,
"cscinner_resid_%s_12", ec_chamber);
292 sprintf(neg,
"neg%s",
name);
298 sprintf(
name,
"cscinner_resid_%s_23", ec_chamber);
300 sprintf(neg,
"neg%s",
name);
306 sprintf(
name,
"cscinner_resid_%s_34", ec_chamber);
308 sprintf(neg,
"neg%s",
name);
314 sprintf(
name,
"cscinner_slope_%s_12", ec_chamber);
316 sprintf(neg,
"neg%s",
name);
322 sprintf(
name,
"cscinner_slope_%s_23", ec_chamber);
324 sprintf(neg,
"neg%s",
name);
330 sprintf(
name,
"cscinner_slope_%s_34", ec_chamber);
332 sprintf(neg,
"neg%s",
name);
341 for (
int e = 1;
e <= 2;
e++)
342 for (
int s = 1;
s <= 12;
s++) {
343 char endcap_sector[50];
345 sprintf(endcap_sector,
"Wp2S%02d",
s);
347 sprintf(endcap_sector,
"Wm2S%02d",
s);
352 sprintf(
pos,
"pos_x_dt1_csc1_%s", endcap_sector);
353 sprintf(neg,
"neg_x_dt1_csc1_%s", endcap_sector);
357 sprintf(
pos,
"pos_x_dt1_csc2_%s", endcap_sector);
358 sprintf(neg,
"neg_x_dt1_csc2_%s", endcap_sector);
362 sprintf(
pos,
"pos_x_dt2_csc1_%s", endcap_sector);
363 sprintf(neg,
"neg_x_dt2_csc1_%s", endcap_sector);
382 for (ConstTrajTrackPairCollection::const_iterator trajtrack = trajtracks.begin(); trajtrack != trajtracks.end();
398 if (!(
muon->isTrackerMuon() &&
muon->innerTrack().isNonnull()))
419 std::vector<DetId> chamberIds = mrft.
chamberIds();
420 for (
unsigned ch = 0; ch < chamberIds.size(); ch++)
431 for (std::vector<DetId>::const_iterator chamberId = chamberIds.begin(); chamberId != chamberIds.end(); ++chamberId) {
442 for (std::vector<DetId>::const_iterator otherId = chamberIds.begin(); otherId != chamberIds.end(); ++otherId) {
445 if (thisid.rawId() != thatid.rawId() && thisid.wheel() == thatid.wheel() &&
446 thisid.sector() == thatid.sector()) {
456 if (thatid.station() - thisid.station() == 1)
457 st = thisid.station();
459 m_dt13_resid[thisid.wheel() + 2][thisid.sector() - 1][st - 1]->Fill(qoverpt, residdiff);
460 m_dt13_slope[thisid.wheel() + 2][thisid.sector() - 1][st - 1]->Fill(qoverpt, slopediff);
462 m_posdt13_resid[thisid.wheel() + 2][thisid.sector() - 1][st - 1]->Fill(residdiff);
463 m_posdt13_slope[thisid.wheel() + 2][thisid.sector() - 1][st - 1]->Fill(slopediff);
465 m_negdt13_resid[thisid.wheel() + 2][thisid.sector() - 1][st - 1]->Fill(residdiff);
466 m_negdt13_slope[thisid.wheel() + 2][thisid.sector() - 1][st - 1]->Fill(slopediff);
475 if (!(
abs(thisid.wheel()) == 2 && (thisid.station() == 1 || thisid.station() == 2)))
480 if (!((thatid.station() == 1 && thatid.ring() == 3) || (thatid.station() == 2 && thatid.ring() == 2)))
495 if (thisid.station() == 1 && thatid.station() == 1) {
500 }
else if (thisid.station() == 1 && thatid.station() == 2) {
505 }
else if (thisid.station() == 2 && thatid.station() == 1) {
519 for (std::vector<DetId>::const_iterator otherId = chamberIds.begin(); otherId != chamberIds.end(); ++otherId) {
522 if (thisid.rawId() != thatid.rawId() && thisid.wheel() == thatid.wheel() &&
523 thisid.sector() == thatid.sector()) {
533 if (thatid.station() - thisid.station() == 1)
534 st = thisid.station();
536 m_dt2_resid[thisid.wheel() + 2][thisid.sector() - 1][st - 1]->Fill(qoverpt, residdiff);
537 m_dt2_slope[thisid.wheel() + 2][thisid.sector() - 1][st - 1]->Fill(qoverpt, slopediff);
539 m_posdt2_resid[thisid.wheel() + 2][thisid.sector() - 1][st - 1]->Fill(residdiff);
540 m_posdt2_slope[thisid.wheel() + 2][thisid.sector() - 1][st - 1]->Fill(slopediff);
542 m_negdt2_resid[thisid.wheel() + 2][thisid.sector() - 1][st - 1]->Fill(residdiff);
543 m_negdt2_slope[thisid.wheel() + 2][thisid.sector() - 1][st - 1]->Fill(slopediff);
557 CSCDetId thisid(chamberId->rawId());
558 for (std::vector<DetId>::const_iterator otherId = chamberIds.begin(); otherId != chamberIds.end(); ++otherId) {
561 if (thisid.rawId() != thatid.rawId() && thisid.endcap() == thatid.endcap()) {
570 int thischamber = thisid.chamber();
571 int thisring = thisid.ring();
572 if (thisid.station() == 1 && (thisring == 1 || thisring == 4)) {
573 thischamber = (thischamber - 1) / 2 + 1;
577 if (thisring == thatid.ring() && thischamber == thatid.chamber()) {
578 bool inner = (thisring == 1);
579 bool outer = (thisring == 2);
581 if (thatid.station() - thisid.station() == 1 && (
inner || thisid.station() < 3))
582 st = thisid.station();
584 if (
outer && st > 0) {
585 m_cscouter_resid[thisid.endcap() - 1][thischamber - 1][st - 1]->Fill(qoverpz, residdiff);
586 m_cscouter_slope[thisid.endcap() - 1][thischamber - 1][st - 1]->Fill(qoverpz, slopediff);
595 if (
inner && st > 0) {
596 m_cscinner_resid[thisid.endcap() - 1][thischamber - 1][st - 1]->Fill(qoverpz, residdiff);
597 m_cscinner_slope[thisid.endcap() - 1][thischamber - 1][st - 1]->Fill(qoverpz, slopediff);
620 "AlignmentMonitorSegmentDifferences");