CMS 3D CMS Logo

Public Member Functions | Private Attributes

SiStripLorentzAngleDepESProducer Class Reference

#include <CalibTracker/SiStripESProducers/plugins/real/SiStripLorentzAngleDepESProducer.cc>

Inheritance diagram for SiStripLorentzAngleDepESProducer:
edm::ESProducer edm::ESProxyFactoryProducer edm::eventsetup::DataProxyProvider

List of all members.

Public Member Functions

boost::shared_ptr
< SiStripLorentzAngle
produce (const SiStripLorentzAngleDepRcd &)
 SiStripLorentzAngleDepESProducer (const edm::ParameterSet &)
 ~SiStripLorentzAngleDepESProducer ()

Private Attributes

edm::ParameterSet getDeconv
edm::ParameterSet getLatency
edm::ParameterSet getPeak
edm::ParameterSet pset_
boost::shared_ptr
< SiStripLorentzAngle
siStripLA_

Detailed Description

Description: <one line="" class="" summary>="">

Implementation: <Notes on="" implementation>="">

Definition at line 22 of file SiStripLorentzAngleDepESProducer.h.


Constructor & Destructor Documentation

SiStripLorentzAngleDepESProducer::SiStripLorentzAngleDepESProducer ( const edm::ParameterSet iConfig)

Definition at line 25 of file SiStripLorentzAngleDepESProducer.cc.

References edm::ESProducer::setWhatProduced().

                                                                                                :
  pset_(iConfig),
  getLatency(iConfig.getParameter<edm::ParameterSet>("LatencyRecord")),
  getPeak(iConfig.getParameter<edm::ParameterSet>("LorentzAnglePeakMode")),
  getDeconv(iConfig.getParameter<edm::ParameterSet>("LorentzAngleDeconvMode"))
{  
  setWhatProduced(this);
  
  edm::LogInfo("SiStripLorentzAngleDepESProducer") << "ctor" << std::endl;

}
SiStripLorentzAngleDepESProducer::~SiStripLorentzAngleDepESProducer ( ) [inline]

Definition at line 25 of file SiStripLorentzAngleDepESProducer.h.

{};

Member Function Documentation

boost::shared_ptr< SiStripLorentzAngle > SiStripLorentzAngleDepESProducer::produce ( const SiStripLorentzAngleDepRcd iRecord)

Definition at line 38 of file SiStripLorentzAngleDepESProducer.cc.

References getDeconv, getLatency, edm::ParameterSet::getParameter(), getPeak, edm::eventsetup::DependentRecordImplementation< RecordT, ListT >::getRecord(), edm::ParameterSet::getUntrackedParameter(), edm::ESHandle< T >::product(), siStripLA_, redigi_cff::SiStripLorentzAngle, and SiStripLorentzAngle_Frontier_cff::siStripLorentzAngle.

{

  edm::LogInfo("SiStripLorentzAngleDepESProducer") << "Producer called" << std::endl;
  
  std::string latencyRecordName = getLatency.getParameter<std::string>("record");
  std::string latencyLabel = getLatency.getUntrackedParameter<std::string>("label");
  bool peakMode = false;
  
  if( latencyRecordName == "SiStripLatencyRcd" ) {      
    edm::ESHandle<SiStripLatency> latency;  
    iRecord.getRecord<SiStripLatencyRcd>().get( latencyLabel, latency);
    if(latency -> singleReadOutMode() == 1) peakMode = true;
  } else edm::LogError("SiStripLorentzAngleDepESProducer") << "[SiStripLorentzAngleDepESProducer::produce] No Latency Record found " << std::endl;
 
  std::string lorentzAngleRecordName;
  std::string lorentzAngleLabel;
         
  if (peakMode){
    lorentzAngleRecordName = getPeak.getParameter<std::string>("record");
    lorentzAngleLabel = getPeak.getUntrackedParameter<std::string>("label"); 
  } else {
    lorentzAngleRecordName = getDeconv.getParameter<std::string>("record");
    lorentzAngleLabel = getDeconv.getUntrackedParameter<std::string>("label"); 
  } 
  
  if ( lorentzAngleRecordName == "SiStripLorentzAngleRcd"){
    edm::ESHandle<SiStripLorentzAngle> siStripLorentzAngle;
    iRecord.getRecord<SiStripLorentzAngleRcd>().get(lorentzAngleLabel, siStripLorentzAngle);
    siStripLA_.reset(new SiStripLorentzAngle(*(siStripLorentzAngle.product())));
  } else edm::LogError("SiStripLorentzAngleDepESProducer") << "[SiStripLorentzAngleDepESProducer::produce] No Lorentz Angle Record found " << std::endl;
         

   return siStripLA_;

  
}

Member Data Documentation

Definition at line 38 of file SiStripLorentzAngleDepESProducer.h.

Referenced by produce().

Definition at line 36 of file SiStripLorentzAngleDepESProducer.h.

Referenced by produce().

Definition at line 37 of file SiStripLorentzAngleDepESProducer.h.

Referenced by produce().

Definition at line 31 of file SiStripLorentzAngleDepESProducer.h.

Definition at line 40 of file SiStripLorentzAngleDepESProducer.h.

Referenced by produce().