CMS 3D CMS Logo

SiStripLAFakeESSource Class Reference

Fake source of SiStripLorentzAngle. More...

#include <CalibTracker/SiStripLorentzAngle/plugins/SiStripLAFakeESSource.h>

Inheritance diagram for SiStripLAFakeESSource:

edm::ESProducer edm::EventSetupRecordIntervalFinder edm::ESProxyFactoryProducer edm::eventsetup::DataProxyProvider

List of all members.

Public Member Functions

virtual std::auto_ptr
< SiStripLorentzAngle
produce (const SiStripLorentzAngleRcd &)
 SiStripLAFakeESSource (const edm::ParameterSet &)
virtual ~SiStripLAFakeESSource ()

Protected Member Functions

virtual void setIntervalFor (const edm::eventsetup::EventSetupRecordKey &, const edm::IOVSyncValue &, edm::ValidityInterval &)

Private Member Functions

const SiStripLAFakeESSourceoperator= (const SiStripLAFakeESSource &)
 SiStripLAFakeESSource (const SiStripLAFakeESSource &)

Private Attributes

double appliedVoltage_
double chargeMobility_
edm::FileInPath fp_
double holeBeta_
double holeSaturationVelocity_
double rhall_
double temperature_
double temperatureerror_


Detailed Description

Fake source of SiStripLorentzAngle.

Author:
C. Genta

Definition at line 20 of file SiStripLAFakeESSource.h.


Constructor & Destructor Documentation

SiStripLAFakeESSource::SiStripLAFakeESSource ( const edm::ParameterSet conf_  ) 

Definition at line 10 of file SiStripLAFakeESSource.cc.

References appliedVoltage_, chargeMobility_, fp_, edm::ParameterSet::getParameter(), holeBeta_, holeSaturationVelocity_, rhall_, edm::ESProducer::setWhatProduced(), temperature_, and temperatureerror_.

00010                                                                            {
00011 
00012   edm::LogInfo("SiStripLAFakeESSource::SiStripLAFakeESSource");
00013 
00014   setWhatProduced( this );
00015   findingRecord<SiStripLorentzAngleRcd>();
00016 
00017 
00018   fp_ = conf_.getParameter<edm::FileInPath>("file");
00019   appliedVoltage_   = conf_.getParameter<double>("AppliedVoltage");
00020   chargeMobility_   = conf_.getParameter<double>("ChargeMobility");
00021   temperature_      = conf_.getParameter<double>("Temperature");
00022   temperatureerror_      = conf_.getParameter<double>("TemperatureError");
00023   rhall_            = conf_.getParameter<double>("HoleRHAllParameter");
00024   holeBeta_         = conf_.getParameter<double>("HoleBeta");
00025   holeSaturationVelocity_ = conf_.getParameter<double>("HoleSaturationVelocity");
00026 
00027 
00028 }

virtual SiStripLAFakeESSource::~SiStripLAFakeESSource (  )  [inline, virtual]

Definition at line 25 of file SiStripLAFakeESSource.h.

00025 {;}

SiStripLAFakeESSource::SiStripLAFakeESSource ( const SiStripLAFakeESSource  )  [private]


Member Function Documentation

const SiStripLAFakeESSource& SiStripLAFakeESSource::operator= ( const SiStripLAFakeESSource  )  [private]

std::auto_ptr< SiStripLorentzAngle > SiStripLAFakeESSource::produce ( const SiStripLorentzAngleRcd  )  [virtual]

Definition at line 31 of file SiStripLAFakeESSource.cc.

References appliedVoltage_, DeDxTools::beta(), chargeMobility_, e, lat::endl(), fp_, edm::FileInPath::fullPath(), holeBeta_, holeSaturationVelocity_, VarParsing::obj, funct::pow(), SiStripLorentzAngle::putLorentzAngle(), rhall_, and temperature_.

00031                                                                                                { 
00032   
00033   SiStripLorentzAngle * obj = new SiStripLorentzAngle();
00034 
00035   SiStripDetInfoFileReader reader(fp_.fullPath());
00036   //  SiStripDetInfoFileReader reader("");
00037 
00038   const std::vector<uint32_t> DetIds = reader.getAllDetIds();
00039   float mulow = chargeMobility_*std::pow((temperature_/300.),-2.5);
00040   float vsat = holeSaturationVelocity_*std::pow((temperature_/300.),0.52);
00041   float beta = holeBeta_*std::pow((temperature_/300.),0.17);
00042   
00043   for(std::vector<uint32_t>::const_iterator detit=DetIds.begin(); detit!=DetIds.end(); detit++){
00044 
00045     const float & thickness=reader.getThickness(*detit);
00046     float e = appliedVoltage_/thickness;
00047     float mu = ( mulow/(pow(double((1+pow((mulow*e/vsat),beta))),1./beta)));
00048     float hallMobility = 1.E-4*mu*rhall_;
00049     
00050     
00051     if ( ! obj->putLorentzAngle(*detit, hallMobility) )
00052       edm::LogError("SiStripLAFakeESSource::produce ")<<" detid already exists"<<std::endl;
00053     
00054   }
00055   
00056 
00057   return std::auto_ptr<SiStripLorentzAngle>(obj);
00058 
00059 
00060 }

void SiStripLAFakeESSource::setIntervalFor ( const edm::eventsetup::EventSetupRecordKey ,
const edm::IOVSyncValue iosv,
edm::ValidityInterval oValidity 
) [protected, virtual]

Implements edm::EventSetupRecordIntervalFinder.

Definition at line 63 of file SiStripLAFakeESSource.cc.

References edm::IOVSyncValue::beginOfTime(), edm::IOVSyncValue::endOfTime(), and infinity.

00065                                                                                  {
00066 
00067   edm::ValidityInterval infinity( iosv.beginOfTime(), iosv.endOfTime() );
00068   oValidity = infinity;
00069   
00070 }


Member Data Documentation

double SiStripLAFakeESSource::appliedVoltage_ [private]

Definition at line 43 of file SiStripLAFakeESSource.h.

Referenced by produce(), and SiStripLAFakeESSource().

double SiStripLAFakeESSource::chargeMobility_ [private]

Definition at line 44 of file SiStripLAFakeESSource.h.

Referenced by produce(), and SiStripLAFakeESSource().

edm::FileInPath SiStripLAFakeESSource::fp_ [private]

Definition at line 42 of file SiStripLAFakeESSource.h.

Referenced by produce(), and SiStripLAFakeESSource().

double SiStripLAFakeESSource::holeBeta_ [private]

Definition at line 48 of file SiStripLAFakeESSource.h.

Referenced by produce(), and SiStripLAFakeESSource().

double SiStripLAFakeESSource::holeSaturationVelocity_ [private]

Definition at line 49 of file SiStripLAFakeESSource.h.

Referenced by produce(), and SiStripLAFakeESSource().

double SiStripLAFakeESSource::rhall_ [private]

Definition at line 47 of file SiStripLAFakeESSource.h.

Referenced by produce(), and SiStripLAFakeESSource().

double SiStripLAFakeESSource::temperature_ [private]

Definition at line 45 of file SiStripLAFakeESSource.h.

Referenced by produce(), and SiStripLAFakeESSource().

double SiStripLAFakeESSource::temperatureerror_ [private]

Definition at line 46 of file SiStripLAFakeESSource.h.

Referenced by SiStripLAFakeESSource().


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