Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-09-07 04:34:43

0001 #ifndef Alignment_TrackerAlignment_TrackerScenarioBuilder_h
0002 #define Alignment_TrackerAlignment_TrackerScenarioBuilder_h
0003 
0004 /// \class TrackerScenarioBuilder
0005 ///
0006 /// $Date: 2007/10/18 09:57:11 $
0007 /// $Revision: 1.2 $
0008 ///
0009 /// $Author: fronga $
0010 /// \author Frederic Ronga - CERN-PH-CMG
0011 ///
0012 /// Builds a scenario from configuration and applies it to the alignable tracker.
0013 
0014 #include <vector>
0015 #include <string>
0016 
0017 #include "Alignment/CommonAlignment/interface/StructureType.h"
0018 #include "Alignment/CommonAlignment/interface/MisalignmentScenarioBuilder.h"
0019 
0020 class AlignableTracker;
0021 
0022 /// Builds a scenario from configuration and applies it to the alignable tracker.
0023 
0024 class TrackerScenarioBuilder : public MisalignmentScenarioBuilder {
0025 public:
0026   /// Constructor
0027   explicit TrackerScenarioBuilder(AlignableTracker* alignable);
0028 
0029   /// Destructor
0030   ~TrackerScenarioBuilder() override {}
0031 
0032   /// Apply misalignment scenario to the tracker
0033   void applyScenario(const edm::ParameterSet& scenario) override;
0034   /// does this still make sense?
0035   bool isTopLevel_(const std::string& parameterSetName) const override;
0036   /// True if hierarchy level 'sub' could be part of hierarchy level 'large'.
0037   bool possiblyPartOf(const std::string& sub, const std::string& large) const override;
0038 
0039 private:
0040   std::string stripOffModule(const align::StructureType& type) const;
0041 
0042   // Members
0043 
0044   AlignableTracker* theAlignableTracker;  ///< Pointer to mother alignable object
0045   /// following things are needed in possiblyPartOf:
0046   std::vector<std::string> theSubdets;  ///< sub-detector acronyms appearing in StructureType.h (TPE)
0047   unsigned int theFirstStripIndex;      ///< index of first strip subdet in 'theSubdets' (pixel<strip)
0048 };
0049 
0050 #endif