CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes
QIE8Simulator Class Reference

#include <QIE8Simulator.h>

Public Member Functions

double controlOutput (double t) const
 
double getInputAmplitude () const
 
double getInputGain () const
 
double getInputIntegral () const
 
const HcalInterpolatedPulsegetInputSignal () const
 
double getInputStartTime () const
 
double getOutputGain () const
 
double getParameter (const unsigned which) const
 
double getPreampOutputCut () const
 
const AbsElectronicODERHSgetRHS () const
 
unsigned long getRunCount () const
 
double lastStopTime () const
 
unsigned nParameters () const
 
double preampOutput (double t) const
 
double preampPeakTime () const
 
 QIE8Simulator ()
 
 QIE8Simulator (const AbsElectronicODERHS &model, unsigned chargeNode, bool interpolateCubic=false, double preampOutputCut=-1.0e100, double inputGain=1.0, double outputGain=1.0)
 
unsigned run (double dt, double tstop, double tDigitize, double *TS, unsigned lenTS)
 
void scaleInputSignal (const double s)
 
void setInitialConditions (const double *values, const unsigned len)
 
void setInputAmplitude (const double a)
 
void setInputGain (const double g)
 
void setInputIntegral (const double d)
 
template<class Real >
void setInputShape (const Real *values, const unsigned len)
 
template<class Signal >
void setInputSignal (const Signal &inputSignal)
 
void setInputStartTime (const double newStartTime)
 
void setLeadingParameters (const double *values, const unsigned len)
 
void setOutputGain (const double g)
 
void setParameter (const unsigned which, const double p)
 
void setPreampOutputCut (const double p)
 
void setRHS (const AbsElectronicODERHS &rhs, unsigned chargeNode, bool interpolateCubic=false)
 
double totalIntegratedCharge (double t) const
 
void zeroInitialConditions ()
 

Static Public Member Functions

static double adcTSWidth ()
 

Static Public Attributes

static const unsigned maxlen = HcalInterpolatedPulse::maxlen
 

Private Member Functions

double getCharge (const double t) const
 
AbsElectronicODERHSmodifiableRHS ()
 
void validateGain () const
 

Private Attributes

unsigned chargeNode_
 
std::vector< double > historyBuffer_
 
std::vector< double > initialConditions_
 
double inputGain_
 
bool integrateToGetCharge_
 
double outputGain_
 
double preampOutputCut_
 
unsigned long runCount_
 
RK4 solver_
 
bool useCubic_
 

Detailed Description

Definition at line 11 of file QIE8Simulator.h.

Constructor & Destructor Documentation

◆ QIE8Simulator() [1/2]

QIE8Simulator::QIE8Simulator ( )

Definition at line 6 of file QIE8Simulator.cc.

7  : preampOutputCut_(-1.0e100),
8  inputGain_(1.0),
9  outputGain_(1.0),
10  runCount_(0),
12  integrateToGetCharge_(false),
13  useCubic_(false) {}

◆ QIE8Simulator() [2/2]

QIE8Simulator::QIE8Simulator ( const AbsElectronicODERHS model,
unsigned  chargeNode,
bool  interpolateCubic = false,
double  preampOutputCut = -1.0e100,
double  inputGain = 1.0,
double  outputGain = 1.0 
)

Definition at line 15 of file QIE8Simulator.cc.

21  : solver_(model),
22  preampOutputCut_(preampOutputCut),
23  inputGain_(inputGain),
24  outputGain_(outputGain),
25  runCount_(0),
26  chargeNode_(chargeNode),
27  useCubic_(interpolateCubic) {
28  if (chargeNode >= AbsElectronicODERHS::invalidNode)
29  throw cms::Exception("In QIE8Simulator constructor: invalid charge collection node");
30  integrateToGetCharge_ = chargeNode == model.outputNode();
31  validateGain();
33 }

References Exception, integrateToGetCharge_, AbsElectronicODERHS::invalidNode, ReggeGribovPartonMC_EposLHC_2760GeV_PbPb_cfi::model, validateGain(), and zeroInitialConditions().

Member Function Documentation

◆ adcTSWidth()

static double QIE8Simulator::adcTSWidth ( )
inlinestatic

Definition at line 135 of file QIE8Simulator.h.

135 { return 25.0; }

Referenced by run().

◆ controlOutput()

double QIE8Simulator::controlOutput ( double  t) const

Definition at line 121 of file QIE8Simulator.cc.

121  {
122  if (!runCount_)
123  throw cms::Exception("In QIE8Simulator::controlOutput: please run the simulation first");
124  const unsigned controlNode = getRHS().controlNode();
125  if (controlNode >= AbsElectronicODERHS::invalidNode)
126  return 0.0;
127  else
128  return solver_.interpolateCoordinate(controlNode, t, useCubic_);
129 }

References AbsElectronicODERHS::controlNode(), Exception, getRHS(), ConstantStepOdeSolver::interpolateCoordinate(), AbsElectronicODERHS::invalidNode, runCount_, solver_, OrderedSet::t, and useCubic_.

◆ getCharge()

double QIE8Simulator::getCharge ( const double  t) const
inlineprivate

◆ getInputAmplitude()

double QIE8Simulator::getInputAmplitude ( ) const
inline

◆ getInputGain()

double QIE8Simulator::getInputGain ( ) const
inline

Definition at line 37 of file QIE8Simulator.h.

37 { return inputGain_; }

References inputGain_.

◆ getInputIntegral()

double QIE8Simulator::getInputIntegral ( ) const
inline

◆ getInputSignal()

const HcalInterpolatedPulse& QIE8Simulator::getInputSignal ( ) const
inline

Definition at line 77 of file QIE8Simulator.h.

77 { return getRHS().inputPulse(); }

References getRHS(), and AbsElectronicODERHS::inputPulse().

◆ getInputStartTime()

double QIE8Simulator::getInputStartTime ( ) const
inline

◆ getOutputGain()

double QIE8Simulator::getOutputGain ( ) const
inline

Definition at line 38 of file QIE8Simulator.h.

38 { return outputGain_; }

References outputGain_.

◆ getParameter()

double QIE8Simulator::getParameter ( const unsigned  which) const
inline

◆ getPreampOutputCut()

double QIE8Simulator::getPreampOutputCut ( ) const
inline

Definition at line 40 of file QIE8Simulator.h.

40 { return preampOutputCut_; }

References preampOutputCut_.

◆ getRHS()

const AbsElectronicODERHS& QIE8Simulator::getRHS ( ) const
inline

Definition at line 29 of file QIE8Simulator.h.

29  {
30  const AbsODERHS* ptr = solver_.getRHS();
31  if (!ptr)
32  throw cms::Exception("In QIE8Simulator::getRHS: RHS is not set");
33  return *(static_cast<const AbsElectronicODERHS*>(ptr));
34  }

References Exception, ConstantStepOdeSolver::getRHS(), and solver_.

Referenced by controlOutput(), getInputAmplitude(), getInputIntegral(), getInputSignal(), getInputStartTime(), getParameter(), nParameters(), preampOutput(), preampPeakTime(), setInitialConditions(), and zeroInitialConditions().

◆ getRunCount()

unsigned long QIE8Simulator::getRunCount ( ) const
inline

Definition at line 39 of file QIE8Simulator.h.

39 { return runCount_; }

References runCount_.

◆ lastStopTime()

double QIE8Simulator::lastStopTime ( ) const

Definition at line 182 of file QIE8Simulator.cc.

182  {
183  if (!runCount_)
184  throw cms::Exception("In QIE8Simulator::lastStopTime: please run the simulation first");
185  return solver_.lastMaxT();
186 }

References Exception, ConstantStepOdeSolver::lastMaxT(), runCount_, and solver_.

◆ modifiableRHS()

AbsElectronicODERHS& QIE8Simulator::modifiableRHS ( )
inlineprivate

Definition at line 138 of file QIE8Simulator.h.

138  {
139  AbsODERHS* ptr = solver_.getRHS();
140  if (!ptr)
141  throw cms::Exception("In QIE8Simulator::modifiableRHS: no RHS");
142  return *(static_cast<AbsElectronicODERHS*>(ptr));
143  }

References Exception, ConstantStepOdeSolver::getRHS(), and solver_.

Referenced by run(), scaleInputSignal(), setInputAmplitude(), setInputIntegral(), setInputShape(), setInputSignal(), setInputStartTime(), setLeadingParameters(), and setParameter().

◆ nParameters()

unsigned QIE8Simulator::nParameters ( ) const
inline

Definition at line 43 of file QIE8Simulator.h.

43 { return getRHS().nParameters(); }

References getRHS(), and AbsElectronicODERHS::nParameters().

◆ preampOutput()

double QIE8Simulator::preampOutput ( double  t) const

Definition at line 111 of file QIE8Simulator.cc.

111  {
112  if (!runCount_)
113  throw cms::Exception("In QIE8Simulator::preampOutput: please run the simulation first");
114  const unsigned preampNode = getRHS().outputNode();
115  if (preampNode >= AbsElectronicODERHS::invalidNode)
116  return 0.0;
117  else
118  return outputGain_ * solver_.interpolateCoordinate(preampNode, t, useCubic_);
119 }

References Exception, getRHS(), ConstantStepOdeSolver::interpolateCoordinate(), AbsElectronicODERHS::invalidNode, outputGain_, AbsElectronicODERHS::outputNode(), runCount_, solver_, OrderedSet::t, and useCubic_.

◆ preampPeakTime()

double QIE8Simulator::preampPeakTime ( ) const

Definition at line 131 of file QIE8Simulator.cc.

131  {
132  if (!runCount_)
133  throw cms::Exception("In QIE8Simulator::preampPeakTime: please run the simulation first");
134  const unsigned preampNode = getRHS().outputNode();
135  if (preampNode >= AbsElectronicODERHS::invalidNode)
136  throw cms::Exception("In QIE8Simulator::preampPeakTime: no preamp node in the circuit");
137  return solver_.getPeakTime(preampNode);
138 }

References Exception, ConstantStepOdeSolver::getPeakTime(), getRHS(), AbsElectronicODERHS::invalidNode, AbsElectronicODERHS::outputNode(), runCount_, and solver_.

◆ run()

unsigned QIE8Simulator::run ( double  dt,
double  tstop,
double  tDigitize,
double *  TS,
unsigned  lenTS 
)

Definition at line 35 of file QIE8Simulator.cc.

36  {
38  throw cms::Exception("In QIE8Simulator::run: preamp model is not set");
39 
40  // Check arguments for validity
41  if (dt <= 0.0)
42  throw cms::Exception("In QIE8Simulator::run: invalid time step");
43 
44  if (tstop < dt)
45  throw cms::Exception("In QIE8Simulator::run: invalid stopping time");
46 
47  if (lenTS && tDigitize < 0.0)
48  throw cms::Exception("In QIE8Simulator::run: can't digitize at t < 0");
49 
50  // Determine the number of time steps
51  const double dsteps = tstop / dt;
52  unsigned n = dsteps;
53  if (dsteps != static_cast<double>(n))
54  ++n;
55  if (n >= maxlen)
56  n = maxlen - 1;
57 
58  // Run the simulation
60  const unsigned numNodes = rhs.numberOfNodes();
61  if (numNodes) {
62  assert(initialConditions_.size() == numNodes);
63  solver_.run(&initialConditions_[0], numNodes, dt, n);
64  } else {
65  // Special situation: the simulation does not
66  // need to solve any ODE. Instead, it will fill
67  // out the output directly.
68  if (!(integrateToGetCharge_ && chargeNode_ == 0U))
69  throw cms::Exception(
70  "In QIE8Simulator::run: "
71  "invalid mode of operation");
72  const unsigned runLen = n + 1U;
73  if (historyBuffer_.size() < runLen)
74  historyBuffer_.resize(runLen);
75  double* hbuf = &historyBuffer_[0];
76  for (unsigned istep = 0; istep < runLen; ++istep, ++hbuf)
77  rhs.calc(istep * dt, nullptr, 0U, hbuf);
78  solver_.setHistory(dt, &historyBuffer_[0], 1U, runLen);
79  }
80 
81  // Truncate the preamp output if this will affect subsequent results
82  if (integrateToGetCharge_ && preampOutputCut_ > -0.9e100)
84 
85  // Digitize the accumulated charge
86  unsigned filled = 0;
87  if (lenTS) {
88  assert(TS);
89  const double lastTStop = solver_.lastMaxT();
90  const double tsWidth = this->adcTSWidth();
91  double oldCharge = getCharge(tDigitize);
92  for (unsigned its = 0; its < lenTS; ++its) {
93  const double t0 = tDigitize + its * tsWidth;
94  if (t0 < lastTStop) {
95  double t1 = t0 + tsWidth;
96  if (t1 > lastTStop)
97  t1 = lastTStop;
98  else
99  ++filled;
100  const double q = getCharge(t1);
101  TS[its] = (q - oldCharge) * outputGain_;
102  oldCharge = q;
103  } else
104  TS[its] = 0.0;
105  }
106  }
107  ++runCount_;
108  return filled;
109 }

References adcTSWidth(), cms::cuda::assert(), AbsODERHS::calc(), chargeNode_, dt, Exception, getCharge(), historyBuffer_, initialConditions_, integrateToGetCharge_, AbsElectronicODERHS::invalidNode, ConstantStepOdeSolver::lastMaxT(), maxlen, modifiableRHS(), dqmiodumpmetadata::n, AbsElectronicODERHS::numberOfNodes(), outputGain_, preampOutputCut_, data-class-funcs::q, ConstantStepOdeSolver::run(), runCount_, ConstantStepOdeSolver::setHistory(), solver_, FrontierCondition_GT_autoExpress_cfi::t0, RandomServiceHelper::t1, ConstantStepOdeSolver::truncateCoordinate(), and mitigatedMETSequence_cff::U.

Referenced by DTWorkflow.DTWorkflow::all(), Types.EventID::cppID(), Types.LuminosityBlockID::cppID(), and o2olib.O2OTool::execute().

◆ scaleInputSignal()

void QIE8Simulator::scaleInputSignal ( const double  s)
inline

Definition at line 88 of file QIE8Simulator.h.

88 { modifiableRHS().inputPulse() *= s; }

References AbsElectronicODERHS::inputPulse(), modifiableRHS(), and alignCSCRings::s.

◆ setInitialConditions()

void QIE8Simulator::setInitialConditions ( const double *  values,
const unsigned  len 
)

Definition at line 140 of file QIE8Simulator.cc.

140  {
141  const unsigned nExpected = getRHS().numberOfNodes();
142  if (sz != nExpected)
143  throw cms::Exception(
144  "In QIE8Simulator::setInitialConditions: unexpected number "
145  "of initial conditions");
146  assert(sz == initialConditions_.size());
147  if (sz) {
148  double* c = &initialConditions_[0];
149  for (unsigned i = 0; i < sz; ++i)
150  *c++ = *values++;
151  }
152 }

References cms::cuda::assert(), HltBtagPostValidation_cff::c, Exception, getRHS(), mps_fire::i, initialConditions_, AbsElectronicODERHS::numberOfNodes(), and contentValuesCheck::values.

◆ setInputAmplitude()

void QIE8Simulator::setInputAmplitude ( const double  a)
inline

◆ setInputGain()

void QIE8Simulator::setInputGain ( const double  g)
inline

Definition at line 47 of file QIE8Simulator.h.

47  {
48  inputGain_ = g;
49  validateGain();
50  }

References g, inputGain_, and validateGain().

◆ setInputIntegral()

void QIE8Simulator::setInputIntegral ( const double  d)
inline

◆ setInputShape()

template<class Real >
void QIE8Simulator::setInputShape ( const Real *  values,
const unsigned  len 
)
inline

◆ setInputSignal()

template<class Signal >
void QIE8Simulator::setInputSignal ( const Signal inputSignal)
inline

◆ setInputStartTime()

void QIE8Simulator::setInputStartTime ( const double  newStartTime)
inline

◆ setLeadingParameters()

void QIE8Simulator::setLeadingParameters ( const double *  values,
const unsigned  len 
)
inline

◆ setOutputGain()

void QIE8Simulator::setOutputGain ( const double  g)
inline

Definition at line 51 of file QIE8Simulator.h.

51  {
52  outputGain_ = g;
53  validateGain();
54  }

References g, outputGain_, and validateGain().

◆ setParameter()

void QIE8Simulator::setParameter ( const unsigned  which,
const double  p 
)
inline

◆ setPreampOutputCut()

void QIE8Simulator::setPreampOutputCut ( const double  p)
inline

Definition at line 67 of file QIE8Simulator.h.

67 { preampOutputCut_ = p; }

References AlCaHLTBitMon_ParallelJobs::p, and preampOutputCut_.

◆ setRHS()

void QIE8Simulator::setRHS ( const AbsElectronicODERHS rhs,
unsigned  chargeNode,
bool  interpolateCubic = false 
)

Definition at line 154 of file QIE8Simulator.cc.

156  {
157  if (chargeNode >= AbsElectronicODERHS::invalidNode)
158  throw cms::Exception("In QIE8Simulator::setRHS invalid charge collection node");
159  solver_.setRHS(rhs);
160  chargeNode_ = chargeNode;
161  integrateToGetCharge_ = chargeNode == rhs.outputNode();
162  useCubic_ = useCubicInterpolation;
164 }

References chargeNode_, Exception, integrateToGetCharge_, AbsElectronicODERHS::invalidNode, AbsElectronicODERHS::outputNode(), ConstantStepOdeSolver::setRHS(), solver_, useCubic_, and zeroInitialConditions().

◆ totalIntegratedCharge()

double QIE8Simulator::totalIntegratedCharge ( double  t) const

Definition at line 188 of file QIE8Simulator.cc.

188  {
189  if (!runCount_)
190  throw cms::Exception(
191  "In QIE8Simulator::totalIntegratedCharge: "
192  "please run the simulation first");
193  return outputGain_ * getCharge(t);
194 }

References Exception, getCharge(), outputGain_, runCount_, and OrderedSet::t.

◆ validateGain()

void QIE8Simulator::validateGain ( ) const
private

Definition at line 177 of file QIE8Simulator.cc.

177  {
178  if (inputGain_ <= 0.0)
179  throw cms::Exception("In QIE8Simulator::validateGain: invalid input gain");
180 }

References Exception, and inputGain_.

Referenced by QIE8Simulator(), setInputGain(), and setOutputGain().

◆ zeroInitialConditions()

void QIE8Simulator::zeroInitialConditions ( )

Definition at line 166 of file QIE8Simulator.cc.

166  {
167  const unsigned sz = getRHS().numberOfNodes();
168  if (initialConditions_.size() != sz)
169  initialConditions_.resize(sz);
170  if (sz) {
171  double* c = &initialConditions_[0];
172  for (unsigned i = 0; i < sz; ++i)
173  *c++ = 0.0;
174  }
175 }

References HltBtagPostValidation_cff::c, getRHS(), mps_fire::i, initialConditions_, and AbsElectronicODERHS::numberOfNodes().

Referenced by QIE8Simulator(), and setRHS().

Member Data Documentation

◆ chargeNode_

unsigned QIE8Simulator::chargeNode_
private

Definition at line 163 of file QIE8Simulator.h.

Referenced by getCharge(), run(), and setRHS().

◆ historyBuffer_

std::vector<double> QIE8Simulator::historyBuffer_
private

Definition at line 158 of file QIE8Simulator.h.

Referenced by run().

◆ initialConditions_

std::vector<double> QIE8Simulator::initialConditions_
private

Definition at line 157 of file QIE8Simulator.h.

Referenced by run(), setInitialConditions(), and zeroInitialConditions().

◆ inputGain_

double QIE8Simulator::inputGain_
private

◆ integrateToGetCharge_

bool QIE8Simulator::integrateToGetCharge_
private

Definition at line 164 of file QIE8Simulator.h.

Referenced by getCharge(), QIE8Simulator(), run(), and setRHS().

◆ maxlen

const unsigned QIE8Simulator::maxlen = HcalInterpolatedPulse::maxlen
static

◆ outputGain_

double QIE8Simulator::outputGain_
private

◆ preampOutputCut_

double QIE8Simulator::preampOutputCut_
private

Definition at line 159 of file QIE8Simulator.h.

Referenced by getPreampOutputCut(), run(), and setPreampOutputCut().

◆ runCount_

unsigned long QIE8Simulator::runCount_
private

◆ solver_

RK4 QIE8Simulator::solver_
private

◆ useCubic_

bool QIE8Simulator::useCubic_
private

Definition at line 165 of file QIE8Simulator.h.

Referenced by controlOutput(), getCharge(), preampOutput(), and setRHS().

QIE8Simulator::preampOutputCut_
double preampOutputCut_
Definition: QIE8Simulator.h:159
InterpolatedPulse::setShape
void setShape(const Real *values, const unsigned len)
Definition: InterpolatedPulse.h:96
InterpolatedPulse::getIntegral
double getIntegral() const
Definition: InterpolatedPulse.h:242
mps_fire.i
i
Definition: mps_fire.py:355
ConstantStepOdeSolver::lastMaxT
double lastMaxT() const
Definition: ConstantStepOdeSolver.h:41
dqmiodumpmetadata.n
n
Definition: dqmiodumpmetadata.py:28
AbsODERHS::calc
virtual void calc(double t, const double *x, unsigned lenX, double *derivative)=0
ConstantStepOdeSolver::truncateCoordinate
void truncateCoordinate(unsigned which, double minValue, double maxValue)
Definition: ConstantStepOdeSolver.cc:144
QIE8Simulator::getCharge
double getCharge(const double t) const
Definition: QIE8Simulator.h:145
InterpolatedPulse::getStartTime
double getStartTime() const
Definition: InterpolatedPulse.h:115
AbsElectronicODERHS::controlNode
virtual unsigned controlNode() const
Definition: AbsElectronicODERHS.h:46
QIE8Simulator::initialConditions_
std::vector< double > initialConditions_
Definition: QIE8Simulator.h:157
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
QIE8Simulator::inputGain_
double inputGain_
Definition: QIE8Simulator.h:160
data-class-funcs.q
q
Definition: data-class-funcs.py:169
cms::cuda::assert
assert(be >=bs)
AbsElectronicODERHS::setParameter
void setParameter(const unsigned which, const double value)
Definition: AbsElectronicODERHS.h:70
QIE8Simulator::maxlen
static const unsigned maxlen
Definition: QIE8Simulator.h:13
QIE8Simulator::zeroInitialConditions
void zeroInitialConditions()
Definition: QIE8Simulator.cc:166
ReggeGribovPartonMC_EposLHC_2760GeV_PbPb_cfi.model
model
Definition: ReggeGribovPartonMC_EposLHC_2760GeV_PbPb_cfi.py:11
ConstantStepOdeSolver::interpolateCoordinate
double interpolateCoordinate(unsigned which, double t, bool cubic=false) const
Definition: ConstantStepOdeSolver.cc:159
AbsElectronicODERHS::outputNode
virtual unsigned outputNode() const =0
ConstantStepOdeSolver::setRHS
void setRHS(const AbsODERHS &rhs)
Definition: ConstantStepOdeSolver.h:30
dt
float dt
Definition: AMPTWrapper.h:136
AbsElectronicODERHS
Definition: AbsElectronicODERHS.h:16
alignCSCRings.s
s
Definition: alignCSCRings.py:92
RandomServiceHelper.t1
t1
Definition: RandomServiceHelper.py:256
AbsElectronicODERHS::setInputPulse
void setInputPulse(const Pulse &pulse)
Definition: AbsElectronicODERHS.h:31
InterpolatedPulse::setStartTime
void setStartTime(const double newStartTime)
Definition: InterpolatedPulse.h:121
FrontierCondition_GT_autoExpress_cfi.t0
t0
Definition: FrontierCondition_GT_autoExpress_cfi.py:148
QIE8Simulator::historyBuffer_
std::vector< double > historyBuffer_
Definition: QIE8Simulator.h:158
contentValuesCheck.values
values
Definition: contentValuesCheck.py:38
ConstantStepOdeSolver::getPeakTime
double getPeakTime(unsigned which) const
Definition: ConstantStepOdeSolver.cc:9
ConstantStepOdeSolver::setHistory
void setHistory(double dt, const double *data, unsigned dim, unsigned runLen)
Definition: ConstantStepOdeSolver.cc:239
OrderedSet.t
t
Definition: OrderedSet.py:90
QIE8Simulator::outputGain_
double outputGain_
Definition: QIE8Simulator.h:161
mitigatedMETSequence_cff.U
U
Definition: mitigatedMETSequence_cff.py:36
QIE8Simulator::validateGain
void validateGain() const
Definition: QIE8Simulator.cc:177
AbsODERHS
Definition: AbsODERHS.h:7
AbsElectronicODERHS::nParameters
virtual unsigned nParameters() const =0
QIE8Simulator::solver_
RK4 solver_
Definition: QIE8Simulator.h:156
QIE8Simulator::runCount_
unsigned long runCount_
Definition: QIE8Simulator.h:162
QIE8Simulator::adcTSWidth
static double adcTSWidth()
Definition: QIE8Simulator.h:135
a
double a
Definition: hdecay.h:119
AbsElectronicODERHS::numberOfNodes
virtual unsigned numberOfNodes() const =0
ConstantStepOdeSolver::getRHS
const AbsODERHS * getRHS() const
Definition: ConstantStepOdeSolver.h:34
QIE8Simulator::chargeNode_
unsigned chargeNode_
Definition: QIE8Simulator.h:163
QIE8Simulator::getRHS
const AbsElectronicODERHS & getRHS() const
Definition: QIE8Simulator.h:29
HltBtagPostValidation_cff.c
c
Definition: HltBtagPostValidation_cff.py:31
InterpolatedPulse::setIntegral
void setIntegral(const double newValue)
Definition: InterpolatedPulse.h:252
Exception
Definition: hltDiff.cc:246
ConstantStepOdeSolver::run
void run(const double *initialConditions, unsigned lenConditions, double dt, unsigned nSteps)
Definition: ConstantStepOdeSolver.cc:260
QIE8Simulator::integrateToGetCharge_
bool integrateToGetCharge_
Definition: QIE8Simulator.h:164
ConstantStepOdeSolver::interpolateIntegrated
double interpolateIntegrated(unsigned which, double t, bool cubic=false) const
Definition: ConstantStepOdeSolver.cc:198
ztail.d
d
Definition: ztail.py:151
InterpolatedPulse::getPeakValue
double getPeakValue() const
Definition: InterpolatedPulse.h:259
AbsElectronicODERHS::inputPulse
const HcalInterpolatedPulse & inputPulse() const
Definition: AbsElectronicODERHS.h:26
QIE8Simulator::modifiableRHS
AbsElectronicODERHS & modifiableRHS()
Definition: QIE8Simulator.h:138
AbsElectronicODERHS::getParameter
double getParameter(const unsigned which) const
Definition: AbsElectronicODERHS.h:77
eostools.which
def which(cmd)
Definition: eostools.py:336
InterpolatedPulse::setPeakValue
void setPeakValue(const double newValue)
Definition: InterpolatedPulse.h:268
AbsElectronicODERHS::setLeadingParameters
void setLeadingParameters(const double *values, const unsigned len)
Definition: AbsElectronicODERHS.h:93
g
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
Definition: Activities.doc:4
AbsElectronicODERHS::invalidNode
static const unsigned invalidNode
Definition: AbsElectronicODERHS.h:18
QIE8Simulator::useCubic_
bool useCubic_
Definition: QIE8Simulator.h:165