CMS 3D CMS Logo

TrackerScenarioBuilder Class Reference

Builds a scenario from configuration and applies it to the alignable tracker. More...

#include <Alignment/TrackerAlignment/interface/TrackerScenarioBuilder.h>

Inheritance diagram for TrackerScenarioBuilder:

MisalignmentScenarioBuilder

List of all members.

Public Member Functions

void applyScenario (const edm::ParameterSet &scenario)
 Apply misalignment scenario to the tracker.
 TrackerScenarioBuilder (Alignable *alignable)
 Constructor.
 ~TrackerScenarioBuilder ()
 Destructor.

Private Attributes

AlignableTrackertheAlignableTracker
 Pointer to mother alignable object.


Detailed Description

Builds a scenario from configuration and applies it to the alignable tracker.

Date
2007/10/18 09:57:11
Revision
1.2

Author
fronga
Author:
Frederic Ronga - CERN-PH-CMG

Definition at line 19 of file TrackerScenarioBuilder.h.


Constructor & Destructor Documentation

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]

Destructor.

Definition at line 28 of file TrackerScenarioBuilder.h.

00028 {};


Member Function Documentation

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 }


Member Data Documentation

AlignableTracker* TrackerScenarioBuilder::theAlignableTracker [private]

Pointer to mother alignable object.

Definition at line 35 of file TrackerScenarioBuilder.h.

Referenced by applyScenario(), and TrackerScenarioBuilder().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:34:10 2009 for CMSSW by  doxygen 1.5.4