CMS 3D CMS Logo

AlignmentMonitorMuonHIP Class Reference

Inheritance diagram for AlignmentMonitorMuonHIP:

AlignmentMonitorBase

List of all members.

Public Member Functions

void afterAlignment (const edm::EventSetup &iSetup)
 Called after updating AlignableTracker and AlignableMuon (by "endOfLoop()"): may be reimplemented.
 AlignmentMonitorMuonHIP (const edm::ParameterSet &cfg)
void book ()
 Book or retrieve histograms; MUST be reimplemented.
void event (const edm::EventSetup &iSetup, const ConstTrajTrackPairCollection &iTrajTracks)
 ~AlignmentMonitorMuonHIP ()

Private Types

typedef TH1F * TH1FPtr
typedef TProfile * TProfilePtr

Private Member Functions

void bookByAli (const char *level, const int rawid, const unsigned int index)
void createPythonGeometry ()
void fill (unsigned int index, double x_residual, double y_residual, double x_reserr2, double y_reserr2, double xpos, double ypos, bool y_valid)

Private Attributes

TTree * m_after
Int_t m_after_level
Float_t m_after_phix
Float_t m_after_phixerr
Float_t m_after_phiy
Float_t m_after_phiyerr
Float_t m_after_phiz
Float_t m_after_phizerr
Int_t m_after_rawid
Float_t m_after_x
Float_t m_after_xerr
Float_t m_after_y
Float_t m_after_yerr
Float_t m_after_z
Float_t m_after_zerr
TTree * m_before
Int_t m_before_level
Float_t m_before_phix
Float_t m_before_phiy
Float_t m_before_phiz
Int_t m_before_rawid
Float_t m_before_x
Float_t m_before_y
Float_t m_before_z
edm::ParameterSet m_book
bool m_book_after
bool m_book_before
bool m_book_conv_phix
bool m_book_conv_phiy
bool m_book_conv_phiz
bool m_book_conv_x
bool m_book_conv_y
bool m_book_conv_z
std::string m_book_mode
bool m_book_nhits_vsiter
bool m_book_wxresid
bool m_book_wxresid_vsx
bool m_book_wxresid_vsy
bool m_book_wxresidwide
bool m_book_wyresid
bool m_book_wyresid_vsx
bool m_book_wyresid_vsy
bool m_book_xpull
bool m_book_xresid
bool m_book_xresidwide
bool m_book_ypull
bool m_book_yresid
std::map< Alignable *,
unsigned int
m_chamber_index
TH1FPtrm_conv_phix
TH1FPtrm_conv_phiy
TH1FPtrm_conv_phiz
TH1FPtrm_conv_x
TH1FPtrm_conv_y
TH1FPtrm_conv_z
bool m_createPythonGeometry
std::map< Alignable *,
unsigned int
m_disk_index
std::map< Alignable *,
unsigned int
m_layer_index
TH1FPtrm_nhits_vsiter
unsigned int m_numHistograms
edm::ParameterSet m_params
int m_params_bins
int m_params_iterations
double m_params_iterations_high
double m_params_iterations_low
double m_params_xCSC_high
double m_params_xCSC_low
double m_params_xDT_high
double m_params_xDT_low
double m_params_xpull_high
double m_params_xpull_low
double m_params_xresid_high
double m_params_xresid_low
double m_params_xresidwide_high
double m_params_xresidwide_low
double m_params_yCSC_high
double m_params_yCSC_low
double m_params_yDT_high
double m_params_yDT_low
double m_params_ypull_high
double m_params_ypull_low
double m_params_yresid_high
double m_params_yresid_low
std::map< Alignable *, intm_rawid
TH1FPtrm_wxresid
TProfilePtrm_wxresid_vsx
TProfilePtrm_wxresid_vsy
TH1FPtrm_wxresidwide
TH1FPtrm_wyresid
TProfilePtrm_wyresid_vsx
TProfilePtrm_wyresid_vsy
TH1FPtrm_xpull
TH1FPtrm_xresid
TH1FPtrm_xresidwide
TH1FPtrm_ypull
TH1FPtrm_yresid


Detailed Description

Definition at line 46 of file AlignmentMonitorMuonHIP.cc.


Member Typedef Documentation

typedef TH1F* AlignmentMonitorMuonHIP::TH1FPtr [private]

Definition at line 56 of file AlignmentMonitorMuonHIP.cc.

typedef TProfile* AlignmentMonitorMuonHIP::TProfilePtr [private]

Definition at line 57 of file AlignmentMonitorMuonHIP.cc.


Constructor & Destructor Documentation

AlignmentMonitorMuonHIP::AlignmentMonitorMuonHIP ( const edm::ParameterSet cfg  ) 

Definition at line 136 of file AlignmentMonitorMuonHIP.cc.

References Exception, edm::ParameterSet::getParameter(), m_book, m_book_after, m_book_before, m_book_conv_phix, m_book_conv_phiy, m_book_conv_phiz, m_book_conv_x, m_book_conv_y, m_book_conv_z, m_book_mode, m_book_nhits_vsiter, m_book_wxresid, m_book_wxresid_vsx, m_book_wxresid_vsy, m_book_wxresidwide, m_book_wyresid, m_book_wyresid_vsx, m_book_wyresid_vsy, m_book_xpull, m_book_xresid, m_book_xresidwide, m_book_ypull, m_book_yresid, m_params, m_params_bins, m_params_iterations, m_params_iterations_high, m_params_iterations_low, m_params_xCSC_high, m_params_xCSC_low, m_params_xDT_high, m_params_xDT_low, m_params_xpull_high, m_params_xpull_low, m_params_xresid_high, m_params_xresid_low, m_params_xresidwide_high, m_params_xresidwide_low, m_params_yCSC_high, m_params_yCSC_low, m_params_yDT_high, m_params_yDT_low, m_params_ypull_high, m_params_ypull_low, m_params_yresid_high, and m_params_yresid_low.

00137    : AlignmentMonitorBase(cfg, "AlignmentMonitorMuonHIP")
00138    , m_params(cfg.getParameter<edm::ParameterSet>("params"))
00139    , m_book(cfg.getParameter<edm::ParameterSet>("book"))
00140    , m_createPythonGeometry(cfg.getParameter<bool>("createPythonGeometry"))
00141 {
00142    m_params_iterations = m_params.getParameter<unsigned int>("iterations");
00143    m_params_iterations_low = m_params.getParameter<double>("iterations_low");
00144    m_params_iterations_high = m_params.getParameter<double>("iterations_high");
00145    m_params_bins = m_params.getParameter<unsigned int>("bins");
00146    m_params_xresid_low = m_params.getParameter<double>("xresid_low");
00147    m_params_xresid_high = m_params.getParameter<double>("xresid_high");
00148    m_params_xresidwide_low = m_params.getParameter<double>("xresidwide_low");
00149    m_params_xresidwide_high = m_params.getParameter<double>("xresidwide_high");
00150    m_params_yresid_low = m_params.getParameter<double>("yresid_low");
00151    m_params_yresid_high = m_params.getParameter<double>("yresid_high");
00152    m_params_xDT_low = m_params.getParameter<double>("xDT_low");
00153    m_params_xDT_high = m_params.getParameter<double>("xDT_high");
00154    m_params_yDT_low = m_params.getParameter<double>("yDT_low");
00155    m_params_yDT_high = m_params.getParameter<double>("yDT_high");
00156    m_params_xCSC_low = m_params.getParameter<double>("xCSC_low");
00157    m_params_xCSC_high = m_params.getParameter<double>("xCSC_high");
00158    m_params_yCSC_low = m_params.getParameter<double>("yCSC_low");
00159    m_params_yCSC_high = m_params.getParameter<double>("yCSC_high");
00160    m_params_xpull_low = m_params.getParameter<double>("xpull_low");
00161    m_params_xpull_high = m_params.getParameter<double>("xpull_high");
00162    m_params_ypull_low = m_params.getParameter<double>("ypull_low");
00163    m_params_ypull_high = m_params.getParameter<double>("ypull_high");
00164 
00165    m_book_mode = m_book.getParameter<std::string>("mode");
00166    if (m_book_mode != std::string("selected")  &&
00167        m_book_mode != std::string("disk")  &&
00168        m_book_mode != std::string("chamber")  &&
00169        m_book_mode != std::string("layer")) {
00170       throw cms::Exception("BadConfig") << "AlignmentMonitorMuonHIP.book.mode must be \"selected\", \"disk\", \"chamber\", or \"layer\".";
00171    }
00172 
00173    m_book_nhits_vsiter = m_book.getParameter<bool>("nhits_vsiter");
00174    m_book_conv_x = m_book.getParameter<bool>("conv_x");
00175    m_book_conv_y = m_book.getParameter<bool>("conv_y");
00176    m_book_conv_z = m_book.getParameter<bool>("conv_z");
00177    m_book_conv_phix = m_book.getParameter<bool>("conv_phix");
00178    m_book_conv_phiy = m_book.getParameter<bool>("conv_phiy");
00179    m_book_conv_phiz = m_book.getParameter<bool>("conv_phiz");
00180    m_book_xresid = m_book.getParameter<bool>("xresid");
00181    m_book_xresidwide = m_book.getParameter<bool>("xresidwide");
00182    m_book_yresid = m_book.getParameter<bool>("yresid");
00183    m_book_wxresid = m_book.getParameter<bool>("wxresid");
00184    m_book_wxresidwide = m_book.getParameter<bool>("wxresidwide");
00185    m_book_wyresid = m_book.getParameter<bool>("wyresid");
00186    m_book_wxresid_vsx = m_book.getParameter<bool>("wxresid_vsx");
00187    m_book_wxresid_vsy = m_book.getParameter<bool>("wxresid_vsy");
00188    m_book_wyresid_vsx = m_book.getParameter<bool>("wyresid_vsx");
00189    m_book_wyresid_vsy = m_book.getParameter<bool>("wyresid_vsy");
00190    m_book_xpull = m_book.getParameter<bool>("xpull");
00191    m_book_ypull = m_book.getParameter<bool>("ypull");
00192    m_book_before = m_book.getParameter<bool>("before");
00193    m_book_after = m_book.getParameter<bool>("after");
00194 }

AlignmentMonitorMuonHIP::~AlignmentMonitorMuonHIP (  )  [inline]

Definition at line 49 of file AlignmentMonitorMuonHIP.cc.

00049 {};


Member Function Documentation

void AlignmentMonitorMuonHIP::afterAlignment ( const edm::EventSetup iSetup  )  [virtual]

Called after updating AlignableTracker and AlignableMuon (by "endOfLoop()"): may be reimplemented.

Reimplemented from AlignmentMonitorBase.

Definition at line 807 of file AlignmentMonitorMuonHIP.cc.

References Alignable::alignableObjectId(), AlignmentParameterStore::alignables(), Alignable::alignmentParameters(), muonGeometry::disk, Alignable::displacement(), i, AlignmentMonitorBase::iteration(), j, HIPUserVariables::jtve, HIPUserVariables::jtvj, m_after, m_after_level, m_after_phix, m_after_phixerr, m_after_phiy, m_after_phiyerr, m_after_phiz, m_after_phizerr, m_after_rawid, m_after_x, m_after_xerr, m_after_y, m_after_yerr, m_after_z, m_after_zerr, m_chamber_index, m_conv_phix, m_conv_phiy, m_conv_phiz, m_conv_x, m_conv_y, m_conv_z, m_disk_index, m_layer_index, m_nhits_vsiter, m_rawid, m_wxresid, m_wxresid_vsx, m_wxresid_vsy, m_wxresidwide, m_wyresid, m_wyresid_vsx, m_wyresid_vsy, m_xpull, m_xresid, m_xresidwide, m_ypull, m_yresid, params, AlignmentMonitorBase::pStore(), Alignable::rotation(), AlignmentParameters::selector(), funct::sqrt(), Alignable::surface(), AlignableSurface::toLocal(), AlignmentParameters::userVariables(), PV3DBase< T, PVType, FrameType >::x(), TkRotation< T >::xx(), PV3DBase< T, PVType, FrameType >::y(), TkRotation< T >::yx(), PV3DBase< T, PVType, FrameType >::z(), TkRotation< T >::zx(), TkRotation< T >::zy(), and TkRotation< T >::zz().

00807                                                                         {
00808    std::vector<Alignable*> alignables = pStore()->alignables();
00809    for (std::vector<Alignable*>::const_iterator aliiter = alignables.begin();  aliiter != alignables.end();  ++aliiter) {
00810       Alignable *ali = *aliiter;
00811       std::map<Alignable*, unsigned int>::const_iterator disk = m_disk_index.find(ali);
00812       std::map<Alignable*, unsigned int>::const_iterator chamber = m_chamber_index.find(ali);
00813       std::map<Alignable*, unsigned int>::const_iterator layer = m_layer_index.find(ali);
00814       if (disk != m_disk_index.end()  ||  chamber != m_chamber_index.end()  ||  layer != m_layer_index.end()) {
00815          // The central values of all the alignment positions
00816          LocalVector displacement = ali->surface().toLocal(ali->displacement());
00817          align::RotationType rotation = ali->surface().toLocal(ali->rotation());
00818 
00820          AlignmentParameters *par = ali->alignmentParameters();
00821          HIPUserVariables *uservar = dynamic_cast<HIPUserVariables*>(par->userVariables());
00822          AlgebraicSymMatrix jtvj = uservar->jtvj;
00823          AlgebraicVector jtve = uservar->jtve;
00824          int npar = jtve.num_row();
00825 
00826          int ierr;
00827          AlgebraicSymMatrix jtvjinv = jtvj.inverse(ierr);
00828          AlgebraicVector paramerr(npar);
00829          if (ierr == 0) {
00830             AlgebraicVector params = -(jtvjinv * jtve);
00831             for (int i = 0;  i < npar;  i++) {
00832                if (fabs(jtvjinv[i][i]) > 0) paramerr[i] = sqrt(fabs(jtvjinv[i][i]));
00833                else paramerr[i] = params[i];
00834             }
00835          }
00836          else {
00837             for (int i = 0;  i < npar;  i++) {
00838                paramerr[i] = 0.;
00839             }
00840          }
00841 
00842          std::vector<bool> selector = par->selector();
00843          AlgebraicVector allparamerr(6);
00844          int j = 0;
00845          for (int i = 0;  i < 6;  i++) {
00846             if (selector[i]) {
00847                allparamerr[i] = paramerr[j];
00848                j++;
00849             }
00850             else {
00851                allparamerr[i] = 0.;
00852             }
00853          }
00854 
00856 
00857          double mxx = rotation.xx();
00858          double myx = rotation.yx();
00859          double mzx = rotation.zx();
00860          double mzy = rotation.zy();
00861          double mzz = rotation.zz();
00862          double denom = sqrt(1. - mzx*mzx);
00863          
00864          m_after_rawid = m_rawid[ali];
00865          m_after_level = ali->alignableObjectId();
00866          m_after_x = displacement.x();
00867          m_after_y = displacement.y();
00868          m_after_z = displacement.z();
00869          m_after_phix = atan2(-mzy/denom, mzz/denom);
00870          m_after_phiy = atan2(mzx, denom);
00871          m_after_phiz = atan2(-myx/denom, mxx/denom);
00872          m_after_xerr = allparamerr[0];
00873          m_after_yerr = allparamerr[1];
00874          m_after_zerr = allparamerr[2];
00875          m_after_phixerr = allparamerr[3];
00876          m_after_phiyerr = allparamerr[4];
00877          m_after_phizerr = allparamerr[5];
00878          if (m_after) m_after->Fill();
00879 
00880          std::map<Alignable*, unsigned int>::const_iterator disk = m_disk_index.find(ali);
00881          std::map<Alignable*, unsigned int>::const_iterator chamber = m_chamber_index.find(ali);
00882          std::map<Alignable*, unsigned int>::const_iterator layer = m_layer_index.find(ali);
00883          
00884          if (disk != m_disk_index.end()) {
00885             if (m_conv_x[disk->second]) m_conv_x[disk->second]->SetBinContent(iteration() + 1, m_after_x);
00886             if (m_conv_y[disk->second]) m_conv_y[disk->second]->SetBinContent(iteration() + 1, m_after_y);
00887             if (m_conv_z[disk->second]) m_conv_z[disk->second]->SetBinContent(iteration() + 1, m_after_z);
00888             if (m_conv_phix[disk->second]) m_conv_phix[disk->second]->SetBinContent(iteration() + 1, m_after_phix);
00889             if (m_conv_phiy[disk->second]) m_conv_phiy[disk->second]->SetBinContent(iteration() + 1, m_after_phiy);
00890             if (m_conv_phiz[disk->second]) m_conv_phiz[disk->second]->SetBinContent(iteration() + 1, m_after_phiz);
00891 
00892             if (m_conv_x[disk->second]) m_conv_x[disk->second]->SetBinError(iteration() + 1, m_after_xerr);
00893             if (m_conv_y[disk->second]) m_conv_y[disk->second]->SetBinError(iteration() + 1, m_after_yerr);
00894             if (m_conv_z[disk->second]) m_conv_z[disk->second]->SetBinError(iteration() + 1, m_after_zerr);
00895             if (m_conv_phix[disk->second]) m_conv_phix[disk->second]->SetBinError(iteration() + 1, m_after_phixerr);
00896             if (m_conv_phiy[disk->second]) m_conv_phiy[disk->second]->SetBinError(iteration() + 1, m_after_phiyerr);
00897             if (m_conv_phiz[disk->second]) m_conv_phiz[disk->second]->SetBinError(iteration() + 1, m_after_phizerr);
00898          }
00899 
00900          if (chamber != m_chamber_index.end()) {
00901             if (m_conv_x[chamber->second]) m_conv_x[chamber->second]->SetBinContent(iteration() + 1, m_after_x);
00902             if (m_conv_y[chamber->second]) m_conv_y[chamber->second]->SetBinContent(iteration() + 1, m_after_y);
00903             if (m_conv_z[chamber->second]) m_conv_z[chamber->second]->SetBinContent(iteration() + 1, m_after_z);
00904             if (m_conv_phix[chamber->second]) m_conv_phix[chamber->second]->SetBinContent(iteration() + 1, m_after_phix);
00905             if (m_conv_phiy[chamber->second]) m_conv_phiy[chamber->second]->SetBinContent(iteration() + 1, m_after_phiy);
00906             if (m_conv_phiz[chamber->second]) m_conv_phiz[chamber->second]->SetBinContent(iteration() + 1, m_after_phiz);
00907 
00908             if (m_conv_x[chamber->second]) m_conv_x[chamber->second]->SetBinError(iteration() + 1, m_after_xerr);
00909             if (m_conv_y[chamber->second]) m_conv_y[chamber->second]->SetBinError(iteration() + 1, m_after_yerr);
00910             if (m_conv_z[chamber->second]) m_conv_z[chamber->second]->SetBinError(iteration() + 1, m_after_zerr);
00911             if (m_conv_phix[chamber->second]) m_conv_phix[chamber->second]->SetBinError(iteration() + 1, m_after_phixerr);
00912             if (m_conv_phiy[chamber->second]) m_conv_phiy[chamber->second]->SetBinError(iteration() + 1, m_after_phiyerr);
00913             if (m_conv_phiz[chamber->second]) m_conv_phiz[chamber->second]->SetBinError(iteration() + 1, m_after_phizerr);
00914          }
00915 
00916          if (layer != m_layer_index.end()) {
00917             if (m_conv_x[layer->second]) m_conv_x[layer->second]->SetBinContent(iteration() + 1, m_after_x);
00918             if (m_conv_y[layer->second]) m_conv_y[layer->second]->SetBinContent(iteration() + 1, m_after_y);
00919             if (m_conv_z[layer->second]) m_conv_z[layer->second]->SetBinContent(iteration() + 1, m_after_z);
00920             if (m_conv_phix[layer->second]) m_conv_phix[layer->second]->SetBinContent(iteration() + 1, m_after_phix);
00921             if (m_conv_phiy[layer->second]) m_conv_phiy[layer->second]->SetBinContent(iteration() + 1, m_after_phiy);
00922             if (m_conv_phiz[layer->second]) m_conv_phiz[layer->second]->SetBinContent(iteration() + 1, m_after_phiz);
00923 
00924             if (m_conv_x[layer->second]) m_conv_x[layer->second]->SetBinError(iteration() + 1, m_after_xerr);
00925             if (m_conv_y[layer->second]) m_conv_y[layer->second]->SetBinError(iteration() + 1, m_after_yerr);
00926             if (m_conv_z[layer->second]) m_conv_z[layer->second]->SetBinError(iteration() + 1, m_after_zerr);
00927             if (m_conv_phix[layer->second]) m_conv_phix[layer->second]->SetBinError(iteration() + 1, m_after_phixerr);
00928             if (m_conv_phiy[layer->second]) m_conv_phiy[layer->second]->SetBinError(iteration() + 1, m_after_phiyerr);
00929             if (m_conv_phiz[layer->second]) m_conv_phiz[layer->second]->SetBinError(iteration() + 1, m_after_phizerr);
00930          }
00931 
00932       } // end if this is a DT or CSC
00933    } // end loop over alignables
00934 
00935    delete [] m_nhits_vsiter;
00936    delete [] m_conv_x;
00937    delete [] m_conv_y;
00938    delete [] m_conv_z;
00939    delete [] m_conv_phix;
00940    delete [] m_conv_phiy;
00941    delete [] m_conv_phiz;
00942    delete [] m_xresid;
00943    delete [] m_xresidwide;
00944    delete [] m_yresid;
00945    delete [] m_wxresid;
00946    delete [] m_wxresidwide;
00947    delete [] m_wyresid;
00948    delete [] m_wxresid_vsx;
00949    delete [] m_wxresid_vsy;
00950    delete [] m_wyresid_vsx;
00951    delete [] m_wyresid_vsy;
00952    delete [] m_xpull;
00953    delete [] m_ypull;
00954 
00955    // The histograms themselves are deleted by the base class.
00956 }

void AlignmentMonitorMuonHIP::book (  )  [virtual]

Book or retrieve histograms; MUST be reimplemented.

Implements AlignmentMonitorBase.

Definition at line 204 of file AlignmentMonitorMuonHIP.cc.

References AlignmentParameterStore::alignables(), AlignmentMonitorBase::book1D(), bookByAli(), Alignable::components(), createPythonGeometry(), AlignableMuon::CSCChambers(), AlignableMuon::CSCLayers(), AlignableMuon::CSCStations(), dir, AlignmentMonitorBase::directory(), muonGeometry::disk, AlignableMuon::DTChambers(), AlignableMuon::DTSuperLayers(), AlignableMuon::DTWheels(), lat::endl(), Alignable::geomDetId(), index, AlignmentMonitorBase::iteration(), m_after, m_after_level, m_after_phix, m_after_phixerr, m_after_phiy, m_after_phiyerr, m_after_phiz, m_after_phizerr, m_after_rawid, m_after_x, m_after_xerr, m_after_y, m_after_yerr, m_after_z, m_after_zerr, m_before, m_before_level, m_before_phix, m_before_phiy, m_before_phiz, m_before_rawid, m_before_x, m_before_y, m_before_z, m_book_after, m_book_before, m_book_mode, m_chamber_index, m_conv_phix, m_conv_phiy, m_conv_phiz, m_conv_x, m_conv_y, m_conv_z, m_createPythonGeometry, m_disk_index, m_layer_index, m_nhits_vsiter, m_numHistograms, m_params_bins, m_params_xpull_high, m_params_xpull_low, m_params_xresid_high, m_params_xresid_low, m_params_xresidwide_high, m_params_xresidwide_low, m_params_ypull_high, m_params_ypull_low, m_params_yresid_high, m_params_yresid_low, m_rawid, m_wxresid, m_wxresid_vsx, m_wxresid_vsy, m_wxresidwide, m_wyresid, m_wyresid_vsx, m_wyresid_vsy, m_xpull, m_xresid, m_xresidwide, m_ypull, m_yresid, TFileDirectory::make(), Alignable::mother(), name, NULL, AlignmentMonitorBase::pMuon(), AlignmentMonitorBase::pStore(), DetId::rawId(), funct::sqrt(), indexGen::title, PV3DBase< T, PVType, FrameType >::x(), TkRotation< T >::xx(), PV3DBase< T, PVType, FrameType >::y(), TkRotation< T >::yx(), PV3DBase< T, PVType, FrameType >::z(), TkRotation< T >::zx(), TkRotation< T >::zy(), and TkRotation< T >::zz().

00204                                    {
00206    // Make histograms based on the selected alignables.  This will make
00207    // files for layer-by-layer alignments huge and disk-by-wheel
00208    // alignments tiny.
00210 
00211    unsigned int index = 0;  // merge EVERYTHING (good for a quick look in the TBrowser)
00212    index++;
00213 
00214    std::vector<Alignable*> alignables;
00215    if (m_book_mode == std::string("selected")) {
00216       alignables = pStore()->alignables();
00217    }
00218    else if (m_book_mode == std::string("disk")) {
00219       alignables = pMuon()->DTWheels();
00220 
00221       std::vector<Alignable*> more = pMuon()->CSCStations();
00222       for (std::vector<Alignable*>::const_iterator miter = more.begin();  miter != more.end();  ++miter) {
00223          alignables.push_back(*miter);
00224       }
00225    }
00226    else if (m_book_mode == std::string("chamber")) {
00227       alignables = pMuon()->DTChambers();
00228 
00229       std::vector<Alignable*> more = pMuon()->CSCChambers();
00230       for (std::vector<Alignable*>::const_iterator miter = more.begin();  miter != more.end();  ++miter) {
00231          alignables.push_back(*miter);
00232       }
00233    }
00234    else if (m_book_mode == std::string("layer")) {
00235       alignables = pMuon()->DTSuperLayers();
00236 
00237       std::vector<Alignable*> more = pMuon()->CSCLayers();
00238       for (std::vector<Alignable*>::const_iterator miter = more.begin();  miter != more.end();  ++miter) {
00239          alignables.push_back(*miter);
00240       }
00241    }
00242 
00243    for (std::vector<Alignable*>::const_iterator aliiter = alignables.begin();  aliiter != alignables.end();  ++aliiter) {
00244       Alignable *ali = *aliiter;
00245 
00246       // Sorry, histogramming code needs to be very specific.  If the
00247       // plots were abstract and generic, what could we learn from them?
00248       if (ali->mother() != NULL) {
00249          AlignableDTChamber *dtSuperLayer_mother = dynamic_cast<AlignableDTChamber*>(ali->mother());
00250          AlignableCSCChamber *cscLayer_mother = dynamic_cast<AlignableCSCChamber*>(ali->mother());
00251          if (dtSuperLayer_mother  ||  cscLayer_mother) {
00252             m_layer_index[ali] = index;
00253             m_rawid[ali] = ali->geomDetId().rawId();
00254             index++;
00255             ali = ali->mother();
00256          }
00257       }
00258 
00259       AlignableDTChamber *dtChamber = dynamic_cast<AlignableDTChamber*>(ali);
00260       AlignableCSCChamber *cscChamber = dynamic_cast<AlignableCSCChamber*>(ali);
00261       if (dtChamber  ||  cscChamber) {
00262          m_chamber_index[ali] = index;
00263          m_rawid[ali] = ali->geomDetId().rawId();
00264          index++;
00265          ali = ali->mother();
00266 
00267          if (dtChamber) ali = ali->mother();  // Skip station level
00268          // if (cscChamber) ali = ali->mother();  // No (real) station level to skip (yet?)
00269       }
00270 
00271       AlignableDTWheel *dtWheel = dynamic_cast<AlignableDTWheel*>(ali);
00272       AlignableCSCStation *cscDisk = dynamic_cast<AlignableCSCStation*>(ali);
00273          
00274       if (dtWheel  ||  cscDisk) {
00275          m_disk_index[ali] = index;
00276 
00277          Alignable *descend = ali;
00278          while (true) {
00279             std::vector<Alignable*> components = descend->components();
00280             if (components.size() > 0) {
00281                descend = components[0];
00282                m_rawid[ali] = descend->geomDetId().rawId();
00283                if (m_rawid[ali] != 0) break;
00284             }
00285             else {
00286                edm::LogError("AlignmentMonitorMuonHIP")
00287                   << "Something happened to the topology of the Alignable tree: I find a" << std::endl
00288                   << "DTWheel or a CSCDisk (a.k.a. CSCStation) without components containing DetIds" << std::endl;
00289                static int wheeldiskNumber = 0;
00290                wheeldiskNumber++;
00291                m_rawid[ali] = wheeldiskNumber;
00292             }
00293          }
00294 
00295          index++;
00296          ali = ali->mother();
00297       }
00298    }
00299    m_numHistograms = index;
00300 
00301    if (m_numHistograms == 0) {
00302       edm::LogError("AlignmentMonitorMuonHIP")
00303          << "================================================================================" << std::endl
00304          << "====     Generating no (zero) histograms (nada, the big zip-a-dee-doo-da)    ===" << std::endl
00305          << "====                       (is this what you want?!?!?)                      ===" << std::endl
00306          << "================================================================================" << std::endl;
00307    }
00308 
00310    // Now we know how many histograms there are and have a quick-lookup
00312 
00313    m_nhits_vsiter = new TH1FPtr[m_numHistograms];
00314    m_conv_x = new TH1FPtr[m_numHistograms];
00315    m_conv_y = new TH1FPtr[m_numHistograms];
00316    m_conv_z = new TH1FPtr[m_numHistograms];
00317    m_conv_phix = new TH1FPtr[m_numHistograms];
00318    m_conv_phiy = new TH1FPtr[m_numHistograms];
00319    m_conv_phiz = new TH1FPtr[m_numHistograms];
00320    m_xresid = new TH1FPtr[m_numHistograms];
00321    m_xresidwide = new TH1FPtr[m_numHistograms];
00322    m_yresid = new TH1FPtr[m_numHistograms];
00323    m_wxresid = new TH1FPtr[m_numHistograms];
00324    m_wxresidwide = new TH1FPtr[m_numHistograms];
00325    m_wyresid = new TH1FPtr[m_numHistograms];
00326    m_wxresid_vsx = new TProfilePtr[m_numHistograms];
00327    m_wxresid_vsy = new TProfilePtr[m_numHistograms];
00328    m_wyresid_vsx = new TProfilePtr[m_numHistograms];
00329    m_wyresid_vsy = new TProfilePtr[m_numHistograms];
00330    m_xpull = new TH1FPtr[m_numHistograms];
00331    m_ypull = new TH1FPtr[m_numHistograms];
00332 
00334    // These three loops book most of the histograms
00336 
00337    for (std::map<Alignable*, unsigned int>::const_iterator aliint = m_disk_index.begin();  aliint != m_disk_index.end();  ++aliint) {
00338       bookByAli("disk", m_rawid[aliint->first], aliint->second);
00339    }      
00340 
00341    for (std::map<Alignable*, unsigned int>::const_iterator aliint = m_chamber_index.begin();  aliint != m_chamber_index.end();  ++aliint) {
00342       bookByAli("chamber", m_rawid[aliint->first], aliint->second);
00343    }      
00344 
00345    for (std::map<Alignable*, unsigned int>::const_iterator aliint = m_layer_index.begin();  aliint != m_layer_index.end();  ++aliint) {
00346       bookByAli("layer", m_rawid[aliint->first], aliint->second);
00347    }      
00348 
00350    // Handle the zero case (plot everything) for *some* histograms
00352 
00353    m_nhits_vsiter[0] = NULL;
00354    m_conv_x[0] = NULL;
00355    m_conv_y[0] = NULL;
00356    m_conv_z[0] = NULL;
00357    m_conv_phix[0] = NULL;
00358    m_conv_phiy[0] = NULL;
00359    m_conv_phiz[0] = NULL;
00360 
00361    char dir[256], name[256], title[256];
00362    sprintf(dir, "/iterN/");
00363    sprintf(name, "xresid");
00364    sprintf(title, "x residual for iteration %d", iteration());
00365    m_xresid[0] = book1D(dir, name, title, m_params_bins, m_params_xresid_low, m_params_xresid_high);
00366 
00367    sprintf(dir, "/iterN/");
00368    sprintf(name, "xresidwide");
00369    sprintf(title, "x residual for iteration %d", iteration());
00370    m_xresidwide[0] = book1D(dir, name, title, m_params_bins, m_params_xresidwide_low, m_params_xresidwide_high);
00371 
00372    sprintf(dir, "/iterN/");
00373    sprintf(name, "yresid");
00374    sprintf(title, "y residual for iteration %d", iteration());
00375    m_yresid[0] = book1D(dir, name, title, m_params_bins, m_params_yresid_low, m_params_yresid_high);
00376 
00377    sprintf(dir, "/iterN/");
00378    sprintf(name, "wxresid");
00379    sprintf(title, "Weighted x residual for iteration %d", iteration());
00380    m_wxresid[0] = book1D(dir, name, title, m_params_bins, m_params_xresid_low, m_params_xresid_high);
00381 
00382    sprintf(dir, "/iterN/");
00383    sprintf(name, "wxresidwide");
00384    sprintf(title, "Weighted x residual for iteration %d", iteration());
00385    m_wxresidwide[0] = book1D(dir, name, title, m_params_bins, m_params_xresidwide_low, m_params_xresidwide_high);
00386 
00387    sprintf(dir, "/iterN/");
00388    sprintf(name, "wyresid");
00389    sprintf(title, "Weighted y residual for iteration %d", iteration());
00390    m_wyresid[0] = book1D(dir, name, title, m_params_bins, m_params_yresid_low, m_params_yresid_high);
00391 
00392    m_wxresid_vsx[0] = NULL;
00393    m_wxresid_vsy[0] = NULL;
00394    m_wyresid_vsx[0] = NULL;
00395    m_wyresid_vsy[0] = NULL;
00396 
00397    sprintf(dir, "/iterN/");
00398    sprintf(name, "xpull");
00399    sprintf(title, "x pull distribution for iteration %d", iteration());
00400    m_xpull[0] = book1D(dir, name, title, m_params_bins, m_params_xpull_low, m_params_xpull_high);
00401 
00402    sprintf(dir, "/iterN/");
00403    sprintf(name, "ypull");
00404    sprintf(title, "y pull distribution for iteration %d", iteration());
00405    m_ypull[0] = book1D(dir, name, title, m_params_bins, m_params_ypull_low, m_params_ypull_high);
00406 
00408    // Finally, book the alignable-wise ntuple and fill "before"
00410 
00411    if (m_book_before) {
00412       m_before = directory("/iterN/")->make<TTree>("before", "positions before iteration");
00413       m_before->Branch("rawid", &m_before_rawid, "rawid/I");
00414       m_before->Branch("level", &m_before_level, "level/I");
00415       m_before->Branch("x", &m_before_x, "x/F");
00416       m_before->Branch("y", &m_before_y, "y/F");
00417       m_before->Branch("z", &m_before_z, "z/F");
00418       m_before->Branch("phix", &m_before_phix, "phix/F");
00419       m_before->Branch("phiy", &m_before_phiy, "phiy/F");
00420       m_before->Branch("phiz", &m_before_phiz, "phiz/F");
00421    }
00422    else {
00423       m_before = NULL;
00424    }
00425 
00426    if (m_book_after) {
00427       m_after = directory("/iterN/")->make<TTree>("after", "positions before iteration");
00428       m_after->Branch("rawid", &m_after_rawid, "rawid/I");
00429       m_after->Branch("level", &m_after_level, "level/I");
00430       m_after->Branch("x", &m_after_x, "x/F");
00431       m_after->Branch("xerr", &m_after_xerr, "xerr/F");
00432       m_after->Branch("y", &m_after_y, "y/F");
00433       m_after->Branch("yerr", &m_after_yerr, "yerr/F");
00434       m_after->Branch("z", &m_after_z, "z/F");
00435       m_after->Branch("zerr", &m_after_zerr, "zerr/F");
00436       m_after->Branch("phix", &m_after_phix, "phix/F");
00437       m_after->Branch("phixerr", &m_after_phixerr, "phixerr/F");
00438       m_after->Branch("phiy", &m_after_phiy, "phiy/F");
00439       m_after->Branch("phiyerr", &m_after_phiyerr, "phiyerr/F");
00440       m_after->Branch("phiz", &m_after_phiz, "phiz/F");
00441       m_after->Branch("phizerr", &m_after_phizerr, "phizerr/F");
00442    }
00443    else {
00444       m_after = NULL;
00445    }
00446 
00447    for (std::vector<Alignable*>::const_iterator aliiter = alignables.begin();  aliiter != alignables.end();  ++aliiter) {
00448       for (Alignable *ali = *aliiter;  ali != NULL;  ali = ali->mother()) {
00449          std::map<Alignable*, unsigned int>::const_iterator disk = m_disk_index.find(ali);
00450          std::map<Alignable*, unsigned int>::const_iterator chamber = m_chamber_index.find(ali);
00451          std::map<Alignable*, unsigned int>::const_iterator layer = m_layer_index.find(ali);
00452 
00453          LocalVector displacement = ali->surface().toLocal(ali->displacement());
00454          align::RotationType rotation = ali->surface().toLocal(ali->rotation());
00455 
00456          double mxx = rotation.xx();
00457          double myx = rotation.yx();
00458          double mzx = rotation.zx();
00459          double mzy = rotation.zy();
00460          double mzz = rotation.zz();
00461          double denom = sqrt(1. - mzx*mzx);
00462          
00463          m_before_rawid = m_rawid[ali];
00464          m_before_level = ali->alignableObjectId();
00465          m_before_x = displacement.x();
00466          m_before_y = displacement.y();
00467          m_before_z = displacement.z();
00468          m_before_phix = atan2(-mzy/denom, mzz/denom);
00469          m_before_phiy = atan2(mzx, denom);
00470          m_before_phiz = atan2(-myx/denom, mxx/denom);
00471          if (m_before) m_before->Fill();
00472 
00473          if (disk != m_disk_index.end()  ||  chamber != m_chamber_index.end()  ||  layer != m_layer_index.end()) {
00474 
00475             if (iteration() == 1) {
00476                if (disk != m_disk_index.end()) {
00477                   if (m_conv_x[disk->second]) m_conv_x[disk->second]->SetBinContent(1, m_before_x);
00478                   if (m_conv_y[disk->second]) m_conv_y[disk->second]->SetBinContent(1, m_before_y);
00479                   if (m_conv_z[disk->second]) m_conv_z[disk->second]->SetBinContent(1, m_before_z);
00480                   if (m_conv_phix[disk->second]) m_conv_phix[disk->second]->SetBinContent(1, m_before_phix);
00481                   if (m_conv_phiy[disk->second]) m_conv_phiy[disk->second]->SetBinContent(1, m_before_phiy);
00482                   if (m_conv_phiz[disk->second]) m_conv_phiz[disk->second]->SetBinContent(1, m_before_phiz);
00483                }
00484 
00485                if (chamber != m_chamber_index.end()) {
00486                   if (m_conv_x[chamber->second]) m_conv_x[chamber->second]->SetBinContent(1, m_before_x);
00487                   if (m_conv_y[chamber->second]) m_conv_y[chamber->second]->SetBinContent(1, m_before_y);
00488                   if (m_conv_z[chamber->second]) m_conv_z[chamber->second]->SetBinContent(1, m_before_z);
00489                   if (m_conv_phix[chamber->second]) m_conv_phix[chamber->second]->SetBinContent(1, m_before_phix);
00490                   if (m_conv_phiy[chamber->second]) m_conv_phiy[chamber->second]->SetBinContent(1, m_before_phiy);
00491                   if (m_conv_phiz[chamber->second]) m_conv_phiz[chamber->second]->SetBinContent(1, m_before_phiz);
00492                }
00493 
00494                if (layer != m_layer_index.end()) {
00495                   if (m_conv_x[layer->second]) m_conv_x[layer->second]->SetBinContent(1, m_before_x);
00496                   if (m_conv_y[layer->second]) m_conv_y[layer->second]->SetBinContent(1, m_before_y);
00497                   if (m_conv_z[layer->second]) m_conv_z[layer->second]->SetBinContent(1, m_before_z);
00498                   if (m_conv_phix[layer->second]) m_conv_phix[layer->second]->SetBinContent(1, m_before_phix);
00499                   if (m_conv_phiy[layer->second]) m_conv_phiy[layer->second]->SetBinContent(1, m_before_phiy);
00500                   if (m_conv_phiz[layer->second]) m_conv_phiz[layer->second]->SetBinContent(1, m_before_phiz);
00501                }
00502             } // end if this is iteration 1
00503          } // end if we have a histogram for this alignable
00504       } // end ascent to topmost alignable
00505    } // end loop over alignables
00506 
00507    if (m_createPythonGeometry) createPythonGeometry();
00508 }

void AlignmentMonitorMuonHIP::bookByAli ( const char *  level,
const int  rawid,
const unsigned int  index 
) [private]

Definition at line 510 of file AlignmentMonitorMuonHIP.cc.

References AlignmentMonitorBase::book1D(), AlignmentMonitorBase::bookProfile(), CSCDetId::chamber(), dir, MuonSubdetId::DT, CSCDetId::endcap(), AlignmentMonitorBase::iteration(), m_book_conv_phix, m_book_conv_phiy, m_book_conv_phiz, m_book_conv_x, m_book_conv_y, m_book_conv_z, m_book_mode, m_book_nhits_vsiter, m_book_wxresid, m_book_wxresid_vsx, m_book_wxresid_vsy, m_book_wxresidwide, m_book_wyresid, m_book_wyresid_vsx, m_book_wyresid_vsy, m_book_xpull, m_book_xresid, m_book_xresidwide, m_book_ypull, m_book_yresid, m_conv_phix, m_conv_phiy, m_conv_phiz, m_conv_x, m_conv_y, m_conv_z, m_nhits_vsiter, m_params_bins, m_params_iterations, m_params_iterations_high, m_params_iterations_low, m_params_xCSC_high, m_params_xCSC_low, m_params_xDT_high, m_params_xDT_low, m_params_xpull_high, m_params_xpull_low, m_params_xresid_high, m_params_xresid_low, m_params_xresidwide_high, m_params_xresidwide_low, m_params_yCSC_high, m_params_yCSC_low, m_params_yDT_high, m_params_yDT_low, m_params_ypull_high, m_params_ypull_low, m_params_yresid_high, m_params_yresid_low, m_wxresid, m_wxresid_vsx, m_wxresid_vsy, m_wxresidwide, m_wyresid, m_wyresid_vsx, m_wyresid_vsy, m_xpull, m_xresid, m_xresidwide, m_ypull, m_yresid, name, NULL, CSCDetId::ring(), DTChamberId::sector(), CSCDetId::station(), DTChamberId::station(), indexGen::title, and DTChamberId::wheel().

Referenced by book().

00510                                                                                                     {
00511    bool dt = (DetId(rawid).subdetId() == MuonSubdetId::DT);
00512 
00513    char dir[256], name[256], title[256], chambername[256];
00514 
00515    if (m_book_mode == std::string("chamber")) {
00516       if (dt) {
00517          DTChamberId dtId(rawid);
00518          sprintf(chambername, "MB%d/%d (%d)", dtId.wheel(), dtId.station(), dtId.sector());
00519       }
00520       else {
00521          CSCDetId cscId(rawid);
00522          sprintf(chambername, "ME%d/%d (%d)", (cscId.endcap() == 1 ? 1 : -1) * cscId.station(), cscId.ring(), cscId.chamber());
00523       }
00524    }
00525    else {
00526       sprintf(chambername, "%d", rawid);
00527    }
00528 
00529    if (m_book_nhits_vsiter) {
00530       sprintf(dir, "/nhits_vsiter_%s/", level);
00531       sprintf(name, "nhits_vsiter_%s_%d", level, rawid);
00532       sprintf(title, "Number of hits on %s %s vs iteration", level, chambername);
00533       m_nhits_vsiter[index] = book1D(dir, name, title, m_params_iterations, m_params_iterations_low, m_params_iterations_high);
00534    }
00535    else {
00536       m_nhits_vsiter[index] = NULL;
00537    }
00538 
00539    if (m_book_conv_x) {
00540       sprintf(dir, "/conv_x_%s/", level);
00541       sprintf(name, "conv_x_%s_%d", level, rawid);
00542       sprintf(title, "Convergence in x of %s %s vs iteration", level, chambername);
00543       m_conv_x[index] = book1D(dir, name, title, m_params_iterations, m_params_iterations_low, m_params_iterations_high);
00544    }
00545    else {
00546       m_conv_x[index] = NULL;
00547    }
00548 
00549    if (m_book_conv_y) {
00550       sprintf(dir, "/conv_y_%s/", level);
00551       sprintf(name, "conv_y_%s_%d", level, rawid);
00552       sprintf(title, "Convergence in y of %s %s vs iteration", level, chambername);
00553       m_conv_y[index] = book1D(dir, name, title, m_params_iterations, m_params_iterations_low, m_params_iterations_high);
00554    }
00555    else {
00556       m_conv_y[index] = NULL;
00557    }
00558 
00559    if (m_book_conv_z) {
00560       sprintf(dir, "/conv_z_%s/", level);
00561       sprintf(name, "conv_z_%s_%d", level, rawid);
00562       sprintf(title, "Convergence in z of %s %s vs iteration", level, chambername);
00563       m_conv_z[index] = book1D(dir, name, title, m_params_iterations, m_params_iterations_low, m_params_iterations_high);
00564    }
00565    else {
00566       m_conv_z[index] = NULL;
00567    }
00568 
00569    if (m_book_conv_phix) {
00570       sprintf(dir, "/conv_phix_%s/", level);
00571       sprintf(name, "conv_phix_%s_%d", level, rawid);
00572       sprintf(title, "Convergence in phix of %s %s vs iteration", level, chambername);
00573       m_conv_phix[index] = book1D(dir, name, title, m_params_iterations, m_params_iterations_low, m_params_iterations_high);
00574    }
00575    else {
00576       m_conv_phix[index] = NULL;
00577    }
00578 
00579    if (m_book_conv_phiy) {
00580       sprintf(dir, "/conv_phiy_%s/", level);
00581       sprintf(name, "conv_phiy_%s_%d", level, rawid);
00582       sprintf(title, "Convergence in phiy of %s %s vs iteration", level, chambername);
00583       m_conv_phiy[index] = book1D(dir, name, title, m_params_iterations, m_params_iterations_low, m_params_iterations_high);
00584    }
00585    else {
00586       m_conv_phiy[index] = NULL;
00587    }
00588 
00589    if (m_book_conv_phiz) {
00590       sprintf(dir, "/conv_phiz_%s/", level);
00591       sprintf(name, "conv_phiz_%s_%d", level, rawid);
00592       sprintf(title, "Convergence in phiz of %s %s vs iteration", level, chambername);
00593       m_conv_phiz[index] = book1D(dir, name, title, m_params_iterations, m_params_iterations_low, m_params_iterations_high);
00594    }
00595    else {
00596       m_conv_phiz[index] = NULL;
00597    }
00598 
00599    if (m_book_xresid) {
00600       sprintf(dir, "/iterN/xresid_%s/", level);
00601       sprintf(name, "xresid_%s_%d", level, rawid);
00602       sprintf(title, "x residual on %s %s for iteration %d", level, chambername, iteration());
00603       m_xresid[index] = book1D(dir, name, title, m_params_bins, m_params_xresid_low, m_params_xresid_high);
00604    }
00605    else {
00606       m_xresid[index] = NULL;
00607    }
00608    
00609    if (m_book_xresidwide) {
00610       sprintf(dir, "/iterN/xresidwide_%s/", level);
00611       sprintf(name, "xresidwide_%s_%d", level, rawid);
00612       sprintf(title, "x residual on %s %s for iteration %d", level, chambername, iteration());
00613       m_xresidwide[index] = book1D(dir, name, title, m_params_bins, m_params_xresidwide_low, m_params_xresidwide_high);
00614    }
00615    else {
00616       m_xresidwide[index] = NULL;
00617    }
00618 
00619    if (m_book_yresid  &&  !dt) {
00620       sprintf(dir, "/iterN/yresid_%s/", level);
00621       sprintf(name, "yresid_%s_%d", level, rawid);
00622       sprintf(title, "y residual on %s %s for iteration %d", level, chambername, iteration());
00623       m_yresid[index] = book1D(dir, name, title, m_params_bins, m_params_yresid_low, m_params_yresid_high);
00624    }
00625    else {
00626       m_yresid[index] = NULL;
00627    }
00628 
00629    if (m_book_wxresid) {
00630       sprintf(dir, "/iterN/wxresid_%s/", level);
00631       sprintf(name, "wxresid_%s_%d", level, rawid);
00632       sprintf(title, "Weighted x residual on %s %s for iteration %d", level, chambername, iteration());
00633       m_wxresid[index] = book1D(dir, name, title, m_params_bins, m_params_xresid_low, m_params_xresid_high);
00634    }
00635    else {
00636       m_wxresid[index] = NULL;
00637    }
00638 
00639    if (m_book_wxresidwide) {
00640       sprintf(dir, "/iterN/wxresidwide_%s/", level);
00641       sprintf(name, "wxresidwide_%s_%d", level, rawid);
00642       sprintf(title, "Weighted x residual on %s %s for iteration %d", level, chambername, iteration());
00643       m_wxresidwide[index] = book1D(dir, name, title, m_params_bins, m_params_xresidwide_low, m_params_xresidwide_high);
00644    }
00645    else {
00646       m_wxresidwide[index] = NULL;
00647    }
00648 
00649    if (m_book_wyresid  &&  !dt) {
00650       sprintf(dir, "/iterN/wyresid_%s/", level);
00651       sprintf(name, "wyresid_%s_%d", level, rawid);
00652       sprintf(title, "Weighted y residual on %s %s for iteration %d", level, chambername, iteration());
00653       m_wyresid[index] = book1D(dir, name, title, m_params_bins, m_params_yresid_low, m_params_yresid_high);
00654    }
00655    else {
00656       m_wyresid[index] = NULL;
00657    }
00658 
00659    if (m_book_wxresid_vsx) {
00660       sprintf(dir, "/iterN/wxresid_vsx_%s/", level);
00661       sprintf(name, "wxresid_vsx_%s_%d", level, rawid);
00662       sprintf(title, "Weighted x residual vs track's x on %s %s for iteration %d", level, chambername, iteration());
00663       m_wxresid_vsx[index] = bookProfile(dir, name, title, m_params_bins, (dt? m_params_xDT_low: m_params_xCSC_low), (dt? m_params_xDT_high: m_params_xCSC_high), 1, m_params_xresidwide_low, m_params_xresidwide_high);
00664    }
00665    else {
00666       m_wxresid_vsx[index] = NULL;
00667    }
00668 
00669    if (m_book_wxresid_vsy) {
00670       sprintf(dir, "/iterN/wxresid_vsy_%s/", level);
00671       sprintf(name, "wxresid_vsy_%s_%d", level, rawid);
00672       sprintf(title, "Weighted x residual vs track's y on %s %s for iteration %d", level, chambername, iteration());
00673       m_wxresid_vsy[index] = bookProfile(dir, name, title, m_params_bins, (dt? m_params_yDT_low: m_params_yCSC_low), (dt? m_params_yDT_high: m_params_yCSC_high), 1, m_params_xresidwide_low, m_params_xresidwide_high);
00674    }
00675    else {
00676       m_wxresid_vsy[index] = NULL;
00677    }
00678 
00679    if (m_book_wyresid_vsx  &&  !dt) {
00680       sprintf(dir, "/iterN/wyresid_vsx_%s/", level);
00681       sprintf(name, "wyresid_vsx_%s_%d", level, rawid);
00682       sprintf(title, "Weighted y residual vs track's x on %s %s for iteration %d", level, chambername, iteration());
00683       m_wyresid_vsx[index] = bookProfile(dir, name, title, m_params_bins, (dt? m_params_xDT_low: m_params_xCSC_low), (dt? m_params_xDT_high: m_params_xCSC_high), 1, m_params_yresid_low, m_params_yresid_high);
00684    }
00685    else {
00686       m_wyresid_vsx[index] = NULL;
00687    }
00688 
00689    if (m_book_wyresid_vsy  &&  !dt) {
00690       sprintf(dir, "/iterN/wyresid_vsy_%s/", level);
00691       sprintf(name, "wyresid_vsy_%s_%d", level, rawid);
00692       sprintf(title, "Weighted y residual vs track's y on %s %s for iteration %d", level, chambername, iteration());
00693       m_wyresid_vsy[index] = bookProfile(dir, name, title, m_params_bins, (dt? m_params_yDT_low: m_params_yCSC_low), (dt? m_params_yDT_high: m_params_yCSC_high), 1, m_params_yresid_low, m_params_yresid_high);
00694    }
00695    else {
00696       m_wyresid_vsy[index] = NULL;
00697    }
00698 
00699    if (m_book_xpull) {
00700       sprintf(dir, "/iterN/xpull_%s/", level);
00701       sprintf(name, "xpull_%s_%d", level, rawid);
00702       sprintf(title, "x pull distribution on %s %s for iteration %d", level, chambername, iteration());
00703       m_xpull[index] = book1D(dir, name, title, m_params_bins, m_params_xpull_low, m_params_xpull_high);
00704    }
00705    else {
00706       m_xpull[index] = NULL;
00707    }
00708 
00709    if (m_book_ypull  &&  !dt) {
00710       sprintf(dir, "/iterN/ypull_%s/", level);
00711       sprintf(name, "ypull_%s_%d", level, rawid);
00712       sprintf(title, "y pull distribution on %s %s for iteration %d", level, chambername, iteration());
00713       m_ypull[index] = book1D(dir, name, title, m_params_bins, m_params_ypull_low, m_params_ypull_high);
00714    }
00715    else {
00716       m_ypull[index] = NULL;
00717    }
00718 }

void AlignmentMonitorMuonHIP::createPythonGeometry (  )  [private]

Definition at line 958 of file AlignmentMonitorMuonHIP.cc.

References CSCDetId::chamber(), MuonSubdetId::CSC, muonGeometry::disk, MuonSubdetId::DT, CSCDetId::endcap(), lat::endl(), CSCDetId::layer(), m_chamber_index, m_disk_index, m_layer_index, m_rawid, CSCDetId::ring(), DTChamberId::sector(), DTChamberId::station(), CSCDetId::station(), DTSuperLayerId::superLayer(), DTChamberId::wheel(), PV3DBase< T, PVType, FrameType >::x(), muonGeometry::xhat, PV3DBase< T, PVType, FrameType >::y(), muonGeometry::yhat, PV3DBase< T, PVType, FrameType >::z(), and muonGeometry::zhat.

Referenced by book().

00958                                                    {
00959    edm::LogInfo("AlignmentMonitorMuonHIP") << "Creating Python geometry." << std::endl;
00960    ofstream python("muonGeometryData.py");
00961 
00962    for (std::map<Alignable*, unsigned int>::const_iterator disk = m_disk_index.begin();  disk != m_disk_index.end();  ++disk) {
00963       Alignable *ali = disk->first;
00964       DetId id = DetId(m_rawid[ali]);
00965 
00966       python << "disks[" << id.rawId() << "] = ";
00967       if (id.subdetId() == MuonSubdetId::DT) {
00968          DTChamberId chamberId(id.rawId());
00969          python << "Disk(" << id.rawId() << ", 0).setDT(" << chamberId.wheel() << ")";
00970       }
00971       else if (id.subdetId() == MuonSubdetId::CSC) {
00972          CSCDetId chamberId(id.rawId());
00973          python << "Disk(" << id.rawId() << ", " << (chamberId.endcap() == 1? 1: -1) << ").setCSC(" << (chamberId.endcap() == 1? 1: -1)*chamberId.station() << ")";
00974       }
00975 
00976       GlobalPoint location = ali->surface().toGlobal(LocalPoint(0., 0., 0.));
00977       GlobalVector xhat = ali->surface().toGlobal(LocalVector(1., 0., 0.));
00978       GlobalVector yhat = ali->surface().toGlobal(LocalVector(0., 1., 0.));
00979       GlobalVector zhat = ali->surface().toGlobal(LocalVector(0., 0., 1.));
00980       python << ".setLoc(" << location.x() << ", " << location.y() << ", " << location.z() << ")";
00981       python << ".setXhat(" << xhat.x() << ", " << xhat.y() << ", " << xhat.z() << ")";
00982       python << ".setYhat(" << yhat.x() << ", " << yhat.y() << ", " << yhat.z() << ")";
00983       python << ".setZhat(" << zhat.x() << ", " << zhat.y() << ", " << zhat.z() << ")" << std::endl;
00984    }
00985 
00986    for (std::map<Alignable*, unsigned int>::const_iterator chamber = m_chamber_index.begin();  chamber != m_chamber_index.end();  ++chamber) {
00987       Alignable *ali = chamber->first;
00988       DetId id = DetId(m_rawid[ali]);
00989 
00990       python << "chambers[" << id.rawId() << "] = ";
00991       if (id.subdetId() == MuonSubdetId::DT) {
00992          DTChamberId chamberId(id.rawId());
00993          python << "Chamber(" << id.rawId() << ", 0).setDT(" << chamberId.wheel() << ", " << chamberId.station() << ", " << chamberId.sector() << ")";
00994       }
00995       else if (id.subdetId() == MuonSubdetId::CSC) {
00996          CSCDetId chamberId(id.rawId());
00997          python << "Chamber(" << id.rawId() << ", " << (chamberId.endcap() == 1? 1: -1) << ").setCSC(" << (chamberId.endcap() == 1? 1: -1)*chamberId.station() << ", " << chamberId.ring() << ", " << chamberId.chamber() << ")";
00998       }
00999 
01000       GlobalPoint location = ali->surface().toGlobal(LocalPoint(0., 0., 0.));
01001       GlobalVector xhat = ali->surface().toGlobal(LocalVector(1., 0., 0.));
01002       GlobalVector yhat = ali->surface().toGlobal(LocalVector(0., 1., 0.));
01003       GlobalVector zhat = ali->surface().toGlobal(LocalVector(0., 0., 1.));
01004       python << ".setLoc(" << location.x() << ", " << location.y() << ", " << location.z() << ")";
01005       python << ".setXhat(" << xhat.x() << ", " << xhat.y() << ", " << xhat.z() << ")";
01006       python << ".setYhat(" << yhat.x() << ", " << yhat.y() << ", " << yhat.z() << ")";
01007       python << ".setZhat(" << zhat.x() << ", " << zhat.y() << ", " << zhat.z() << ")" << std::endl;
01008    }
01009 
01010    for (std::map<Alignable*, unsigned int>::const_iterator layer = m_layer_index.begin();  layer != m_layer_index.end();  ++layer) {
01011       Alignable *ali = layer->first;
01012       DetId id = DetId(m_rawid[ali]);
01013 
01014       python << "layers[" << id.rawId() << "] = ";
01015       if (id.subdetId() == MuonSubdetId::DT) {
01016          DTSuperLayerId layerId(id.rawId());
01017          python << "Layer(" << id.rawId() << ", 0).setDT(" << layerId.wheel() << ", " << layerId.station() << ", " << layerId.sector() << ", " << layerId.superLayer() << ")";
01018       }
01019       else if (id.subdetId() == MuonSubdetId::CSC) {
01020          CSCDetId layerId(id.rawId());
01021          python << "Layer(" << id.rawId() << ", " << (layerId.endcap() == 1? 1: -1) << ").setCSC(" << (layerId.endcap() == 1? 1: -1)*layerId.station() << ", " << layerId.ring() << ", " << layerId.chamber() << ", " << layerId.layer() << ")";
01022       }
01023 
01024       GlobalPoint location = ali->surface().toGlobal(LocalPoint(0., 0., 0.));
01025       GlobalVector xhat = ali->surface().toGlobal(LocalVector(1., 0., 0.));
01026       GlobalVector yhat = ali->surface().toGlobal(LocalVector(0., 1., 0.));
01027       GlobalVector zhat = ali->surface().toGlobal(LocalVector(0., 0., 1.));
01028       python << ".setLoc(" << location.x() << ", " << location.y() << ", " << location.z() << ")";
01029       python << ".setXhat(" << xhat.x() << ", " << xhat.y() << ", " << xhat.z() << ")";
01030       python << ".setYhat(" << yhat.x() << ", " << yhat.y() << ", " << yhat.z() << ")";
01031       python << ".setZhat(" << zhat.x() << ", " << zhat.y() << ", " << zhat.z() << ")" << std::endl;
01032    }
01033 
01034    edm::LogInfo("AlignmentMonitorMuonHIP") << "Done with Python geometry!" << std::endl;
01035 }

void AlignmentMonitorMuonHIP::event ( const edm::EventSetup iSetup,
const ConstTrajTrackPairCollection iTrajTracks 
)

Definition at line 724 of file AlignmentMonitorMuonHIP.cc.

References AlignableNavigator::alignableFromDetId(), TrajectoryMeasurement::backwardPredictedState(), TrajectoryStateCombiner::combine(), MuonSubdetId::CSC, AlignableNavigator::detAndSubdetInMap(), muonGeometry::disk, fill(), TrajectoryMeasurement::forwardPredictedState(), TrackingRecHit::geographicalId(), Alignable::geomDetId(), TrackingRecHit::isValid(), it, TrajectoryStateOnSurface::localError(), TrackingRecHit::localPosition(), TrajectoryStateOnSurface::localPosition(), TrackingRecHit::localPositionError(), m_chamber_index, m_disk_index, m_layer_index, Trajectory::measurements(), Alignable::mother(), AlignmentMonitorBase::pNavigator(), LocalTrajectoryError::positionError(), TrajectoryMeasurement::recHit(), DetId::subdetId(), PV3DBase< T, PVType, FrameType >::x(), LocalError::xx(), PV3DBase< T, PVType, FrameType >::y(), and LocalError::yy().

00724                                                                                                            {
00725    TrajectoryStateCombiner tsoscomb;
00726 
00727    for (ConstTrajTrackPairCollection::const_iterator it = tracks.begin();  it != tracks.end();  ++it) {
00728       const Trajectory *traj = it->first;
00729 //      const reco::Track *track = it->second;
00730 
00731       std::vector<TrajectoryMeasurement> measurements = traj->measurements();
00732       for (std::vector<TrajectoryMeasurement>::const_iterator im = measurements.begin();  im != measurements.end();  ++im) {
00733          const TrajectoryMeasurement meas = *im;
00734          const TransientTrackingRecHit* hit = &(*meas.recHit());
00735          const DetId id = hit->geographicalId();
00736 
00737          if (hit->isValid()  &&  pNavigator()->detAndSubdetInMap(id)) {
00738             Alignable *alignable = pNavigator()->alignableFromDetId(id);
00739             bool y_valid = (alignable->geomDetId().subdetId() == MuonSubdetId::CSC);
00740 
00741             std::map<Alignable*, unsigned int>::const_iterator disk = m_disk_index.find(alignable);
00742             std::map<Alignable*, unsigned int>::const_iterator chamber = m_chamber_index.find(alignable);
00743             std::map<Alignable*, unsigned int>::const_iterator layer = m_layer_index.find(alignable);
00744 
00745             Alignable *ascend = alignable;
00746             while (disk == m_disk_index.end()  &&  (ascend = ascend->mother())) disk = m_disk_index.find(ascend);
00747             ascend = alignable;
00748             while (chamber == m_chamber_index.end()  &&  (ascend = ascend->mother())) chamber = m_chamber_index.find(ascend);
00749             ascend = alignable;
00750             while (layer == m_layer_index.end()  &&  (ascend = ascend->mother())) layer = m_layer_index.find(ascend);
00751                
00752             TrajectoryStateOnSurface tsosc = tsoscomb.combine(meas.forwardPredictedState(), meas.backwardPredictedState());
00753             LocalPoint trackPos = tsosc.localPosition();
00754             LocalError trackErr = tsosc.localError().positionError();
00755             LocalPoint hitPos = hit->localPosition();
00756             LocalError hitErr = hit->localPositionError();
00757 
00758             double x_residual = trackPos.x() - hitPos.x();
00759             double y_residual = trackPos.y() - hitPos.y();
00760             double x_reserr2 = trackErr.xx() + hitErr.xx();
00761             double y_reserr2 = trackErr.yy() + hitErr.yy();
00762             double xpos = trackPos.x();
00763             double ypos = trackPos.y();
00764 
00765             if (disk != m_disk_index.end()  ||  chamber != m_chamber_index.end()  ||  layer != m_layer_index.end()) {
00766 
00767                if (disk != m_disk_index.end()) {
00768                   fill(disk->second, x_residual, y_residual, x_reserr2, y_reserr2, xpos, ypos, y_valid);
00769                }
00770                if (chamber != m_chamber_index.end()) {
00771                   fill(chamber->second, x_residual, y_residual, x_reserr2, y_reserr2, xpos, ypos, y_valid);
00772                }
00773                if (layer != m_layer_index.end()) {
00774                   fill(layer->second, x_residual, y_residual, x_reserr2, y_reserr2, xpos, ypos, y_valid);
00775                }
00776 
00777             } // end if we're plotting this hit
00778 
00779             fill(0, x_residual, y_residual, x_reserr2, y_reserr2, xpos, ypos, y_valid);
00780 
00781          } // end if hit is valid
00782       } // end loop over measurements
00783    } // end loop over tracks
00784 }

void AlignmentMonitorMuonHIP::fill ( unsigned int  index,
double  x_residual,
double  y_residual,
double  x_reserr2,
double  y_reserr2,
double  xpos,
double  ypos,
bool  y_valid 
) [private]

Definition at line 786 of file AlignmentMonitorMuonHIP.cc.

References AlignmentMonitorBase::iteration(), m_nhits_vsiter, m_wxresid, m_wxresid_vsx, m_wxresid_vsy, m_wxresidwide, m_wyresid, m_wyresid_vsx, m_wyresid_vsy, m_xpull, m_xresid, m_xresidwide, m_ypull, m_yresid, and funct::sqrt().

Referenced by event().

00786                                                                                                                                                                        {
00787    if (m_nhits_vsiter[index]) m_nhits_vsiter[index]->Fill(iteration());
00788                   
00789    if (m_xresid[index])                                        m_xresid[index]->Fill(x_residual);
00790    if (m_xresidwide[index])                                    m_xresidwide[index]->Fill(x_residual);
00791    if (y_valid && m_yresid[index])                             m_yresid[index]->Fill(y_residual);
00792    if (m_wxresid[index]  &&  x_reserr2 != 0.)                  m_wxresid[index]->Fill(x_residual, 1./x_reserr2);
00793    if (m_wxresidwide[index]  &&  x_reserr2 != 0.)              m_wxresidwide[index]->Fill(x_residual, 1./x_reserr2);
00794    if (y_valid && m_wyresid[index]  &&  y_reserr2 != 0.)       m_wyresid[index]->Fill(y_residual, 1./y_reserr2);
00795    if (m_wxresid_vsx[index]  &&  x_reserr2 != 0.)              m_wxresid_vsx[index]->Fill(xpos, x_residual, 1./x_reserr2);
00796    if (m_wxresid_vsy[index]  &&  x_reserr2 != 0.)              m_wxresid_vsy[index]->Fill(ypos, x_residual, 1./x_reserr2);
00797    if (y_valid && m_wyresid_vsx[index]  &&  y_reserr2 != 0.)   m_wyresid_vsx[index]->Fill(xpos, y_residual, 1./y_reserr2);
00798    if (y_valid && m_wyresid_vsy[index]  &&  y_reserr2 != 0.)   m_wyresid_vsy[index]->Fill(ypos, y_residual, 1./y_reserr2);
00799    if (m_xpull[index]  &&  x_reserr2 != 0.)                    m_xpull[index]->Fill(x_residual / sqrt(fabs(x_reserr2)));
00800    if (y_valid && m_ypull[index]  &&  y_reserr2 != 0.)         m_ypull[index]->Fill(y_residual / sqrt(fabs(y_reserr2)));
00801 }


Member Data Documentation

TTree * AlignmentMonitorMuonHIP::m_after [private]

Definition at line 94 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), and book().

Int_t AlignmentMonitorMuonHIP::m_after_level [private]

Definition at line 97 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), and book().

Float_t AlignmentMonitorMuonHIP::m_after_phix [private]

Definition at line 98 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), and book().

Float_t AlignmentMonitorMuonHIP::m_after_phixerr [private]

Definition at line 99 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), and book().

Float_t AlignmentMonitorMuonHIP::m_after_phiy [private]

Definition at line 98 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), and book().

Float_t AlignmentMonitorMuonHIP::m_after_phiyerr [private]

Definition at line 99 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), and book().

Float_t AlignmentMonitorMuonHIP::m_after_phiz [private]

Definition at line 98 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), and book().

Float_t AlignmentMonitorMuonHIP::m_after_phizerr [private]

Definition at line 99 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), and book().

Int_t AlignmentMonitorMuonHIP::m_after_rawid [private]

Definition at line 97 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), and book().

Float_t AlignmentMonitorMuonHIP::m_after_x [private]

Definition at line 98 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), and book().

Float_t AlignmentMonitorMuonHIP::m_after_xerr [private]

Definition at line 99 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), and book().

Float_t AlignmentMonitorMuonHIP::m_after_y [private]

Definition at line 98 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), and book().

Float_t AlignmentMonitorMuonHIP::m_after_yerr [private]

Definition at line 99 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), and book().

Float_t AlignmentMonitorMuonHIP::m_after_z [private]

Definition at line 98 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), and book().

Float_t AlignmentMonitorMuonHIP::m_after_zerr [private]

Definition at line 99 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), and book().

TTree* AlignmentMonitorMuonHIP::m_before [private]

Definition at line 94 of file AlignmentMonitorMuonHIP.cc.

Referenced by book().

Int_t AlignmentMonitorMuonHIP::m_before_level [private]

Definition at line 95 of file AlignmentMonitorMuonHIP.cc.

Referenced by book().

Float_t AlignmentMonitorMuonHIP::m_before_phix [private]

Definition at line 96 of file AlignmentMonitorMuonHIP.cc.

Referenced by book().

Float_t AlignmentMonitorMuonHIP::m_before_phiy [private]

Definition at line 96 of file AlignmentMonitorMuonHIP.cc.

Referenced by book().

Float_t AlignmentMonitorMuonHIP::m_before_phiz [private]

Definition at line 96 of file AlignmentMonitorMuonHIP.cc.

Referenced by book().

Int_t AlignmentMonitorMuonHIP::m_before_rawid [private]

Definition at line 95 of file AlignmentMonitorMuonHIP.cc.

Referenced by book().

Float_t AlignmentMonitorMuonHIP::m_before_x [private]

Definition at line 96 of file AlignmentMonitorMuonHIP.cc.

Referenced by book().

Float_t AlignmentMonitorMuonHIP::m_before_y [private]

Definition at line 96 of file AlignmentMonitorMuonHIP.cc.

Referenced by book().

Float_t AlignmentMonitorMuonHIP::m_before_z [private]

Definition at line 96 of file AlignmentMonitorMuonHIP.cc.

Referenced by book().

edm::ParameterSet AlignmentMonitorMuonHIP::m_book [private]

Definition at line 68 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP().

bool AlignmentMonitorMuonHIP::m_book_after [private]

Definition at line 75 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), and book().

bool AlignmentMonitorMuonHIP::m_book_before [private]

Definition at line 75 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), and book().

bool AlignmentMonitorMuonHIP::m_book_conv_phix [private]

Definition at line 70 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), and bookByAli().

bool AlignmentMonitorMuonHIP::m_book_conv_phiy [private]

Definition at line 70 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), and bookByAli().

bool AlignmentMonitorMuonHIP::m_book_conv_phiz [private]

Definition at line 70 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), and bookByAli().

bool AlignmentMonitorMuonHIP::m_book_conv_x [private]

Definition at line 70 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), and bookByAli().

bool AlignmentMonitorMuonHIP::m_book_conv_y [private]

Definition at line 70 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), and bookByAli().

bool AlignmentMonitorMuonHIP::m_book_conv_z [private]

Definition at line 70 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), and bookByAli().

std::string AlignmentMonitorMuonHIP::m_book_mode [private]

Definition at line 69 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), book(), and bookByAli().

bool AlignmentMonitorMuonHIP::m_book_nhits_vsiter [private]

Definition at line 70 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), and bookByAli().

bool AlignmentMonitorMuonHIP::m_book_wxresid [private]

Definition at line 72 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), and bookByAli().

bool AlignmentMonitorMuonHIP::m_book_wxresid_vsx [private]

Definition at line 73 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), and bookByAli().

bool AlignmentMonitorMuonHIP::m_book_wxresid_vsy [private]

Definition at line 73 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), and bookByAli().

bool AlignmentMonitorMuonHIP::m_book_wxresidwide [private]

Definition at line 72 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), and bookByAli().

bool AlignmentMonitorMuonHIP::m_book_wyresid [private]

Definition at line 72 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), and bookByAli().

bool AlignmentMonitorMuonHIP::m_book_wyresid_vsx [private]

Definition at line 73 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), and bookByAli().

bool AlignmentMonitorMuonHIP::m_book_wyresid_vsy [private]

Definition at line 73 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), and bookByAli().

bool AlignmentMonitorMuonHIP::m_book_xpull [private]

Definition at line 74 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), and bookByAli().

bool AlignmentMonitorMuonHIP::m_book_xresid [private]

Definition at line 71 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), and bookByAli().

bool AlignmentMonitorMuonHIP::m_book_xresidwide [private]

Definition at line 71 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), and bookByAli().

bool AlignmentMonitorMuonHIP::m_book_ypull [private]

Definition at line 74 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), and bookByAli().

bool AlignmentMonitorMuonHIP::m_book_yresid [private]

Definition at line 71 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), and bookByAli().

std::map<Alignable*, unsigned int> AlignmentMonitorMuonHIP::m_chamber_index [private]

Definition at line 80 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), book(), createPythonGeometry(), and event().

TH1FPtr * AlignmentMonitorMuonHIP::m_conv_phix [private]

Definition at line 85 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), book(), and bookByAli().

TH1FPtr * AlignmentMonitorMuonHIP::m_conv_phiy [private]

Definition at line 85 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), book(), and bookByAli().

TH1FPtr * AlignmentMonitorMuonHIP::m_conv_phiz [private]

Definition at line 85 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), book(), and bookByAli().

TH1FPtr * AlignmentMonitorMuonHIP::m_conv_x [private]

Definition at line 85 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), book(), and bookByAli().

TH1FPtr * AlignmentMonitorMuonHIP::m_conv_y [private]

Definition at line 85 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), book(), and bookByAli().

TH1FPtr * AlignmentMonitorMuonHIP::m_conv_z [private]

Definition at line 85 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), book(), and bookByAli().

bool AlignmentMonitorMuonHIP::m_createPythonGeometry [private]

Definition at line 77 of file AlignmentMonitorMuonHIP.cc.

Referenced by book().

std::map<Alignable*, unsigned int> AlignmentMonitorMuonHIP::m_disk_index [private]

Definition at line 80 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), book(), createPythonGeometry(), and event().

std::map<Alignable*, unsigned int> AlignmentMonitorMuonHIP::m_layer_index [private]

Definition at line 80 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), book(), createPythonGeometry(), and event().

TH1FPtr* AlignmentMonitorMuonHIP::m_nhits_vsiter [private]

Definition at line 85 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), book(), bookByAli(), and fill().

unsigned int AlignmentMonitorMuonHIP::m_numHistograms [private]

Definition at line 81 of file AlignmentMonitorMuonHIP.cc.

Referenced by book().

edm::ParameterSet AlignmentMonitorMuonHIP::m_params [private]

Definition at line 60 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP().

int AlignmentMonitorMuonHIP::m_params_bins [private]

Definition at line 63 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), book(), and bookByAli().

int AlignmentMonitorMuonHIP::m_params_iterations [private]

Definition at line 61 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), and bookByAli().

double AlignmentMonitorMuonHIP::m_params_iterations_high [private]

Definition at line 62 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), and bookByAli().

double AlignmentMonitorMuonHIP::m_params_iterations_low [private]

Definition at line 62 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), and bookByAli().

double AlignmentMonitorMuonHIP::m_params_xCSC_high [private]

Definition at line 65 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), and bookByAli().

double AlignmentMonitorMuonHIP::m_params_xCSC_low [private]

Definition at line 65 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), and bookByAli().

double AlignmentMonitorMuonHIP::m_params_xDT_high [private]

Definition at line 65 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), and bookByAli().

double AlignmentMonitorMuonHIP::m_params_xDT_low [private]

Definition at line 65 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), and bookByAli().

double AlignmentMonitorMuonHIP::m_params_xpull_high [private]

Definition at line 66 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), book(), and bookByAli().

double AlignmentMonitorMuonHIP::m_params_xpull_low [private]

Definition at line 66 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), book(), and bookByAli().

double AlignmentMonitorMuonHIP::m_params_xresid_high [private]

Definition at line 64 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), book(), and bookByAli().

double AlignmentMonitorMuonHIP::m_params_xresid_low [private]

Definition at line 64 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), book(), and bookByAli().

double AlignmentMonitorMuonHIP::m_params_xresidwide_high [private]

Definition at line 64 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), book(), and bookByAli().

double AlignmentMonitorMuonHIP::m_params_xresidwide_low [private]

Definition at line 64 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), book(), and bookByAli().

double AlignmentMonitorMuonHIP::m_params_yCSC_high [private]

Definition at line 65 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), and bookByAli().

double AlignmentMonitorMuonHIP::m_params_yCSC_low [private]

Definition at line 65 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), and bookByAli().

double AlignmentMonitorMuonHIP::m_params_yDT_high [private]

Definition at line 65 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), and bookByAli().

double AlignmentMonitorMuonHIP::m_params_yDT_low [private]

Definition at line 65 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), and bookByAli().

double AlignmentMonitorMuonHIP::m_params_ypull_high [private]

Definition at line 66 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), book(), and bookByAli().

double AlignmentMonitorMuonHIP::m_params_ypull_low [private]

Definition at line 66 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), book(), and bookByAli().

double AlignmentMonitorMuonHIP::m_params_yresid_high [private]

Definition at line 64 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), book(), and bookByAli().

double AlignmentMonitorMuonHIP::m_params_yresid_low [private]

Definition at line 64 of file AlignmentMonitorMuonHIP.cc.

Referenced by AlignmentMonitorMuonHIP(), book(), and bookByAli().

std::map<Alignable*, int> AlignmentMonitorMuonHIP::m_rawid [private]

Definition at line 82 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), book(), and createPythonGeometry().

TH1FPtr* AlignmentMonitorMuonHIP::m_wxresid [private]

Definition at line 89 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), book(), bookByAli(), and fill().

TProfilePtr* AlignmentMonitorMuonHIP::m_wxresid_vsx [private]

Definition at line 90 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), book(), bookByAli(), and fill().

TProfilePtr * AlignmentMonitorMuonHIP::m_wxresid_vsy [private]

Definition at line 90 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), book(), bookByAli(), and fill().

TH1FPtr * AlignmentMonitorMuonHIP::m_wxresidwide [private]

Definition at line 89 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), book(), bookByAli(), and fill().

TH1FPtr * AlignmentMonitorMuonHIP::m_wyresid [private]

Definition at line 89 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), book(), bookByAli(), and fill().

TProfilePtr * AlignmentMonitorMuonHIP::m_wyresid_vsx [private]

Definition at line 90 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), book(), bookByAli(), and fill().

TProfilePtr * AlignmentMonitorMuonHIP::m_wyresid_vsy [private]

Definition at line 90 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), book(), bookByAli(), and fill().

TH1FPtr* AlignmentMonitorMuonHIP::m_xpull [private]

Definition at line 91 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), book(), bookByAli(), and fill().

TH1FPtr* AlignmentMonitorMuonHIP::m_xresid [private]

Definition at line 88 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), book(), bookByAli(), and fill().

TH1FPtr * AlignmentMonitorMuonHIP::m_xresidwide [private]

Definition at line 88 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), book(), bookByAli(), and fill().

TH1FPtr * AlignmentMonitorMuonHIP::m_ypull [private]

Definition at line 91 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), book(), bookByAli(), and fill().

TH1FPtr * AlignmentMonitorMuonHIP::m_yresid [private]

Definition at line 88 of file AlignmentMonitorMuonHIP.cc.

Referenced by afterAlignment(), book(), bookByAli(), and fill().


The documentation for this class was generated from the following file:
Generated on Tue Jun 9 18:14:29 2009 for CMSSW by  doxygen 1.5.4