CMS 3D CMS Logo

AlignmentMonitorMuonResiduals.cc

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 //
00003 // Package:     CommonAlignmentProducer
00004 // Class  :     AlignmentMonitorMuonResiduals
00005 // 
00006 // Implementation:
00007 //     <Notes on implementation>
00008 //
00009 // Original Author:  Jim Pivarski
00010 //         Created:  Mon Nov 12 13:30:14 CST 2007
00011 //
00012 
00013 // system include files
00014 #include "Alignment/CommonAlignmentMonitor/interface/AlignmentMonitorPluginFactory.h"
00015 #include "Alignment/CommonAlignmentMonitor/interface/AlignmentMonitorBase.h"
00016 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00017 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00018 
00019 #include "TrackingTools/TrackFitters/interface/TrajectoryStateCombiner.h"
00020 #include "Alignment/MuonAlignment/interface/AlignableMuon.h"
00021 #include "DataFormats/MuonDetId/interface/MuonSubdetId.h"
00022 #include "DataFormats/MuonDetId/interface/DTChamberId.h"
00023 #include "DataFormats/MuonDetId/interface/CSCDetId.h"
00024 #include "TH1F.h"
00025 #include "TTree.h"
00026 
00027 // user include files
00028 
00029 // 
00030 // class definition
00031 // 
00032 
00033 class AlignmentMonitorMuonResiduals: public AlignmentMonitorBase {
00034    public:
00035       AlignmentMonitorMuonResiduals(const edm::ParameterSet& cfg);
00036       ~AlignmentMonitorMuonResiduals() {};
00037 
00038       void book();
00039       void event(const edm::EventSetup &iSetup, const ConstTrajTrackPairCollection& iTrajTracks);
00040       void afterAlignment(const edm::EventSetup &iSetup);
00041 
00042    private:
00043       std::map<int, int> m_numx;
00044       std::map<int, double> m_x_w;
00045       std::map<int, double> m_x_ww;
00046       std::map<int, double> m_x_wx;
00047       std::map<int, double> m_x_wxx;
00048       std::map<int, int> m_numy;
00049       std::map<int, double> m_y_w;
00050       std::map<int, double> m_y_ww;
00051       std::map<int, double> m_y_wy;
00052       std::map<int, double> m_y_wyy;
00053 
00054       TH1F *m_sumnumx, *m_sumnumy, *m_xsummary, *m_ysummary;
00055 
00056       TH1F *m_xresid, *m_xresid_mb, *m_xresid_me,
00057          *m_xresid_mb1, *m_xresid_mb2, *m_xresid_mb3, *m_xresid_mb4,
00058          *m_xresid_minus2, *m_xresid_minus1, *m_xresid_zero, *m_xresid_plus1, *m_xresid_plus2,
00059          *m_xresid_mep11, *m_xresid_mep12, *m_xresid_mep13, *m_xresid_mep14,
00060          *m_xresid_mep21, *m_xresid_mep22, *m_xresid_mep31, *m_xresid_mep32, *m_xresid_mep41,
00061          *m_xresid_mem11, *m_xresid_mem12, *m_xresid_mem13, *m_xresid_mem14,
00062          *m_xresid_mem21, *m_xresid_mem22, *m_xresid_mem31, *m_xresid_mem32, *m_xresid_mem41,
00063          *m_xresid_me11, *m_xresid_me12, *m_xresid_me13, *m_xresid_me14,
00064          *m_xresid_me21, *m_xresid_me22, *m_xresid_me31, *m_xresid_me32, *m_xresid_me41;
00065 
00066       TH1F *m_xmean, *m_xmean_mb, *m_xmean_me,
00067          *m_xmean_mb1, *m_xmean_mb2, *m_xmean_mb3, *m_xmean_mb4,
00068          *m_xmean_minus2, *m_xmean_minus1, *m_xmean_zero, *m_xmean_plus1, *m_xmean_plus2,
00069          *m_xmean_mep11, *m_xmean_mep12, *m_xmean_mep13, *m_xmean_mep14,
00070          *m_xmean_mep21, *m_xmean_mep22, *m_xmean_mep31, *m_xmean_mep32, *m_xmean_mep41,
00071          *m_xmean_mem11, *m_xmean_mem12, *m_xmean_mem13, *m_xmean_mem14,
00072          *m_xmean_mem21, *m_xmean_mem22, *m_xmean_mem31, *m_xmean_mem32, *m_xmean_mem41,
00073          *m_xmean_me11, *m_xmean_me12, *m_xmean_me13, *m_xmean_me14,
00074          *m_xmean_me21, *m_xmean_me22, *m_xmean_me31, *m_xmean_me32, *m_xmean_me41;
00075 
00076       TH1F *m_xstdev, *m_xstdev_mb, *m_xstdev_me,
00077          *m_xstdev_mb1, *m_xstdev_mb2, *m_xstdev_mb3, *m_xstdev_mb4,
00078          *m_xstdev_minus2, *m_xstdev_minus1, *m_xstdev_zero, *m_xstdev_plus1, *m_xstdev_plus2,
00079          *m_xstdev_mep11, *m_xstdev_mep12, *m_xstdev_mep13, *m_xstdev_mep14,
00080          *m_xstdev_mep21, *m_xstdev_mep22, *m_xstdev_mep31, *m_xstdev_mep32, *m_xstdev_mep41,
00081          *m_xstdev_mem11, *m_xstdev_mem12, *m_xstdev_mem13, *m_xstdev_mem14,
00082          *m_xstdev_mem21, *m_xstdev_mem22, *m_xstdev_mem31, *m_xstdev_mem32, *m_xstdev_mem41,
00083          *m_xstdev_me11, *m_xstdev_me12, *m_xstdev_me13, *m_xstdev_me14,
00084          *m_xstdev_me21, *m_xstdev_me22, *m_xstdev_me31, *m_xstdev_me32, *m_xstdev_me41;
00085 
00086       TH1F *m_xerronmean, *m_xerronmean_mb, *m_xerronmean_me,
00087          *m_xerronmean_mb1, *m_xerronmean_mb2, *m_xerronmean_mb3, *m_xerronmean_mb4,
00088          *m_xerronmean_minus2, *m_xerronmean_minus1, *m_xerronmean_zero, *m_xerronmean_plus1, *m_xerronmean_plus2,
00089          *m_xerronmean_mep11, *m_xerronmean_mep12, *m_xerronmean_mep13, *m_xerronmean_mep14,
00090          *m_xerronmean_mep21, *m_xerronmean_mep22, *m_xerronmean_mep31, *m_xerronmean_mep32, *m_xerronmean_mep41,
00091          *m_xerronmean_mem11, *m_xerronmean_mem12, *m_xerronmean_mem13, *m_xerronmean_mem14,
00092          *m_xerronmean_mem21, *m_xerronmean_mem22, *m_xerronmean_mem31, *m_xerronmean_mem32, *m_xerronmean_mem41,
00093          *m_xerronmean_me11, *m_xerronmean_me12, *m_xerronmean_me13, *m_xerronmean_me14,
00094          *m_xerronmean_me21, *m_xerronmean_me22, *m_xerronmean_me31, *m_xerronmean_me32, *m_xerronmean_me41;
00095 
00096       TH1F *m_yresid, *m_yresid_mb, *m_yresid_me,
00097          *m_yresid_mb1, *m_yresid_mb2, *m_yresid_mb3, *m_yresid_mb4,
00098          *m_yresid_minus2, *m_yresid_minus1, *m_yresid_zero, *m_yresid_plus1, *m_yresid_plus2,
00099          *m_yresid_mep11, *m_yresid_mep12, *m_yresid_mep13, *m_yresid_mep14,
00100          *m_yresid_mep21, *m_yresid_mep22, *m_yresid_mep31, *m_yresid_mep32, *m_yresid_mep41,
00101          *m_yresid_mem11, *m_yresid_mem12, *m_yresid_mem13, *m_yresid_mem14,
00102          *m_yresid_mem21, *m_yresid_mem22, *m_yresid_mem31, *m_yresid_mem32, *m_yresid_mem41,
00103          *m_yresid_me11, *m_yresid_me12, *m_yresid_me13, *m_yresid_me14,
00104          *m_yresid_me21, *m_yresid_me22, *m_yresid_me31, *m_yresid_me32, *m_yresid_me41;
00105 
00106       TH1F *m_ymean, *m_ymean_mb, *m_ymean_me,
00107          *m_ymean_mb1, *m_ymean_mb2, *m_ymean_mb3, *m_ymean_mb4,
00108          *m_ymean_minus2, *m_ymean_minus1, *m_ymean_zero, *m_ymean_plus1, *m_ymean_plus2,
00109          *m_ymean_mep11, *m_ymean_mep12, *m_ymean_mep13, *m_ymean_mep14,
00110          *m_ymean_mep21, *m_ymean_mep22, *m_ymean_mep31, *m_ymean_mep32, *m_ymean_mep41,
00111          *m_ymean_mem11, *m_ymean_mem12, *m_ymean_mem13, *m_ymean_mem14,
00112          *m_ymean_mem21, *m_ymean_mem22, *m_ymean_mem31, *m_ymean_mem32, *m_ymean_mem41,
00113          *m_ymean_me11, *m_ymean_me12, *m_ymean_me13, *m_ymean_me14,
00114          *m_ymean_me21, *m_ymean_me22, *m_ymean_me31, *m_ymean_me32, *m_ymean_me41;
00115 
00116       TH1F *m_ystdev, *m_ystdev_mb, *m_ystdev_me,
00117          *m_ystdev_mb1, *m_ystdev_mb2, *m_ystdev_mb3, *m_ystdev_mb4,
00118          *m_ystdev_minus2, *m_ystdev_minus1, *m_ystdev_zero, *m_ystdev_plus1, *m_ystdev_plus2,
00119          *m_ystdev_mep11, *m_ystdev_mep12, *m_ystdev_mep13, *m_ystdev_mep14,
00120          *m_ystdev_mep21, *m_ystdev_mep22, *m_ystdev_mep31, *m_ystdev_mep32, *m_ystdev_mep41,
00121          *m_ystdev_mem11, *m_ystdev_mem12, *m_ystdev_mem13, *m_ystdev_mem14,
00122          *m_ystdev_mem21, *m_ystdev_mem22, *m_ystdev_mem31, *m_ystdev_mem32, *m_ystdev_mem41,
00123          *m_ystdev_me11, *m_ystdev_me12, *m_ystdev_me13, *m_ystdev_me14,
00124          *m_ystdev_me21, *m_ystdev_me22, *m_ystdev_me31, *m_ystdev_me32, *m_ystdev_me41;
00125 
00126       TH1F *m_yerronmean, *m_yerronmean_mb, *m_yerronmean_me,
00127          *m_yerronmean_mb1, *m_yerronmean_mb2, *m_yerronmean_mb3, *m_yerronmean_mb4,
00128          *m_yerronmean_minus2, *m_yerronmean_minus1, *m_yerronmean_zero, *m_yerronmean_plus1, *m_yerronmean_plus2,
00129          *m_yerronmean_mep11, *m_yerronmean_mep12, *m_yerronmean_mep13, *m_yerronmean_mep14,
00130          *m_yerronmean_mep21, *m_yerronmean_mep22, *m_yerronmean_mep31, *m_yerronmean_mep32, *m_yerronmean_mep41,
00131          *m_yerronmean_mem11, *m_yerronmean_mem12, *m_yerronmean_mem13, *m_yerronmean_mem14,
00132          *m_yerronmean_mem21, *m_yerronmean_mem22, *m_yerronmean_mem31, *m_yerronmean_mem32, *m_yerronmean_mem41,
00133          *m_yerronmean_me11, *m_yerronmean_me12, *m_yerronmean_me13, *m_yerronmean_me14,
00134          *m_yerronmean_me21, *m_yerronmean_me22, *m_yerronmean_me31, *m_yerronmean_me32, *m_yerronmean_me41;
00135 
00136       TTree *m_chambers;
00137       Int_t m_chambers_rawid, m_chambers_endcap, m_chambers_wheel, m_chambers_station, m_chambers_sector, m_chambers_ring, m_chambers_chamber;
00138       Int_t m_chambers_numx, m_chambers_numy;
00139       Float_t m_chambers_x_w, m_chambers_x_ww, m_chambers_x_wx, m_chambers_x_wxx;
00140       Float_t m_chambers_y_w, m_chambers_y_ww, m_chambers_y_wy, m_chambers_y_wyy;
00141 
00142       unsigned int xresid_bins, xmean_bins, xstdev_bins, xerronmean_bins, yresid_bins, ymean_bins, ystdev_bins, yerronmean_bins;
00143       double xresid_low, xresid_high, xmean_low, xmean_high, xstdev_low, xstdev_high, xerronmean_low, xerronmean_high, yresid_low, yresid_high, ymean_low, ymean_high, ystdev_low, ystdev_high, yerronmean_low, yerronmean_high;
00144 
00145 };
00146 
00147 //
00148 // constants, enums and typedefs
00149 //
00150 
00151 //
00152 // static data member definitions
00153 //
00154 
00155 //
00156 // member functions
00157 //
00158 
00159 AlignmentMonitorMuonResiduals::AlignmentMonitorMuonResiduals(const edm::ParameterSet& cfg)
00160    : AlignmentMonitorBase(cfg, "AlignmentMonitorMuonResiduals")
00161 {
00162    xresid_bins = cfg.getParameter<unsigned int>("xresid_bins");
00163    xmean_bins = cfg.getParameter<unsigned int>("xmean_bins");
00164    xstdev_bins = cfg.getParameter<unsigned int>("xstdev_bins");
00165    xerronmean_bins = cfg.getParameter<unsigned int>("xerronmean_bins");
00166    yresid_bins = cfg.getParameter<unsigned int>("yresid_bins");
00167    ymean_bins = cfg.getParameter<unsigned int>("ymean_bins");
00168    ystdev_bins = cfg.getParameter<unsigned int>("ystdev_bins");
00169    yerronmean_bins = cfg.getParameter<unsigned int>("yerronmean_bins");
00170    xresid_low = cfg.getParameter<double>("xresid_low");
00171    xresid_high = cfg.getParameter<double>("xresid_high");
00172    xmean_low = cfg.getParameter<double>("xmean_low");
00173    xmean_high = cfg.getParameter<double>("xmean_high");
00174    xstdev_low = cfg.getParameter<double>("xstdev_low");
00175    xstdev_high = cfg.getParameter<double>("xstdev_high");
00176    xerronmean_low = cfg.getParameter<double>("xerronmean_low");
00177    xerronmean_high = cfg.getParameter<double>("xerronmean_high");
00178    yresid_low = cfg.getParameter<double>("yresid_low");
00179    yresid_high = cfg.getParameter<double>("yresid_high");
00180    ymean_low = cfg.getParameter<double>("ymean_low");
00181    ymean_high = cfg.getParameter<double>("ymean_high");
00182    ystdev_low = cfg.getParameter<double>("ystdev_low");
00183    ystdev_high = cfg.getParameter<double>("ystdev_high");
00184    yerronmean_low = cfg.getParameter<double>("yerronmean_low");
00185    yerronmean_high = cfg.getParameter<double>("yerronmean_high");
00186 }
00187 
00188 void AlignmentMonitorMuonResiduals::book() {
00189    m_numx.clear();
00190    m_x_w.clear();
00191    m_x_ww.clear();
00192    m_x_wx.clear();
00193    m_x_wxx.clear();
00194    m_numy.clear();
00195    m_y_w.clear();
00196    m_y_ww.clear();
00197    m_y_wy.clear();
00198    m_y_wyy.clear();
00199 
00200    std::vector<Alignable*> chambers;
00201    std::vector<Alignable*> tmp1 = pMuon()->DTChambers();
00202    for (std::vector<Alignable*>::const_iterator iter = tmp1.begin();  iter != tmp1.end();  ++iter) chambers.push_back(*iter);
00203    std::vector<Alignable*> tmp2 = pMuon()->CSCChambers();
00204    for (std::vector<Alignable*>::const_iterator iter = tmp2.begin();  iter != tmp2.end();  ++iter) chambers.push_back(*iter);
00205 
00206    for (std::vector<Alignable*>::const_iterator chamber = chambers.begin();  chamber != chambers.end();  ++chamber) {
00207       int id = (*chamber)->geomDetId().rawId();
00208       m_numx[id] = 0;
00209       m_x_w[id] = 0;
00210       m_x_ww[id] = 0;
00211       m_x_wx[id] = 0;
00212       m_x_wxx[id] = 0;
00213       m_numy[id] = 0;
00214       m_y_w[id] = 0;
00215       m_y_ww[id] = 0;
00216       m_y_wy[id] = 0;
00217       m_y_wyy[id] = 0;
00218    }
00219 
00220    m_sumnumx = book1D("/iterN/", "numx", "number of x hits", chambers.size(), 0.5, chambers.size() + 0.5);
00221    m_sumnumy = book1D("/iterN/", "numy", "number of y hits", chambers.size(), 0.5, chambers.size() + 0.5);
00222    m_xsummary = book1D("/iterN/", "xsummary", "summary of x means and errors (mm vertical axis)", chambers.size(), 0.5, chambers.size() + 0.5);
00223    m_ysummary = book1D("/iterN/", "ysummary", "summary of y means and errors (mm vertical axis)", chambers.size(), 0.5, chambers.size() + 0.5);
00224 
00225    m_xresid = book1D("/iterN/", "xresid", "x residual (mm)", xresid_bins, xresid_low, xresid_high);
00226    m_xresid_mb = book1D("/iterN/mb/", "xresid_mb", "barrel x residual (mm)", xresid_bins, xresid_low, xresid_high);
00227    m_xresid_me = book1D("/iterN/me/", "xresid_me", "endcap x residual (mm)", xresid_bins, xresid_low, xresid_high);
00228    m_xresid_mb1 = book1D("/iterN/mb1/", "xresid_mb1", "MB station 1 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00229    m_xresid_mb2 = book1D("/iterN/mb2/", "xresid_mb2", "MB station 2 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00230    m_xresid_mb3 = book1D("/iterN/mb3/", "xresid_mb3", "MB station 3 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00231    m_xresid_mb4 = book1D("/iterN/mb4/", "xresid_mb4", "MB station 4 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00232    m_xresid_minus2 = book1D("/iterN/minus2/", "xresid_minus2", "MB wheel -2 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00233    m_xresid_minus1 = book1D("/iterN/minus1/", "xresid_minus1", "MB wheel -1 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00234    m_xresid_zero = book1D("/iterN/zero/", "xresid_zero", "MB wheel 0 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00235    m_xresid_plus1 = book1D("/iterN/plus1/", "xresid_plus1", "MB wheel +1 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00236    m_xresid_plus2 = book1D("/iterN/plus2/", "xresid_plus2", "MB wheel +2 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00237    m_xresid_mep11 = book1D("/iterN/mep11/", "xresid_mep11", "ME+1/1 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00238    m_xresid_mep12 = book1D("/iterN/mep12/", "xresid_mep12", "ME+1/2 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00239    m_xresid_mep13 = book1D("/iterN/mep13/", "xresid_mep13", "ME+1/3 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00240    m_xresid_mep14 = book1D("/iterN/mep14/", "xresid_mep14", "ME+1/4 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00241    m_xresid_mep21 = book1D("/iterN/mep21/", "xresid_mep21", "ME+2/1 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00242    m_xresid_mep22 = book1D("/iterN/mep22/", "xresid_mep22", "ME+2/2 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00243    m_xresid_mep31 = book1D("/iterN/mep31/", "xresid_mep31", "ME+3/1 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00244    m_xresid_mep32 = book1D("/iterN/mep32/", "xresid_mep32", "ME+3/2 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00245    m_xresid_mep41 = book1D("/iterN/mep41/", "xresid_mep41", "ME+4/1 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00246    m_xresid_mem11 = book1D("/iterN/mem11/", "xresid_mem11", "ME-1/1 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00247    m_xresid_mem12 = book1D("/iterN/mem12/", "xresid_mem12", "ME-1/2 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00248    m_xresid_mem13 = book1D("/iterN/mem13/", "xresid_mem13", "ME-1/3 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00249    m_xresid_mem14 = book1D("/iterN/mem14/", "xresid_mem14", "ME-1/4 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00250    m_xresid_mem21 = book1D("/iterN/mem21/", "xresid_mem21", "ME-2/1 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00251    m_xresid_mem22 = book1D("/iterN/mem22/", "xresid_mem22", "ME-2/2 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00252    m_xresid_mem31 = book1D("/iterN/mem31/", "xresid_mem31", "ME-3/1 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00253    m_xresid_mem32 = book1D("/iterN/mem32/", "xresid_mem32", "ME-3/2 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00254    m_xresid_mem41 = book1D("/iterN/mem41/", "xresid_mem41", "ME-4/1 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00255    m_xresid_me11 = book1D("/iterN/me11/", "xresid_me11", "ME1/1 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00256    m_xresid_me12 = book1D("/iterN/me12/", "xresid_me12", "ME1/2 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00257    m_xresid_me13 = book1D("/iterN/me13/", "xresid_me13", "ME1/3 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00258    m_xresid_me14 = book1D("/iterN/me14/", "xresid_me14", "ME1/4 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00259    m_xresid_me21 = book1D("/iterN/me21/", "xresid_me21", "ME2/1 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00260    m_xresid_me22 = book1D("/iterN/me22/", "xresid_me22", "ME2/2 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00261    m_xresid_me31 = book1D("/iterN/me31/", "xresid_me31", "ME3/1 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00262    m_xresid_me32 = book1D("/iterN/me32/", "xresid_me32", "ME3/2 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00263    m_xresid_me41 = book1D("/iterN/me41/", "xresid_me41", "ME4/1 x residual (mm)", xresid_bins, xresid_low, xresid_high);
00264 
00265    m_xmean = book1D("/iterN/", "xmean", "weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00266    m_xmean_mb = book1D("/iterN/mb/", "xmean_mb", "barrel weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00267    m_xmean_me = book1D("/iterN/me/", "xmean_me", "endcap weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00268    m_xmean_mb1 = book1D("/iterN/mb1/", "xmean_mb1", "MB station 1 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00269    m_xmean_mb2 = book1D("/iterN/mb2/", "xmean_mb2", "MB station 2 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00270    m_xmean_mb3 = book1D("/iterN/mb3/", "xmean_mb3", "MB station 3 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00271    m_xmean_mb4 = book1D("/iterN/mb4/", "xmean_mb4", "MB station 4 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00272    m_xmean_minus2 = book1D("/iterN/minus2/", "xmean_minus2", "MB wheel -2 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00273    m_xmean_minus1 = book1D("/iterN/minus1/", "xmean_minus1", "MB wheel -1 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00274    m_xmean_zero = book1D("/iterN/zero/", "xmean_zero", "MB wheel 0 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00275    m_xmean_plus1 = book1D("/iterN/plus1/", "xmean_plus1", "MB wheel +1 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00276    m_xmean_plus2 = book1D("/iterN/plus2/", "xmean_plus2", "MB wheel +2 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00277    m_xmean_mep11 = book1D("/iterN/mep11/", "xmean_mep11", "ME+1/1 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00278    m_xmean_mep12 = book1D("/iterN/mep12/", "xmean_mep12", "ME+1/2 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00279    m_xmean_mep13 = book1D("/iterN/mep13/", "xmean_mep13", "ME+1/3 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00280    m_xmean_mep14 = book1D("/iterN/mep14/", "xmean_mep14", "ME+1/4 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00281    m_xmean_mep21 = book1D("/iterN/mep21/", "xmean_mep21", "ME+2/1 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00282    m_xmean_mep22 = book1D("/iterN/mep22/", "xmean_mep22", "ME+2/2 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00283    m_xmean_mep31 = book1D("/iterN/mep31/", "xmean_mep31", "ME+3/1 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00284    m_xmean_mep32 = book1D("/iterN/mep32/", "xmean_mep32", "ME+3/2 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00285    m_xmean_mep41 = book1D("/iterN/mep41/", "xmean_mep41", "ME+4/1 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00286    m_xmean_mem11 = book1D("/iterN/mem11/", "xmean_mem11", "ME-1/1 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00287    m_xmean_mem12 = book1D("/iterN/mem12/", "xmean_mem12", "ME-1/2 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00288    m_xmean_mem13 = book1D("/iterN/mem13/", "xmean_mem13", "ME-1/3 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00289    m_xmean_mem14 = book1D("/iterN/mem14/", "xmean_mem14", "ME-1/4 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00290    m_xmean_mem21 = book1D("/iterN/mem21/", "xmean_mem21", "ME-2/1 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00291    m_xmean_mem22 = book1D("/iterN/mem22/", "xmean_mem22", "ME-2/2 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00292    m_xmean_mem31 = book1D("/iterN/mem31/", "xmean_mem31", "ME-3/1 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00293    m_xmean_mem32 = book1D("/iterN/mem32/", "xmean_mem32", "ME-3/2 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00294    m_xmean_mem41 = book1D("/iterN/mem41/", "xmean_mem41", "ME-4/1 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00295    m_xmean_me11 = book1D("/iterN/me11/", "xmean_me11", "ME1/1 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00296    m_xmean_me12 = book1D("/iterN/me12/", "xmean_me12", "ME1/2 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00297    m_xmean_me13 = book1D("/iterN/me13/", "xmean_me13", "ME1/3 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00298    m_xmean_me14 = book1D("/iterN/me14/", "xmean_me14", "ME1/4 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00299    m_xmean_me21 = book1D("/iterN/me21/", "xmean_me21", "ME2/1 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00300    m_xmean_me22 = book1D("/iterN/me22/", "xmean_me22", "ME2/2 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00301    m_xmean_me31 = book1D("/iterN/me31/", "xmean_me31", "ME3/1 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00302    m_xmean_me32 = book1D("/iterN/me32/", "xmean_me32", "ME3/2 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00303    m_xmean_me41 = book1D("/iterN/me41/", "xmean_me41", "ME4/1 weighted mean x residual per chamber (mm)", xmean_bins, xmean_low, xmean_high);
00304 
00305    m_xstdev = book1D("/iterN/", "xstdev", "weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00306    m_xstdev_mb = book1D("/iterN/mb/", "xstdev_mb", "barrel weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00307    m_xstdev_me = book1D("/iterN/me/", "xstdev_me", "endcap weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00308    m_xstdev_mb1 = book1D("/iterN/mb1/", "xstdev_mb1", "MB station 1 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00309    m_xstdev_mb2 = book1D("/iterN/mb2/", "xstdev_mb2", "MB station 2 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00310    m_xstdev_mb3 = book1D("/iterN/mb3/", "xstdev_mb3", "MB station 3 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00311    m_xstdev_mb4 = book1D("/iterN/mb4/", "xstdev_mb4", "MB station 4 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00312    m_xstdev_minus2 = book1D("/iterN/minus2/", "xstdev_minus2", "MB wheel -2 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00313    m_xstdev_minus1 = book1D("/iterN/minus1/", "xstdev_minus1", "MB wheel -1 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00314    m_xstdev_zero = book1D("/iterN/zero/", "xstdev_zero", "MB wheel 0 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00315    m_xstdev_plus1 = book1D("/iterN/plus1/", "xstdev_plus1", "MB wheel +1 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00316    m_xstdev_plus2 = book1D("/iterN/plus2/", "xstdev_plus2", "MB wheel +2 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00317    m_xstdev_mep11 = book1D("/iterN/mep11/", "xstdev_mep11", "ME+1/1 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00318    m_xstdev_mep12 = book1D("/iterN/mep12/", "xstdev_mep12", "ME+1/2 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00319    m_xstdev_mep13 = book1D("/iterN/mep13/", "xstdev_mep13", "ME+1/3 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00320    m_xstdev_mep14 = book1D("/iterN/mep14/", "xstdev_mep14", "ME+1/4 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00321    m_xstdev_mep21 = book1D("/iterN/mep21/", "xstdev_mep21", "ME+2/1 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00322    m_xstdev_mep22 = book1D("/iterN/mep22/", "xstdev_mep22", "ME+2/2 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00323    m_xstdev_mep31 = book1D("/iterN/mep31/", "xstdev_mep31", "ME+3/1 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00324    m_xstdev_mep32 = book1D("/iterN/mep32/", "xstdev_mep32", "ME+3/2 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00325    m_xstdev_mep41 = book1D("/iterN/mep41/", "xstdev_mep41", "ME+4/1 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00326    m_xstdev_mem11 = book1D("/iterN/mem11/", "xstdev_mem11", "ME-1/1 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00327    m_xstdev_mem12 = book1D("/iterN/mem12/", "xstdev_mem12", "ME-1/2 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00328    m_xstdev_mem13 = book1D("/iterN/mem13/", "xstdev_mem13", "ME-1/3 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00329    m_xstdev_mem14 = book1D("/iterN/mem14/", "xstdev_mem14", "ME-1/4 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00330    m_xstdev_mem21 = book1D("/iterN/mem21/", "xstdev_mem21", "ME-2/1 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00331    m_xstdev_mem22 = book1D("/iterN/mem22/", "xstdev_mem22", "ME-2/2 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00332    m_xstdev_mem31 = book1D("/iterN/mem31/", "xstdev_mem31", "ME-3/1 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00333    m_xstdev_mem32 = book1D("/iterN/mem32/", "xstdev_mem32", "ME-3/2 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00334    m_xstdev_mem41 = book1D("/iterN/mem41/", "xstdev_mem41", "ME-4/1 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00335    m_xstdev_me11 = book1D("/iterN/me11/", "xstdev_me11", "ME1/1 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00336    m_xstdev_me12 = book1D("/iterN/me12/", "xstdev_me12", "ME1/2 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00337    m_xstdev_me13 = book1D("/iterN/me13/", "xstdev_me13", "ME1/3 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00338    m_xstdev_me14 = book1D("/iterN/me14/", "xstdev_me14", "ME1/4 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00339    m_xstdev_me21 = book1D("/iterN/me21/", "xstdev_me21", "ME2/1 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00340    m_xstdev_me22 = book1D("/iterN/me22/", "xstdev_me22", "ME2/2 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00341    m_xstdev_me31 = book1D("/iterN/me31/", "xstdev_me31", "ME3/1 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00342    m_xstdev_me32 = book1D("/iterN/me32/", "xstdev_me32", "ME3/2 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00343    m_xstdev_me41 = book1D("/iterN/me41/", "xstdev_me41", "ME4/1 weighted stdev x residual per chamber (mm)", xstdev_bins, xstdev_low, xstdev_high);
00344 
00345    m_xerronmean = book1D("/iterN/", "xerronmean", "error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00346    m_xerronmean_mb = book1D("/iterN/mb/", "xerronmean_mb", "barrel error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00347    m_xerronmean_me = book1D("/iterN/me/", "xerronmean_me", "endcap error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00348    m_xerronmean_mb1 = book1D("/iterN/mb1/", "xerronmean_mb1", "MB station 1 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00349    m_xerronmean_mb2 = book1D("/iterN/mb2/", "xerronmean_mb2", "MB station 2 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00350    m_xerronmean_mb3 = book1D("/iterN/mb3/", "xerronmean_mb3", "MB station 3 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00351    m_xerronmean_mb4 = book1D("/iterN/mb4/", "xerronmean_mb4", "MB station 4 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00352    m_xerronmean_minus2 = book1D("/iterN/minus2/", "xerronmean_minus2", "MB wheel -2 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00353    m_xerronmean_minus1 = book1D("/iterN/minus1/", "xerronmean_minus1", "MB wheel -1 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00354    m_xerronmean_zero = book1D("/iterN/zero/", "xerronmean_zero", "MB wheel 0 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00355    m_xerronmean_plus1 = book1D("/iterN/plus1/", "xerronmean_plus1", "MB wheel +1 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00356    m_xerronmean_plus2 = book1D("/iterN/plus2/", "xerronmean_plus2", "MB wheel +2 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00357    m_xerronmean_mep11 = book1D("/iterN/mep11/", "xerronmean_mep11", "ME+1/1 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00358    m_xerronmean_mep12 = book1D("/iterN/mep12/", "xerronmean_mep12", "ME+1/2 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00359    m_xerronmean_mep13 = book1D("/iterN/mep13/", "xerronmean_mep13", "ME+1/3 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00360    m_xerronmean_mep14 = book1D("/iterN/mep14/", "xerronmean_mep14", "ME+1/4 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00361    m_xerronmean_mep21 = book1D("/iterN/mep21/", "xerronmean_mep21", "ME+2/1 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00362    m_xerronmean_mep22 = book1D("/iterN/mep22/", "xerronmean_mep22", "ME+2/2 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00363    m_xerronmean_mep31 = book1D("/iterN/mep31/", "xerronmean_mep31", "ME+3/1 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00364    m_xerronmean_mep32 = book1D("/iterN/mep32/", "xerronmean_mep32", "ME+3/2 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00365    m_xerronmean_mep41 = book1D("/iterN/mep41/", "xerronmean_mep41", "ME+4/1 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00366    m_xerronmean_mem11 = book1D("/iterN/mem11/", "xerronmean_mem11", "ME-1/1 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00367    m_xerronmean_mem12 = book1D("/iterN/mem12/", "xerronmean_mem12", "ME-1/2 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00368    m_xerronmean_mem13 = book1D("/iterN/mem13/", "xerronmean_mem13", "ME-1/3 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00369    m_xerronmean_mem14 = book1D("/iterN/mem14/", "xerronmean_mem14", "ME-1/4 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00370    m_xerronmean_mem21 = book1D("/iterN/mem21/", "xerronmean_mem21", "ME-2/1 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00371    m_xerronmean_mem22 = book1D("/iterN/mem22/", "xerronmean_mem22", "ME-2/2 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00372    m_xerronmean_mem31 = book1D("/iterN/mem31/", "xerronmean_mem31", "ME-3/1 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00373    m_xerronmean_mem32 = book1D("/iterN/mem32/", "xerronmean_mem32", "ME-3/2 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00374    m_xerronmean_mem41 = book1D("/iterN/mem41/", "xerronmean_mem41", "ME-4/1 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00375    m_xerronmean_me11 = book1D("/iterN/me11/", "xerronmean_me11", "ME1/1 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00376    m_xerronmean_me12 = book1D("/iterN/me12/", "xerronmean_me12", "ME1/2 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00377    m_xerronmean_me13 = book1D("/iterN/me13/", "xerronmean_me13", "ME1/3 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00378    m_xerronmean_me14 = book1D("/iterN/me14/", "xerronmean_me14", "ME1/4 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00379    m_xerronmean_me21 = book1D("/iterN/me21/", "xerronmean_me21", "ME2/1 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00380    m_xerronmean_me22 = book1D("/iterN/me22/", "xerronmean_me22", "ME2/2 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00381    m_xerronmean_me31 = book1D("/iterN/me31/", "xerronmean_me31", "ME3/1 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00382    m_xerronmean_me32 = book1D("/iterN/me32/", "xerronmean_me32", "ME3/2 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00383    m_xerronmean_me41 = book1D("/iterN/me41/", "xerronmean_me41", "ME4/1 error on x weighted mean residual per chamber (mm)", xerronmean_bins, xerronmean_low, xerronmean_high);
00384 
00385    m_yresid = book1D("/iterN/", "yresid", "y residual (mm)", yresid_bins, yresid_low, yresid_high);
00386    m_yresid_mb = book1D("/iterN/mb/", "yresid_mb", "barrel y residual (mm)", yresid_bins, yresid_low, yresid_high);
00387    m_yresid_me = book1D("/iterN/me/", "yresid_me", "endcap y residual (mm)", yresid_bins, yresid_low, yresid_high);
00388    m_yresid_mb1 = book1D("/iterN/mb1/", "yresid_mb1", "MB station 1 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00389    m_yresid_mb2 = book1D("/iterN/mb2/", "yresid_mb2", "MB station 2 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00390    m_yresid_mb3 = book1D("/iterN/mb3/", "yresid_mb3", "MB station 3 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00391    m_yresid_mb4 = book1D("/iterN/mb4/", "yresid_mb4", "MB station 4 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00392    m_yresid_minus2 = book1D("/iterN/minus2/", "yresid_minus2", "MB wheel -2 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00393    m_yresid_minus1 = book1D("/iterN/minus1/", "yresid_minus1", "MB wheel -1 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00394    m_yresid_zero = book1D("/iterN/zero/", "yresid_zero", "MB wheel 0 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00395    m_yresid_plus1 = book1D("/iterN/plus1/", "yresid_plus1", "MB wheel +1 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00396    m_yresid_plus2 = book1D("/iterN/plus2/", "yresid_plus2", "MB wheel +2 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00397    m_yresid_mep11 = book1D("/iterN/mep11/", "yresid_mep11", "ME+1/1 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00398    m_yresid_mep12 = book1D("/iterN/mep12/", "yresid_mep12", "ME+1/2 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00399    m_yresid_mep13 = book1D("/iterN/mep13/", "yresid_mep13", "ME+1/3 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00400    m_yresid_mep14 = book1D("/iterN/mep14/", "yresid_mep14", "ME+1/4 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00401    m_yresid_mep21 = book1D("/iterN/mep21/", "yresid_mep21", "ME+2/1 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00402    m_yresid_mep22 = book1D("/iterN/mep22/", "yresid_mep22", "ME+2/2 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00403    m_yresid_mep31 = book1D("/iterN/mep31/", "yresid_mep31", "ME+3/1 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00404    m_yresid_mep32 = book1D("/iterN/mep32/", "yresid_mep32", "ME+3/2 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00405    m_yresid_mep41 = book1D("/iterN/mep41/", "yresid_mep41", "ME+4/1 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00406    m_yresid_mem11 = book1D("/iterN/mem11/", "yresid_mem11", "ME-1/1 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00407    m_yresid_mem12 = book1D("/iterN/mem12/", "yresid_mem12", "ME-1/2 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00408    m_yresid_mem13 = book1D("/iterN/mem13/", "yresid_mem13", "ME-1/3 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00409    m_yresid_mem14 = book1D("/iterN/mem14/", "yresid_mem14", "ME-1/4 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00410    m_yresid_mem21 = book1D("/iterN/mem21/", "yresid_mem21", "ME-2/1 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00411    m_yresid_mem22 = book1D("/iterN/mem22/", "yresid_mem22", "ME-2/2 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00412    m_yresid_mem31 = book1D("/iterN/mem31/", "yresid_mem31", "ME-3/1 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00413    m_yresid_mem32 = book1D("/iterN/mem32/", "yresid_mem32", "ME-3/2 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00414    m_yresid_mem41 = book1D("/iterN/mem41/", "yresid_mem41", "ME-4/1 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00415    m_yresid_me11 = book1D("/iterN/me11/", "yresid_me11", "ME1/1 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00416    m_yresid_me12 = book1D("/iterN/me12/", "yresid_me12", "ME1/2 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00417    m_yresid_me13 = book1D("/iterN/me13/", "yresid_me13", "ME1/3 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00418    m_yresid_me14 = book1D("/iterN/me14/", "yresid_me14", "ME1/4 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00419    m_yresid_me21 = book1D("/iterN/me21/", "yresid_me21", "ME2/1 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00420    m_yresid_me22 = book1D("/iterN/me22/", "yresid_me22", "ME2/2 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00421    m_yresid_me31 = book1D("/iterN/me31/", "yresid_me31", "ME3/1 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00422    m_yresid_me32 = book1D("/iterN/me32/", "yresid_me32", "ME3/2 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00423    m_yresid_me41 = book1D("/iterN/me41/", "yresid_me41", "ME4/1 y residual (mm)", yresid_bins, yresid_low, yresid_high);
00424 
00425    m_ymean = book1D("/iterN/", "ymean", "weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00426    m_ymean_mb = book1D("/iterN/mb/", "ymean_mb", "barrel weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00427    m_ymean_me = book1D("/iterN/me/", "ymean_me", "endcap weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00428    m_ymean_mb1 = book1D("/iterN/mb1/", "ymean_mb1", "MB station 1 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00429    m_ymean_mb2 = book1D("/iterN/mb2/", "ymean_mb2", "MB station 2 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00430    m_ymean_mb3 = book1D("/iterN/mb3/", "ymean_mb3", "MB station 3 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00431    m_ymean_mb4 = book1D("/iterN/mb4/", "ymean_mb4", "MB station 4 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00432    m_ymean_minus2 = book1D("/iterN/minus2/", "ymean_minus2", "MB wheel -2 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00433    m_ymean_minus1 = book1D("/iterN/minus1/", "ymean_minus1", "MB wheel -1 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00434    m_ymean_zero = book1D("/iterN/zero/", "ymean_zero", "MB wheel 0 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00435    m_ymean_plus1 = book1D("/iterN/plus1/", "ymean_plus1", "MB wheel +1 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00436    m_ymean_plus2 = book1D("/iterN/plus2/", "ymean_plus2", "MB wheel +2 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00437    m_ymean_mep11 = book1D("/iterN/mep11/", "ymean_mep11", "ME+1/1 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00438    m_ymean_mep12 = book1D("/iterN/mep12/", "ymean_mep12", "ME+1/2 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00439    m_ymean_mep13 = book1D("/iterN/mep13/", "ymean_mep13", "ME+1/3 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00440    m_ymean_mep14 = book1D("/iterN/mep14/", "ymean_mep14", "ME+1/4 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00441    m_ymean_mep21 = book1D("/iterN/mep21/", "ymean_mep21", "ME+2/1 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00442    m_ymean_mep22 = book1D("/iterN/mep22/", "ymean_mep22", "ME+2/2 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00443    m_ymean_mep31 = book1D("/iterN/mep31/", "ymean_mep31", "ME+3/1 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00444    m_ymean_mep32 = book1D("/iterN/mep32/", "ymean_mep32", "ME+3/2 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00445    m_ymean_mep41 = book1D("/iterN/mep41/", "ymean_mep41", "ME+4/1 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00446    m_ymean_mem11 = book1D("/iterN/mem11/", "ymean_mem11", "ME-1/1 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00447    m_ymean_mem12 = book1D("/iterN/mem12/", "ymean_mem12", "ME-1/2 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00448    m_ymean_mem13 = book1D("/iterN/mem13/", "ymean_mem13", "ME-1/3 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00449    m_ymean_mem14 = book1D("/iterN/mem14/", "ymean_mem14", "ME-1/4 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00450    m_ymean_mem21 = book1D("/iterN/mem21/", "ymean_mem21", "ME-2/1 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00451    m_ymean_mem22 = book1D("/iterN/mem22/", "ymean_mem22", "ME-2/2 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00452    m_ymean_mem31 = book1D("/iterN/mem31/", "ymean_mem31", "ME-3/1 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00453    m_ymean_mem32 = book1D("/iterN/mem32/", "ymean_mem32", "ME-3/2 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00454    m_ymean_mem41 = book1D("/iterN/mem41/", "ymean_mem41", "ME-4/1 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00455    m_ymean_me11 = book1D("/iterN/me11/", "ymean_me11", "ME1/1 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00456    m_ymean_me12 = book1D("/iterN/me12/", "ymean_me12", "ME1/2 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00457    m_ymean_me13 = book1D("/iterN/me13/", "ymean_me13", "ME1/3 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00458    m_ymean_me14 = book1D("/iterN/me14/", "ymean_me14", "ME1/4 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00459    m_ymean_me21 = book1D("/iterN/me21/", "ymean_me21", "ME2/1 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00460    m_ymean_me22 = book1D("/iterN/me22/", "ymean_me22", "ME2/2 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00461    m_ymean_me31 = book1D("/iterN/me31/", "ymean_me31", "ME3/1 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00462    m_ymean_me32 = book1D("/iterN/me32/", "ymean_me32", "ME3/2 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00463    m_ymean_me41 = book1D("/iterN/me41/", "ymean_me41", "ME4/1 weighted mean y residual per chamber (mm)", ymean_bins, ymean_low, ymean_high);
00464 
00465    m_ystdev = book1D("/iterN/", "ystdev", "weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00466    m_ystdev_mb = book1D("/iterN/mb/", "ystdev_mb", "barrel weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00467    m_ystdev_me = book1D("/iterN/me/", "ystdev_me", "endcap weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00468    m_ystdev_mb1 = book1D("/iterN/mb1/", "ystdev_mb1", "MB station 1 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00469    m_ystdev_mb2 = book1D("/iterN/mb2/", "ystdev_mb2", "MB station 2 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00470    m_ystdev_mb3 = book1D("/iterN/mb3/", "ystdev_mb3", "MB station 3 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00471    m_ystdev_mb4 = book1D("/iterN/mb4/", "ystdev_mb4", "MB station 4 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00472    m_ystdev_minus2 = book1D("/iterN/minus2/", "ystdev_minus2", "MB wheel -2 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00473    m_ystdev_minus1 = book1D("/iterN/minus1/", "ystdev_minus1", "MB wheel -1 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00474    m_ystdev_zero = book1D("/iterN/zero/", "ystdev_zero", "MB wheel 0 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00475    m_ystdev_plus1 = book1D("/iterN/plus1/", "ystdev_plus1", "MB wheel +1 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00476    m_ystdev_plus2 = book1D("/iterN/plus2/", "ystdev_plus2", "MB wheel +2 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00477    m_ystdev_mep11 = book1D("/iterN/mep11/", "ystdev_mep11", "ME+1/1 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00478    m_ystdev_mep12 = book1D("/iterN/mep12/", "ystdev_mep12", "ME+1/2 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00479    m_ystdev_mep13 = book1D("/iterN/mep13/", "ystdev_mep13", "ME+1/3 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00480    m_ystdev_mep14 = book1D("/iterN/mep14/", "ystdev_mep14", "ME+1/4 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00481    m_ystdev_mep21 = book1D("/iterN/mep21/", "ystdev_mep21", "ME+2/1 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00482    m_ystdev_mep22 = book1D("/iterN/mep22/", "ystdev_mep22", "ME+2/2 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00483    m_ystdev_mep31 = book1D("/iterN/mep31/", "ystdev_mep31", "ME+3/1 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00484    m_ystdev_mep32 = book1D("/iterN/mep32/", "ystdev_mep32", "ME+3/2 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00485    m_ystdev_mep41 = book1D("/iterN/mep41/", "ystdev_mep41", "ME+4/1 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00486    m_ystdev_mem11 = book1D("/iterN/mem11/", "ystdev_mem11", "ME-1/1 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00487    m_ystdev_mem12 = book1D("/iterN/mem12/", "ystdev_mem12", "ME-1/2 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00488    m_ystdev_mem13 = book1D("/iterN/mem13/", "ystdev_mem13", "ME-1/3 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00489    m_ystdev_mem14 = book1D("/iterN/mem14/", "ystdev_mem14", "ME-1/4 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00490    m_ystdev_mem21 = book1D("/iterN/mem21/", "ystdev_mem21", "ME-2/1 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00491    m_ystdev_mem22 = book1D("/iterN/mem22/", "ystdev_mem22", "ME-2/2 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00492    m_ystdev_mem31 = book1D("/iterN/mem31/", "ystdev_mem31", "ME-3/1 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00493    m_ystdev_mem32 = book1D("/iterN/mem32/", "ystdev_mem32", "ME-3/2 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00494    m_ystdev_mem41 = book1D("/iterN/mem41/", "ystdev_mem41", "ME-4/1 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00495    m_ystdev_me11 = book1D("/iterN/me11/", "ystdev_me11", "ME1/1 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00496    m_ystdev_me12 = book1D("/iterN/me12/", "ystdev_me12", "ME1/2 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00497    m_ystdev_me13 = book1D("/iterN/me13/", "ystdev_me13", "ME1/3 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00498    m_ystdev_me14 = book1D("/iterN/me14/", "ystdev_me14", "ME1/4 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00499    m_ystdev_me21 = book1D("/iterN/me21/", "ystdev_me21", "ME2/1 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00500    m_ystdev_me22 = book1D("/iterN/me22/", "ystdev_me22", "ME2/2 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00501    m_ystdev_me31 = book1D("/iterN/me31/", "ystdev_me31", "ME3/1 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00502    m_ystdev_me32 = book1D("/iterN/me32/", "ystdev_me32", "ME3/2 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00503    m_ystdev_me41 = book1D("/iterN/me41/", "ystdev_me41", "ME4/1 weighted stdev y residual per chamber (mm)", ystdev_bins, ystdev_low, ystdev_high);
00504 
00505    m_yerronmean = book1D("/iterN/", "yerronmean", "error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00506    m_yerronmean_mb = book1D("/iterN/mb/", "yerronmean_mb", "barrel error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00507    m_yerronmean_me = book1D("/iterN/me/", "yerronmean_me", "endcap error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00508    m_yerronmean_mb1 = book1D("/iterN/mb1/", "yerronmean_mb1", "MB station 1 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00509    m_yerronmean_mb2 = book1D("/iterN/mb2/", "yerronmean_mb2", "MB station 2 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00510    m_yerronmean_mb3 = book1D("/iterN/mb3/", "yerronmean_mb3", "MB station 3 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00511    m_yerronmean_mb4 = book1D("/iterN/mb4/", "yerronmean_mb4", "MB station 4 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00512    m_yerronmean_minus2 = book1D("/iterN/minus2/", "yerronmean_minus2", "MB wheel -2 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00513    m_yerronmean_minus1 = book1D("/iterN/minus1/", "yerronmean_minus1", "MB wheel -1 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00514    m_yerronmean_zero = book1D("/iterN/zero/", "yerronmean_zero", "MB wheel 0 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00515    m_yerronmean_plus1 = book1D("/iterN/plus1/", "yerronmean_plus1", "MB wheel +1 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00516    m_yerronmean_plus2 = book1D("/iterN/plus2/", "yerronmean_plus2", "MB wheel +2 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00517    m_yerronmean_mep11 = book1D("/iterN/mep11/", "yerronmean_mep11", "ME+1/1 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00518    m_yerronmean_mep12 = book1D("/iterN/mep12/", "yerronmean_mep12", "ME+1/2 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00519    m_yerronmean_mep13 = book1D("/iterN/mep13/", "yerronmean_mep13", "ME+1/3 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00520    m_yerronmean_mep14 = book1D("/iterN/mep14/", "yerronmean_mep14", "ME+1/4 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00521    m_yerronmean_mep21 = book1D("/iterN/mep21/", "yerronmean_mep21", "ME+2/1 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00522    m_yerronmean_mep22 = book1D("/iterN/mep22/", "yerronmean_mep22", "ME+2/2 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00523    m_yerronmean_mep31 = book1D("/iterN/mep31/", "yerronmean_mep31", "ME+3/1 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00524    m_yerronmean_mep32 = book1D("/iterN/mep32/", "yerronmean_mep32", "ME+3/2 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00525    m_yerronmean_mep41 = book1D("/iterN/mep41/", "yerronmean_mep41", "ME+4/1 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00526    m_yerronmean_mem11 = book1D("/iterN/mem11/", "yerronmean_mem11", "ME-1/1 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00527    m_yerronmean_mem12 = book1D("/iterN/mem12/", "yerronmean_mem12", "ME-1/2 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00528    m_yerronmean_mem13 = book1D("/iterN/mem13/", "yerronmean_mem13", "ME-1/3 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00529    m_yerronmean_mem14 = book1D("/iterN/mem14/", "yerronmean_mem14", "ME-1/4 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00530    m_yerronmean_mem21 = book1D("/iterN/mem21/", "yerronmean_mem21", "ME-2/1 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00531    m_yerronmean_mem22 = book1D("/iterN/mem22/", "yerronmean_mem22", "ME-2/2 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00532    m_yerronmean_mem31 = book1D("/iterN/mem31/", "yerronmean_mem31", "ME-3/1 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00533    m_yerronmean_mem32 = book1D("/iterN/mem32/", "yerronmean_mem32", "ME-3/2 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00534    m_yerronmean_mem41 = book1D("/iterN/mem41/", "yerronmean_mem41", "ME-4/1 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00535    m_yerronmean_me11 = book1D("/iterN/me11/", "yerronmean_me11", "ME1/1 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00536    m_yerronmean_me12 = book1D("/iterN/me12/", "yerronmean_me12", "ME1/2 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00537    m_yerronmean_me13 = book1D("/iterN/me13/", "yerronmean_me13", "ME1/3 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00538    m_yerronmean_me14 = book1D("/iterN/me14/", "yerronmean_me14", "ME1/4 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00539    m_yerronmean_me21 = book1D("/iterN/me21/", "yerronmean_me21", "ME2/1 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00540    m_yerronmean_me22 = book1D("/iterN/me22/", "yerronmean_me22", "ME2/2 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00541    m_yerronmean_me31 = book1D("/iterN/me31/", "yerronmean_me31", "ME3/1 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00542    m_yerronmean_me32 = book1D("/iterN/me32/", "yerronmean_me32", "ME3/2 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00543    m_yerronmean_me41 = book1D("/iterN/me41/", "yerronmean_me41", "ME4/1 error on y weighted mean residual per chamber (mm)", yerronmean_bins, yerronmean_low, yerronmean_high);
00544 
00545    m_chambers = directory("/iterN/")->make<TTree>("chambers", "residual statistics for each chamber");
00546    m_chambers->Branch("rawid", &m_chambers_rawid, "rawid/I");
00547    m_chambers->Branch("endcap", &m_chambers_endcap, "endcap/I");
00548    m_chambers->Branch("wheel", &m_chambers_wheel, "wheel/I");
00549    m_chambers->Branch("station", &m_chambers_station, "station/I");
00550    m_chambers->Branch("sector", &m_chambers_sector, "sector/I");
00551    m_chambers->Branch("ring", &m_chambers_ring, "ring/I");
00552    m_chambers->Branch("chamber", &m_chambers_chamber, "chamber/I");
00553    m_chambers->Branch("numx", &m_chambers_numx, "numx/I");
00554    m_chambers->Branch("x_w", &m_chambers_x_w, "x_w/F");
00555    m_chambers->Branch("x_ww", &m_chambers_x_ww, "x_ww/F");
00556    m_chambers->Branch("x_wx", &m_chambers_x_wx, "x_wx/F");
00557    m_chambers->Branch("x_wxx", &m_chambers_x_wxx, "x_wxx/F");
00558    m_chambers->Branch("numy", &m_chambers_numy, "numy/I");
00559    m_chambers->Branch("y_w", &m_chambers_y_w, "y_w/F");
00560    m_chambers->Branch("y_ww", &m_chambers_y_ww, "y_ww/F");
00561    m_chambers->Branch("y_wy", &m_chambers_y_wy, "y_wy/F");
00562    m_chambers->Branch("y_wyy", &m_chambers_y_wyy, "y_wyy/F");
00563 
00564 }
00565 
00566 void AlignmentMonitorMuonResiduals::event(const edm::EventSetup &iSetup, const ConstTrajTrackPairCollection& tracks) {
00567    TrajectoryStateCombiner tsoscomb;
00568 
00569    for (ConstTrajTrackPairCollection::const_iterator it = tracks.begin();  it != tracks.end();  ++it) {
00570       const Trajectory *traj = it->first;
00571 //      const reco::Track *track = it->second;
00572 
00573       std::vector<TrajectoryMeasurement> measurements = traj->measurements();
00574 
00575       for (std::vector<TrajectoryMeasurement>::const_iterator im = measurements.begin();  im != measurements.end();  ++im) {
00576          const TrajectoryMeasurement meas = *im;
00577          const TransientTrackingRecHit* hit = &(*meas.recHit());
00578          const DetId id = hit->geographicalId();
00579 
00580          if (hit->isValid()  &&  pNavigator()->detAndSubdetInMap(id)) {
00581             TrajectoryStateOnSurface tsosc = tsoscomb.combine(meas.forwardPredictedState(), meas.backwardPredictedState());
00582             LocalPoint trackPos = tsosc.localPosition();
00583             LocalError trackErr = tsosc.localError().positionError();
00584             LocalPoint hitPos = hit->localPosition();
00585             LocalError hitErr = hit->localPositionError();
00586 
00587             double x_residual = 10. * (trackPos.x() - hitPos.x());
00588             double y_residual = 10. * (trackPos.y() - hitPos.y());
00589             double x_reserr2 = 100. * (trackErr.xx() + hitErr.xx());
00590             double y_reserr2 = 100. * (trackErr.yy() + hitErr.yy());
00591 //          double xpos = trackPos.x();
00592 //          double ypos = trackPos.y();
00593 
00594             if (id.det() == DetId::Muon  &&  id.subdetId() == MuonSubdetId::DT) {
00595                if (fabs(hit->surface()->toGlobal(LocalVector(0,1,0)).z()) < 0.1) {
00596                   // local y != global z: it's a middle (y-measuring) superlayer
00597                   y_residual = x_residual;
00598                   y_reserr2 = x_reserr2;
00599                   
00600                   x_residual = 0.;
00601                   x_reserr2 = 0.;
00602                }
00603                else {
00604                   y_residual = 0.;
00605                   y_reserr2 = 0.;
00606                }
00607 
00608                if (x_reserr2 > 0.) {
00609                   m_xresid->Fill(x_residual, 1./x_reserr2);
00610                   m_xresid_mb->Fill(x_residual, 1./x_reserr2);
00611                }
00612                if (y_reserr2 > 0.) {
00613                   m_yresid->Fill(y_residual, 1./y_reserr2);
00614                   m_yresid_mb->Fill(y_residual, 1./y_reserr2);
00615                }
00616                  
00617                DTChamberId dtId(id.rawId());
00618                int rawId = dtId.rawId();
00619                if (x_reserr2 > 0.) {
00620                   m_numx[rawId]++;
00621                   m_x_w[rawId] += 1./x_reserr2;
00622                   m_x_ww[rawId] += 1./x_reserr2/x_reserr2;
00623                   m_x_wx[rawId] += x_residual/x_reserr2;
00624                   m_x_wxx[rawId] += x_residual*x_residual/x_reserr2;
00625                }
00626                if (y_reserr2 > 0.) {
00627                   m_numy[rawId]++;
00628                   m_y_w[rawId] += 1./y_reserr2;
00629                   m_y_ww[rawId] += 1./y_reserr2/y_reserr2;
00630                   m_y_wy[rawId] += y_residual/y_reserr2;
00631                   m_y_wyy[rawId] += y_residual*y_residual/y_reserr2;
00632                }
00633 
00634                if (dtId.station() == 1) {
00635                   if (x_reserr2 > 0.) {
00636                      m_xresid_mb1->Fill(x_residual, 1./x_reserr2);
00637                   }
00638                   if (y_reserr2 > 0.) {
00639                      m_yresid_mb1->Fill(y_residual, 1./y_reserr2);
00640                   }
00641                }
00642                else if (dtId.station() == 2) {
00643                   if (x_reserr2 > 0.) {
00644                      m_xresid_mb2->Fill(x_residual, 1./x_reserr2);
00645                   }
00646                   if (y_reserr2 > 0.) {
00647                      m_yresid_mb2->Fill(y_residual, 1./y_reserr2);
00648                   }
00649                }
00650                else if (dtId.station() == 3) {
00651                   if (x_reserr2 > 0.) {
00652                      m_xresid_mb3->Fill(x_residual, 1./x_reserr2);
00653                   }
00654                   if (y_reserr2 > 0.) {
00655                      m_yresid_mb3->Fill(y_residual, 1./y_reserr2);
00656                   }
00657                }
00658                else if (dtId.station() == 4) {
00659                   if (x_reserr2 > 0.) {
00660                      m_xresid_mb4->Fill(x_residual, 1./x_reserr2);
00661                   }
00662                   if (y_reserr2 > 0.) {
00663                      m_yresid_mb4->Fill(y_residual, 1./y_reserr2);
00664                   }
00665                }
00666 
00667                if (dtId.wheel() == -2) {
00668                   if (x_reserr2 > 0.) {
00669                      m_xresid_minus2->Fill(x_residual, 1./x_reserr2);
00670                   }
00671                   if (y_reserr2 > 0.) {
00672                      m_yresid_minus2->Fill(y_residual, 1./y_reserr2);
00673                   }
00674                }
00675                else if (dtId.wheel() == -1) {
00676                   if (x_reserr2 > 0.) {
00677                      m_xresid_minus1->Fill(x_residual, 1./x_reserr2);
00678                   }
00679                   if (y_reserr2 > 0.) {
00680                      m_yresid_minus1->Fill(y_residual, 1./y_reserr2);
00681                   }
00682                }
00683                else if (dtId.wheel() == 0) {
00684                   if (x_reserr2 > 0.) {
00685                      m_xresid_zero->Fill(x_residual, 1./x_reserr2);
00686                   }
00687                   if (y_reserr2 > 0.) {
00688                      m_yresid_zero->Fill(y_residual, 1./y_reserr2);
00689                   }
00690                }
00691                else if (dtId.wheel() == 1) {
00692                   if (x_reserr2 > 0.) {
00693                      m_xresid_plus1->Fill(x_residual, 1./x_reserr2);
00694                   }
00695                   if (y_reserr2 > 0.) {
00696                      m_yresid_plus1->Fill(y_residual, 1./y_reserr2);
00697                   }
00698                }
00699                else if (dtId.wheel() == 2) {
00700                   if (x_reserr2 > 0.) {
00701                      m_xresid_plus2->Fill(x_residual, 1./x_reserr2);
00702                   }
00703                   if (y_reserr2 > 0.) {
00704                      m_yresid_plus2->Fill(y_residual, 1./y_reserr2);
00705                   }
00706                }
00707             } // end if DT
00708 
00709             else if (id.det() == DetId::Muon  &&  id.subdetId() == MuonSubdetId::CSC) {
00710                m_xresid->Fill(x_residual, 1./x_reserr2);
00711                m_yresid->Fill(y_residual, 1./y_reserr2);
00712 
00713                m_xresid_me->Fill(x_residual, 1./x_reserr2);
00714                m_yresid_me->Fill(y_residual, 1./y_reserr2);
00715 
00716                CSCDetId cscId(id.rawId());
00717                int rawId = cscId.chamberId().rawId();
00718                if (x_reserr2 > 0.) {
00719                   m_numx[rawId]++;
00720                   m_x_w[rawId] += 1./x_reserr2;
00721                   m_x_ww[rawId] += 1./x_reserr2/x_reserr2;
00722                   m_x_wx[rawId] += x_residual/x_reserr2;
00723                   m_x_wxx[rawId] += x_residual*x_residual/x_reserr2;
00724                }
00725                if (y_reserr2 > 0.) {
00726                   m_numy[rawId]++;
00727                   m_y_w[rawId] += 1./y_reserr2;
00728                   m_y_ww[rawId] += 1./y_reserr2/y_reserr2;
00729                   m_y_wy[rawId] += y_residual/y_reserr2;
00730                   m_y_wyy[rawId] += y_residual*y_residual/y_reserr2;
00731                }
00732 
00733                if ((cscId.endcap() == 1? 1: -1)*cscId.station() == 1  &&  cscId.ring() == 1) {
00734                   m_xresid_mep11->Fill(x_residual, 1./x_reserr2);  m_yresid_mep11->Fill(y_residual, 1./y_reserr2);
00735                   m_xresid_me11->Fill(x_residual, 1./x_reserr2);  m_yresid_me11->Fill(y_residual, 1./y_reserr2);
00736                }
00737                else if ((cscId.endcap() == 1? 1: -1)*cscId.station() == -1  &&  cscId.ring() == 1) {
00738                   m_xresid_mem11->Fill(x_residual, 1./x_reserr2);  m_yresid_mem11->Fill(y_residual, 1./y_reserr2);
00739                   m_xresid_me11->Fill(x_residual, 1./x_reserr2);  m_yresid_me11->Fill(y_residual, 1./y_reserr2);
00740                }
00741                else if ((cscId.endcap() == 1? 1: -1)*cscId.station() == 1  &&  cscId.ring() == 2) {
00742                   m_xresid_mep12->Fill(x_residual, 1./x_reserr2);  m_yresid_mep12->Fill(y_residual, 1./y_reserr2);
00743                   m_xresid_me12->Fill(x_residual, 1./x_reserr2);  m_yresid_me12->Fill(y_residual, 1./y_reserr2);
00744                }
00745                else if ((cscId.endcap() == 1? 1: -1)*cscId.station() == -1  &&  cscId.ring() == 2) {
00746                   m_xresid_mem12->Fill(x_residual, 1./x_reserr2);  m_yresid_mem12->Fill(y_residual, 1./y_reserr2);
00747                   m_xresid_me12->Fill(x_residual, 1./x_reserr2);  m_yresid_me12->Fill(y_residual, 1./y_reserr2);
00748                }
00749                else if ((cscId.endcap() == 1? 1: -1)*cscId.station() == 1  &&  cscId.ring() == 3) {
00750                   m_xresid_mep13->Fill(x_residual, 1./x_reserr2);  m_yresid_mep13->Fill(y_residual, 1./y_reserr2);
00751                   m_xresid_me13->Fill(x_residual, 1./x_reserr2);  m_yresid_me13->Fill(y_residual, 1./y_reserr2);
00752                }
00753                else if ((cscId.endcap() == 1? 1: -1)*cscId.station() == -1  &&  cscId.ring() == 3) {
00754                   m_xresid_mem13->Fill(x_residual, 1./x_reserr2);  m_yresid_mem13->Fill(y_residual, 1./y_reserr2);
00755                   m_xresid_me13->Fill(x_residual, 1./x_reserr2);  m_yresid_me13->Fill(y_residual, 1./y_reserr2);
00756                }
00757                else if ((cscId.endcap() == 1? 1: -1)*cscId.station() == 1  &&  cscId.ring() == 4) {
00758                   m_xresid_mep14->Fill(x_residual, 1./x_reserr2);  m_yresid_mep14->Fill(y_residual, 1./y_reserr2);
00759                   m_xresid_me14->Fill(x_residual, 1./x_reserr2);  m_yresid_me14->Fill(y_residual, 1./y_reserr2);
00760                }
00761                else if ((cscId.endcap() == 1? 1: -1)*cscId.station() == -1  &&  cscId.ring() == 4) {
00762                   m_xresid_mem14->Fill(x_residual, 1./x_reserr2);  m_yresid_mem14->Fill(y_residual, 1./y_reserr2);
00763                   m_xresid_me14->Fill(x_residual, 1./x_reserr2);  m_yresid_me14->Fill(y_residual, 1./y_reserr2);
00764                }
00765                else if ((cscId.endcap() == 1? 1: -1)*cscId.station() == 2  &&  cscId.ring() == 1) {
00766                   m_xresid_mep21->Fill(x_residual, 1./x_reserr2);  m_yresid_mep21->Fill(y_residual, 1./y_reserr2);
00767                   m_xresid_me21->Fill(x_residual, 1./x_reserr2);  m_yresid_me21->Fill(y_residual, 1./y_reserr2);
00768                }
00769                else if ((cscId.endcap() == 1? 1: -1)*cscId.station() == -2  &&  cscId.ring() == 1) {
00770                   m_xresid_mem21->Fill(x_residual, 1./x_reserr2);  m_yresid_mem21->Fill(y_residual, 1./y_reserr2);
00771                   m_xresid_me21->Fill(x_residual, 1./x_reserr2);  m_yresid_me21->Fill(y_residual, 1./y_reserr2);
00772                }
00773                else if ((cscId.endcap() == 1? 1: -1)*cscId.station() == 2  &&  cscId.ring() == 2) {
00774                   m_xresid_mep22->Fill(x_residual, 1./x_reserr2);  m_yresid_mep22->Fill(y_residual, 1./y_reserr2);
00775                   m_xresid_me22->Fill(x_residual, 1./x_reserr2);  m_yresid_me22->Fill(y_residual, 1./y_reserr2);
00776                }
00777                else if ((cscId.endcap() == 1? 1: -1)*cscId.station() == -2  &&  cscId.ring() == 2) {
00778                   m_xresid_mem22->Fill(x_residual, 1./x_reserr2);  m_yresid_mem22->Fill(y_residual, 1./y_reserr2);
00779                   m_xresid_me22->Fill(x_residual, 1./x_reserr2);  m_yresid_me22->Fill(y_residual, 1./y_reserr2);
00780                }
00781                else if ((cscId.endcap() == 1? 1: -1)*cscId.station() == 3  &&  cscId.ring() == 1) {
00782                   m_xresid_mep31->Fill(x_residual, 1./x_reserr2);  m_yresid_mep31->Fill(y_residual, 1./y_reserr2);
00783                   m_xresid_me31->Fill(x_residual, 1./x_reserr2);  m_yresid_me31->Fill(y_residual, 1./y_reserr2);
00784                }
00785                else if ((cscId.endcap() == 1? 1: -1)*cscId.station() == -3  &&  cscId.ring() == 1) {
00786                   m_xresid_mem31->Fill(x_residual, 1./x_reserr2);  m_yresid_mem31->Fill(y_residual, 1./y_reserr2);
00787                   m_xresid_me31->Fill(x_residual, 1./x_reserr2);  m_yresid_me31->Fill(y_residual, 1./y_reserr2);
00788                }
00789                else if ((cscId.endcap() == 1? 1: -1)*cscId.station() == 3  &&  cscId.ring() == 2) {
00790                   m_xresid_mep32->Fill(x_residual, 1./x_reserr2);  m_yresid_mep32->Fill(y_residual, 1./y_reserr2);
00791                   m_xresid_me32->Fill(x_residual, 1./x_reserr2);  m_yresid_me32->Fill(y_residual, 1./y_reserr2);
00792                }
00793                else if ((cscId.endcap() == 1? 1: -1)*cscId.station() == -3  &&  cscId.ring() == 2) {
00794                   m_xresid_mem32->Fill(x_residual, 1./x_reserr2);  m_yresid_mem32->Fill(y_residual, 1./y_reserr2);
00795                   m_xresid_me32->Fill(x_residual, 1./x_reserr2);  m_yresid_me32->Fill(y_residual, 1./y_reserr2);
00796                }
00797                else if ((cscId.endcap() == 1? 1: -1)*cscId.station() == 4  &&  cscId.ring() == 1) {
00798                   m_xresid_mep41->Fill(x_residual, 1./x_reserr2);  m_yresid_mep41->Fill(y_residual, 1./y_reserr2);
00799                   m_xresid_me41->Fill(x_residual, 1./x_reserr2);  m_yresid_me41->Fill(y_residual, 1./y_reserr2);
00800                }
00801                else if ((cscId.endcap() == 1? 1: -1)*cscId.station() == -4  &&  cscId.ring() == 1) {
00802                   m_xresid_mem41->Fill(x_residual, 1./x_reserr2);  m_yresid_mem41->Fill(y_residual, 1./y_reserr2);
00803                   m_xresid_me41->Fill(x_residual, 1./x_reserr2);  m_yresid_me41->Fill(y_residual, 1./y_reserr2);
00804                }
00805             } // else if CSC
00806 
00807          } // end if good hit
00808       } // end loop over measurements
00809 
00810    } // end loop over track-trajectories
00811 }
00812 
00813 void AlignmentMonitorMuonResiduals::afterAlignment(const edm::EventSetup &iSetup) {
00814    std::vector<Alignable*> chambers;
00815    std::vector<Alignable*> tmp1 = pMuon()->DTChambers();
00816    for (std::vector<Alignable*>::const_iterator iter = tmp1.begin();  iter != tmp1.end();  ++iter) chambers.push_back(*iter);
00817    std::vector<Alignable*> tmp2 = pMuon()->CSCChambers();
00818    for (std::vector<Alignable*>::const_iterator iter = tmp2.begin();  iter != tmp2.end();  ++iter) chambers.push_back(*iter);
00819 
00820    int index = 0;
00821    for (std::vector<Alignable*>::const_iterator chamber = chambers.begin();  chamber != chambers.end();  ++chamber) {
00822       const int id = (*chamber)->geomDetId().rawId();
00823       
00824       m_chambers_rawid = id;
00825       m_chambers_numx = m_numx[id];
00826       m_chambers_x_w = m_x_w[id];
00827       m_chambers_x_ww = m_x_ww[id];
00828       m_chambers_x_wx = m_x_wx[id];
00829       m_chambers_x_wxx = m_x_wxx[id];
00830       m_chambers_numy = m_numy[id];
00831       m_chambers_y_w = m_y_w[id];
00832       m_chambers_y_ww = m_y_ww[id];
00833       m_chambers_y_wy = m_y_wy[id];
00834       m_chambers_y_wyy = m_y_wyy[id];
00835 
00836       index++;
00837       m_sumnumx->SetBinContent(index, m_numx[id]);
00838       m_sumnumy->SetBinContent(index, m_numy[id]);
00839 
00840       std::ostringstream name;
00841       if ((*chamber)->geomDetId().subdetId() == MuonSubdetId::DT) {
00842          DTChamberId dtId((*chamber)->geomDetId());
00843          name << "MB" << dtId.wheel() << "/" << dtId.station() << " (" << dtId.sector() << ")";
00844          m_chambers_endcap = 0;
00845          m_chambers_wheel = dtId.wheel();
00846          m_chambers_station = dtId.station();
00847          m_chambers_sector = dtId.sector();
00848          m_chambers_ring = 0;
00849          m_chambers_chamber = 0;
00850       }
00851       else {
00852          CSCDetId cscId((*chamber)->geomDetId());
00853          name << "ME" << (cscId.endcap() == 1? "+": "-") << cscId.station() << "/" << cscId.ring() << " (" << cscId.chamber() << ")";
00854          m_chambers_endcap = cscId.endcap();
00855          m_chambers_wheel = 0;
00856          m_chambers_station = cscId.station();
00857          m_chambers_sector = 0;
00858          m_chambers_ring = cscId.ring();
00859          m_chambers_chamber = cscId.chamber();
00860       }
00861       m_chambers->Fill();
00862 
00863       m_sumnumx->GetXaxis()->SetBinLabel(index, name.str().c_str());
00864       m_sumnumy->GetXaxis()->SetBinLabel(index, name.str().c_str());
00865       m_xsummary->GetXaxis()->SetBinLabel(index, name.str().c_str());
00866       m_ysummary->GetXaxis()->SetBinLabel(index, name.str().c_str());
00867 
00868       if (m_numx[id] > 0.) {
00869          double xmean = m_x_wx[id] / m_x_w[id];
00870          double xstdev = sqrt(((m_x_wxx[id] * m_x_w[id]) - (m_x_wx[id] * m_x_wx[id]))/((m_x_w[id] * m_x_w[id]) - m_x_ww[id]));
00871          double xerronmean = xstdev / sqrt(m_numx[id]);
00872 
00873          m_xsummary->SetBinContent(index, xmean);
00874          m_xsummary->SetBinError(index, xerronmean);
00875 
00876          m_xmean->Fill(xmean);  m_xstdev->Fill(xstdev);  m_xerronmean->Fill(xerronmean);
00877          if ((*chamber)->geomDetId().subdetId() == MuonSubdetId::DT) {
00878             m_xmean_mb->Fill(xmean);  m_xstdev_mb->Fill(xstdev);  m_xerronmean_mb->Fill(xerronmean);
00879             DTChamberId id((*chamber)->geomDetId().rawId());
00880             if (id.station() == 1) {
00881                m_xmean_mb1->Fill(xmean);  m_xstdev_mb1->Fill(xstdev);  m_xerronmean_mb1->Fill(xerronmean);
00882             }
00883             else if (id.station() == 2) {
00884                m_xmean_mb2->Fill(xmean);  m_xstdev_mb2->Fill(xstdev);  m_xerronmean_mb2->Fill(xerronmean);
00885             }
00886             else if (id.station() == 3) {
00887                m_xmean_mb3->Fill(xmean);  m_xstdev_mb3->Fill(xstdev);  m_xerronmean_mb3->Fill(xerronmean);
00888             }
00889             else if (id.station() == 4) {
00890                m_xmean_mb4->Fill(xmean);  m_xstdev_mb4->Fill(xstdev);  m_xerronmean_mb4->Fill(xerronmean);
00891             }
00892 
00893             if (id.wheel() == -2) {
00894                m_xmean_minus2->Fill(xmean);  m_xstdev_minus2->Fill(xstdev);  m_xerronmean_minus2->Fill(xerronmean);
00895             }
00896             else if (id.wheel() == -1) {
00897                m_xmean_minus1->Fill(xmean);  m_xstdev_minus1->Fill(xstdev);  m_xerronmean_minus1->Fill(xerronmean);
00898             }
00899             else if (id.wheel() == 0) {
00900                m_xmean_zero->Fill(xmean);  m_xstdev_zero->Fill(xstdev);  m_xerronmean_zero->Fill(xerronmean);
00901             }
00902             else if (id.wheel() == 1) {
00903                m_xmean_plus1->Fill(xmean);  m_xstdev_plus1->Fill(xstdev);  m_xerronmean_plus1->Fill(xerronmean);
00904             }
00905             else if (id.wheel() == 2) {
00906                m_xmean_plus2->Fill(xmean);  m_xstdev_plus2->Fill(xstdev);  m_xerronmean_plus2->Fill(xerronmean);
00907             }
00908          } // end if DT
00909          else {
00910             m_xmean_me->Fill(xmean);  m_xstdev_me->Fill(xstdev);  m_xerronmean_me->Fill(xerronmean);
00911 
00912             CSCDetId id((*chamber)->geomDetId().rawId());
00913 
00914             if ((id.endcap() == 1? 1: -1)*id.station() == 1  &&  id.ring() == 1) {
00915                m_xmean_mep11->Fill(xmean);  m_xstdev_mep11->Fill(xstdev);  m_xerronmean_mep11->Fill(xerronmean);
00916                m_xmean_me11->Fill(xmean);  m_xstdev_me11->Fill(xstdev);  m_xerronmean_me11->Fill(xerronmean);
00917             }
00918             else if((id.endcap() == 1? 1: -1)*id.station() == -1  &&  id.ring() == 1) {
00919                m_xmean_mem11->Fill(xmean);  m_xstdev_mem11->Fill(xstdev);  m_xerronmean_mem11->Fill(xerronmean);
00920                m_xmean_me11->Fill(xmean);  m_xstdev_me11->Fill(xstdev);  m_xerronmean_me11->Fill(xerronmean);
00921             }
00922             else if((id.endcap() == 1? 1: -1)*id.station() == 1  &&  id.ring() == 2) {
00923                m_xmean_mep12->Fill(xmean);  m_xstdev_mep12->Fill(xstdev);  m_xerronmean_mep12->Fill(xerronmean);
00924                m_xmean_me12->Fill(xmean);  m_xstdev_me12->Fill(xstdev);  m_xerronmean_me12->Fill(xerronmean);
00925             }
00926             else if((id.endcap() == 1? 1: -1)*id.station() == -1  &&  id.ring() == 2) {
00927                m_xmean_mem12->Fill(xmean);  m_xstdev_mem12->Fill(xstdev);  m_xerronmean_mem12->Fill(xerronmean);
00928                m_xmean_me12->Fill(xmean);  m_xstdev_me12->Fill(xstdev);  m_xerronmean_me12->Fill(xerronmean);
00929             }
00930             else if((id.endcap() == 1? 1: -1)*id.station() == 1  &&  id.ring() == 3) {
00931                m_xmean_mep13->Fill(xmean);  m_xstdev_mep13->Fill(xstdev);  m_xerronmean_mep13->Fill(xerronmean);
00932                m_xmean_me13->Fill(xmean);  m_xstdev_me13->Fill(xstdev);  m_xerronmean_me13->Fill(xerronmean);
00933             }
00934             else if((id.endcap() == 1? 1: -1)*id.station() == -1  &&  id.ring() == 3) {
00935                m_xmean_mem13->Fill(xmean);  m_xstdev_mem13->Fill(xstdev);  m_xerronmean_mem13->Fill(xerronmean);
00936                m_xmean_me13->Fill(xmean);  m_xstdev_me13->Fill(xstdev);  m_xerronmean_me13->Fill(xerronmean);
00937             }
00938             else if((id.endcap() == 1? 1: -1)*id.station() == 1  &&  id.ring() == 4) {
00939                m_xmean_mep14->Fill(xmean);  m_xstdev_mep14->Fill(xstdev);  m_xerronmean_mep14->Fill(xerronmean);
00940                m_xmean_me14->Fill(xmean);  m_xstdev_me14->Fill(xstdev);  m_xerronmean_me14->Fill(xerronmean);
00941             }
00942             else if((id.endcap() == 1? 1: -1)*id.station() == -1  &&  id.ring() == 4) {
00943                m_xmean_mem14->Fill(xmean);  m_xstdev_mem14->Fill(xstdev);  m_xerronmean_mem14->Fill(xerronmean);
00944                m_xmean_me14->Fill(xmean);  m_xstdev_me14->Fill(xstdev);  m_xerronmean_me14->Fill(xerronmean);
00945             }
00946             else if((id.endcap() == 1? 1: -1)*id.station() == 2  &&  id.ring() == 1) {
00947                m_xmean_mep21->Fill(xmean);  m_xstdev_mep21->Fill(xstdev);  m_xerronmean_mep21->Fill(xerronmean);
00948                m_xmean_me21->Fill(xmean);  m_xstdev_me21->Fill(xstdev);  m_xerronmean_me21->Fill(xerronmean);
00949             }
00950             else if((id.endcap() == 1? 1: -1)*id.station() == -2  &&  id.ring() == 1) {
00951                m_xmean_mem21->Fill(xmean);  m_xstdev_mem21->Fill(xstdev);  m_xerronmean_mem21->Fill(xerronmean);
00952                m_xmean_me21->Fill(xmean);  m_xstdev_me21->Fill(xstdev);  m_xerronmean_me21->Fill(xerronmean);
00953             }
00954             else if((id.endcap() == 1? 1: -1)*id.station() == 2  &&  id.ring() == 2) {
00955                m_xmean_mep22->Fill(xmean);  m_xstdev_mep22->Fill(xstdev);  m_xerronmean_mep22->Fill(xerronmean);
00956                m_xmean_me22->Fill(xmean);  m_xstdev_me22->Fill(xstdev);  m_xerronmean_me22->Fill(xerronmean);
00957             }
00958             else if((id.endcap() == 1? 1: -1)*id.station() == -2  &&  id.ring() == 2) {
00959                m_xmean_mem22->Fill(xmean);  m_xstdev_mem22->Fill(xstdev);  m_xerronmean_mem22->Fill(xerronmean);
00960                m_xmean_me22->Fill(xmean);  m_xstdev_me22->Fill(xstdev);  m_xerronmean_me22->Fill(xerronmean);
00961             }
00962             else if((id.endcap() == 1? 1: -1)*id.station() == 3  &&  id.ring() == 1) {
00963                m_xmean_mep31->Fill(xmean);  m_xstdev_mep31->Fill(xstdev);  m_xerronmean_mep31->Fill(xerronmean);
00964                m_xmean_me31->Fill(xmean);  m_xstdev_me31->Fill(xstdev);  m_xerronmean_me31->Fill(xerronmean);
00965             }
00966             else if((id.endcap() == 1? 1: -1)*id.station() == -3  &&  id.ring() == 1) {
00967                m_xmean_mem31->Fill(xmean);  m_xstdev_mem31->Fill(xstdev);  m_xerronmean_mem31->Fill(xerronmean);
00968                m_xmean_me31->Fill(xmean);  m_xstdev_me31->Fill(xstdev);  m_xerronmean_me31->Fill(xerronmean);
00969             }
00970             else if((id.endcap() == 1? 1: -1)*id.station() == 3  &&  id.ring() == 2) {
00971                m_xmean_mep32->Fill(xmean);  m_xstdev_mep32->Fill(xstdev);  m_xerronmean_mep32->Fill(xerronmean);
00972                m_xmean_me32->Fill(xmean);  m_xstdev_me32->Fill(xstdev);  m_xerronmean_me32->Fill(xerronmean);
00973             }
00974             else if((id.endcap() == 1? 1: -1)*id.station() == -3  &&  id.ring() == 2) {
00975                m_xmean_mem32->Fill(xmean);  m_xstdev_mem32->Fill(xstdev);  m_xerronmean_mem32->Fill(xerronmean);
00976                m_xmean_me32->Fill(xmean);  m_xstdev_me32->Fill(xstdev);  m_xerronmean_me32->Fill(xerronmean);
00977             }
00978             else if((id.endcap() == 1? 1: -1)*id.station() == 4  &&  id.ring() == 1) {
00979                m_xmean_mep41->Fill(xmean);  m_xstdev_mep41->Fill(xstdev);  m_xerronmean_mep41->Fill(xerronmean);
00980                m_xmean_me41->Fill(xmean);  m_xstdev_me41->Fill(xstdev);  m_xerronmean_me41->Fill(xerronmean);
00981             }
00982             else if((id.endcap() == 1? 1: -1)*id.station() == -4  &&  id.ring() == 1) {
00983                m_xmean_mem41->Fill(xmean);  m_xstdev_mem41->Fill(xstdev);  m_xerronmean_mem41->Fill(xerronmean);
00984                m_xmean_me41->Fill(xmean);  m_xstdev_me41->Fill(xstdev);  m_xerronmean_me41->Fill(xerronmean);
00985             }
00986          } // else itis CSC
00987       } // end if xmean, xstdev exist
00988       
00989       if (m_numy[id] > 0.) {
00990          double ymean = m_y_wy[id] / m_y_w[id];
00991          double ystdev = sqrt(((m_y_wyy[id] * m_y_w[id]) - (m_y_wy[id] * m_y_wy[id]))/((m_y_w[id] * m_y_w[id]) - m_y_ww[id]));
00992          double yerronmean = ystdev / sqrt(m_numy[id]);
00993 
00994          m_ysummary->SetBinContent(index, ymean);
00995          m_ysummary->SetBinError(index, yerronmean);
00996 
00997          m_ymean->Fill(ymean);  m_ystdev->Fill(ystdev);  m_yerronmean->Fill(yerronmean);
00998          if ((*chamber)->geomDetId().subdetId() == MuonSubdetId::DT) {
00999             m_ymean_mb->Fill(ymean);  m_ystdev_mb->Fill(ystdev);  m_yerronmean_mb->Fill(yerronmean);
01000             DTChamberId id((*chamber)->geomDetId().rawId());
01001             if (id.station() == 1) {
01002                m_ymean_mb1->Fill(ymean);  m_ystdev_mb1->Fill(ystdev);  m_yerronmean_mb1->Fill(yerronmean);
01003             }
01004             else if (id.station() == 2) {
01005                m_ymean_mb2->Fill(ymean);  m_ystdev_mb2->Fill(ystdev);  m_yerronmean_mb2->Fill(yerronmean);
01006             }
01007             else if (id.station() == 3) {
01008                m_ymean_mb3->Fill(ymean);  m_ystdev_mb3->Fill(ystdev);  m_yerronmean_mb3->Fill(yerronmean);
01009             }
01010             else if (id.station() == 4) {
01011                m_ymean_mb4->Fill(ymean);  m_ystdev_mb4->Fill(ystdev);  m_yerronmean_mb4->Fill(yerronmean);
01012             }
01013 
01014             if (id.wheel() == -2) {
01015                m_ymean_minus2->Fill(ymean);  m_ystdev_minus2->Fill(ystdev);  m_yerronmean_minus2->Fill(yerronmean);
01016             }
01017             else if (id.wheel() == -1) {
01018                m_ymean_minus1->Fill(ymean);  m_ystdev_minus1->Fill(ystdev);  m_yerronmean_minus1->Fill(yerronmean);
01019             }
01020             else if (id.wheel() == 0) {
01021                m_ymean_zero->Fill(ymean);  m_ystdev_zero->Fill(ystdev);  m_yerronmean_zero->Fill(yerronmean);
01022             }
01023             else if (id.wheel() == 1) {
01024                m_ymean_plus1->Fill(ymean);  m_ystdev_plus1->Fill(ystdev);  m_yerronmean_plus1->Fill(yerronmean);
01025             }
01026             else if (id.wheel() == 2) {
01027                m_ymean_plus2->Fill(ymean);  m_ystdev_plus2->Fill(ystdev);  m_yerronmean_plus2->Fill(yerronmean);
01028             }
01029          } // end if DT
01030          else {
01031             m_ymean_me->Fill(ymean);  m_ystdev_me->Fill(ystdev);  m_yerronmean_me->Fill(yerronmean);
01032 
01033             CSCDetId id((*chamber)->geomDetId().rawId());
01034 
01035             if ((id.endcap() == 1? 1: -1)*id.station() == 1  &&  id.ring() == 1) {
01036                m_ymean_mep11->Fill(ymean);  m_ystdev_mep11->Fill(ystdev);  m_yerronmean_mep11->Fill(yerronmean);
01037                m_ymean_me11->Fill(ymean);  m_ystdev_me11->Fill(ystdev);  m_yerronmean_me11->Fill(yerronmean);
01038             }
01039             else if((id.endcap() == 1? 1: -1)*id.station() == -1  &&  id.ring() == 1) {
01040                m_ymean_mem11->Fill(ymean);  m_ystdev_mem11->Fill(ystdev);  m_yerronmean_mem11->Fill(yerronmean);
01041                m_ymean_me11->Fill(ymean);  m_ystdev_me11->Fill(ystdev);  m_yerronmean_me11->Fill(yerronmean);
01042             }
01043             else if((id.endcap() == 1? 1: -1)*id.station() == 1  &&  id.ring() == 2) {
01044                m_ymean_mep12->Fill(ymean);  m_ystdev_mep12->Fill(ystdev);  m_yerronmean_mep12->Fill(yerronmean);
01045                m_ymean_me12->Fill(ymean);  m_ystdev_me12->Fill(ystdev);  m_yerronmean_me12->Fill(yerronmean);
01046             }
01047             else if((id.endcap() == 1? 1: -1)*id.station() == -1  &&  id.ring() == 2) {
01048                m_ymean_mem12->Fill(ymean);  m_ystdev_mem12->Fill(ystdev);  m_yerronmean_mem12->Fill(yerronmean);
01049                m_ymean_me12->Fill(ymean);  m_ystdev_me12->Fill(ystdev);  m_yerronmean_me12->Fill(yerronmean);
01050             }
01051             else if((id.endcap() == 1? 1: -1)*id.station() == 1  &&  id.ring() == 3) {
01052                m_ymean_mep13->Fill(ymean);  m_ystdev_mep13->Fill(ystdev);  m_yerronmean_mep13->Fill(yerronmean);
01053                m_ymean_me13->Fill(ymean);  m_ystdev_me13->Fill(ystdev);  m_yerronmean_me13->Fill(yerronmean);
01054             }
01055             else if((id.endcap() == 1? 1: -1)*id.station() == -1  &&  id.ring() == 3) {
01056                m_ymean_mem13->Fill(ymean);  m_ystdev_mem13->Fill(ystdev);  m_yerronmean_mem13->Fill(yerronmean);
01057                m_ymean_me13->Fill(ymean);  m_ystdev_me13->Fill(ystdev);  m_yerronmean_me13->Fill(yerronmean);
01058             }
01059             else if((id.endcap() == 1? 1: -1)*id.station() == 1  &&  id.ring() == 4) {
01060                m_ymean_mep14->Fill(ymean);  m_ystdev_mep14->Fill(ystdev);  m_yerronmean_mep14->Fill(yerronmean);
01061                m_ymean_me14->Fill(ymean);  m_ystdev_me14->Fill(ystdev);  m_yerronmean_me14->Fill(yerronmean);
01062             }
01063             else if((id.endcap() == 1? 1: -1)*id.station() == -1  &&  id.ring() == 4) {
01064                m_ymean_mem14->Fill(ymean);  m_ystdev_mem14->Fill(ystdev);  m_yerronmean_mem14->Fill(yerronmean);
01065                m_ymean_me14->Fill(ymean);  m_ystdev_me14->Fill(ystdev);  m_yerronmean_me14->Fill(yerronmean);
01066             }
01067             else if((id.endcap() == 1? 1: -1)*id.station() == 2  &&  id.ring() == 1) {
01068                m_ymean_mep21->Fill(ymean);  m_ystdev_mep21->Fill(ystdev);  m_yerronmean_mep21->Fill(yerronmean);
01069                m_ymean_me21->Fill(ymean);  m_ystdev_me21->Fill(ystdev);  m_yerronmean_me21->Fill(yerronmean);
01070             }
01071             else if((id.endcap() == 1? 1: -1)*id.station() == -2  &&  id.ring() == 1) {
01072                m_ymean_mem21->Fill(ymean);  m_ystdev_mem21->Fill(ystdev);  m_yerronmean_mem21->Fill(yerronmean);
01073                m_ymean_me21->Fill(ymean);  m_ystdev_me21->Fill(ystdev);  m_yerronmean_me21->Fill(yerronmean);
01074             }
01075             else if((id.endcap() == 1? 1: -1)*id.station() == 2  &&  id.ring() == 2) {
01076                m_ymean_mep22->Fill(ymean);  m_ystdev_mep22->Fill(ystdev);  m_yerronmean_mep22->Fill(yerronmean);
01077                m_ymean_me22->Fill(ymean);  m_ystdev_me22->Fill(ystdev);  m_yerronmean_me22->Fill(yerronmean);
01078             }
01079             else if((id.endcap() == 1? 1: -1)*id.station() == -2  &&  id.ring() == 2) {
01080                m_ymean_mem22->Fill(ymean);  m_ystdev_mem22->Fill(ystdev);  m_yerronmean_mem22->Fill(yerronmean);
01081                m_ymean_me22->Fill(ymean);  m_ystdev_me22->Fill(ystdev);  m_yerronmean_me22->Fill(yerronmean);
01082             }
01083             else if((id.endcap() == 1? 1: -1)*id.station() == 3  &&  id.ring() == 1) {
01084                m_ymean_mep31->Fill(ymean);  m_ystdev_mep31->Fill(ystdev);  m_yerronmean_mep31->Fill(yerronmean);
01085                m_ymean_me31->Fill(ymean);  m_ystdev_me31->Fill(ystdev);  m_yerronmean_me31->Fill(yerronmean);
01086             }
01087             else if((id.endcap() == 1? 1: -1)*id.station() == -3  &&  id.ring() == 1) {
01088                m_ymean_mem31->Fill(ymean);  m_ystdev_mem31->Fill(ystdev);  m_yerronmean_mem31->Fill(yerronmean);
01089                m_ymean_me31->Fill(ymean);  m_ystdev_me31->Fill(ystdev);  m_yerronmean_me31->Fill(yerronmean);
01090             }
01091             else if((id.endcap() == 1? 1: -1)*id.station() == 3  &&  id.ring() == 2) {
01092                m_ymean_mep32->Fill(ymean);  m_ystdev_mep32->Fill(ystdev);  m_yerronmean_mep32->Fill(yerronmean);
01093                m_ymean_me32->Fill(ymean);  m_ystdev_me32->Fill(ystdev);  m_yerronmean_me32->Fill(yerronmean);
01094             }
01095             else if((id.endcap() == 1? 1: -1)*id.station() == -3  &&  id.ring() == 2) {
01096                m_ymean_mem32->Fill(ymean);  m_ystdev_mem32->Fill(ystdev);  m_yerronmean_mem32->Fill(yerronmean);
01097                m_ymean_me32->Fill(ymean);  m_ystdev_me32->Fill(ystdev);  m_yerronmean_me32->Fill(yerronmean);
01098             }
01099             else if((id.endcap() == 1? 1: -1)*id.station() == 4  &&  id.ring() == 1) {
01100                m_ymean_mep41->Fill(ymean);  m_ystdev_mep41->Fill(ystdev);  m_yerronmean_mep41->Fill(yerronmean);
01101                m_ymean_me41->Fill(ymean);  m_ystdev_me41->Fill(ystdev);  m_yerronmean_me41->Fill(yerronmean);
01102             }
01103             else if((id.endcap() == 1? 1: -1)*id.station() == -4  &&  id.ring() == 1) {
01104                m_ymean_mem41->Fill(ymean);  m_ystdev_mem41->Fill(ystdev);  m_yerronmean_mem41->Fill(yerronmean);
01105                m_ymean_me41->Fill(ymean);  m_ystdev_me41->Fill(ystdev);  m_yerronmean_me41->Fill(yerronmean);
01106             }
01107          } // else itis CSC
01108       } // end if ymean, ystdev exist
01109 
01110    } // end loop over chambers
01111 }
01112 
01113 //
01114 // constructors and destructor
01115 //
01116 
01117 // AlignmentMonitorMuonResiduals::AlignmentMonitorMuonResiduals(const AlignmentMonitorMuonResiduals& rhs)
01118 // {
01119 //    // do actual copying here;
01120 // }
01121 
01122 //
01123 // assignment operators
01124 //
01125 // const AlignmentMonitorMuonResiduals& AlignmentMonitorMuonResiduals::operator=(const AlignmentMonitorMuonResiduals& rhs)
01126 // {
01127 //   //An exception safe implementation is
01128 //   AlignmentMonitorMuonResiduals temp(rhs);
01129 //   swap(rhs);
01130 //
01131 //   return *this;
01132 // }
01133 
01134 //
01135 // const member functions
01136 //
01137 
01138 //
01139 // static member functions
01140 //
01141 
01142 //
01143 // SEAL definitions
01144 //
01145 
01146 DEFINE_EDM_PLUGIN(AlignmentMonitorPluginFactory, AlignmentMonitorMuonResiduals, "AlignmentMonitorMuonResiduals");

Generated on Tue Jun 9 17:23:50 2009 for CMSSW by  doxygen 1.5.4