CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
SiStripLorentzAngleDepESProducer.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: SiStripLorentzAngleDepESProducer
4 // Class: SiStripLorentzAngleDepESProducer
5 //
13 //
14 // Original Author: Michael Segala and Rebeca Gonzalez Suarez
15 // Created: 15/02/2011
16 // $Id: SiStripLorentzAngleDepESProducer.cc,v 1.2 2011/03/16 13:22:55 rebeca Exp $
17 //
18 //
19 
20 
21 
23 
24 
26  pset_(iConfig),
27  getLatency(iConfig.getParameter<edm::ParameterSet>("LatencyRecord")),
28  getPeak(iConfig.getParameter<edm::ParameterSet>("LorentzAnglePeakMode")),
29  getDeconv(iConfig.getParameter<edm::ParameterSet>("LorentzAngleDeconvMode"))
30 {
31  setWhatProduced(this);
32 
33  edm::LogInfo("SiStripLorentzAngleDepESProducer") << "ctor" << std::endl;
34 
35 }
36 
37 
38 boost::shared_ptr<SiStripLorentzAngle> SiStripLorentzAngleDepESProducer::produce(const SiStripLorentzAngleDepRcd& iRecord)
39 {
40 
41  edm::LogInfo("SiStripLorentzAngleDepESProducer") << "Producer called" << std::endl;
42 
43  std::string latencyRecordName = getLatency.getParameter<std::string>("record");
44  std::string latencyLabel = getLatency.getUntrackedParameter<std::string>("label");
45  bool peakMode = false;
46 
47  if( latencyRecordName == "SiStripLatencyRcd" ) {
49  iRecord.getRecord<SiStripLatencyRcd>().get( latencyLabel, latency);
50  if(latency -> singleReadOutMode() == 1) peakMode = true;
51  } else edm::LogError("SiStripLorentzAngleDepESProducer") << "[SiStripLorentzAngleDepESProducer::produce] No Latency Record found " << std::endl;
52 
53  std::string lorentzAngleRecordName;
54  std::string lorentzAngleLabel;
55 
56  if (peakMode){
57  lorentzAngleRecordName = getPeak.getParameter<std::string>("record");
58  lorentzAngleLabel = getPeak.getUntrackedParameter<std::string>("label");
59  } else {
60  lorentzAngleRecordName = getDeconv.getParameter<std::string>("record");
61  lorentzAngleLabel = getDeconv.getUntrackedParameter<std::string>("label");
62  }
63 
64  if ( lorentzAngleRecordName == "SiStripLorentzAngleRcd"){
66  iRecord.getRecord<SiStripLorentzAngleRcd>().get(lorentzAngleLabel, siStripLorentzAngle);
67  siStripLA_.reset(new SiStripLorentzAngle(*(siStripLorentzAngle.product())));
68  } else edm::LogError("SiStripLorentzAngleDepESProducer") << "[SiStripLorentzAngleDepESProducer::produce] No Lorentz Angle Record found " << std::endl;
69 
70 
71  return siStripLA_;
72 
73 
74 }
75 
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
tuple SiStripLorentzAngle
Definition: redigi_cff.py:15
boost::shared_ptr< SiStripLorentzAngle > siStripLA_
void setWhatProduced(T *iThis, const es::Label &iLabel=es::Label())
Definition: ESProducer.h:115
boost::shared_ptr< SiStripLorentzAngle > produce(const SiStripLorentzAngleDepRcd &)
T const * product() const
Definition: ESHandle.h:62
SiStripLorentzAngleDepESProducer(const edm::ParameterSet &)