00001 #ifndef Alignment_TrackerAlignment_TrackerSystematicMisalignments_h 00002 #define Alignment_TrackerAlignment_TrackerSystematicMisalignments_h 00003 00012 // user include files 00013 00014 #include "FWCore/Framework/interface/ESHandle.h" 00015 #include "FWCore/Framework/interface/EDAnalyzer.h" 00016 00017 00018 class AlignableSurface; 00019 class Alignments; 00020 00021 00022 class TrackerSystematicMisalignments: 00023 public edm::EDAnalyzer 00024 { 00025 public: 00026 00027 TrackerSystematicMisalignments( 00028 const edm::ParameterSet& 00029 ); 00030 00032 virtual void beginJob(); 00033 00034 virtual void analyze(const edm::Event&, const edm::EventSetup&); 00035 00036 private: 00037 00038 void applySystematicMisalignment( Alignable* ); 00039 //align::GlobalVector findSystematicMis( align::PositionType ); 00040 align::GlobalVector findSystematicMis( align::PositionType, const bool blindToZ, const bool blindToR ); 00041 00042 AlignableTracker* theAlignableTracker; 00043 00044 00045 00046 // configurables needed for the systematic misalignment 00047 bool m_fromDBGeom; 00048 00049 double m_radialEpsilon; 00050 double m_telescopeEpsilon; 00051 double m_layerRotEpsilon; 00052 double m_bowingEpsilon; 00053 double m_zExpEpsilon; 00054 double m_twistEpsilon; 00055 double m_ellipticalEpsilon; 00056 double m_skewEpsilon; 00057 double m_saggitaEpsilon; 00058 00059 // flag to steer suppression of blind movements 00060 bool suppressBlindMvmts; 00061 00062 // flag for old z behaviour, version <= 1.5 00063 bool oldMinusZconvention; 00064 00065 }; 00066 00067 #endif