CommonTools
Utils
src
formulaUnaryMinusEvaluator.h
Go to the documentation of this file.
1
#ifndef CommonTools_Utils_formulaUnaryMinusEvaluator_h
2
#define CommonTools_Utils_formulaUnaryMinusEvaluator_h
3
// -*- C++ -*-
4
//
5
// Package: CommonTools/Utils
6
// Class : formulaUnaryMinusEvaluator
7
//
16
//
17
// Original Author: Christopher Jones
18
// Created: Wed, 23 Sep 2015 17:41:33 GMT
19
//
20
21
// system include files
22
#include <memory>
23
#include <functional>
24
25
// user include files
26
#include "
formulaEvaluatorBase.h
"
27
28
// forward declarations
29
30
namespace
reco
{
31
namespace
formula
{
32
class
UnaryMinusEvaluator
:
public
EvaluatorBase
{
33
public
:
34
explicit
UnaryMinusEvaluator
(std::shared_ptr<EvaluatorBase> iArg)
35
:
EvaluatorBase
(
Precedence
::kUnaryMinusOperator),
m_arg
(
std
::
move
(iArg)) {}
36
37
// ---------- const member functions ---------------------
38
double
evaluate
(
double
const
* iVariables,
double
const
* iParameters)
const
final
{
39
return
-1. *
m_arg
->evaluate(iVariables, iParameters);
40
}
41
std::vector<std::string>
abstractSyntaxTree
()
const
final {
42
auto
ret
=
shiftAST
(
m_arg
->abstractSyntaxTree());
43
ret
.emplace(
ret
.begin(),
"unary minus"
);
44
return
ret
;
45
}
46
47
private
:
48
UnaryMinusEvaluator
(
const
UnaryMinusEvaluator
&) =
delete
;
49
50
const
UnaryMinusEvaluator
&
operator=
(
const
UnaryMinusEvaluator
&) =
delete
;
51
52
// ---------- member data --------------------------------
53
std::shared_ptr<EvaluatorBase>
m_arg
;
54
};
55
}
// namespace formula
56
}
// namespace reco
57
58
#endif
runTheMatrix.ret
ret
prodAgent to be discontinued
Definition:
runTheMatrix.py:355
reco::formula::EvaluatorBase
Definition:
formulaEvaluatorBase.h:34
reco::formula::UnaryMinusEvaluator::UnaryMinusEvaluator
UnaryMinusEvaluator(std::shared_ptr< EvaluatorBase > iArg)
Definition:
formulaUnaryMinusEvaluator.h:34
pfMETCorrectionType0_cfi.formula
formula
Definition:
pfMETCorrectionType0_cfi.py:46
reco::formula::EvaluatorBase::Precedence
Precedence
Definition:
formulaEvaluatorBase.h:36
reco
fixed size matrix
Definition:
AlignmentAlgorithmBase.h:45
watchdog.const
const
Definition:
watchdog.py:83
reco::formula::UnaryMinusEvaluator::operator=
const UnaryMinusEvaluator & operator=(const UnaryMinusEvaluator &)=delete
reco::formula::UnaryMinusEvaluator::evaluate
double evaluate(double const *iVariables, double const *iParameters) const final
Definition:
formulaUnaryMinusEvaluator.h:38
reco::formula::UnaryMinusEvaluator::m_arg
std::shared_ptr< EvaluatorBase > m_arg
Definition:
formulaUnaryMinusEvaluator.h:53
reco::formula::UnaryMinusEvaluator::abstractSyntaxTree
std::vector< std::string > abstractSyntaxTree() const final
Definition:
formulaUnaryMinusEvaluator.h:41
reco::formula::shiftAST
std::vector< std::string > shiftAST(std::vector< std::string > child)
Definition:
formulaEvaluatorBase.cc:36
eostools.move
def move(src, dest)
Definition:
eostools.py:511
std
Definition:
JetResolutionObject.h:76
formulaEvaluatorBase.h
reco::formula::UnaryMinusEvaluator
Definition:
formulaUnaryMinusEvaluator.h:32
Generated for CMSSW Reference Manual by
1.8.16