CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes | Friends
DTRecoConditions Class Reference

#include <DTRecoConditions.h>

Public Types

typedef std::map< uint32_t,
std::vector< double >
>::const_iterator 
const_iterator
 

Public Member Functions

const_iterator begin () const
 Access the data. More...
 
 DTRecoConditions ()
 Constructor. More...
 
const_iterator end () const
 
float get (const DTWireId &wireid, double *x=0) const
 
Get the value correspoding to the given WireId, 

/ using x[] as parameters of the parametrization when relevant More...

 
std::string getFormulaExpr () const
 
void set (const DTWireId &wireid, const std::vector< double > &values)
 Fill the payload. More...
 
void setFormulaExpr (const std::string &expr)
 Set the expression representing the formula used for parametrization. More...
 
void setVersion (int version)
 
int version () const
 Version numer specifying the structure of the payload. See .cc file for details. More...
 
virtual ~DTRecoConditions ()
 Destructor. More...
 

Private Member Functions

template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 

Private Attributes

std::string expression
 
TFormula * formula
 
int formulaType
 
std::map< uint32_t,
std::vector< double > > 
payload
 
int theVersion
 

Friends

class boost::serialization::access
 
template<typename CondSerializationT , typename Enabled >
struct cond::serialization::access
 

Detailed Description

DB object for storing per-SL DT reconstruction parameters (ttrig, vdrift, uncertainties), possibly with their dependency from external quantities (like position, angle, etc.)

Dependencies can be specified with the expression set by setFormula(string), representing: -a TFormula, e.g. "[0]+[1]*x", in the most general case; -special cases like "[0]" = fixed constant, that are implemented without calling TFormula.

Author
N. Amapane, G. Cerminara

Definition at line 26 of file DTRecoConditions.h.

Member Typedef Documentation

typedef std::map<uint32_t, std::vector<double> >::const_iterator DTRecoConditions::const_iterator

Definition at line 28 of file DTRecoConditions.h.

Constructor & Destructor Documentation

DTRecoConditions::DTRecoConditions ( )

Constructor.

Definition at line 22 of file DTRecoConditions.cc.

22  :
23  formula(0),
24  formulaType(0),
25  expression("[0]")
26 {}
std::string expression
DTRecoConditions::~DTRecoConditions ( )
virtual

Destructor.

Definition at line 28 of file DTRecoConditions.cc.

References formula.

28  {
29  delete formula;
30 }

Member Function Documentation

DTRecoConditions::const_iterator DTRecoConditions::begin ( void  ) const

Access the data.

Definition at line 71 of file DTRecoConditions.cc.

References payload.

71  {
72  return payload.begin();
73 }
std::map< uint32_t, std::vector< double > > payload
DTRecoConditions::const_iterator DTRecoConditions::end ( void  ) const

Definition at line 75 of file DTRecoConditions.cc.

References payload.

Referenced by Types.LuminosityBlockRange::cppID(), and Types.EventRange::cppID().

75  {
76  return payload.end();
77 }
std::map< uint32_t, std::vector< double > > payload
float DTRecoConditions::get ( const DTWireId wireid,
double *  x = 0 
) const

Get the value correspoding to the given WireId, 

/ using x[] as parameters of the parametrization when relevant

Definition at line 33 of file DTRecoConditions.cc.

References edm::hlt::Exception, expression, formula, formulaType, payload, DetId::rawId(), and DTLayerId::superlayerId().

Referenced by Options.Options::__getitem__(), betterConfigParser.BetterConfigParser::__updateDict(), rrapi.RRApi::columns(), rrapi.RRApi::count(), rrapi.RRApi::data(), betterConfigParser.BetterConfigParser::getCompares(), betterConfigParser.BetterConfigParser::getGeneral(), betterConfigParser.BetterConfigParser::getResultingSection(), rrapi.RRApi::report(), rrapi.RRApi::reports(), rrapi.RRApi::tables(), rrapi.RRApi::tags(), rrapi.RRApi::templates(), and rrapi.RRApi::workspaces().

33  {
34 
35  map<uint32_t, vector<double> >::const_iterator slIt = payload.find(wireid.superlayerId().rawId());
36  if(slIt == payload.end()) {
37  throw cms::Exception("InvalidInput") << "The SLId: " << wireid.superlayerId() << " is not in the paylaod map";
38  }
39  const vector<double>& par = slIt->second;
40 
41  // Initialize if this is the first call
42  if (formulaType==0) {
43  if (expression=="[0]") {
44  formulaType = 1;
45  } else if (expression=="par[step]") {
46  formulaType = 2;
47  } else {
48  formulaType = 99;
49  formula = new TFormula("DTExpr",expression.c_str());
50  }
51  }
52 
53  if (formulaType==1 || par.size()==1) {
54  // Return value is simply a constant. Assume this is the case also if only one parameter exists.
55  return par[0];
56  } else if (formulaType==2) {
57  // Special case: par[i] represents the value for step i
58  return par[unsigned (x[0])];
59  } else {
60  // Use the formula corresponding to expression.
61  return formula->EvalPar(x,par.data());
62  }
63 }
std::map< uint32_t, std::vector< double > > payload
std::map< uint32_t, std::vector< double > >::const_iterator const_iterator
DTSuperLayerId superlayerId() const
Return the corresponding SuperLayerId.
Definition: DTLayerId.h:59
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
std::string expression
Definition: DDAxes.h:10
std::string DTRecoConditions::getFormulaExpr ( ) const
inline

Definition at line 54 of file DTRecoConditions.h.

References expression.

54  {
55  return expression;
56  }
std::string expression
template<class Archive >
void DTRecoConditions::serialize ( Archive &  ar,
const unsigned int  version 
)
private
void DTRecoConditions::set ( const DTWireId wireid,
const std::vector< double > &  values 
)

Fill the payload.

Definition at line 66 of file DTRecoConditions.cc.

References payload, DTLayerId::superlayerId(), and makeHLTPrescaleTable::values.

Referenced by betterConfigParser.BetterConfigParser::getGeneral().

66  {
67  payload[wireid.superlayerId()] = values;
68 }
std::map< uint32_t, std::vector< double > > payload
DTSuperLayerId superlayerId() const
Return the corresponding SuperLayerId.
Definition: DTLayerId.h:59
void DTRecoConditions::setFormulaExpr ( const std::string &  expr)
inline

Set the expression representing the formula used for parametrization.

Definition at line 50 of file DTRecoConditions.h.

References expression.

50  {
51  expression=expr;
52  }
std::string expression
void DTRecoConditions::setVersion ( int  version)
inline

Definition at line 36 of file DTRecoConditions.h.

References theVersion, and version().

36  {
38  }
int version() const
Version numer specifying the structure of the payload. See .cc file for details.
int DTRecoConditions::version ( ) const
inline

Version numer specifying the structure of the payload. See .cc file for details.

Definition at line 41 of file DTRecoConditions.h.

References theVersion.

Referenced by setVersion().

41  {
42  return theVersion;
43  }

Friends And Related Function Documentation

friend class boost::serialization::access
friend

Definition at line 82 of file DTRecoConditions.h.

template<typename CondSerializationT , typename Enabled >
friend struct cond::serialization::access
friend

Definition at line 82 of file DTRecoConditions.h.

Member Data Documentation

std::string DTRecoConditions::expression
private

Definition at line 74 of file DTRecoConditions.h.

Referenced by get(), getFormulaExpr(), and setFormulaExpr().

TFormula* DTRecoConditions::formula
mutableprivate

Definition at line 68 of file DTRecoConditions.h.

Referenced by get(), and ~DTRecoConditions().

int DTRecoConditions::formulaType
mutableprivate

Definition at line 71 of file DTRecoConditions.h.

Referenced by get().

std::map<uint32_t, std::vector<double> > DTRecoConditions::payload
private

Definition at line 77 of file DTRecoConditions.h.

Referenced by begin(), end(), get(), and set().

int DTRecoConditions::theVersion
private

Definition at line 80 of file DTRecoConditions.h.

Referenced by setVersion(), and version().