CMS 3D CMS Logo

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

#include <MeasurementDistancemeter3dim.h>

Inheritance diagram for MeasurementDistancemeter3dim:
Measurement

Public Member Functions

void calculateSimulatedValue (ALIbool firstTime) override
 
void correctValueAndSigma () override
 
 MeasurementDistancemeter3dim ()
 
 MeasurementDistancemeter3dim (const ALIint measdim, ALIstring &type, ALIstring &name)
 
void setConversionFactor (const std::vector< ALIstring > &wordlist) override
 
 ~MeasurementDistancemeter3dim () 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 ()
 
 Measurement (const ALIint measdim, ALIstring &type, ALIstring &name)
 
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 MeasurementDistancemeter3dim.h.

Constructor & Destructor Documentation

◆ MeasurementDistancemeter3dim() [1/2]

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

Definition at line 20 of file MeasurementDistancemeter3dim.h.

21  : Measurement(measdim, type, name), theFactor(1.), theFactorSigma(0.){};

◆ MeasurementDistancemeter3dim() [2/2]

MeasurementDistancemeter3dim::MeasurementDistancemeter3dim ( )
inline

Definition at line 22 of file MeasurementDistancemeter3dim.h.

22 {};

◆ ~MeasurementDistancemeter3dim()

MeasurementDistancemeter3dim::~MeasurementDistancemeter3dim ( )
inlineoverride

Definition at line 23 of file MeasurementDistancemeter3dim.h.

23 {};

Member Function Documentation

◆ calculateSimulatedValue()

void MeasurementDistancemeter3dim::calculateSimulatedValue ( ALIbool  firstTime)
overridevirtual

Reimplemented from Measurement.

Definition at line 25 of file MeasurementDistancemeter3dim.cc.

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 'distancemeter3dim'
35  ALIbool right_objects = false;
36  if (OptOList().size() == 2) {
37  if ((*vocite)->type() == "distance_target" && ((*(vocite + 1))->type() == "distancemeter3dim")) {
38  right_objects = true;
39  }
40  }
41  if (!right_objects) {
42  std::cerr << "!!! ERROR in MeasurementDistancemeter3dim: " << name()
43  << " There should only be two objects of type 'distance_target' and 'distancemeter3dim' " << std::endl;
44  std::cerr << " 1st " << (*vocite)->name() << " 2nd " << (*vocite + 1)->name() << std::endl;
45  std::cerr << " 1st " << (*vocite)->type() << " 2nd " << (*vocite + 1)->type() << std::endl;
46 
49  }
50 
51 #ifdef COCOA_VIS
52  ALIVisLightPath* vispath = 0;
53  if (ALIUtils::getFirstTime()) {
55  if (gomgr->GlobalOptions()["VisWriteIguana"] > 1) {
56  vispath = IgCocoaFileMgr::getInstance().newLightPath(name());
57  }
58  }
59 #endif
60 
61  ALIuint isec = 0; //security variable to check OptOList().size()
62  for (vocite = OptOList().begin(); vocite != OptOList().end(); ++vocite) {
63  if (ALIUtils::debug >= 2)
64  std::cout << std::endl << "@@@@ LR:OBJECT " << (*vocite)->name() << std::endl;
65  isec++;
66 
67  //---------- Get the behaviour of the object w.r.t the measurement (if it reflects the light, let it traverse it, ...)
68  ALIstring behav = getMeasuringBehaviour(vocite);
69 
70  //---------- participate in measurement
71  LightRay lightray; //it is not used in this measurement type
72  (*vocite)->participateInMeasurement(lightray, *this, behav);
73 
74 #ifdef COCOA_VIS
75  if (ALIUtils::getFirstTime()) {
77  if (gomgr->GlobalOptions()["VisWriteVRML"] > 1) {
78  ALIVRMLMgr::getInstance().addLightPoint(lightray.point());
79  if (ALIUtils::debug >= 5)
80  std::cout << "ALIVRMLMg addLightPoint " << lightray.point() << (*vocite)->name() << std::endl;
81  }
82  if (gomgr->GlobalOptions()["VisWriteIguana"] > 1) {
83  vispath->addLightPoint(lightray.point(), *vocite);
84  }
85  }
86 #endif
87 
88  if (isec > OptOList().size()) {
89  std::cerr << "ERROR DE PROGRAMACION EN GetSimulatedValue" << std::endl;
91  }
92  }
93 
94  if (ALIUtils::debug >= 5)
95  std::cout << "end calculateSimulatedValue" << std::endl;
96 }

References begin, beam_dqm_sourceclient-live_cfg::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().

◆ correctValueAndSigma()

void MeasurementDistancemeter3dim::correctValueAndSigma ( )
overridevirtual

Reimplemented from Measurement.

Definition at line 137 of file MeasurementDistancemeter3dim.cc.

137  {
138  ALIdouble val = value()[0];
139  ALIdouble sig = sigma()[0];
140  if (ALIUtils::debug >= 4)
141  std::cout << "MeasurementDistancemeter3dim::correctValueAndSigma: old value" << val << " +- " << sig << std::endl;
142 
143  //- std::cout << "FACTOR " << theFactor << "correct " << val << " " << thePedestal << std::endl;
144  val *= theFactor;
145  //-------- Do not correct the sigma!!!!
146  //- sig *= theFactor;
147  if (ALIUtils::debug >= 4)
148  std::cout << "MeasuremenDistancemeter3dim::correctValueAndSigma: new value " << val << " +- " << sig << std::endl;
149  setValue(0, val);
150  setSigma(0, sig);
151 }

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

◆ setConversionFactor()

void MeasurementDistancemeter3dim::setConversionFactor ( const std::vector< ALIstring > &  wordlist)
overridevirtual

Reimplemented from Measurement.

Definition at line 103 of file MeasurementDistancemeter3dim.cc.

103  {
104  //--------- Check that the format is OK
105  if (wordlist.size() == 1)
106  return;
107  if (wordlist.size() != 4 || !ALIUtils::IsNumber(wordlist[1]) || !ALIUtils::IsNumber(wordlist[3]) ||
108  wordlist[2] != ALIstring("+-")) {
109  std::cerr << "!! Distancemeter3dim Measurement setConversionFactor: WRONG FORMAT " << std::endl
110  << "It should be: DISTANCEMETER3DIM factor +- error " << std::endl
111  << "It is: ";
112  ALIUtils::dumpVS(wordlist, " ", std::cerr);
113  std::exception();
114  }
115  theFactor = atof(wordlist[1].c_str());
116  //------ correct by dimension of value of tiltmeter
118  ALIint dimfac = ALIint(gomgr->GlobalOptions()[ALIstring("distancemeter_meas_value_dimension")]);
119  if (dimfac == 0) {
120  theFactor *= 1.;
121  } else if (dimfac == 1) {
122  theFactor *= 1.E-3;
123  } else if (dimfac == 2) {
124  theFactor *= 1.E-6;
125  } else {
126  std::cerr << " !!!EXITING: error in global option distancemeter3dim_meas_value_dimension, it can only take values "
127  "0,1,2, not "
128  << dimfac;
129  std::exception();
130  }
131  theFactorSigma = atof(wordlist[3].c_str());
132 }

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

Member Data Documentation

◆ theFactor

ALIdouble MeasurementDistancemeter3dim::theFactor
private

Definition at line 35 of file MeasurementDistancemeter3dim.h.

Referenced by correctValueAndSigma(), and setConversionFactor().

◆ theFactorSigma

ALIdouble MeasurementDistancemeter3dim::theFactorSigma
private

Definition at line 36 of file MeasurementDistancemeter3dim.h.

Referenced by setConversionFactor().

ALIbool
bool ALIbool
Definition: CocoaGlobals.h:19
Measurement::printStartCalculateSimulatedValue
void printStartCalculateSimulatedValue(const Measurement *meas)
Definition: Measurement.cc:427
Measurement::getMeasuringBehaviour
ALIstring getMeasuringBehaviour(const std::vector< OpticalObject * >::const_iterator vocite)
Definition: Measurement.cc:568
GlobalOptionMgr::GlobalOptions
std::map< ALIstring, ALIdouble, std::less< ALIstring > > & GlobalOptions()
Definition: GlobalOptionMgr.h:31
GlobalOptionMgr
Definition: GlobalOptionMgr.h:18
GlobalOptionMgr::getInstance
static GlobalOptionMgr * getInstance()
Definition: GlobalOptionMgr.cc:18
gather_cfg.cout
cout
Definition: gather_cfg.py:144
ALIstring
std::string ALIstring
Definition: CocoaGlobals.h:9
ALIUtils::IsNumber
static int IsNumber(const ALIstring &str)
Definition: ALIUtils.cc:33
LightRay::point
const CLHEP::Hep3Vector & point() const
Definition: LightRay.h:57
Measurement::Measurement
Measurement()
Definition: Measurement.h:31
ALIUtils::getFirstTime
static ALIbool getFirstTime()
Definition: ALIUtils.h:87
ALIUtils::debug
static ALIint debug
Definition: ALIUtils.h:34
MeasurementDistancemeter3dim::theFactorSigma
ALIdouble theFactorSigma
Definition: MeasurementDistancemeter3dim.h:36
cppFunctionSkipper.exception
exception
Definition: cppFunctionSkipper.py:10
LightRay
Definition: LightRay.h:20
beam_dqm_sourceclient-live_cfg.cerr
cerr
Definition: beam_dqm_sourceclient-live_cfg.py:17
ALIdouble
long double ALIdouble
Definition: CocoaGlobals.h:11
ALIuint
unsigned int ALIuint
Definition: CocoaGlobals.h:17
Measurement::OptOList
const std::vector< OpticalObject * > & OptOList() const
Definition: Measurement.h:101
Measurement::type
const ALIstring & type() const
Definition: Measurement.h:84
MeasurementDistancemeter3dim::theFactor
ALIdouble theFactor
Definition: MeasurementDistancemeter3dim.h:35
Measurement::DumpBadOrderOptOs
void DumpBadOrderOptOs()
Definition: Measurement.cc:469
Measurement::setSigma
void setSigma(ALIint coor, ALIdouble val)
Definition: Measurement.h:131
ALIUtils::dumpVS
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
type
type
Definition: HCALResponse.h:21
heppy_batch.val
val
Definition: heppy_batch.py:351
Measurement::name
const ALIstring & name() const
Definition: Measurement.h:86
ALIint
int ALIint
Definition: CocoaGlobals.h:15
Measurement::value
const ALIdouble * value() const
Definition: Measurement.h:109
begin
#define begin
Definition: vmac.h:32
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443
Measurement::setValue
void setValue(ALIint coor, ALIdouble val)
Definition: Measurement.h:129
Measurement::sigma
const ALIdouble * sigma() const
Definition: Measurement.h:112