CMS 3D CMS Logo

TrackerScenarioBuilder.cc

Go to the documentation of this file.
00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 #include <string>
00010 #include <iostream>
00011 #include <sstream>
00012 
00013 // Framework
00014 #include "FWCore/Utilities/interface/Exception.h"
00015 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00016 
00017 // Alignment
00018 
00019 #include "Alignment/TrackerAlignment/interface/TrackerScenarioBuilder.h"
00020 #include "Alignment/CommonAlignment/interface/Alignable.h" 
00021 
00022 
00023 //__________________________________________________________________________________________________
00024 TrackerScenarioBuilder::TrackerScenarioBuilder( Alignable* alignable )
00025 {
00026 
00027   theAlignableTracker = dynamic_cast<AlignableTracker*>( alignable );
00028  
00029   if ( !theAlignableTracker )
00030     throw cms::Exception("TypeMismatch") << "Argument is not an AlignableTracker";
00031 
00032 }
00033 
00034 
00035 //__________________________________________________________________________________________________
00036 void TrackerScenarioBuilder::applyScenario( const edm::ParameterSet& scenario )
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 }
00101 
00102 

Generated on Tue Jun 9 17:25:02 2009 for CMSSW by  doxygen 1.5.4