Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 11:56:38

0001 #ifndef Alignment_MuonAlignment_MuonScenarioBuilder_h
0002 #define Alignment_MuonAlignment_MuonScenarioBuilder_h
0003 
0004 /** \class MuonScenarioBuilder
0005  *  The misalignment scenario builder.
0006  *
0007  *  $Date: 2009/09/15 17:09:58 $
0008  *  $Revision: 1.5 $
0009  *  \author Andre Sznajder - UERJ(Brazil)
0010  */
0011 
0012 #include <vector>
0013 
0014 #include "Alignment/CommonAlignment/interface/AlignableModifier.h"
0015 #include "Alignment/CommonAlignment/interface/MisalignmentScenarioBuilder.h"
0016 #include "Alignment/MuonAlignment/interface/AlignableMuon.h"
0017 /// Builds a scenario from configuration and applies it to the alignable Muon.
0018 
0019 class MuonScenarioBuilder : public MisalignmentScenarioBuilder {
0020 public:
0021   /// Constructor
0022   explicit MuonScenarioBuilder(Alignable* alignable);
0023 
0024   /// Destructor
0025   ~MuonScenarioBuilder() override{};
0026 
0027   /// Apply misalignment scenario to the Muon
0028   void applyScenario(const edm::ParameterSet& scenario) override;
0029 
0030   /// This special method allows to move a DTsector by a same amount
0031   void moveDTSectors(const edm::ParameterSet& scenario);
0032 
0033   /// this special method allows to move a CSCsector by a same amount
0034   void moveCSCSectors(const edm::ParameterSet& scenario);
0035 
0036   void moveGEMSectors(const edm::ParameterSet& scenario);
0037 
0038   /// this special method allows to move the complete muon system by a same amount
0039   void moveMuon(const edm::ParameterSet& scenario);
0040 
0041   align::Scalars extractParameters(const edm::ParameterSet&, const char*);
0042 
0043   void moveChamberInSector(
0044       Alignable*, const align::Scalars&, const align::Scalars&, const align::Scalars&, const align::Scalars&);
0045 
0046 private:                            // Members
0047   AlignableMuon* theAlignableMuon;  ///< Pointer to alignable Muon object
0048 
0049   AlignableModifier theMuonModifier;
0050 };
0051 
0052 #endif