#include <Alignment/TrackerAlignment/interface/TrackerScenarioBuilder.h>
Public Member Functions | |
void | applyScenario (const edm::ParameterSet &scenario) |
Apply misalignment scenario to the tracker. | |
TrackerScenarioBuilder (Alignable *alignable) | |
Constructor. | |
~TrackerScenarioBuilder () | |
Destructor. | |
Private Attributes | |
AlignableTracker * | theAlignableTracker |
Pointer to mother alignable object. |
Definition at line 19 of file TrackerScenarioBuilder.h.
TrackerScenarioBuilder::TrackerScenarioBuilder | ( | Alignable * | alignable | ) | [explicit] |
Constructor.
Definition at line 24 of file TrackerScenarioBuilder.cc.
References Exception, and theAlignableTracker.
00025 { 00026 00027 theAlignableTracker = dynamic_cast<AlignableTracker*>( alignable ); 00028 00029 if ( !theAlignableTracker ) 00030 throw cms::Exception("TypeMismatch") << "Argument is not an AlignableTracker"; 00031 00032 }
TrackerScenarioBuilder::~TrackerScenarioBuilder | ( | ) | [inline] |
void TrackerScenarioBuilder::applyScenario | ( | const edm::ParameterSet & | scenario | ) | [virtual] |
Apply misalignment scenario to the tracker.
Implements MisalignmentScenarioBuilder.
Definition at line 36 of file TrackerScenarioBuilder.cc.
References MisalignmentScenarioBuilder::decodeMovements_(), AlignableTracker::endCaps(), Exception, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), AlignableTracker::innerHalfBarrels(), AlignableTracker::outerHalfBarrels(), AlignableTracker::pixelEndCaps(), AlignableTracker::pixelHalfBarrels(), AlignableModifier::setSeed(), theAlignableTracker, MisalignmentScenarioBuilder::theModifier, MisalignmentScenarioBuilder::theModifierCounter, MisalignmentScenarioBuilder::theScenario, and AlignableTracker::TIDs().
Referenced by AlignmentProducer::beginOfJob(), and MisalignedTrackerESProducer::produce().
00037 { 00038 00039 // Apply the scenario to all main components of tracker. 00040 theScenario = scenario; 00041 theModifierCounter = 0; 00042 00043 // Seed is set at top-level, and is mandatory 00044 if ( this->hasParameter_( "seed", theScenario ) ) 00045 theModifier.setSeed( static_cast<long>(theScenario.getParameter<int>("seed")) ); 00046 else 00047 throw cms::Exception("BadConfig") << "No generator seed defined!"; 00048 00049 // TPB 00050 if ( theScenario.getUntrackedParameter<bool>( "misalignTPB",true) && 00051 !theScenario.getUntrackedParameter<bool>("fixTPB", false) ) 00052 { 00053 std::vector<Alignable*> pixelBarrels = theAlignableTracker->pixelHalfBarrels(); 00054 this->decodeMovements_( theScenario, pixelBarrels, "TPB" ); 00055 } 00056 00057 // TPE 00058 if ( theScenario.getUntrackedParameter<bool>( "misalignTPE",true) && 00059 !theScenario.getUntrackedParameter<bool>("fixTPE", false) ) 00060 { 00061 std::vector<Alignable*> pixelEndcaps = theAlignableTracker->pixelEndCaps(); 00062 this->decodeMovements_( theScenario, pixelEndcaps, "TPE" ); 00063 } 00064 00065 // TIB 00066 if ( theScenario.getUntrackedParameter<bool>( "misalignTIB",true) && 00067 !theScenario.getUntrackedParameter<bool>("fixTIB", false) ) 00068 { 00069 std::vector<Alignable*> innerBarrels = theAlignableTracker->innerHalfBarrels(); 00070 this->decodeMovements_( theScenario, innerBarrels, "TIB" ); 00071 } 00072 00073 // TID 00074 if ( theScenario.getUntrackedParameter<bool>( "misalignTID",true) && 00075 !theScenario.getUntrackedParameter<bool>("fixTID", false) ) 00076 { 00077 std::vector<Alignable*> innerDisks = theAlignableTracker->TIDs(); 00078 this->decodeMovements_( theScenario, innerDisks, "TID" ); 00079 } 00080 00081 // TOB 00082 if ( theScenario.getUntrackedParameter<bool>( "misalignTOB",true) && 00083 !theScenario.getUntrackedParameter<bool>("fixTOB", false) ) 00084 { 00085 std::vector<Alignable*> outerBarrels = theAlignableTracker->outerHalfBarrels(); 00086 this->decodeMovements_( theScenario, outerBarrels, "TOB" ); 00087 } 00088 00089 // TEC 00090 if ( theScenario.getUntrackedParameter<bool>( "misalignTEC",true) && 00091 !theScenario.getUntrackedParameter<bool>("fixTEC", false) ) 00092 { 00093 std::vector<Alignable*> endcaps = theAlignableTracker->endCaps(); 00094 this->decodeMovements_( theScenario, endcaps, "TEC" ); 00095 } 00096 00097 edm::LogInfo("TrackerScenarioBuilder") 00098 << "Applied modifications to " << theModifierCounter << " alignables"; 00099 00100 }
Pointer to mother alignable object.
Definition at line 35 of file TrackerScenarioBuilder.h.
Referenced by applyScenario(), and TrackerScenarioBuilder().