CMS 3D CMS Logo

SiStripBadFiberBuilder Class Reference

#include <CondTools/SiStrip/plugins/SiStripBadFiberBuilder.h>

Inheritance diagram for SiStripBadFiberBuilder:

ConditionDBWriter< SiStripBadStrip > edm::EDAnalyzer

List of all members.

Public Member Functions

void algoAnalyze (const edm::Event &event, const edm::EventSetup &iSetup)
 SiStripBadFiberBuilder (const edm::ParameterSet &)
 ~SiStripBadFiberBuilder ()

Private Types

typedef std::vector
< edm::ParameterSet
Parameters

Private Member Functions

SiStripBadStripgetNewObject ()

Private Attributes

Parameters BadComponentList_
edm::FileInPath fp_
SiStripBadStripobj
bool printdebug_


Detailed Description

Definition at line 16 of file SiStripBadFiberBuilder.h.


Member Typedef Documentation

typedef std::vector< edm::ParameterSet > SiStripBadFiberBuilder::Parameters [private]

Definition at line 34 of file SiStripBadFiberBuilder.h.


Constructor & Destructor Documentation

SiStripBadFiberBuilder::SiStripBadFiberBuilder ( const edm::ParameterSet iConfig  )  [explicit]

Definition at line 9 of file SiStripBadFiberBuilder.cc.

References BadComponentList_, fp_, edm::ParameterSet::getUntrackedParameter(), and printdebug_.

00009                                                                              : ConditionDBWriter<SiStripBadStrip>::ConditionDBWriter<SiStripBadStrip>(iConfig){
00010 
00011   edm::LogInfo("SiStripBadFiberBuilder") << " ctor ";
00012   fp_ = iConfig.getUntrackedParameter<edm::FileInPath>("file",edm::FileInPath("CalibTracker/SiStripCommon/data/SiStripDetInfo.dat"));
00013   printdebug_ = iConfig.getUntrackedParameter<bool>("printDebug",false);
00014   BadComponentList_ =  iConfig.getUntrackedParameter<Parameters>("BadComponentList");
00015 }

SiStripBadFiberBuilder::~SiStripBadFiberBuilder (  ) 

Definition at line 18 of file SiStripBadFiberBuilder.cc.

00018                                                {
00019   edm::LogInfo("SiStripBadFiberBuilder") << " dtor";
00020 }


Member Function Documentation

void SiStripBadFiberBuilder::algoAnalyze ( const edm::Event event,
const edm::EventSetup iSetup 
) [virtual]

Reimplemented from ConditionDBWriter< SiStripBadStrip >.

Definition at line 22 of file SiStripBadFiberBuilder.cc.

References BadComponentList_, SiStripBadStrip::encode(), lat::endl(), fp_, edm::FileInPath::fullPath(), obj, printdebug_, SiStripBadStrip::put(), range, mergeAndRegister_online::run, and ss.

00022                                                                                            {
00023   
00024   edm::LogInfo("SiStripBadFiberBuilder") <<"SiStripBadFiberBuilder::algoAnalyze called"<<std::endl;
00025   unsigned int run=event.id().run();
00026 
00027   edm::LogInfo("SiStripBadFiberBuilder") << "... creating dummy SiStripBadStrip Data for Run " << run << "\n " << std::endl;
00028   
00029   obj = new SiStripBadStrip();
00030 
00031   SiStripDetInfoFileReader reader(fp_.fullPath());
00032   
00033   const std::vector<uint32_t> DetIds = reader.getAllDetIds();
00034 
00035   std::stringstream ss;
00036   for(Parameters::iterator iBadComponent = BadComponentList_.begin(); iBadComponent != BadComponentList_.end(); ++iBadComponent ) {
00037     
00038     uint32_t BadModule_ = iBadComponent->getParameter<uint32_t>("BadModule");
00039     std::vector<uint32_t> BadApvList_ = iBadComponent->getParameter<std::vector<uint32_t> >("BadApvList");
00040 
00041     std::vector<unsigned int> theSiStripVector;
00042     
00043     unsigned short firstBadStrip=0, NconsecutiveBadStrips=0;
00044     unsigned int theBadStripRange;
00045     
00046     for(std::vector<uint32_t>::const_iterator is=BadApvList_.begin(); is!=BadApvList_.end(); ++is){
00047 
00048       firstBadStrip=(*is)*128;
00049       NconsecutiveBadStrips=128;
00050       
00051       theBadStripRange = obj->encode(firstBadStrip,NconsecutiveBadStrips);
00052       
00053       if (printdebug_)
00054         ss << "detid " << BadModule_ << " \t"
00055            << " firstBadStrip " << firstBadStrip << "\t "
00056            << " NconsecutiveBadStrips " << NconsecutiveBadStrips << "\t "
00057            << " packed integer " << std::hex << theBadStripRange  << std::dec
00058            << std::endl;            
00059       
00060       theSiStripVector.push_back(theBadStripRange);
00061     }      
00062      
00063     SiStripBadStrip::Range range(theSiStripVector.begin(),theSiStripVector.end());
00064     if ( ! obj->put(BadModule_,range) )
00065       edm::LogError("SiStripBadFiberBuilder")<<"[SiStripBadFiberBuilder::analyze] detid already exists"<<std::endl;
00066   }
00067   if (printdebug_)
00068     edm::LogInfo("SiStripBadFiberBuilder") << ss.str();
00069 }

SiStripBadStrip* SiStripBadFiberBuilder::getNewObject (  )  [inline, private, virtual]

Implements ConditionDBWriter< SiStripBadStrip >.

Definition at line 27 of file SiStripBadFiberBuilder.h.

References obj.

00027 {return obj;}


Member Data Documentation

Parameters SiStripBadFiberBuilder::BadComponentList_ [private]

Definition at line 35 of file SiStripBadFiberBuilder.h.

Referenced by algoAnalyze(), and SiStripBadFiberBuilder().

edm::FileInPath SiStripBadFiberBuilder::fp_ [private]

Definition at line 30 of file SiStripBadFiberBuilder.h.

Referenced by algoAnalyze(), and SiStripBadFiberBuilder().

SiStripBadStrip* SiStripBadFiberBuilder::obj [private]

Definition at line 32 of file SiStripBadFiberBuilder.h.

Referenced by algoAnalyze(), and getNewObject().

bool SiStripBadFiberBuilder::printdebug_ [private]

Definition at line 31 of file SiStripBadFiberBuilder.h.

Referenced by algoAnalyze(), and SiStripBadFiberBuilder().


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