CMS 3D CMS Logo

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

#include <MeasurementDistancemeter.h>

Inheritance diagram for MeasurementDistancemeter:
Measurement

Public Member Functions

void calculateSimulatedValue (ALIbool firstTime) override
 
void correctValueAndSigma () override
 
 MeasurementDistancemeter (const ALIint measdim, ALIstring &type, ALIstring &name)
 
 MeasurementDistancemeter ()
 
void setConversionFactor (const std::vector< ALIstring > &wordlist) override
 
 ~MeasurementDistancemeter () override
 
- Public Member Functions inherited from Measurement
void addAffectingEntriesFromOptO (const OpticalObject *optoP)
 
void AddOptOListItem (OpticalObject *opto)
 
void AddOptONameListItem (ALIstring optos)
 
const std::vector< Entry * > & affectingEntryList () const
 
void buildAffectingEntryList ()
 
void buildOptOList ()
 
virtual void buildOptONamesList (const std::vector< ALIstring > &wl)
 
void calculateOriginalSimulatedValue ()
 
void construct ()
 
void constructFromOA (OpticalAlignMeasurementInfo &measInfo)
 
void copyMeas (Measurement *meas, const std::string &subsstr1, const std::string &subsstr2)
 
std::vector< ALIdoubleDerivativeRespectEntry (Entry *entry)
 
const ALIuint dim () const
 
void DumpBadOrderOptOs ()
 
void fillData (ALIuint coor, const std::vector< ALIstring > &wl)
 
void fillData (ALIuint coor, OpticalAlignParam *oaParam)
 
const CLHEP::Hep3Vector & getLightRayDirection () const
 
const CLHEP::Hep3Vector & getLightRayPosition () const
 
ALIstring getMeasuringBehaviour (const std::vector< OpticalObject * >::const_iterator vocite)
 
const OpticalObjectgetPreviousOptO (const OpticalObject *Popto) const
 
 Measurement (const ALIint measdim, ALIstring &type, ALIstring &name)
 
 Measurement ()
 
const ALIstringname () const
 
const std::vector
< OpticalObject * > & 
OptOList () const
 
const std::vector< ALIstring > & OptONameList () const
 
void postConstruct ()
 
const ALIstringsensorName ()
 
void SetDimension (ALIuint dim)
 
void setLightRayDirection (const CLHEP::Hep3Vector &lightRayDirection)
 
void setLightRayPosition (const CLHEP::Hep3Vector &lightRayPosition)
 
void setName ()
 
void setSigma (ALIint coor, ALIdouble val)
 
void setType (ALIstring type)
 
void setValue (ALIint coor, ALIdouble val)
 
void setValueSimulated (ALIint coor, ALIdouble value)
 
void setValueSimulated_orig (ALIint coor, ALIdouble value)
 
virtual void setXlaserLine (ALIuint ii, int val)
 
const ALIdoublesigma () const
 
const ALIdouble sigma (ALIuint ii) const
 
virtual const ALIdouble sigmaDimensionFactor () const
 
const ALIstringtype () const
 
const ALIdoublevalue () const
 
const ALIdouble value (ALIuint ii) const
 
virtual const ALIdouble valueDimensionFactor () const
 
bool valueIsSimulated (ALIint coor)
 
const ALIdouble valueSimulated (ALIuint ii) const
 
const ALIdouble valueSimulated_orig (ALIuint ii) const
 
const ALIstring valueType (ALIuint ii) const
 
virtual int xlaserLine (ALIuint ii)
 
virtual ~Measurement ()
 

Private Attributes

ALIdouble theFactor
 
ALIdouble theFactorSigma
 

Additional Inherited Members

- Static Public Member Functions inherited from Measurement
static ALIstring getCurrentDate ()
 
static ALIstring getCurrentTime ()
 
static ALIstringmeasurementsFileName ()
 
static void setCurrentDate (const std::vector< ALIstring > &wl)
 set the date of the current measurement More...
 
static void setMeasurementsFileName (const ALIstring &filename)
 
- Static Public Attributes inherited from Measurement
static ALIdouble cameraScaleFactor = 1.
 
static ALIbool only1 = false
 
static ALIstring only1Date = ""
 
static ALIstring only1Time = ""
 
- Protected Member Functions inherited from Measurement
void printStartCalculateSimulatedValue (const Measurement *meas)
 
void Substitute2p (ALIstring &ref, const ALIstring &firstref, int NtwoPoints)
 

Detailed Description

Definition at line 18 of file MeasurementDistancemeter.h.

Constructor & Destructor Documentation

MeasurementDistancemeter::MeasurementDistancemeter ( const ALIint  measdim,
ALIstring type,
ALIstring name 
)
inline

Definition at line 20 of file MeasurementDistancemeter.h.

21  : Measurement(measdim, type, name), theFactor(1.), theFactorSigma(0.){};
const ALIstring & name() const
Definition: Measurement.h:86
MeasurementDistancemeter::MeasurementDistancemeter ( )
inline

Definition at line 22 of file MeasurementDistancemeter.h.

22 {};
MeasurementDistancemeter::~MeasurementDistancemeter ( )
inlineoverride

Definition at line 23 of file MeasurementDistancemeter.h.

23 {};

Member Function Documentation

void MeasurementDistancemeter::calculateSimulatedValue ( ALIbool  firstTime)
overridevirtual

Reimplemented from Measurement.

Definition at line 25 of file MeasurementDistancemeter.cc.

References SplitLinear::begin, EcnaPython_AdcPeg12_S1_10_R170298_1_0_150_Dee0::cerr, gather_cfg::cout, ALIUtils::debug, Measurement::DumpBadOrderOptOs(), cppFunctionSkipper::exception, ALIUtils::getFirstTime(), GlobalOptionMgr::getInstance(), Measurement::getMeasuringBehaviour(), GlobalOptionMgr::GlobalOptions(), Measurement::name(), Measurement::OptOList(), LightRay::point(), Measurement::printStartCalculateSimulatedValue(), findQualityFiles::size, and Measurement::type().

25  {
26  if (ALIUtils::debug >= 2)
27  printStartCalculateSimulatedValue(this); // important for Examples/FakeMeas
28 
29  //---------- Loop list of OptO that take part in measurement
30  std::vector<OpticalObject*>::const_iterator vocite = OptOList().begin();
31  if (ALIUtils::debug >= 5)
32  std::cout << "OptOList size= " << OptOList().size() << std::endl;
33 
34  //----- Check that there are only two measurements that are 'distance_target' and 'distancemeter'
35  ALIbool right_objects = false;
36  if (OptOList().size() == 2) {
37  if ((*vocite)->type() == "distance_target" &&
38  ((*(vocite + 1))->type() == "distancemeter" || (*(vocite + 1))->type() == "distancemeter1dim")) {
39  right_objects = true;
40  }
41  }
42  if (!right_objects) {
43  std::cerr << "!!! ERROR in MeasurementDistancemeter: " << name()
44  << " There should only be two objects of type 'distance_target' and 'distancemeter' " << std::endl;
45  std::cerr << " 1st: " << (*vocite)->name() << " 2nd: " << (*vocite + 1)->name() << std::endl;
46  std::cerr << " 1st " << (*vocite)->type() << " 2nd " << (*vocite + 1)->type() << std::endl;
47 
50  }
51 
52 #ifdef COCOA_VIS
53  ALIVisLightPath* vispath = 0;
54  if (ALIUtils::getFirstTime()) {
56  if (gomgr->GlobalOptions()["VisWriteIguana"] > 1) {
57  vispath = IgCocoaFileMgr::getInstance().newLightPath(name());
58  }
59  }
60 #endif
61 
62  ALIuint isec = 0; //security variable to check OptOList().size()
63  for (vocite = OptOList().begin(); vocite != OptOList().end(); ++vocite) {
64  if (ALIUtils::debug >= 2)
65  std::cout << std::endl << "@@@@ LR:OBJECT " << (*vocite)->name() << std::endl;
66  isec++;
67 
68  //---------- Get the behaviour of the object w.r.t the measurement (if it reflects the light, let it traverse it, ...)
69  ALIstring behav = getMeasuringBehaviour(vocite);
70 
71  //---------- participate in measurement
72  LightRay lightray; //it is not used in this measurement type
73  (*vocite)->participateInMeasurement(lightray, *this, behav);
74 
75 #ifdef COCOA_VIS
76  if (ALIUtils::getFirstTime()) {
78  if (gomgr->GlobalOptions()["VisWriteVRML"] > 1) {
79  ALIVRMLMgr::getInstance().addLightPoint(lightray.point());
80  if (ALIUtils::debug >= 5)
81  std::cout << "ALIVRMLMg addLightPoint " << lightray.point() << (*vocite)->name() << std::endl;
82  }
83  if (gomgr->GlobalOptions()["VisWriteIguana"] > 1) {
84  vispath->addLightPoint(lightray.point(), *vocite);
85  }
86  }
87 #endif
88 
89  if (isec > OptOList().size()) {
90  std::cerr << "ERROR DE PROGRAMACION EN GetSimulatedValue" << std::endl;
92  }
93  }
94 
95  if (ALIUtils::debug >= 5)
96  std::cout << "end calculateSimulatedValue" << std::endl;
97 }
static ALIint debug
Definition: ALIUtils.h:34
static GlobalOptionMgr * getInstance()
ALIstring getMeasuringBehaviour(const std::vector< OpticalObject * >::const_iterator vocite)
Definition: Measurement.cc:568
void DumpBadOrderOptOs()
Definition: Measurement.cc:469
bool ALIbool
Definition: CocoaGlobals.h:19
const CLHEP::Hep3Vector & point() const
Definition: LightRay.h:57
const std::vector< OpticalObject * > & OptOList() const
Definition: Measurement.h:101
static ALIbool getFirstTime()
Definition: ALIUtils.h:87
std::map< ALIstring, ALIdouble, std::less< ALIstring > > & GlobalOptions()
const ALIstring & type() const
Definition: Measurement.h:84
std::string ALIstring
Definition: CocoaGlobals.h:9
void printStartCalculateSimulatedValue(const Measurement *meas)
Definition: Measurement.cc:427
const ALIstring & name() const
Definition: Measurement.h:86
tuple cout
Definition: gather_cfg.py:144
tuple size
Write out results.
unsigned int ALIuint
Definition: CocoaGlobals.h:17
void MeasurementDistancemeter::correctValueAndSigma ( )
overridevirtual

Reimplemented from Measurement.

Definition at line 138 of file MeasurementDistancemeter.cc.

References gather_cfg::cout, ALIUtils::debug, Measurement::setSigma(), Measurement::setValue(), Measurement::sigma(), theFactor, hgcalPerformanceValidation::val, and Measurement::value().

138  {
139  ALIdouble val = value()[0];
140  ALIdouble sig = sigma()[0];
141  if (ALIUtils::debug >= 4)
142  std::cout << "MeasurementDistancemeter::correctValueAndSigma: old value" << val << " +- " << sig << std::endl;
143 
144  //- std::cout << "FACTOR " << theFactor << "correct " << val << " " << thePedestal << std::endl;
145  val *= theFactor;
146  //-------- Do not correct the sigma!!!!
147  //- sig *= theFactor;
148  if (ALIUtils::debug >= 4)
149  std::cout << "MeasuremenDistancemeter::correctValueAndSigma: new value " << val << " +- " << sig << std::endl;
150  setValue(0, val);
151  setSigma(0, sig);
152 }
long double ALIdouble
Definition: CocoaGlobals.h:11
void setValue(ALIint coor, ALIdouble val)
Definition: Measurement.h:129
static ALIint debug
Definition: ALIUtils.h:34
void setSigma(ALIint coor, ALIdouble val)
Definition: Measurement.h:131
const ALIdouble * sigma() const
Definition: Measurement.h:112
const ALIdouble * value() const
Definition: Measurement.h:109
tuple cout
Definition: gather_cfg.py:144
void MeasurementDistancemeter::setConversionFactor ( const std::vector< ALIstring > &  wordlist)
overridevirtual

Reimplemented from Measurement.

Definition at line 104 of file MeasurementDistancemeter.cc.

References EcnaPython_AdcPeg12_S1_10_R170298_1_0_150_Dee0::cerr, ALIUtils::dumpVS(), cppFunctionSkipper::exception, GlobalOptionMgr::getInstance(), GlobalOptionMgr::GlobalOptions(), ALIUtils::IsNumber(), theFactor, and theFactorSigma.

104  {
105  //--------- Check that the format is OK
106  if (wordlist.size() == 1)
107  return;
108  if (wordlist.size() != 4 || !ALIUtils::IsNumber(wordlist[1]) || !ALIUtils::IsNumber(wordlist[3]) ||
109  wordlist[2] != ALIstring("+-")) {
110  std::cerr << "!! Distancemeter Measurement setConversionFactor: WRONG FORMAT " << std::endl
111  << "It should be: DISTANCEMETER factor +- error " << std::endl
112  << "It is: ";
113  ALIUtils::dumpVS(wordlist, " ", std::cerr);
114  std::exception();
115  }
116  theFactor = atof(wordlist[1].c_str());
117  //------ correct by dimension of value of tiltmeter
119  ALIint dimfac = ALIint(gomgr->GlobalOptions()[ALIstring("distancemeter_meas_value_dimension")]);
120  if (dimfac == 0) {
121  theFactor *= 1.;
122  } else if (dimfac == 1) {
123  theFactor *= 1.E-3;
124  } else if (dimfac == 2) {
125  theFactor *= 1.E-6;
126  } else {
127  std::cerr
128  << " !!!EXITING: error in global option distancemeter_meas_value_dimension, it can only take values 0,1,2, not "
129  << dimfac;
130  std::exception();
131  }
132  theFactorSigma = atof(wordlist[3].c_str());
133 }
int ALIint
Definition: CocoaGlobals.h:15
static GlobalOptionMgr * getInstance()
static int IsNumber(const ALIstring &str)
Definition: ALIUtils.cc:33
static void dumpVS(const std::vector< ALIstring > &wl, const std::string &msg, std::ostream &outs=std::cout)
dumps a vector of strings with a message to outs
Definition: ALIUtils.cc:465
std::map< ALIstring, ALIdouble, std::less< ALIstring > > & GlobalOptions()
std::string ALIstring
Definition: CocoaGlobals.h:9

Member Data Documentation

ALIdouble MeasurementDistancemeter::theFactor
private

Definition at line 35 of file MeasurementDistancemeter.h.

Referenced by correctValueAndSigma(), and setConversionFactor().

ALIdouble MeasurementDistancemeter::theFactorSigma
private

Definition at line 36 of file MeasurementDistancemeter.h.

Referenced by setConversionFactor().