CMS 3D CMS Logo

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

#include <MeasurementDiffEntry.h>

Inheritance diagram for MeasurementDiffEntry:
Measurement

Public Member Functions

void buildOptONamesList (const std::vector< ALIstring > &wl) override
 
void calculateSimulatedValue (ALIbool firstTime) override
 
 MeasurementDiffEntry (const ALIint measdim, ALIstring &type, ALIstring &name)
 
 MeasurementDiffEntry ()
 
 ~MeasurementDiffEntry () 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 ()
 
void calculateOriginalSimulatedValue ()
 
void construct ()
 
void constructFromOA (OpticalAlignMeasurementInfo &measInfo)
 
void copyMeas (Measurement *meas, const std::string &subsstr1, const std::string &subsstr2)
 
virtual void correctValueAndSigma ()
 
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 ()
 
virtual void setConversionFactor (const std::vector< ALIstring > &wordlist)
 
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

ALIstring theEntryNameFirst
 
ALIstring theEntryNameSecond
 

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 MeasurementDiffEntry.h.

Constructor & Destructor Documentation

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

Definition at line 21 of file MeasurementDiffEntry.h.

22  : Measurement( measdim, type, name ){};
type
Definition: HCALResponse.h:21
const ALIstring & name() const
Definition: Measurement.h:90
MeasurementDiffEntry::MeasurementDiffEntry ( )
inline

Definition at line 23 of file MeasurementDiffEntry.h.

23 { };
MeasurementDiffEntry::~MeasurementDiffEntry ( )
inlineoverride

Definition at line 24 of file MeasurementDiffEntry.h.

References buildOptONamesList(), and calculateSimulatedValue().

24 { };

Member Function Documentation

void MeasurementDiffEntry::buildOptONamesList ( const std::vector< ALIstring > &  wl)
overridevirtual

Reimplemented from Measurement.

Definition at line 26 of file MeasurementDiffEntry.cc.

References Measurement::AddOptONameListItem(), MessageLogger_cfi::cerr, ALIFileIn::ErrorInLine(), cmsRelvalreport::exit, ALIFileIn::getInstance(), cuy::ii, Model::SDFName(), theEntryNameFirst, and theEntryNameSecond.

Referenced by ~MeasurementDiffEntry().

27 {
28 
29  int NPairs = (wl.size()+1)/2; // Number of OptO names ( pair of name and '&' )
30 
31  //--------- Fill list with names
32  for ( int ii=0; ii<NPairs; ii++ ) {
33  //--- take out Entry names from object names
34  int isl = wl[ii*2].rfind("/");
35  AddOptONameListItem( wl[ii*2].substr(0,isl) );
36  // Check for separating '&'
37  if (ii != NPairs-1 && wl[2*ii+1] != ALIstring("&") ) {
39  std::cerr << "!!! Measured Optical Objects should be separated by '&', not by"
40  << wl[2*ii+1] << std::endl;
41  exit(2);
42  }
43  //---- Fill entry names
44  if( ii == 0 ){
45  theEntryNameFirst = wl[ii*2].substr(isl+1,999);
46  }else if( ii == 1 ){
47  theEntryNameSecond = wl[ii*2].substr(isl+1,999);
48  }
49 
50  }
51 
52 }
static ALIFileIn & getInstance(const ALIstring &name)
Definition: ALIFileIn.cc:23
static ALIstring & SDFName()
the name of the System Description File
Definition: Model.h:86
void AddOptONameListItem(ALIstring optos)
Definition: Measurement.h:184
ii
Definition: cuy.py:588
void ErrorInLine()
Definition: ALIFileIn.cc:204
std::string ALIstring
Definition: CocoaGlobals.h:9
void MeasurementDiffEntry::calculateSimulatedValue ( ALIbool  firstTime)
overridevirtual

Reimplemented from Measurement.

Definition at line 57 of file MeasurementDiffEntry.cc.

References funct::abs(), begin, MessageLogger_cfi::cerr, gather_cfg::cout, ALIUtils::debug, Measurement::DumpBadOrderOptOs(), MillePedeFileConverter_cfg::e, cppFunctionSkipper::exception, Model::getEntryByName(), ALIUtils::getFirstTime(), GlobalOptionMgr::getInstance(), GlobalOptionMgr::GlobalOptions(), Entry::name(), Measurement::name(), Measurement::OptOList(), Measurement::printStartCalculateSimulatedValue(), Measurement::setValueSimulated(), findQualityFiles::size, theEntryNameFirst, theEntryNameSecond, Measurement::value(), Entry::valueDisplaced(), and Measurement::valueSimulated().

Referenced by ~MeasurementDiffEntry().

58 {
59 
60  if( ALIUtils::debug >= 2) printStartCalculateSimulatedValue( this ); // important for Examples/FakeMeas
61 
62  //---------- Loop list of OptO that take part in measurement
63  std::vector<OpticalObject*>::const_iterator vocite = OptOList().begin();
64  if( ALIUtils::debug >= 5) std::cout << "OptOList size" <<OptOList().size() << std::endl;
65 
66  //----- Check that there are only two objects
67  if( OptOList().size() == !true ) {
68  std::cerr << "!!! ERROR in MeasurementDiffEntry: " << name() << " There should only be two objects " << std::endl;
69  std::cerr << " 1st " << (*vocite)->name() << " 2nd " << (*vocite+1)->name() << std::endl;
72  }
73 
74 #ifdef COCOA_VIS
75  ALIVisLightPath* vispath = 0;
76  if( ALIUtils::getFirstTime() ) {
78  if(gomgr->GlobalOptions()["VisWriteIguana"] > 1) {
79  vispath = IgCocoaFileMgr::getInstance().newLightPath( name() );
80  }
81  }
82 #endif
83 
84  //--- This is a special 'measurement': it represents the fact that you have measured two entries one relative to the other (e.g. relative angle of two objects)
85  Entry* entry1 = Model::getEntryByName( (*(OptOList().begin()))->longName(), theEntryNameFirst );
86  Entry* entry2 = Model::getEntryByName( (*(OptOList().begin()+1))->longName(), theEntryNameSecond );
87  if( ALIUtils::debug >= 5) std::cout << " entry1 " << (*(OptOList().begin()))->longName() << "/" << entry1->name() << " ->valueDisplaced() " << entry1->valueDisplaced() << " entry2 " << (*(OptOList().begin()+1))->longName() << "/" << entry2->name() << " ->valueDisplaced() " << entry2->valueDisplaced() << std::endl;
88  setValueSimulated( 0, entry1->valueDisplaced() - entry2->valueDisplaced() );
89 
90  if (ALIUtils::debug >= 2) {
91  ALIdouble detD = 1000*valueSimulated(0); if(std::abs(detD) <= 1.e-9 ) detD = 0.;
92  std::cout << "REAL value: " <<"D: " << 1000.*value()[0] << " (mm) " << (this)->name()
93  << " DIFF= " << detD-1000*value()[0] << std::endl;
94  std::cout << "SIMU value: " << "D: " << detD << " (mm) " << (this)->name() << std::endl;
95  }
96 
97  if(ALIUtils::debug >= 5) std::cout << "end calculateSimulatedValue" <<std::endl;
98 
99 }
size
Write out results.
long double ALIdouble
Definition: CocoaGlobals.h:11
Definition: Entry.h:18
static ALIint debug
Definition: ALIUtils.h:36
static GlobalOptionMgr * getInstance()
static Entry * getEntryByName(const ALIstring &opto_name, const ALIstring &entry_name)
--— Search an Entry name in the Entry* list and return a pointer to it
Definition: Model.cc:635
void DumpBadOrderOptOs()
Definition: Measurement.cc:488
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
void setValueSimulated(ALIint coor, ALIdouble value)
Definition: Measurement.h:196
const ALIstring & name() const
Definition: Entry.h:52
const std::vector< OpticalObject * > & OptOList() const
Definition: Measurement.h:109
static ALIbool getFirstTime()
Definition: ALIUtils.h:101
const ALIdouble * value() const
Definition: Measurement.h:125
#define begin
Definition: vmac.h:32
void printStartCalculateSimulatedValue(const Measurement *meas)
Definition: Measurement.cc:445
const ALIstring & name() const
Definition: Measurement.h:90
const ALIdouble valueSimulated(ALIuint ii) const
Definition: Measurement.h:117
virtual ALIdouble valueDisplaced() const
Definition: Entry.cc:342
std::map< ALIstring, ALIdouble, std::less< ALIstring > > & GlobalOptions()

Member Data Documentation

ALIstring MeasurementDiffEntry::theEntryNameFirst
private

Definition at line 33 of file MeasurementDiffEntry.h.

Referenced by buildOptONamesList(), and calculateSimulatedValue().

ALIstring MeasurementDiffEntry::theEntryNameSecond
private

Definition at line 34 of file MeasurementDiffEntry.h.

Referenced by buildOptONamesList(), and calculateSimulatedValue().