#include <CalibTracker/SiStripLorentzAngle/plugins/SiStripLAFakeESSource.h>
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 SiStripLAFakeESSource & | operator= (const SiStripLAFakeESSource &) |
SiStripLAFakeESSource (const SiStripLAFakeESSource &) | |
Private Attributes | |
double | appliedVoltage_ |
double | chargeMobility_ |
edm::FileInPath | fp_ |
double | holeBeta_ |
double | holeSaturationVelocity_ |
double | rhall_ |
double | temperature_ |
double | temperatureerror_ |
Definition at line 20 of file SiStripLAFakeESSource.h.
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] |
SiStripLAFakeESSource::SiStripLAFakeESSource | ( | const SiStripLAFakeESSource & | ) | [private] |
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 }
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] |