CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
AlignmentMonitorSegmentDifferences Class Reference
Inheritance diagram for AlignmentMonitorSegmentDifferences:
AlignmentMonitorBase

Public Member Functions

 AlignmentMonitorSegmentDifferences (const edm::ParameterSet &cfg)
 
void book () override
 Book or retrieve histograms; MUST be reimplemented. More...
 
void event (const edm::Event &iEvent, const edm::EventSetup &iSetup, const ConstTrajTrackPairCollection &iTrajTracks) override
 Called for each event (by "run()"): may be reimplemented. More...
 
void processMuonResidualsFromTrack (MuonResidualsFromTrack &mrft)
 
 ~AlignmentMonitorSegmentDifferences () override
 
- Public Member Functions inherited from AlignmentMonitorBase
virtual void afterAlignment ()
 
 AlignmentMonitorBase (const edm::ParameterSet &cfg, std::string name)
 Constructor. More...
 
void beginOfJob (AlignableTracker *pTracker, AlignableMuon *pMuon, AlignmentParameterStore *pStore)
 Called at beginning of job: don't reimplement. More...
 
void duringLoop (const edm::Event &iEvent, const edm::EventSetup &iSetup, const ConstTrajTrackPairCollection &iTrajTracks)
 Called for each event: don't reimplement. More...
 
void endOfJob ()
 Called at end of processing: don't implement. More...
 
void endOfLoop ()
 Called at end of loop: don't reimplement. More...
 
void startingNewLoop ()
 Called at beginning of loop: don't reimplement. More...
 
virtual ~AlignmentMonitorBase ()
 Destructor. More...
 

Private Attributes

bool m_allowTIDTEC
 
TProfile * m_cscinner_resid [2][18][3]
 
TProfile * m_cscinner_slope [2][18][3]
 
TProfile * m_cscouter_resid [2][36][2]
 
TProfile * m_cscouter_slope [2][36][2]
 
bool m_doCSC
 
bool m_doDT
 
TProfile * m_dt13_resid [5][12][3]
 
TProfile * m_dt13_slope [5][12][3]
 
TProfile * m_dt2_resid [5][12][2]
 
TProfile * m_dt2_slope [5][12][2]
 
double m_maxDxy
 
double m_maxTrackerRedChi2
 
int m_minCSCHits
 
int m_minDT13Hits
 
int m_minDT2Hits
 
bool m_minNCrossedChambers
 
int m_minTrackerHits
 
double m_minTrackP
 
double m_minTrackPt
 
edm::InputTag m_muonCollectionTag
 
TH1F * m_negcscinner_resid [2][18][3]
 
TH1F * m_negcscinner_slope [2][18][3]
 
TH1F * m_negcscouter_resid [2][36][2]
 
TH1F * m_negcscouter_slope [2][36][2]
 
TH1F * m_negdt13_resid [5][12][3]
 
TH1F * m_negdt13_slope [5][12][3]
 
TH1F * m_negdt2_resid [5][12][2]
 
TH1F * m_negdt2_slope [5][12][2]
 
TH1F * m_poscscinner_resid [2][18][3]
 
TH1F * m_poscscinner_slope [2][18][3]
 
TH1F * m_poscscouter_resid [2][36][2]
 
TH1F * m_poscscouter_slope [2][36][2]
 
TH1F * m_posdt13_resid [5][12][3]
 
TH1F * m_posdt13_slope [5][12][3]
 
TH1F * m_posdt2_resid [5][12][2]
 
TH1F * m_posdt2_slope [5][12][2]
 
TH1F * m_x_neg_dt1_csc1_resid [2][12]
 
TH1F * m_x_neg_dt1_csc2_resid [2][12]
 
TH1F * m_x_neg_dt2_csc1_resid [2][12]
 
TH1F * m_x_pos_dt1_csc1_resid [2][12]
 
TH1F * m_x_pos_dt1_csc2_resid [2][12]
 
TH1F * m_x_pos_dt2_csc1_resid [2][12]
 

Additional Inherited Members

- Public Types inherited from AlignmentMonitorBase
typedef std::pair< const Trajectory *, const reco::Track * > ConstTrajTrackPair
 
typedef std::vector< ConstTrajTrackPairConstTrajTrackPairCollection
 
- Protected Member Functions inherited from AlignmentMonitorBase
TH1F * book1D (std::string dir, std::string name, std::string title, int nchX, double lowX, double highX)
 
TH2F * book2D (std::string dir, std::string name, std::string title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
 
TProfile * bookProfile (std::string dir, std::string name, std::string title, int nchX, double lowX, double highX, int nchY=1, double lowY=0., double highY=0., const char *option="s")
 
TFileDirectorydirectory (std::string dir)
 
int iteration ()
 
AlignableMuonpMuon ()
 
AlignableNavigatorpNavigator ()
 
AlignmentParameterStorepStore ()
 
AlignableTrackerpTracker ()
 
- Protected Attributes inherited from AlignmentMonitorBase
const edm::InputTag m_beamSpotTag
 

Detailed Description

Definition at line 34 of file AlignmentMonitorSegmentDifferences.cc.

Constructor & Destructor Documentation

AlignmentMonitorSegmentDifferences::AlignmentMonitorSegmentDifferences ( const edm::ParameterSet cfg)

Definition at line 110 of file AlignmentMonitorSegmentDifferences.cc.

111  : AlignmentMonitorBase(cfg, "AlignmentMonitorSegmentDifferences"),
112  m_muonCollectionTag(cfg.getParameter<edm::InputTag>("muonCollectionTag")),
113  m_minTrackPt(cfg.getParameter<double>("minTrackPt")),
114  m_minTrackP(cfg.getParameter<double>("minTrackP")),
115  m_maxDxy(cfg.getParameter<double>("maxDxy")),
116  m_minTrackerHits(cfg.getParameter<int>("minTrackerHits")),
117  m_maxTrackerRedChi2(cfg.getParameter<double>("maxTrackerRedChi2")),
118  m_allowTIDTEC(cfg.getParameter<bool>("allowTIDTEC")),
119  m_minNCrossedChambers(cfg.getParameter<int>("minNCrossedChambers")),
120  m_minDT13Hits(cfg.getParameter<int>("minDT13Hits")),
121  m_minDT2Hits(cfg.getParameter<int>("minDT2Hits")),
122  m_minCSCHits(cfg.getParameter<int>("minCSCHits")),
123  m_doDT(cfg.getParameter<bool>("doDT")),
124  m_doCSC(cfg.getParameter<bool>("doCSC")) {}
T getParameter(std::string const &) const
AlignmentMonitorBase(const edm::ParameterSet &cfg, std::string name)
Constructor.
AlignmentMonitorSegmentDifferences::~AlignmentMonitorSegmentDifferences ( )
inlineoverride

Definition at line 37 of file AlignmentMonitorSegmentDifferences.cc.

References book(), event(), iEvent, and processMuonResidualsFromTrack().

37 {}

Member Function Documentation

void AlignmentMonitorSegmentDifferences::book ( )
overridevirtual

Book or retrieve histograms; MUST be reimplemented.

Implements AlignmentMonitorBase.

Definition at line 126 of file AlignmentMonitorSegmentDifferences.cc.

References AlignmentMonitorBase::book1D(), AlignmentMonitorBase::bookProfile(), relativeConstraints::chamber, MillePedeFileConverter_cfg::e, makeMuonMisalignmentScenario::endcap, m_cscinner_resid, m_cscinner_slope, m_cscouter_resid, m_cscouter_slope, m_doCSC, m_doDT, m_dt13_resid, m_dt13_slope, m_dt2_resid, m_dt2_slope, m_minTrackPt, m_negcscinner_resid, m_negcscinner_slope, m_negcscouter_resid, m_negcscouter_slope, m_negdt13_resid, m_negdt13_slope, m_negdt2_resid, m_negdt2_slope, m_poscscinner_resid, m_poscscinner_slope, m_poscscouter_resid, m_poscscouter_slope, m_posdt13_resid, m_posdt13_slope, m_posdt2_resid, m_posdt2_slope, m_x_neg_dt1_csc1_resid, m_x_neg_dt1_csc2_resid, m_x_neg_dt2_csc1_resid, m_x_pos_dt1_csc1_resid, m_x_pos_dt1_csc2_resid, m_x_pos_dt2_csc1_resid, Skims_PA_cff::name, alignCSCRings::s, AlCaHLTBitMon_QueryRunRegistry::string, and makeMuonMisalignmentScenario::wheel.

Referenced by ~AlignmentMonitorSegmentDifferences().

126  {
127  char name[225], pos[228], neg[228];
128 
129  double max_curv = 1. / m_minTrackPt;
130 
131  if (m_doDT)
132  for (int wheel = -2; wheel <= +2; wheel++) {
133  char wheel_label[][2] = {"A", "B", "C", "D", "E"};
134  for (int sector = 1; sector <= 12; sector++) {
135  char wheel_sector[50];
136  sprintf(wheel_sector, "%s_%02d", wheel_label[wheel + 2], sector);
137 
138  int nb = 100;
139  double wnd = 25.;
140 
141  sprintf(name, "dt13_resid_%s_12", wheel_sector);
142  sprintf(pos, "pos%s", name);
143  sprintf(neg, "neg%s", name);
144  m_dt13_resid[wheel + 2][sector - 1][0] =
145  bookProfile("/iterN/", name, name, 20, -max_curv, max_curv, 1, -100., 100., " ");
146  m_posdt13_resid[wheel + 2][sector - 1][0] = book1D("/iterN/", pos, pos, nb, -wnd, wnd);
147  m_negdt13_resid[wheel + 2][sector - 1][0] = book1D("/iterN/", neg, neg, nb, -wnd, wnd);
148 
149  sprintf(name, "dt13_resid_%s_23", wheel_sector);
150  sprintf(pos, "pos%s", name);
151  sprintf(neg, "neg%s", name);
152  m_dt13_resid[wheel + 2][sector - 1][1] =
153  bookProfile("/iterN/", name, name, 20, -max_curv, max_curv, 1, -100., 100., " ");
154  m_posdt13_resid[wheel + 2][sector - 1][1] = book1D("/iterN/", pos, pos, nb, -wnd, wnd);
155  m_negdt13_resid[wheel + 2][sector - 1][1] = book1D("/iterN/", neg, neg, nb, -wnd, wnd);
156 
157  sprintf(name, "dt13_resid_%s_34", wheel_sector);
158  sprintf(pos, "pos%s", name);
159  sprintf(neg, "neg%s", name);
160  m_dt13_resid[wheel + 2][sector - 1][2] =
161  bookProfile("/iterN/", name, name, 20, -max_curv, max_curv, 1, -100., 100., " ");
162  m_posdt13_resid[wheel + 2][sector - 1][2] = book1D("/iterN/", pos, pos, nb, -wnd, wnd);
163  m_negdt13_resid[wheel + 2][sector - 1][2] = book1D("/iterN/", neg, neg, nb, -wnd, wnd);
164 
165  sprintf(name, "dt2_resid_%s_12", wheel_sector);
166  sprintf(pos, "pos%s", name);
167  sprintf(neg, "neg%s", name);
168  m_dt2_resid[wheel + 2][sector - 1][0] =
169  bookProfile("/iterN/", name, name, 20, -max_curv, max_curv, 1, -200., 200., " ");
170  m_posdt2_resid[wheel + 2][sector - 1][0] = book1D("/iterN/", pos, pos, nb, -wnd, wnd);
171  m_negdt2_resid[wheel + 2][sector - 1][0] = book1D("/iterN/", neg, neg, nb, -wnd, wnd);
172 
173  sprintf(name, "dt2_resid_%s_23", wheel_sector);
174  sprintf(pos, "pos%s", name);
175  sprintf(neg, "neg%s", name);
176  m_dt2_resid[wheel + 2][sector - 1][1] =
177  bookProfile("/iterN/", name, name, 20, -max_curv, max_curv, 1, -200., 200., " ");
178  m_posdt2_resid[wheel + 2][sector - 1][1] = book1D("/iterN/", pos, pos, nb, -wnd, wnd);
179  m_negdt2_resid[wheel + 2][sector - 1][1] = book1D("/iterN/", neg, neg, nb, -wnd, wnd);
180 
181  sprintf(name, "dt13_slope_%s_12", wheel_sector);
182  sprintf(pos, "pos%s", name);
183  sprintf(neg, "neg%s", name);
184  m_dt13_slope[wheel + 2][sector - 1][0] =
185  bookProfile("/iterN/", name, name, 20, -max_curv, max_curv, 1, -100., 100., " ");
186  m_posdt13_slope[wheel + 2][sector - 1][0] = book1D("/iterN/", pos, pos, nb, -wnd, wnd);
187  m_negdt13_slope[wheel + 2][sector - 1][0] = book1D("/iterN/", neg, neg, nb, -wnd, wnd);
188 
189  sprintf(name, "dt13_slope_%s_23", wheel_sector);
190  sprintf(pos, "pos%s", name);
191  sprintf(neg, "neg%s", name);
192  m_dt13_slope[wheel + 2][sector - 1][1] =
193  bookProfile("/iterN/", name, name, 20, -max_curv, max_curv, 1, -100., 100., " ");
194  m_posdt13_slope[wheel + 2][sector - 1][1] = book1D("/iterN/", pos, pos, nb, -wnd, wnd);
195  m_negdt13_slope[wheel + 2][sector - 1][1] = book1D("/iterN/", neg, neg, nb, -wnd, wnd);
196 
197  sprintf(name, "dt13_slope_%s_34", wheel_sector);
198  sprintf(pos, "pos%s", name);
199  sprintf(neg, "neg%s", name);
200  m_dt13_slope[wheel + 2][sector - 1][2] =
201  bookProfile("/iterN/", name, name, 20, -max_curv, max_curv, 1, -100., 100., " ");
202  m_posdt13_slope[wheel + 2][sector - 1][2] = book1D("/iterN/", pos, pos, nb, -wnd, wnd);
203  m_negdt13_slope[wheel + 2][sector - 1][2] = book1D("/iterN/", neg, neg, nb, -wnd, wnd);
204 
205  sprintf(name, "dt2_slope_%s_12", wheel_sector);
206  sprintf(pos, "pos%s", name);
207  sprintf(neg, "neg%s", name);
208  m_dt2_slope[wheel + 2][sector - 1][0] =
209  bookProfile("/iterN/", name, name, 20, -max_curv, max_curv, 1, -1000., 1000., " ");
210  m_posdt2_slope[wheel + 2][sector - 1][0] = book1D("/iterN/", pos, pos, nb, -100., 100.);
211  m_negdt2_slope[wheel + 2][sector - 1][0] = book1D("/iterN/", neg, neg, nb, -100., 100.);
212 
213  sprintf(name, "dt2_slope_%s_23", wheel_sector);
214  sprintf(pos, "pos%s", name);
215  sprintf(neg, "neg%s", name);
216  m_dt2_slope[wheel + 2][sector - 1][1] =
217  bookProfile("/iterN/", name, name, 20, -max_curv, max_curv, 1, -1000., 1000., " ");
218  m_posdt2_slope[wheel + 2][sector - 1][1] = book1D("/iterN/", pos, pos, nb, -100., 100.);
219  m_negdt2_slope[wheel + 2][sector - 1][1] = book1D("/iterN/", neg, neg, nb, -100., 100.);
220  }
221  }
222 
223  if (m_doCSC)
224  for (int endcap = 1; endcap <= 2; endcap++) {
225  std::string endcapletter;
226  if (endcap == 1)
227  endcapletter = "p";
228  else if (endcap == 2)
229  endcapletter = "m";
230 
231  for (int chamber = 1; chamber <= 36; chamber++) {
232  char ec_chamber[50];
233  sprintf(ec_chamber, "%s_%02d", endcapletter.c_str(), chamber);
234 
235  int nb = 100;
236  double wnd = 60.;
237 
238  sprintf(name, "cscouter_resid_%s_12", ec_chamber);
239  sprintf(pos, "pos%s", name);
240  sprintf(neg, "neg%s", name);
241  m_cscouter_resid[endcap - 1][chamber - 1][0] =
242  bookProfile("/iterN/", name, name, 20, -max_curv, max_curv, 1, -100., 100., " ");
243  m_poscscouter_resid[endcap - 1][chamber - 1][0] = book1D("/iterN/", pos, pos, nb, -wnd, wnd);
244  m_negcscouter_resid[endcap - 1][chamber - 1][0] = book1D("/iterN/", neg, neg, nb, -wnd, wnd);
245 
246  sprintf(name, "cscouter_resid_%s_23", ec_chamber);
247  sprintf(pos, "pos%s", name);
248  sprintf(neg, "neg%s", name);
249  m_cscouter_resid[endcap - 1][chamber - 1][1] =
250  bookProfile("/iterN/", name, name, 20, -max_curv, max_curv, 1, -100., 100., " ");
251  m_poscscouter_resid[endcap - 1][chamber - 1][1] = book1D("/iterN/", pos, pos, nb, -wnd, wnd);
252  m_negcscouter_resid[endcap - 1][chamber - 1][1] = book1D("/iterN/", neg, neg, nb, -wnd, wnd);
253 
254  sprintf(name, "cscouter_slope_%s_12", ec_chamber);
255  sprintf(pos, "pos%s", name);
256  sprintf(neg, "neg%s", name);
257  m_cscouter_slope[endcap - 1][chamber - 1][0] =
258  bookProfile("/iterN/", name, name, 20, -max_curv, max_curv, 1, -100., 100., " ");
259  m_poscscouter_slope[endcap - 1][chamber - 1][0] = book1D("/iterN/", pos, pos, nb, -wnd, wnd);
260  m_negcscouter_slope[endcap - 1][chamber - 1][0] = book1D("/iterN/", neg, neg, nb, -wnd, wnd);
261 
262  sprintf(name, "cscouter_slope_%s_23", ec_chamber);
263  sprintf(pos, "pos%s", name);
264  sprintf(neg, "neg%s", name);
265  m_cscouter_slope[endcap - 1][chamber - 1][1] =
266  bookProfile("/iterN/", name, name, 20, -max_curv, max_curv, 1, -100., 100., " ");
267  m_poscscouter_slope[endcap - 1][chamber - 1][1] = book1D("/iterN/", pos, pos, nb, -wnd, wnd);
268  m_negcscouter_slope[endcap - 1][chamber - 1][1] = book1D("/iterN/", neg, neg, nb, -wnd, wnd);
269  }
270 
271  for (int chamber = 1; chamber <= 18; chamber++) {
272  char ec_chamber[50];
273  sprintf(ec_chamber, "%s_%02d", endcapletter.c_str(), chamber);
274 
275  int nb = 100;
276  double wnd = 40.;
277 
278  sprintf(name, "cscinner_resid_%s_12", ec_chamber);
279  sprintf(pos, "pos%s", name);
280  sprintf(neg, "neg%s", name);
281  m_cscinner_resid[endcap - 1][chamber - 1][0] =
282  bookProfile("/iterN/", name, name, 20, -max_curv, max_curv, 1, -100., 100., " ");
283  m_poscscinner_resid[endcap - 1][chamber - 1][0] = book1D("/iterN/", pos, pos, nb, -wnd, wnd);
284  m_negcscinner_resid[endcap - 1][chamber - 1][0] = book1D("/iterN/", neg, neg, nb, -wnd, wnd);
285 
286  sprintf(name, "cscinner_resid_%s_23", ec_chamber);
287  sprintf(pos, "pos%s", name);
288  sprintf(neg, "neg%s", name);
289  m_cscinner_resid[endcap - 1][chamber - 1][1] =
290  bookProfile("/iterN/", name, name, 20, -max_curv, max_curv, 1, -100., 100., " ");
291  m_poscscinner_resid[endcap - 1][chamber - 1][1] = book1D("/iterN/", pos, pos, nb, -wnd, wnd);
292  m_negcscinner_resid[endcap - 1][chamber - 1][1] = book1D("/iterN/", neg, neg, nb, -wnd, wnd);
293 
294  sprintf(name, "cscinner_resid_%s_34", ec_chamber);
295  sprintf(pos, "pos%s", name);
296  sprintf(neg, "neg%s", name);
297  m_cscinner_resid[endcap - 1][chamber - 1][2] =
298  bookProfile("/iterN/", name, name, 20, -max_curv, max_curv, 1, -100., 100., " ");
299  m_poscscinner_resid[endcap - 1][chamber - 1][2] = book1D("/iterN/", pos, pos, nb, -wnd, wnd);
300  m_negcscinner_resid[endcap - 1][chamber - 1][2] = book1D("/iterN/", neg, neg, nb, -wnd, wnd);
301 
302  sprintf(name, "cscinner_slope_%s_12", ec_chamber);
303  sprintf(pos, "pos%s", name);
304  sprintf(neg, "neg%s", name);
305  m_cscinner_slope[endcap - 1][chamber - 1][0] =
306  bookProfile("/iterN/", name, name, 20, -max_curv, max_curv, 1, -100., 100., " ");
307  m_poscscinner_slope[endcap - 1][chamber - 1][0] = book1D("/iterN/", pos, pos, nb, -wnd, wnd);
308  m_negcscinner_slope[endcap - 1][chamber - 1][0] = book1D("/iterN/", neg, neg, nb, -wnd, wnd);
309 
310  sprintf(name, "cscinner_slope_%s_23", ec_chamber);
311  sprintf(pos, "pos%s", name);
312  sprintf(neg, "neg%s", name);
313  m_cscinner_slope[endcap - 1][chamber - 1][1] =
314  bookProfile("/iterN/", name, name, 20, -max_curv, max_curv, 1, -100., 100., " ");
315  m_poscscinner_slope[endcap - 1][chamber - 1][1] = book1D("/iterN/", pos, pos, nb, -wnd, wnd);
316  m_negcscinner_slope[endcap - 1][chamber - 1][1] = book1D("/iterN/", neg, neg, nb, -wnd, wnd);
317 
318  sprintf(name, "cscinner_slope_%s_34", ec_chamber);
319  sprintf(pos, "pos%s", name);
320  sprintf(neg, "neg%s", name);
321  m_cscinner_slope[endcap - 1][chamber - 1][2] =
322  bookProfile("/iterN/", name, name, 20, -max_curv, max_curv, 1, -100., 100., " ");
323  m_poscscinner_slope[endcap - 1][chamber - 1][2] = book1D("/iterN/", pos, pos, nb, -wnd, wnd);
324  m_negcscinner_slope[endcap - 1][chamber - 1][2] = book1D("/iterN/", neg, neg, nb, -wnd, wnd);
325  }
326  }
327 
328  // cross-system
329  for (int e = 1; e <= 2; e++)
330  for (int s = 1; s <= 12; s++) {
331  char endcap_sector[50];
332  if (e == 1)
333  sprintf(endcap_sector, "Wp2S%02d", s);
334  if (e == 2)
335  sprintf(endcap_sector, "Wm2S%02d", s);
336 
337  int nb = 200;
338  double wnd = 100.;
339 
340  sprintf(pos, "pos_x_dt1_csc1_%s", endcap_sector);
341  sprintf(neg, "neg_x_dt1_csc1_%s", endcap_sector);
342  m_x_pos_dt1_csc1_resid[e - 1][s - 1] = book1D("/iterN/", pos, pos, nb, -wnd, wnd);
343  m_x_neg_dt1_csc1_resid[e - 1][s - 1] = book1D("/iterN/", neg, neg, nb, -wnd, wnd);
344 
345  sprintf(pos, "pos_x_dt1_csc2_%s", endcap_sector);
346  sprintf(neg, "neg_x_dt1_csc2_%s", endcap_sector);
347  m_x_pos_dt1_csc2_resid[e - 1][s - 1] = book1D("/iterN/", pos, pos, nb, -wnd, wnd);
348  m_x_neg_dt1_csc2_resid[e - 1][s - 1] = book1D("/iterN/", neg, neg, nb, -wnd, wnd);
349 
350  sprintf(pos, "pos_x_dt2_csc1_%s", endcap_sector);
351  sprintf(neg, "neg_x_dt2_csc1_%s", endcap_sector);
352  m_x_pos_dt2_csc1_resid[e - 1][s - 1] = book1D("/iterN/", pos, pos, nb, -wnd, wnd);
353  m_x_neg_dt2_csc1_resid[e - 1][s - 1] = book1D("/iterN/", neg, neg, nb, -wnd, wnd);
354  }
355 }
TProfile * bookProfile(std::string dir, std::string name, std::string title, int nchX, double lowX, double highX, int nchY=1, double lowY=0., double highY=0., const char *option="s")
TH1F * book1D(std::string dir, std::string name, std::string title, int nchX, double lowX, double highX)
void AlignmentMonitorSegmentDifferences::event ( const edm::Event iEvent,
const edm::EventSetup iSetup,
const ConstTrajTrackPairCollection iTrajTracks 
)
overridevirtual

Called for each event (by "run()"): may be reimplemented.

Reimplemented from AlignmentMonitorBase.

Definition at line 357 of file AlignmentMonitorSegmentDifferences.cc.

References pwdgSkimBPark_cfi::beamSpot, reco::TrackBase::dxy(), edm::EventSetup::get(), edm::Event::getByLabel(), edm::InputTag::label(), AlignmentMonitorBase::m_beamSpotTag, m_maxDxy, m_minTrackP, m_minTrackPt, m_muonCollectionTag, HLT_2018_cff::magneticField, HLT_2018_cff::muon, PDWG_BPHSkim_cff::muons, reco::TrackBase::p(), AlignmentMonitorBase::pNavigator(), reco::BeamSpot::position(), processMuonResidualsFromTrack(), DiDispStaMuonMonitor_cfi::pt, reco::TrackBase::pt(), and HLT_2018_cff::track.

Referenced by Types.EventID::cppID(), and ~AlignmentMonitorSegmentDifferences().

359  {
361  iSetup.get<GlobalTrackingGeometryRecord>().get(globalGeometry);
362 
364  iEvent.getByLabel(m_beamSpotTag, beamSpot);
365 
366  edm::ESHandle<DetIdAssociator> muonDetIdAssociator_;
367  iSetup.get<DetIdAssociatorRecord>().get("MuonDetIdAssociator", muonDetIdAssociator_);
368 
370  iSetup.get<TrackingComponentsRecord>().get("SteppingHelixPropagatorAny", prop);
371 
373  iSetup.get<IdealMagneticFieldRecord>().get(magneticField);
374 
375  if (m_muonCollectionTag.label().empty()) // use trajectories
376  {
377  for (ConstTrajTrackPairCollection::const_iterator trajtrack = trajtracks.begin(); trajtrack != trajtracks.end();
378  ++trajtrack) {
379  const Trajectory *traj = (*trajtrack).first;
380  const reco::Track *track = (*trajtrack).second;
381 
382  if (track->pt() > m_minTrackPt && track->p() > m_minTrackP && fabs(track->dxy(beamSpot->position())) < m_maxDxy) {
383  MuonResidualsFromTrack muonResidualsFromTrack(
384  iSetup, magneticField, globalGeometry, muonDetIdAssociator_, prop, traj, track, pNavigator(), 1000.);
385  processMuonResidualsFromTrack(muonResidualsFromTrack);
386  }
387  } // end loop over tracks
388  } else {
390  iEvent.getByLabel(m_muonCollectionTag, muons);
391 
392  for (reco::MuonCollection::const_iterator muon = muons->begin(); muon != muons->end(); ++muon) {
393  if (!(muon->isTrackerMuon() && muon->innerTrack().isNonnull()))
394  continue;
395 
396  if (m_minTrackPt < muon->pt() && m_minTrackP < muon->p() &&
397  fabs(muon->innerTrack()->dxy(beamSpot->position())) < m_maxDxy) {
398  MuonResidualsFromTrack muonResidualsFromTrack(globalGeometry, &(*muon), pNavigator(), 100.);
399  processMuonResidualsFromTrack(muonResidualsFromTrack);
400  }
401  }
402  }
403 }
double p() const
momentum vector magnitude
Definition: TrackBase.h:599
AlignableNavigator * pNavigator()
double pt() const
track transverse momentum
Definition: TrackBase.h:602
const edm::InputTag m_beamSpotTag
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:488
void processMuonResidualsFromTrack(MuonResidualsFromTrack &mrft)
std::string const & label() const
Definition: InputTag.h:36
T get() const
Definition: EventSetup.h:73
const Point & position() const
position
Definition: BeamSpot.h:59
double dxy() const
dxy parameter. (This is the transverse impact parameter w.r.t. to (0,0,0) ONLY if refPoint is close t...
Definition: TrackBase.h:587
void AlignmentMonitorSegmentDifferences::processMuonResidualsFromTrack ( MuonResidualsFromTrack mrft)

Definition at line 405 of file AlignmentMonitorSegmentDifferences.cc.

References funct::abs(), MuonChamberResidual::chamberAlignable(), MuonResidualsFromTrack::chamberIds(), MuonResidualsFromTrack::chamberResidual(), reco::TrackBase::charge(), MuonChamberResidual::chi2(), MuonResidualsFromTrack::contains_TIDTEC(), MuonSubdetId::CSC, DEFINE_EDM_PLUGIN, MuonSubdetId::DT, MuonResidualsFromTrack::getTrack(), MuonChamberResidual::global_residual(), MuonChamberResidual::global_resslope(), SurfaceOrientation::inner, MuonChamberResidual::kCSC, MuonChamberResidual::kDT13, MuonChamberResidual::kDT2, m_allowTIDTEC, m_cscinner_resid, m_cscinner_slope, m_cscouter_resid, m_cscouter_slope, m_doCSC, m_doDT, m_dt13_resid, m_dt13_slope, m_dt2_resid, m_dt2_slope, m_maxTrackerRedChi2, m_minCSCHits, m_minDT13Hits, m_minDT2Hits, m_minNCrossedChambers, m_minTrackerHits, m_negcscinner_resid, m_negcscinner_slope, m_negcscouter_resid, m_negcscouter_slope, m_negdt13_resid, m_negdt13_slope, m_negdt2_resid, m_negdt2_slope, m_poscscinner_resid, m_poscscinner_slope, m_poscscouter_resid, m_poscscouter_slope, m_posdt13_resid, m_posdt13_slope, m_posdt2_resid, m_posdt2_slope, m_x_neg_dt1_csc1_resid, m_x_neg_dt1_csc2_resid, m_x_neg_dt2_csc1_resid, m_x_pos_dt1_csc1_resid, m_x_pos_dt1_csc2_resid, m_x_pos_dt2_csc1_resid, DetId::Muon, MuonChamberResidual::ndof(), MuonResidualsFromTrack::normalizedChi2(), MuonChamberResidual::numHits(), SurfaceOrientation::outer, reco::TrackBase::pt(), reco::TrackBase::pz(), Alignable::surface(), AlignableSurface::toGlobal(), MuonResidualsFromTrack::trackerNumHits(), MuonChamberResidual::trackx(), and MuonChamberResidual::tracky().

Referenced by event(), and ~AlignmentMonitorSegmentDifferences().

405  {
406  if (mrft.trackerNumHits() < m_minTrackerHits)
407  return;
408  if (!m_allowTIDTEC && mrft.contains_TIDTEC())
409  return;
410  if (mrft.normalizedChi2() > m_maxTrackerRedChi2)
411  return;
412 
413  int nMuChambers = 0;
414  std::vector<DetId> chamberIds = mrft.chamberIds();
415  for (unsigned ch = 0; ch < chamberIds.size(); ch++)
416  if (chamberIds[ch].det() == DetId::Muon)
417  nMuChambers++;
418  if (nMuChambers < m_minNCrossedChambers)
419  return;
420 
421  double qoverpt = (mrft.getTrack()->charge() > 0 ? 1. : -1.) / mrft.getTrack()->pt();
422  double qoverpz = 0.;
423  if (fabs(mrft.getTrack()->pz()) > 0.01)
424  qoverpz = mrft.getTrack()->charge() / fabs(mrft.getTrack()->pz());
425 
426  for (std::vector<DetId>::const_iterator chamberId = chamberIds.begin(); chamberId != chamberIds.end(); ++chamberId) {
427  if (chamberId->det() != DetId::Muon)
428  continue;
429 
430  // **************** DT ****************
431  if (m_doDT && chamberId->subdetId() == MuonSubdetId::DT) {
434 
435  if (dt13 != nullptr && dt13->numHits() >= m_minDT13Hits) {
436  DTChamberId thisid(chamberId->rawId());
437  for (std::vector<DetId>::const_iterator otherId = chamberIds.begin(); otherId != chamberIds.end(); ++otherId) {
438  if (otherId->det() == DetId::Muon && otherId->subdetId() == MuonSubdetId::DT) {
439  DTChamberId thatid(otherId->rawId());
440  if (thisid.rawId() != thatid.rawId() && thisid.wheel() == thatid.wheel() &&
441  thisid.sector() == thatid.sector()) {
443  if (dt13other != nullptr && dt13other->numHits() >= m_minDT13Hits) {
444  double slopediff = 1000. * (dt13->global_resslope() - dt13other->global_resslope());
445  //double length = dt13->chamberAlignable()->surface().toGlobal(align::LocalPoint(0,0,0)).perp() -
446  // dt13other->chamberAlignable()->surface().toGlobal(align::LocalPoint(0,0,0)).perp();
447  //double residdiff = 10. * (dt13->global_residual() + length*dt13->global_resslope() - dt13other->global_residual());
448  double residdiff = 10. * (dt13->global_residual() - dt13other->global_residual());
449 
450  int st = 0;
451  if (thatid.station() - thisid.station() == 1)
452  st = thisid.station();
453  if (st > 0) {
454  m_dt13_resid[thisid.wheel() + 2][thisid.sector() - 1][st - 1]->Fill(qoverpt, residdiff);
455  m_dt13_slope[thisid.wheel() + 2][thisid.sector() - 1][st - 1]->Fill(qoverpt, slopediff);
456  if (qoverpt > 0) {
457  m_posdt13_resid[thisid.wheel() + 2][thisid.sector() - 1][st - 1]->Fill(residdiff);
458  m_posdt13_slope[thisid.wheel() + 2][thisid.sector() - 1][st - 1]->Fill(slopediff);
459  } else {
460  m_negdt13_resid[thisid.wheel() + 2][thisid.sector() - 1][st - 1]->Fill(residdiff);
461  m_negdt13_slope[thisid.wheel() + 2][thisid.sector() - 1][st - 1]->Fill(slopediff);
462  }
463  }
464  } // end other numhits
465  } // end this near other
466  } // end other is DT
467 
468  // cross-system: other is CSC
469  // only do it for DT stubs in W+-2 St1&2:
470  if (!(abs(thisid.wheel()) == 2 && (thisid.station() == 1 || thisid.station() == 2)))
471  continue;
472  if (otherId->det() == DetId::Muon && otherId->subdetId() == MuonSubdetId::CSC) {
473  CSCDetId thatid(otherId->rawId());
474  //only do it for CSC stubs in St1R3 or St2R2:
475  if (!((thatid.station() == 1 && thatid.ring() == 3) || (thatid.station() == 2 && thatid.ring() == 2)))
476  continue;
477 
479  if (cscother != nullptr && cscother->numHits() >= m_minCSCHits) {
480  // scale to adjust the csc residual size to be comparabe to dt's one
481  double csc_scale = dt13->chamberAlignable()
482  ->surface()
483  .toGlobal(align::LocalPoint(dt13->trackx(), dt13->tracky(), 0))
484  .perp() /
485  cscother->chamberAlignable()
486  ->surface()
487  .toGlobal(align::LocalPoint(cscother->trackx(), cscother->tracky(), 0))
488  .perp();
489  double residdiff = 10. * (dt13->global_residual() - cscother->global_residual() * csc_scale);
490  if (thisid.station() == 1 && thatid.station() == 1) {
491  if (qoverpt > 0)
492  m_x_pos_dt1_csc1_resid[thatid.endcap() - 1][thisid.sector() - 1]->Fill(residdiff);
493  else
494  m_x_neg_dt1_csc1_resid[thatid.endcap() - 1][thisid.sector() - 1]->Fill(residdiff);
495  } else if (thisid.station() == 1 && thatid.station() == 2) {
496  if (qoverpt > 0)
497  m_x_pos_dt1_csc2_resid[thatid.endcap() - 1][thisid.sector() - 1]->Fill(residdiff);
498  else
499  m_x_neg_dt1_csc2_resid[thatid.endcap() - 1][thisid.sector() - 1]->Fill(residdiff);
500  } else if (thisid.station() == 2 && thatid.station() == 1) {
501  if (qoverpt > 0)
502  m_x_pos_dt2_csc1_resid[thatid.endcap() - 1][thisid.sector() - 1]->Fill(residdiff);
503  else
504  m_x_neg_dt2_csc1_resid[thatid.endcap() - 1][thisid.sector() - 1]->Fill(residdiff);
505  }
506  }
507  } // end other is CSC
508  } // end loop over other
509  } // end if DT13
510 
511  // z-direction
512  if (dt2 != nullptr && dt2->numHits() >= m_minDT2Hits && (dt2->chi2() / double(dt2->ndof())) < 2.0) {
513  DTChamberId thisid(chamberId->rawId());
514  for (std::vector<DetId>::const_iterator otherId = chamberIds.begin(); otherId != chamberIds.end(); ++otherId) {
515  if (otherId->det() == DetId::Muon && otherId->subdetId() == MuonSubdetId::DT) {
516  DTChamberId thatid(otherId->rawId());
517  if (thisid.rawId() != thatid.rawId() && thisid.wheel() == thatid.wheel() &&
518  thisid.sector() == thatid.sector()) {
520  if (dt2other != nullptr && dt2other->numHits() >= m_minDT2Hits) {
521  double slopediff = 1000. * (dt2->global_resslope() - dt2other->global_resslope());
522  //double length = dt2->chamberAlignable()->surface().toGlobal(align::LocalPoint(0,0,0)).perp() -
523  // dt2other->chamberAlignable()->surface().toGlobal(align::LocalPoint(0,0,0)).perp();
524  //double residdiff = 10. * (dt2->global_residual() + length*dt2->global_resslope() - dt2other->global_residual());
525  double residdiff = 10. * (dt2->global_residual() - dt2other->global_residual());
526 
527  int st = 0;
528  if (thatid.station() - thisid.station() == 1)
529  st = thisid.station();
530  if (st > 0) {
531  m_dt2_resid[thisid.wheel() + 2][thisid.sector() - 1][st - 1]->Fill(qoverpt, residdiff);
532  m_dt2_slope[thisid.wheel() + 2][thisid.sector() - 1][st - 1]->Fill(qoverpt, slopediff);
533  if (qoverpt > 0) {
534  m_posdt2_resid[thisid.wheel() + 2][thisid.sector() - 1][st - 1]->Fill(residdiff);
535  m_posdt2_slope[thisid.wheel() + 2][thisid.sector() - 1][st - 1]->Fill(slopediff);
536  } else {
537  m_negdt2_resid[thisid.wheel() + 2][thisid.sector() - 1][st - 1]->Fill(residdiff);
538  m_negdt2_slope[thisid.wheel() + 2][thisid.sector() - 1][st - 1]->Fill(slopediff);
539  }
540  }
541  } // end other numhits
542  } // end this near other
543  } // end other is DT
544  } // end loop over other
545  } // end if DT2
546  } // end if DT
547 
548  // **************** CSC ****************
549  else if (m_doCSC && chamberId->subdetId() == MuonSubdetId::CSC) {
551  if (csc->numHits() >= m_minCSCHits) {
552  CSCDetId thisid(chamberId->rawId());
553  for (std::vector<DetId>::const_iterator otherId = chamberIds.begin(); otherId != chamberIds.end(); ++otherId) {
554  if (otherId->det() == DetId::Muon && otherId->subdetId() == MuonSubdetId::CSC) {
555  CSCDetId thatid(otherId->rawId());
556  if (thisid.rawId() != thatid.rawId() && thisid.endcap() == thatid.endcap()) {
558  if (cscother != nullptr && cscother->numHits() >= m_minCSCHits) {
559  double slopediff = 1000. * (csc->global_resslope() - cscother->global_resslope());
560  //double length = csc->chamberAlignable()->surface().toGlobal(align::LocalPoint(0,0,0)).z() -
561  // cscother->chamberAlignable()->surface().toGlobal(align::LocalPoint(0,0,0)).z();
562  //double residdiff = 10. * (csc->global_residual() + length*csc->global_resslope() - cscother->global_residual());
563  double residdiff = 10. * (csc->global_residual() - cscother->global_residual());
564 
565  int thischamber = thisid.chamber();
566  int thisring = thisid.ring();
567  if (thisid.station() == 1 && (thisring == 1 || thisring == 4)) {
568  thischamber = (thischamber - 1) / 2 + 1;
569  thisring = 1;
570  }
571 
572  if (thisring == thatid.ring() && thischamber == thatid.chamber()) {
573  bool inner = (thisring == 1);
574  bool outer = (thisring == 2);
575  int st = 0;
576  if (thatid.station() - thisid.station() == 1 && (inner || thisid.station() < 3))
577  st = thisid.station();
578 
579  if (outer && st > 0) {
580  m_cscouter_resid[thisid.endcap() - 1][thischamber - 1][st - 1]->Fill(qoverpz, residdiff);
581  m_cscouter_slope[thisid.endcap() - 1][thischamber - 1][st - 1]->Fill(qoverpz, slopediff);
582  if (qoverpz > 0) {
583  m_poscscouter_resid[thisid.endcap() - 1][thischamber - 1][st - 1]->Fill(residdiff);
584  m_poscscouter_slope[thisid.endcap() - 1][thischamber - 1][st - 1]->Fill(slopediff);
585  } else {
586  m_negcscouter_resid[thisid.endcap() - 1][thischamber - 1][st - 1]->Fill(residdiff);
587  m_negcscouter_slope[thisid.endcap() - 1][thischamber - 1][st - 1]->Fill(slopediff);
588  }
589  }
590  if (inner && st > 0) {
591  m_cscinner_resid[thisid.endcap() - 1][thischamber - 1][st - 1]->Fill(qoverpz, residdiff);
592  m_cscinner_slope[thisid.endcap() - 1][thischamber - 1][st - 1]->Fill(qoverpz, slopediff);
593  if (qoverpz > 0) {
594  m_poscscinner_resid[thisid.endcap() - 1][thischamber - 1][st - 1]->Fill(residdiff);
595  m_poscscinner_slope[thisid.endcap() - 1][thischamber - 1][st - 1]->Fill(slopediff);
596  } else {
597  m_negcscinner_resid[thisid.endcap() - 1][thischamber - 1][st - 1]->Fill(residdiff);
598  m_negcscinner_slope[thisid.endcap() - 1][thischamber - 1][st - 1]->Fill(slopediff);
599  }
600  }
601  } // end of same ring&chamber
602  } // end other min numhits
603  } // end this near other
604  } // end other is CSC
605  } // end loop over other
606 
607  } // end if this min numhits
608  } // end if CSC
609 
610  } // end loop over chamberIds
611 }
double global_residual() const
double trackx() const
const std::vector< DetId > chamberIds() const
double pt() const
track transverse momentum
Definition: TrackBase.h:602
const reco::Track * getTrack()
AlignableDetOrUnitPtr chamberAlignable() const
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
double tracky() const
Definition: L1Track.h:19
const AlignableSurface & surface() const
Return the Surface (global position and orientation) of the object.
Definition: Alignable.h:132
double pz() const
z coordinate of momentum vector
Definition: TrackBase.h:611
align::GlobalPoints toGlobal(const align::LocalPoints &) const
Return in global coord given a set of local points.
double global_resslope() const
int charge() const
track electric charge
Definition: TrackBase.h:575
static constexpr int DT
Definition: MuonSubdetId.h:11
static constexpr int CSC
Definition: MuonSubdetId.h:12
MuonChamberResidual * chamberResidual(DetId chamberId, int type)

Member Data Documentation

bool AlignmentMonitorSegmentDifferences::m_allowTIDTEC
private

Definition at line 53 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by processMuonResidualsFromTrack().

TProfile* AlignmentMonitorSegmentDifferences::m_cscinner_resid[2][18][3]
private

Definition at line 78 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by book(), and processMuonResidualsFromTrack().

TProfile* AlignmentMonitorSegmentDifferences::m_cscinner_slope[2][18][3]
private

Definition at line 79 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by book(), and processMuonResidualsFromTrack().

TProfile* AlignmentMonitorSegmentDifferences::m_cscouter_resid[2][36][2]
private

Definition at line 76 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by book(), and processMuonResidualsFromTrack().

TProfile* AlignmentMonitorSegmentDifferences::m_cscouter_slope[2][36][2]
private

Definition at line 77 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by book(), and processMuonResidualsFromTrack().

bool AlignmentMonitorSegmentDifferences::m_doCSC
private

Definition at line 59 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by book(), and processMuonResidualsFromTrack().

bool AlignmentMonitorSegmentDifferences::m_doDT
private

Definition at line 58 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by book(), and processMuonResidualsFromTrack().

TProfile* AlignmentMonitorSegmentDifferences::m_dt13_resid[5][12][3]
private

Definition at line 62 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by book(), and processMuonResidualsFromTrack().

TProfile* AlignmentMonitorSegmentDifferences::m_dt13_slope[5][12][3]
private

Definition at line 63 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by book(), and processMuonResidualsFromTrack().

TProfile* AlignmentMonitorSegmentDifferences::m_dt2_resid[5][12][2]
private

Definition at line 64 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by book(), and processMuonResidualsFromTrack().

TProfile* AlignmentMonitorSegmentDifferences::m_dt2_slope[5][12][2]
private

Definition at line 65 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by book(), and processMuonResidualsFromTrack().

double AlignmentMonitorSegmentDifferences::m_maxDxy
private

Definition at line 50 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by event().

double AlignmentMonitorSegmentDifferences::m_maxTrackerRedChi2
private

Definition at line 52 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by processMuonResidualsFromTrack().

int AlignmentMonitorSegmentDifferences::m_minCSCHits
private

Definition at line 57 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by processMuonResidualsFromTrack().

int AlignmentMonitorSegmentDifferences::m_minDT13Hits
private

Definition at line 55 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by processMuonResidualsFromTrack().

int AlignmentMonitorSegmentDifferences::m_minDT2Hits
private

Definition at line 56 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by processMuonResidualsFromTrack().

bool AlignmentMonitorSegmentDifferences::m_minNCrossedChambers
private

Definition at line 54 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by processMuonResidualsFromTrack().

int AlignmentMonitorSegmentDifferences::m_minTrackerHits
private

Definition at line 51 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by processMuonResidualsFromTrack().

double AlignmentMonitorSegmentDifferences::m_minTrackP
private

Definition at line 49 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by event().

double AlignmentMonitorSegmentDifferences::m_minTrackPt
private

Definition at line 48 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by book(), and event().

edm::InputTag AlignmentMonitorSegmentDifferences::m_muonCollectionTag
private

Definition at line 47 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by event().

TH1F* AlignmentMonitorSegmentDifferences::m_negcscinner_resid[2][18][3]
private

Definition at line 86 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by book(), and processMuonResidualsFromTrack().

TH1F* AlignmentMonitorSegmentDifferences::m_negcscinner_slope[2][18][3]
private

Definition at line 87 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by book(), and processMuonResidualsFromTrack().

TH1F* AlignmentMonitorSegmentDifferences::m_negcscouter_resid[2][36][2]
private

Definition at line 84 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by book(), and processMuonResidualsFromTrack().

TH1F* AlignmentMonitorSegmentDifferences::m_negcscouter_slope[2][36][2]
private

Definition at line 85 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by book(), and processMuonResidualsFromTrack().

TH1F* AlignmentMonitorSegmentDifferences::m_negdt13_resid[5][12][3]
private

Definition at line 70 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by book(), and processMuonResidualsFromTrack().

TH1F* AlignmentMonitorSegmentDifferences::m_negdt13_slope[5][12][3]
private

Definition at line 71 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by book(), and processMuonResidualsFromTrack().

TH1F* AlignmentMonitorSegmentDifferences::m_negdt2_resid[5][12][2]
private

Definition at line 72 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by book(), and processMuonResidualsFromTrack().

TH1F* AlignmentMonitorSegmentDifferences::m_negdt2_slope[5][12][2]
private

Definition at line 73 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by book(), and processMuonResidualsFromTrack().

TH1F* AlignmentMonitorSegmentDifferences::m_poscscinner_resid[2][18][3]
private

Definition at line 82 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by book(), and processMuonResidualsFromTrack().

TH1F* AlignmentMonitorSegmentDifferences::m_poscscinner_slope[2][18][3]
private

Definition at line 83 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by book(), and processMuonResidualsFromTrack().

TH1F* AlignmentMonitorSegmentDifferences::m_poscscouter_resid[2][36][2]
private

Definition at line 80 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by book(), and processMuonResidualsFromTrack().

TH1F* AlignmentMonitorSegmentDifferences::m_poscscouter_slope[2][36][2]
private

Definition at line 81 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by book(), and processMuonResidualsFromTrack().

TH1F* AlignmentMonitorSegmentDifferences::m_posdt13_resid[5][12][3]
private

Definition at line 66 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by book(), and processMuonResidualsFromTrack().

TH1F* AlignmentMonitorSegmentDifferences::m_posdt13_slope[5][12][3]
private

Definition at line 67 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by book(), and processMuonResidualsFromTrack().

TH1F* AlignmentMonitorSegmentDifferences::m_posdt2_resid[5][12][2]
private

Definition at line 68 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by book(), and processMuonResidualsFromTrack().

TH1F* AlignmentMonitorSegmentDifferences::m_posdt2_slope[5][12][2]
private

Definition at line 69 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by book(), and processMuonResidualsFromTrack().

TH1F* AlignmentMonitorSegmentDifferences::m_x_neg_dt1_csc1_resid[2][12]
private

Definition at line 93 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by book(), and processMuonResidualsFromTrack().

TH1F* AlignmentMonitorSegmentDifferences::m_x_neg_dt1_csc2_resid[2][12]
private

Definition at line 94 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by book(), and processMuonResidualsFromTrack().

TH1F* AlignmentMonitorSegmentDifferences::m_x_neg_dt2_csc1_resid[2][12]
private

Definition at line 95 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by book(), and processMuonResidualsFromTrack().

TH1F* AlignmentMonitorSegmentDifferences::m_x_pos_dt1_csc1_resid[2][12]
private

Definition at line 90 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by book(), and processMuonResidualsFromTrack().

TH1F* AlignmentMonitorSegmentDifferences::m_x_pos_dt1_csc2_resid[2][12]
private

Definition at line 91 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by book(), and processMuonResidualsFromTrack().

TH1F* AlignmentMonitorSegmentDifferences::m_x_pos_dt2_csc1_resid[2][12]
private

Definition at line 92 of file AlignmentMonitorSegmentDifferences.cc.

Referenced by book(), and processMuonResidualsFromTrack().