CMS 3D CMS Logo

Public Member Functions | Static Public Member Functions | Static Public Attributes | Static Private Attributes

ALIUtils Class Reference

#include <ALIUtils.h>

List of all members.

Public Member Functions

 ALIUtils ()
 ~ALIUtils ()

Static Public Member Functions

static double addPii (double val)
static ALIdouble AngleSigmaDimensionFactor ()
static ALIdouble AngleValueDimensionFactor ()
static double approxTo0 (double val)
static ALIdouble CalculateAngleDimensionFactorFromInt (ALIint ad)
static ALIdouble CalculateAngleDimensionFactorFromString (ALIstring dimstr)
static ALIdouble CalculateLengthDimensionFactorFromInt (ALIint ad)
static ALIdouble CalculateLengthDimensionFactorFromString (ALIstring dimstr)
static std::string changeName (const std::string &oldName, const std::string &subsstr1, const std::string &subsstr2)
static int checkMatrixEquations (double angleX, double angleY, double angleZ, CLHEP::HepRotation *rot)
static double diff2pi (double ang1, double ang2)
static void dump3v (const CLHEP::Hep3Vector &vec, const std::string &msg)
static void dumpDimensions (std::ofstream &fout)
static void dumprm (const CLHEP::HepRotation &rm, const std::string &msg, std::ostream &out=std::cout)
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
static bool eq2ang (double ang1, double ang2)
static bool getBool (const ALIstring &str)
 Convert a bool to an integer, checking that it is really a bool.
static ALIdouble getDimensionValue (const ALIstring &dim, const ALIstring &dimType)
static ALIbool getFirstTime ()
static double getFloat (const ALIstring &str)
 Convert a string to an float, checking that it is really a number.
static int getInt (const ALIstring &str)
 Convert a string to an integer, checking that it is really an integer.
static ALIdouble getMaximumDeviationDerivative ()
static std::vector< double > getRotationAnglesFromMatrix (CLHEP::HepRotation &rmLocal, double origAngleX, double origAngleY, double origAngleZ)
static int IsNumber (const ALIstring &str)
static ALIdouble LengthSigmaDimensionFactor ()
static ALIdouble LengthValueDimensionFactor ()
static ALIdouble OutputAngleSigmaDimensionFactor ()
static ALIdouble OutputAngleValueDimensionFactor ()
static ALIdouble OutputLengthSigmaDimensionFactor ()
static ALIdouble OutputLengthValueDimensionFactor ()
static void set_time_now (time_t now)
static void SetAngleDimensionFactors ()
static void setDebugVerbosity (ALIint val)
static void setFirstTime (ALIbool val)
static void SetLengthDimensionFactors ()
static void setMaximumDeviationDerivative (ALIdouble val)
static void SetOutputAngleDimensionFactors ()
static void SetOutputLengthDimensionFactors ()
static void setReportVerbosity (ALIint val)
static ALIstring subQuotes (const ALIstring &str)
static time_t time_now ()
static ALIdouble val0 (ALIdouble val)

Static Public Attributes

static ALIint debug = -1
static ALIdouble deg = 0.017453293
static ALIint report = 1

Static Private Attributes

static ALIdouble _AngleSigmaDimensionFactor = 1.
static ALIdouble _AngleValueDimensionFactor = 1.
static ALIdouble _LengthSigmaDimensionFactor = 1.
static ALIdouble _LengthValueDimensionFactor = 1.
static ALIdouble _OutputAngleSigmaDimensionFactor = 1.
static ALIdouble _OutputAngleValueDimensionFactor = 1.
static ALIdouble _OutputLengthSigmaDimensionFactor = 1.
static ALIdouble _OutputLengthValueDimensionFactor = 1.
static time_t _time_now
static ALIbool firstTime = false
static ALIdouble maximum_deviation_derivative = 1.E-6

Detailed Description

Definition at line 23 of file ALIUtils.h.


Constructor & Destructor Documentation

ALIUtils::ALIUtils ( ) [inline]

Definition at line 26 of file ALIUtils.h.

{};
ALIUtils::~ALIUtils ( ) [inline]

Definition at line 27 of file ALIUtils.h.

{};

Member Function Documentation

double ALIUtils::addPii ( double  val) [static]

Definition at line 787 of file ALIUtils.cc.

References M_PI.

Referenced by getRotationAnglesFromMatrix().

{
  if( val < M_PI ) {
    val += M_PI;
  } else {
    val -= M_PI;
  }

  return val;
}
static ALIdouble ALIUtils::AngleSigmaDimensionFactor ( ) [inline, static]

Definition at line 77 of file ALIUtils.h.

References _AngleSigmaDimensionFactor.

Referenced by EntryAngle::SigmaDimensionFactor().

static ALIdouble ALIUtils::AngleValueDimensionFactor ( ) [inline, static]
double ALIUtils::approxTo0 ( double  val) [static]

Definition at line 778 of file ALIUtils.cc.

Referenced by getRotationAnglesFromMatrix().

{
  double precision = 1.e-9;
  if( fabs(val) < precision ) val = 0;
  return val;
}
ALIdouble ALIUtils::CalculateAngleDimensionFactorFromInt ( ALIint  ad) [static]

Definition at line 298 of file ALIUtils.cc.

References CalculateAngleDimensionFactorFromString(), benchmark_cfg::cerr, and cmsRelvalreport::exit.

Referenced by SetAngleDimensionFactors(), and SetOutputAngleDimensionFactors().

{
  ALIdouble valsig;
  switch ( ad ) {
    case 0:                  //----- radians
      valsig = CalculateAngleDimensionFactorFromString( "rad" );
      break;
    case 1:                  //----- miliradians
      valsig = CalculateAngleDimensionFactorFromString( "mrad" );
      break;
    case 2:                  //----- microradians
      valsig = CalculateAngleDimensionFactorFromString( "murad" );
      break;
    case 3:                  //----- degrees
      valsig = CalculateAngleDimensionFactorFromString( "deg" );
      break;
    case 4:                  //----- grads
      valsig = CalculateAngleDimensionFactorFromString( "grad" );
      break;
    default:
      std::cerr << "!!! UNKNOWN DIMENSION SCALING " << ad << std::endl <<
              "VALUE MUST BE BETWEEN 0 AND 3 " << std::endl;
      exit(1);
  }

  // use microradinas instead of radians
  //-  valsig *= 1000000.;

  return valsig;
}
ALIdouble ALIUtils::CalculateAngleDimensionFactorFromString ( ALIstring  dimstr) [static]

Definition at line 237 of file ALIUtils.cc.

References benchmark_cfg::cerr, cmsRelvalreport::exit, and M_PI.

Referenced by CalculateAngleDimensionFactorFromInt(), and FittedEntriesReader::FittedEntriesReader().

{
  ALIdouble valsig;
  if( dimstr == "rad" ) {
    valsig = 1.;
  }else 
  if( dimstr == "mrad" ) {
    valsig = 1.E-3;
  }else 
  if( dimstr == "murad" ) {
    valsig = 1.E-6;
  }else 
  if( dimstr == "deg" ) {
    valsig = M_PI/180.;
  }else 
  if( dimstr == "grad" ) {
    valsig = M_PI/200.;
  }else {
    std::cerr << "!!! UNKNOWN DIMENSION SCALING: " << dimstr << std::endl <<
      "VALUE MUST BE AN ANGLE DIMENSION " << std::endl;
    exit(1);
  }

  return valsig;
}
ALIdouble ALIUtils::CalculateLengthDimensionFactorFromInt ( ALIint  ad) [static]

Definition at line 266 of file ALIUtils.cc.

References CalculateLengthDimensionFactorFromString(), benchmark_cfg::cerr, and cmsRelvalreport::exit.

Referenced by SetLengthDimensionFactors(), and SetOutputLengthDimensionFactors().

{
  ALIdouble valsig;
  switch ( ad ) {
    case 0:                  //----- metres
      valsig = CalculateLengthDimensionFactorFromString( "m" );
      break;
    case 1:                  //----- milimetres
      valsig = CalculateLengthDimensionFactorFromString( "mm" );
      break;
    case 2:                  //----- micrometres
      valsig = CalculateLengthDimensionFactorFromString( "mum" );
      break;
    case 3:                  //----- centimetres
      valsig = CalculateLengthDimensionFactorFromString( "cm" );
      break;
    default:
      std::cerr << "!!! UNKNOWN DIMENSION SCALING " << ad << std::endl <<
              "VALUE MUST BE BETWEEN 0 AND 3 " << std::endl;
      exit(1);
  }

  // use microradinas instead of radians
  //-  valsig *= 1000000.;

  return valsig;
}
ALIdouble ALIUtils::CalculateLengthDimensionFactorFromString ( ALIstring  dimstr) [static]

Definition at line 196 of file ALIUtils.cc.

References benchmark_cfg::cerr, and cmsRelvalreport::exit.

Referenced by CalculateLengthDimensionFactorFromInt(), and FittedEntriesReader::FittedEntriesReader().

{
  ALIdouble valsig = 1.;
  ALIstring internalDim = "m";
  if(internalDim == "m" ){
    if( dimstr == "m" ) {
      valsig = 1.;
    }else if( dimstr == "mm" ) {
      valsig = 1.E-3;
    }else if( dimstr == "mum" ) {
      valsig = 1.E-6;
    }else if( dimstr == "cm" ) {
      valsig = 1.E-2;
    }else {
      std::cerr << "!!! UNKNOWN DIMENSION SCALING " << dimstr << std::endl <<
        "VALUE MUST BE BETWEEN 0 AND 3 " << std::endl;
      exit(1);
    }
  }else if(internalDim == "mm" ){
    if( dimstr == "m" ) {
      valsig = 1.E3;
    }else if( dimstr == "mm" ) {
      valsig = 1.;
    }else if( dimstr == "mum" ) {
      valsig = 1.E-3;
    }else if( dimstr == "cm" ) {
      valsig = 1.E+1;
    }else {
      std::cerr << "!!! UNKNOWN DIMENSION SCALING: " << dimstr << std::endl <<
        "VALUE MUST BE A LENGTH DIMENSION " << std::endl;
      exit(1);
    }
  }

  return valsig;
}
std::string ALIUtils::changeName ( const std::string &  oldName,
const std::string &  subsstr1,
const std::string &  subsstr2 
) [static]

Definition at line 573 of file ALIUtils.cc.

Referenced by Measurement::copyMeas(), and Model::copyMeasurements().

{

  std::string newName = oldName;
  int il = oldName.find( subsstr1 );
  //  std::cout << " il " << il << " oldname " << oldName << " " << subsstr1 << std::endl;
  while( il >= 0 ) {
    newName = newName.substr( 0, il ) + subsstr2 +  newName.substr( il+subsstr1.length(), newName.length() );
    //    std::cout << " dnewName " << newName << " " << newName.substr( 0, il ) << " " << subsstr2 << " " << newName.substr( il+subsstr1.length(), newName.length() ) << std::endl;
    il = oldName.find( subsstr1, il+1 );  
  }

  return newName;
}
int ALIUtils::checkMatrixEquations ( double  angleX,
double  angleY,
double  angleZ,
CLHEP::HepRotation *  rot 
) [static]

Definition at line 799 of file ALIUtils.cc.

References benchmark_cfg::cerr, funct::cos(), eq2ang(), and funct::sin().

Referenced by getRotationAnglesFromMatrix().

{
  //-  std::cout << " cme " << angleX << " " << angleY << " " << angleZ << std::endl;
  if( rot == 0 ) {
    rot = new CLHEP::HepRotation();
    rot->rotateX( angleX );
    rot->rotateY( angleY );
    rot->rotateZ( angleZ );
  }
  double sx = sin(angleX);
  double cx = cos(angleX);
  double sy = sin(angleY);
  double cy = cos(angleY);
  double sz = sin(angleZ);
  double cz = cos(angleZ);

  double rotxx = cy*cz;
  double rotxy = sx*sy*cz-cx*sz;
  double rotxz = cx*sy*cz+sx*sz;
  double rotyx = cy*sz;
  double rotyy = sx*sy*sz+cx*cz;
  double rotyz = cx*sy*sz-sx*cz;
  double rotzx = -sy;
  double rotzy = sx*cy;
  double rotzz = cx*cy;

  int matrixElemBad = 0; 
  if( !eq2ang( rot->xx(), rotxx ) ) {
    std::cerr << " EQUATION for xx() IS BAD " << rot->xx() << " <> " << rotxx << std::endl;
    matrixElemBad++;
  }
  if( !eq2ang( rot->xy(), rotxy ) ) {
    std::cerr << " EQUATION for xy() IS BAD " << rot->xy() << " <> " << rotxy << std::endl;
    matrixElemBad++;
  }
  if( !eq2ang( rot->xz(), rotxz ) ) {
    std::cerr << " EQUATION for xz() IS BAD " << rot->xz() << " <> " << rotxz << std::endl;
    matrixElemBad++;
  }
  if( !eq2ang( rot->yx(), rotyx ) ) {
    std::cerr << " EQUATION for yx() IS BAD " << rot->yx() << " <> " << rotyx << std::endl;
    matrixElemBad++;
  }
  if( !eq2ang( rot->yy(), rotyy ) ) {
    std::cerr << " EQUATION for yy() IS BAD " << rot->yy() << " <> " << rotyy << std::endl;
    matrixElemBad++;
  }
  if( !eq2ang( rot->yz(), rotyz ) ) {
    std::cerr << " EQUATION for yz() IS BAD " << rot->yz() << " <> " << rotyz << std::endl;
    matrixElemBad++;
  }
  if( !eq2ang( rot->zx(), rotzx ) ) {
    std::cerr << " EQUATION for zx() IS BAD " << rot->zx() << " <> " << rotzx << std::endl;
    matrixElemBad++;
  }
  if( !eq2ang( rot->zy(), rotzy ) ) {
    std::cerr << " EQUATION for zy() IS BAD " << rot->zy() << " <> " << rotzy << std::endl;
    matrixElemBad++;
  }
  if( !eq2ang( rot->zz(), rotzz ) ) {
    std::cerr << " EQUATION for zz() IS BAD " << rot->zz() << " <> " << rotzz << std::endl;
    matrixElemBad++;
  }

  //-  std::cout << " cme: matrixElemBad " << matrixElemBad << std::endl;
  return matrixElemBad;
}
double ALIUtils::diff2pi ( double  ang1,
double  ang2 
) [static]

Definition at line 748 of file ALIUtils.cc.

References diffTreeTool::diff.

Referenced by eq2ang(), and getRotationAnglesFromMatrix().

{
  double pii = acos(0.)*2;
  double diff = fabs( ang1 - ang2 );
  diff = diff - int(diff/2./pii) * 2 *pii;
  return diff;
}
void ALIUtils::dump3v ( const CLHEP::Hep3Vector &  vec,
const std::string &  msg 
) [static]

Definition at line 61 of file ALIUtils.cc.

References gather_cfg::cout.

Referenced by ALILine::ALILine(), ALIPlane::ALIPlane(), OptOOpticalSquare::calculateFaces(), OptOSensor2D::convertPointToLocalCoordinates(), OptOCOPS::convertPointToLocalCoordinates(), OptOPinhole::defaultBehaviour(), OptOCubeSplitter::detailedDeviatesLightRay(), OptOMirror::detailedDeviatesLightRay(), OptOPlateSplitter::detailedDeviatesLightRay(), OptOModifiedRhomboidPrism::detailedDeviatesLightRay(), OpticalObject::displaceCentreGlobOriginal(), OpticalObject::displaceCentreGlobOriginalOriginal(), OpticalObject::displaceRmGlobAroundGlobal(), OpticalObject::displaceRmGlobAroundLocal(), OpticalObject::displaceRmGlobOriginal(), OpticalObject::displaceRmGlobOriginalOriginal(), LightRay::dumpData(), OpticalObjectMgr::dumpOptOs(), OpticalObject::getDispVec(), OptOCubeSplitter::getMiddlePlate(), OpticalObject::getPlate(), OptOModifiedRhomboidPrism::getRotatedPlate(), OptOCubeSplitter::getUpperPlate(), ALILine::intersect(), LightRay::intersect(), OptODistancemeter::makeMeasurement(), OptODistancemeter3dim::makeMeasurement(), OptOTiltmeter::makeMeasurement(), OptOSensor2D::makeMeasurement(), OptOCOPS::makeMeasurement(), LightRay::reflect(), LightRay::refract(), OpticalObject::SetCentreGlobFromCentreLocal(), OpticalObject::SetCentreLocalFromEntryValues(), LightRay::shiftAndDeviateWhileTraversing(), and OptOUserDefined::userDefinedBehaviour().

{
  //  double phicyl = atan( vec.y()/vec.x() );
  std::cout << msg << std::setprecision(8) << vec;
  std::cout << std::endl;
  //  std::cout << " " << vec.theta()/deg << " " << vec.phi()/deg << " " << vec.perp() << " " << phicyl/deg << std::endl; 
  //  setw(10);
  //  std::cout << msg << " x=" << std::setprecision(8) << vec.x() << " y=" << setprecision(8) <<vec.y() << " z=" << std::setprecision(8) << vec.z() << std::endl;
  // std::setprecision(8);

}
void ALIUtils::dumpDimensions ( std::ofstream &  fout) [static]

Definition at line 337 of file ALIUtils.cc.

References _OutputAngleSigmaDimensionFactor, _OutputAngleValueDimensionFactor, _OutputLengthSigmaDimensionFactor, _OutputLengthValueDimensionFactor, benchmark_cfg::cerr, cmsRelvalreport::exit, and M_PI.

Referenced by Fit::fitNextEvent(), and FittedEntriesManager::MakeHistos().

{
  fout << "DIMENSIONS: lengths = ";
  ALIstring internalDim = "m";
  if(_OutputLengthValueDimensionFactor == 1. ) { 
    fout << "m";
  }else if(_OutputLengthValueDimensionFactor == 1.E-3 ) { 
    fout << "mm";
  }else if(_OutputLengthValueDimensionFactor == 1.E-6 ) { 
    fout << "mum";
  }else if(_OutputLengthValueDimensionFactor == 1.E-2 ) { 
    fout << "cm";
  } else {
    std::cerr << " !! unknown OutputLengthValueDimensionFactor " << _OutputLengthValueDimensionFactor << std::endl;
    exit(1);
  }

  fout << " +- ";
  if(_OutputLengthSigmaDimensionFactor == 1. ) { 
    fout << "m";
  }else if(_OutputLengthSigmaDimensionFactor == 1.E-3 ) { 
    fout << "mm";
  }else if(_OutputLengthSigmaDimensionFactor == 1.E-6 ) { 
    fout << "mum";
  }else if(_OutputLengthSigmaDimensionFactor == 1.E-2 ) { 
    fout << "cm";
  } else {
    std::cerr << " !! unknown OutputLengthSigmaDimensionFactor " << _OutputLengthSigmaDimensionFactor << std::endl;
    exit(1);
  }
    
  fout << "  angles = ";
  if(_OutputAngleValueDimensionFactor == 1. ) { 
    fout << "rad";
  }else if(_OutputAngleValueDimensionFactor == 1.E-3 ) { 
    fout << "mrad";
  }else if(_OutputAngleValueDimensionFactor == 1.E-6 ) { 
    fout << "murad";
  }else if(_OutputAngleValueDimensionFactor == M_PI/180. ) { 
    fout << "deg";
  }else if(_OutputAngleValueDimensionFactor == M_PI/200. ) { 
    fout << "grad";
  } else {
    std::cerr << " !! unknown OutputAngleValueDimensionFactor " << _OutputAngleValueDimensionFactor << std::endl;
    exit(1);
  }

  fout << " +- ";
  if(_OutputAngleSigmaDimensionFactor == 1. ) { 
    fout << "rad";
  }else if(_OutputAngleSigmaDimensionFactor == 1.E-3 ) { 
    fout << "mrad";
  }else if(_OutputAngleSigmaDimensionFactor == 1.E-6 ) { 
    fout << "murad";
  }else if(_OutputAngleSigmaDimensionFactor == M_PI/180. ) { 
    fout << "deg";
  }else if(_OutputAngleSigmaDimensionFactor == M_PI/200. ) { 
    fout << "grad";
  } else {
    std::cerr << " !! unknown OutputAngleSigmaDimensionFactor " << _OutputAngleSigmaDimensionFactor << std::endl;
    exit(1);
  }
  fout << std::endl;

}
void ALIUtils::dumprm ( const CLHEP::HepRotation &  rm,
const std::string &  msg,
std::ostream &  out = std::cout 
) [static]
void ALIUtils::dumpVS ( const std::vector< ALIstring > &  wl,
const std::string &  msg,
std::ostream &  outs = std::cout 
) [static]
bool ALIUtils::eq2ang ( double  ang1,
double  ang2 
) [static]

Definition at line 758 of file ALIUtils.cc.

References diffTreeTool::diff, and diff2pi().

Referenced by checkMatrixEquations(), and getRotationAnglesFromMatrix().

{
  bool beq = true;

  double pii = acos(0.)*2;
  double diff = diff2pi( ang1, ang2 );
  if( diff > 0.00001 ) {
    if( fabs( diff - 2*pii ) > 0.00001 ) {
      //-      std::cout << " diff " << diff << " " << ang1 << " " << ang2 << std::endl;
      beq = false;
    }
  } else {
    beq = true;
  }

  return beq;
}
bool ALIUtils::getBool ( const ALIstring str) [static]

Convert a bool to an integer, checking that it is really a bool.

Definition at line 453 of file ALIUtils.cc.

References benchmark_cfg::cerr, and cmsRelvalreport::exit.

{
   bool val;
  
 //t str = upper( str );
  //----------- first check that it is a not number
  if( str == "ON" || str == "TRUE"  ) {
    val = true;
  } else if( str == "OFF" || str == "FALSE" ) {
    val = false;
  } else {
    std::cerr << "!!!! EXITING: trying to get the float from a string that is not 'ON'/'OFF'/'TRUE'/'FALSE' " << str << std::endl;
    exit(1);
  }

  return val;
}
ALIdouble ALIUtils::getDimensionValue ( const ALIstring dim,
const ALIstring dimType 
) [static]

Definition at line 515 of file ALIUtils.cc.

References benchmark_cfg::cerr, M_PI, and relativeConstraints::value.

Referenced by EntryMgr::readEntryFromReportOut().

{
  ALIdouble value;
  if( dimType == "Length" ) {
    if( dim == "mm" ) {
      value = 1.E-3;
    }else if( dim == "cm" ) {
      value = 1.E-2;
    }else if( dim == "m" ) {
      value = 1.;
    }else if( dim == "mum" ) {
      value = 1.E-6;
    }else if( dim == "dm" ) {
      value = 1.E-1;
    }else if( dim == "nm" ) {
      value = 1.E-9;
    }else {
      std::cerr << "!!!!FATAL ERROR:  ALIUtils::GetDimensionValue. " << dim << " is a dimension not supported for dimension type " << dimType << std::endl;
      abort();
    }
  } else if( dimType == "Angle" ) {
    if( dim == "rad" ) {
      value = 1.;
    }else if( dim == "mrad" ) {
      value = 1.E-3;
    }else if( dim == "murad" ) {
      value = 1.E-6;
    }else if( dim == "deg" ) {
      value = M_PI/180.;
    }else if( dim == "grad" ) {
      value = M_PI/200.;
    }else {
      std::cerr << "!!!!FATAL ERROR:  ALIUtils::GetDimensionValue. " << dim << " is a dimension not supported for dimension type " << dimType << std::endl;
      abort();
    }
  }else {
      std::cerr << "!!!!FATAL ERROR:  ALIUtils::GetDimensionValue. " << dimType << " is a dimension type not supported " << std::endl;
      abort();
  }

  return value;

}
static ALIbool ALIUtils::getFirstTime ( ) [inline, static]
double ALIUtils::getFloat ( const ALIstring str) [static]

Convert a string to an float, checking that it is really a number.

Definition at line 404 of file ALIUtils.cc.

References benchmark_cfg::cerr, cmsRelvalreport::exit, and IsNumber().

Referenced by EntryData::fill(), DeviationSensor2D::fillData(), FittedEntriesSet::FillEntriesFromFile(), OptOSensor2D::fillExtraEntry(), FittedEntriesReader::readFittedEntriesFromFile(), ErrorCorrelationMgr::readFromReportFile(), and Model::readSystemDescription().

{
  //----------- first check that it is a number
  if(!IsNumber(str) ) {
    std::cerr << "!!!! EXITING: trying to get the float from a string that is not a number " << str << std::endl;
    exit(1);
  }

  return atof( str.c_str() );
}
int ALIUtils::getInt ( const ALIstring str) [static]

Convert a string to an integer, checking that it is really an integer.

Definition at line 417 of file ALIUtils.cc.

References benchmark_cfg::cerr, cmsRelvalreport::exit, and IsNumber().

Referenced by OpticalObject::createComponentOptOs(), and Model::readSystemDescription().

{
  //----------- first check that it is an integer
  if(!IsNumber(str) ) {
    //----- Check that it is a number 
    std::cerr << "!!!! EXITING: trying to get the integer from a string that is not a number " << str << std::endl;
    exit(1);
  } else {
    //----- Check that it is not a float, no decimal or E-n
    bool isFloat = 0;
    int ch = str.find('.');
    ALIuint ii = 0;
    if(ch != -1 ) {
      for( ii = ch+1; ii < str.size(); ii++) {
        if( str[ii] != '0' ) isFloat = 1;
      }
    }

    ch = str.find('E');
    if(ch != -1 ) ch = str.find('e');
    if(ch != -1 ) {
      if(str[ch+1] == '-') isFloat = 1;
    }

    if(isFloat) {
      std::cerr << "!!!! EXITING: trying to get the integer from a string that is a float: " << str << std::endl;
      std::cerr << ii << " ii "  << ch <<std::endl;
      exit(1);
    }
  }
  return int( atof( str.c_str() ) );
}
static ALIdouble ALIUtils::getMaximumDeviationDerivative ( ) [inline, static]
std::vector< double > ALIUtils::getRotationAnglesFromMatrix ( CLHEP::HepRotation &  rmLocal,
double  origAngleX,
double  origAngleY,
double  origAngleZ 
) [static]

Definition at line 591 of file ALIUtils.cc.

References addPii(), approxTo0(), benchmark_cfg::cerr, checkMatrixEquations(), funct::cos(), gather_cfg::cout, debug, diff2pi(), dumprm(), eq2ang(), and funct::sin().

Referenced by CocoaAnalyzer::ReadXMLFile().

{
  double pii = acos(0.)*2;
  std::vector<double> newang(3);
  double angleX = origAngleX;
  double angleY = origAngleY;
  double angleZ = origAngleZ;

  if( ALIUtils::debug >= 4 ) {
    std::cout << " angles as value entries: X= " << angleX << " Y= " << angleY << " Z " << angleZ << std::endl;
  }

  //-  std::cout << name () << " vdbf " << angleX << " " << angleY << " " << angleZ << std::endl;
  double rotzx = approxTo0( rmLocal.zx() );
  double rotzy = approxTo0( rmLocal.zy() );
  double rotzz = approxTo0( rmLocal.zz() );
  double rotyx = approxTo0( rmLocal.yx() );
  double rotxx = approxTo0( rmLocal.xx() );
  if( rotzy == 0. && rotzz == 0. ) {
    //check that entry is z angle
    newang[0] = angleX;
    //beware of aa <==> pii - aa
    if( eq2ang( rmLocal.zx(), -1. ) ) {
      double aa = asin( rmLocal.xy() );
      if( diff2pi( angleZ, - aa + newang[0] ) < diff2pi( angleZ, - pii + aa + newang[0] )  ) {
        newang[2] = -aa + newang[0];
        if( ALIUtils::debug >= 5 ) std::cout << " newang[0] = -aa + newang[0] " << std::endl;
      } else {
        newang[2] = -pii + aa + newang[0];
        if( ALIUtils::debug >= 5 ) std::cout << " newang[0] = -pii + aa + newang[0] " << newang[0] << " " << aa << " " << newang[2] << std::endl;
      }
    } else {
      double aa = asin( -rmLocal.xy() );
      if( diff2pi( angleZ, aa - newang[0] ) < diff2pi( angleZ, pii - aa - newang[0] )  ) {
        newang[2] = aa - newang[0];
        if( ALIUtils::debug >= 5 ) std::cout << " newang[0] = aa - newang[2] " << std::endl;
      } else {
        newang[2] = pii - aa - newang[0];
        if( ALIUtils::debug >= 5 ) std::cout << " newang[0] = pii - aa - newang[2] " << newang[0] << " " << aa << " " << newang[2] << std::endl;
      }
    } 
  } else {
    newang[0] = atan( rotzy / rotzz );
    newang[2] = atan( rotyx / rotxx );
  }
  if( rotzx < -1. ) {
    //-    std::cerr << " rotzx too small " << rotzx << " = " << rmLocal.zx() << " " << rotzx-rmLocal.zx() << std::endl;
    rotzx = -1.;
  } else if( rotzx > 1. ) {
    //-    std::cerr << " rotzx too big " << rotzx << " = " << rmLocal.zx() << " " << rotzx-rmLocal.zx() << std::endl;
    rotzx = 1.;
  }
  newang[1] = -asin( rotzx );
  if( ALIUtils::debug >= 5 ) std::cout << "First calculation of angles: " << std::endl 
                               << " newang[0] " << newang[0] << " " << rotzy << " " << rotzz << std::endl
                               << " newang[1] " << newang[1] << " " << rotzx << std::endl
                               << " newang[2] " << newang[2] << " " << rotyx << " " << rotxx << std::endl;
  
  //    newang[2] = acos( rmLocal.xx() / cos( newang[1] ) );
  //----- CHECK if the angles are OK (there are several symmetries)
  //--- Check if the predictions with the angles obtained match the values of the rotation matrix (they may differ for exampole by a sign or more in complicated formulas)
  double rotnewxx = cos( newang[1] ) * cos( newang[2] );
  double rotnewzz = cos( newang[0] ) * cos( newang[1] );
  double rotnewxy = sin( newang[0] ) * sin( newang[1] ) * cos( newang[2] ) - cos( newang[0] )* sin( newang[2] );
  double rotnewxz = cos( newang[0] ) * sin( newang[1] ) * cos( newang[2] ) + sin( newang[0] )* sin( newang[2] );
  double rotnewyy = sin( newang[0] ) * sin( newang[1] ) * sin( newang[2] ) + cos( newang[0] )* cos( newang[2] );
  double rotnewyz = cos( newang[0] ) * sin( newang[1] ) * sin( newang[2] ) - sin( newang[0] )* cos( newang[2] );

  bool eqxx = eq2ang( rotnewxx, rmLocal.xx() );
  bool eqzz = eq2ang( rotnewzz, rmLocal.zz() );
  bool eqxy = eq2ang( rotnewxy, rmLocal.xy() );
  bool eqxz = eq2ang( rotnewxz, rmLocal.xz() );
  bool eqyy = eq2ang( rotnewyy, rmLocal.yy() );
  bool eqyz = eq2ang( rotnewyz, rmLocal.yz() );

  //--- Check if one of the tree angles should be changed
  if( ALIUtils::debug >= 5 ) {
    std::cout << " pred rm.xx " << rotnewxx << " =? " << rmLocal.xx() 
         << " pred rm.zz " << rotnewzz << " =? " << rmLocal.zz() 
         << std::endl;
    std::cout << " eqxx " << eqxx << " eqzz " << eqzz << std::endl;
    //-    std::cout << " rotnewxx " << rotnewxx << " = " << rmLocal.xx() << " " << fabs( rotnewxx - rmLocal.xx() ) << " " <<(fabs( rotnewxx - rmLocal.xx() ) < 0.0001) << std::endl;
  }

  if( eqxx & !eqzz ) {
    newang[0] = pii + newang[0];
    if( ALIUtils::debug >= 5 ) std::cout << " change newang[0] " << newang[0] << std::endl;
  } else  if( !eqxx & !eqzz ) {
    newang[1] = pii - newang[1];
    if( ALIUtils::debug >= 5 ) std::cout << " change newang[1] " << newang[1] << std::endl;
  } else  if( !eqxx & eqzz ) {
    newang[2] = pii + newang[2];
    if( ALIUtils::debug >= 5 ) std::cout << " change newang[2] " << newang[2] << std::endl;
  }

  //--- Check if the 3 angles should be changed (previous check is invariant to the 3 changing)
  if( ALIUtils::debug >= 5 ) {
    std::cout << " pred rm.xy " << rotnewxy << " =? " << rmLocal.xy() 
         << " pred rm.xz " << rotnewxz << " =? " << rmLocal.xz() 
         << " pred rm.yy " << rotnewyy << " =? " << rmLocal.yy()
         << " pred rm.yz " << rotnewyz << " =? " << rmLocal.yz()
         << std::endl;
    std::cout << " eqxy " << eqxy << " eqxz " << eqxz << " eqyy " << eqyy << " eqyz " << eqyz << std::endl;
  }

  if( !eqxy || !eqxz || !eqyy || !eqyz ) {
    // check also cases where one of the above 'eq' is OK because it is = 0
    if( ALIUtils::debug >= 5 ) std::cout << " change the 3 newang " << std::endl;
    newang[0] = addPii( newang[0] );
    newang[1] = pii - newang[1];
    newang[2] = addPii( newang[2] );
    double rotnewxy = -sin( newang[0] ) * sin( newang[1] ) * cos( newang[2] ) - cos( newang[0] )* sin( newang[2] );
    double rotnewxz = -cos( newang[0] ) * sin( newang[1] ) * cos( newang[2] ) - sin( newang[0] )* sin( newang[2] );
    if( ALIUtils::debug >= 5 ) std::cout << " rotnewxy " << rotnewxy << " = " << rmLocal.xy()
         << " rotnewxz " << rotnewxz << " = " << rmLocal.xz() << std::endl;
  }
  if( diff2pi(angleX, newang[0] ) + diff2pi(angleY, newang[1] ) +diff2pi(angleZ, newang[2] )
           > diff2pi(angleX, pii+newang[0] ) + diff2pi(angleY, pii-newang[1] ) + diff2pi(angleZ, pii+newang[2] ) ){
    // check also cases where one of the above 'eq' is OK because it is = 0
    if( ALIUtils::debug >= 5 ) std::cout << " change the 3 newang " << std::endl;
    newang[0] = addPii( newang[0] );
    newang[1] = pii - newang[1];
    newang[2] = addPii( newang[2] );
    double rotnewxy = -sin( newang[0] ) * sin( newang[1] ) * cos( newang[2] ) - cos( newang[0] )* sin( newang[2] );
    double rotnewxz = -cos( newang[0] ) * sin( newang[1] ) * cos( newang[2] ) - sin( newang[0] )* sin( newang[2] );
    if( ALIUtils::debug >= 5 ) std::cout << " rotnewxy " << rotnewxy << " = " << rmLocal.xy()
         << " rotnewxz " << rotnewxz << " = " << rmLocal.xz() << std::endl;
  }
  
  for (int ii=0; ii<3; ii++) {  
    newang[ii] = approxTo0( newang[ii] );
  }
  //  double rotnewyx = cos( newang[1] ) * sin( newang[2] );

  if(  checkMatrixEquations( newang[0], newang[1], newang[2], &rmLocal ) != 0 ){
    std::cerr << " wrong rotation matrix " <<  newang[0] << " " << newang[1] << " " << newang[2] << std::endl;
    ALIUtils::dumprm( rmLocal, " matrix is " );
  }
  if( ALIUtils::debug >= 5 ) {
    std::cout << "Final angles:  newang[0] " << newang[0] << " newang[1] " << newang[1] << " newang[2] " << newang[2] << std::endl;
    CLHEP::HepRotation rot;
    rot.rotateX( newang[0] );
    ALIUtils::dumprm( rot, " new rot after X ");
    rot.rotateY( newang[1] );
    ALIUtils::dumprm( rot, " new rot after Y ");
    rot.rotateZ( newang[2] );
    ALIUtils::dumprm( rot, " new rot ");
    ALIUtils::dumprm( rmLocal, " rmLocal " );
    //-    ALIUtils::dumprm( theRmGlobOriginal, " theRmGlobOriginal " );
  }

  //-  std::cout << " before return newang[0] " << newang[0] << " newang[1] " << newang[1] << " newang[2] " << newang[2] << std::endl;
  return newang;

}
int ALIUtils::IsNumber ( const ALIstring str) [static]

Definition at line 34 of file ALIUtils.cc.

Referenced by Measurement::fillData(), Entry::fillFromInputFileSigma(), Entry::fillFromInputFileValue(), getFloat(), getInt(), ParameterMgr::getVal(), Model::readSystemDescription(), MeasurementDistancemeter::setConversionFactor(), MeasurementCOPS::setConversionFactor(), MeasurementSensor2D::setConversionFactor(), MeasurementTiltmeter::setConversionFactor(), and MeasurementDistancemeter3dim::setConversionFactor().

{
  int isnum = 1;
  int numE = 0;
  for(ALIuint ii=0; ii<str.length(); ii++){
    if(!isdigit(str[ii]) && str[ii]!='.' && str[ii]!='-' && str[ii]!='+') {
      //--- check for E(xponential)
      if(str[ii] == 'E' || str[ii] == 'e' ) {
        if(numE != 0 || ii == str.length()-1)  {
          isnum = 0;
          break;
        }
        numE++;
      } else {
        isnum = 0; 
        break;
      }
    }
  }
 
  return isnum;
}
static ALIdouble ALIUtils::LengthSigmaDimensionFactor ( ) [inline, static]
static ALIdouble ALIUtils::LengthValueDimensionFactor ( ) [inline, static]
static ALIdouble ALIUtils::OutputAngleSigmaDimensionFactor ( ) [inline, static]
static ALIdouble ALIUtils::OutputAngleValueDimensionFactor ( ) [inline, static]
static ALIdouble ALIUtils::OutputLengthSigmaDimensionFactor ( ) [inline, static]
static ALIdouble ALIUtils::OutputLengthValueDimensionFactor ( ) [inline, static]
static void ALIUtils::set_time_now ( time_t  now) [inline, static]

Definition at line 47 of file ALIUtils.h.

References _time_now, and cmsPerfSuiteHarvest::now.

Referenced by Fit::getFitQuality(), Fit::multiplyMatrices(), and Fit::PropagateErrors().

                                       {
    _time_now = now;
  }
void ALIUtils::SetAngleDimensionFactors ( ) [static]

Definition at line 116 of file ALIUtils.cc.

References _AngleSigmaDimensionFactor, _AngleValueDimensionFactor, CalculateAngleDimensionFactorFromInt(), gather_cfg::cout, debug, GlobalOptionMgr::getInstance(), and GlobalOptionMgr::GlobalOptions().

Referenced by Model::readSystemDescription().

{
//--------------------- if it doesn exist, GlobalOptions is 0
  //---------- Calculate factors to convert to radians
  GlobalOptionMgr* gomgr = GlobalOptionMgr::getInstance();
  ALIint ad =  ALIint(gomgr->GlobalOptions()[ ALIstring("angle_value_dimension") ]);
  _AngleValueDimensionFactor = CalculateAngleDimensionFactorFromInt(ad);

  ad =  ALIint(gomgr->GlobalOptions()[ ALIstring("angle_error_dimension"
) ]);
  _AngleSigmaDimensionFactor = CalculateAngleDimensionFactorFromInt(ad);

  //---------- Change factor to convert to error dimensions
  //  _AngleValueDimensionFactor /= _AngleSigmaDimensionFactor;
  //_AngleSigmaDimensionFactor = 1;

  if(ALIUtils::debug >= 6) std::cout <<  _AngleValueDimensionFactor <<  "Set Angle DimensionFactors" << _AngleSigmaDimensionFactor << std::endl; 
   
}
static void ALIUtils::setDebugVerbosity ( ALIint  val) [inline, static]

Definition at line 41 of file ALIUtils.h.

References debug.

Referenced by CocoaAnalyzer::analyze(), and GlobalOptionMgr::setGlobalOption().

                                              {
    debug = val;
  }
static void ALIUtils::setFirstTime ( ALIbool  val) [inline, static]

Definition at line 103 of file ALIUtils.h.

References firstTime.

Referenced by Fit::PropagateErrors(), and Fit::startFit().

                                         {
    firstTime = val;
  }
void ALIUtils::SetLengthDimensionFactors ( ) [static]

Definition at line 91 of file ALIUtils.cc.

References _LengthSigmaDimensionFactor, _LengthValueDimensionFactor, CalculateLengthDimensionFactorFromInt(), gather_cfg::cout, debug, GlobalOptionMgr::getGlobalOption(), GlobalOptionMgr::getInstance(), and GlobalOptionMgr::GlobalOptions().

Referenced by Model::readSystemDescription().

{
//---------------------------------------- if it doesn exist, GlobalOptions is 0
  //---------- Calculate factors to convert to meters
  GlobalOptionMgr* gomgr = GlobalOptionMgr::getInstance();
  ALIint ad = ALIint(gomgr->getGlobalOption("length_value_dimension"));

  _LengthValueDimensionFactor = CalculateLengthDimensionFactorFromInt( ad );
  ad =  ALIint(gomgr->GlobalOptions()[ ALIstring("length_error_dimension"
) ]);
  _LengthSigmaDimensionFactor = CalculateLengthDimensionFactorFromInt( ad );

  //---------- Change factor to convert to error dimensions
  //  _LengthValueDimensionFactor /= _LengthSigmaDimensionFactor;
  //_LengthSigmaDimensionFactor = 1;

  if(ALIUtils::debug >= 6) std::cout <<  _LengthValueDimensionFactor << " Set Length DimensionFactors " << _LengthSigmaDimensionFactor << std::endl; 
   
}
static void ALIUtils::setMaximumDeviationDerivative ( ALIdouble  val) [inline, static]

Definition at line 108 of file ALIUtils.h.

References maximum_deviation_derivative.

Referenced by Fit::getInstance().

void ALIUtils::SetOutputAngleDimensionFactors ( ) [static]

Definition at line 169 of file ALIUtils.cc.

References _OutputAngleSigmaDimensionFactor, _OutputAngleValueDimensionFactor, CalculateAngleDimensionFactorFromInt(), gather_cfg::cout, debug, GlobalOptionMgr::getInstance(), and GlobalOptionMgr::GlobalOptions().

Referenced by Model::readSystemDescription().

{
//--------------------- if it doesn exist, GlobalOptions is 0
  //---------- Calculate factors to convert to radians
  GlobalOptionMgr* gomgr = GlobalOptionMgr::getInstance();
  ALIint ad =  ALIint(gomgr->GlobalOptions()[ ALIstring("output_angle_value_dimension") ]);
  if( ad == 0 ) ad =  ALIint(gomgr->GlobalOptions()[ ALIstring("angle_value_dimension") ]);
  _OutputAngleValueDimensionFactor = CalculateAngleDimensionFactorFromInt(ad);


  ad =  ALIint(gomgr->GlobalOptions()[ ALIstring("output_angle_error_dimension") ]);
  if( ad == 0) ad =  ALIint(gomgr->GlobalOptions()[ ALIstring("angle_error_dimension") ]);
  _OutputAngleSigmaDimensionFactor = CalculateAngleDimensionFactorFromInt(ad);

  //---------- Change factor to convert to error dimensions
  //  _AngleValueDimensionFactor /= _AngleSigmaDimensionFactor;
  //_AngleSigmaDimensionFactor = 1;

  if(ALIUtils::debug >= 9) std::cout <<  _OutputAngleValueDimensionFactor <<  "Output Angle Dimension Factors" << _OutputAngleSigmaDimensionFactor << std::endl; 
   
}
void ALIUtils::SetOutputLengthDimensionFactors ( ) [static]

Definition at line 141 of file ALIUtils.cc.

References _OutputLengthSigmaDimensionFactor, _OutputLengthValueDimensionFactor, CalculateLengthDimensionFactorFromInt(), gather_cfg::cout, debug, GlobalOptionMgr::getInstance(), and GlobalOptionMgr::GlobalOptions().

Referenced by Model::readSystemDescription().

{
//---------------------------------------- if it doesn exist, GlobalOptions is 0
  //---------- Calculate factors to convert to meters
  GlobalOptionMgr* gomgr = GlobalOptionMgr::getInstance();
  ALIint ad =  ALIint(gomgr->GlobalOptions()[ ALIstring("output_length_value_dimension") ]);
  if( ad == 0 ) ad =  ALIint(gomgr->GlobalOptions()[ ALIstring("length_value_dimension") ]);
  _OutputLengthValueDimensionFactor = CalculateLengthDimensionFactorFromInt( ad );

  ad =  ALIint(gomgr->GlobalOptions()[ ALIstring("output_length_error_dimension"
) ]);
  if( ad == 0 ) ad =  ALIint(gomgr->GlobalOptions()[ ALIstring("length_error_dimension"
) ]);
  _OutputLengthSigmaDimensionFactor = CalculateLengthDimensionFactorFromInt( ad );

  //---------- Change factor to convert to error dimensions
  //  _LengthValueDimensionFactor /= _LengthSigmaDimensionFactor;
  //_LengthSigmaDimensionFactor = 1;

  if(ALIUtils::debug >= 6) std::cout <<  _OutputLengthValueDimensionFactor << "Output Length Dimension Factors" << _OutputLengthSigmaDimensionFactor << std::endl; 
   
}
static void ALIUtils::setReportVerbosity ( ALIint  val) [inline, static]

Definition at line 38 of file ALIUtils.h.

References report.

Referenced by GlobalOptionMgr::setGlobalOption().

                                               {
    report = val;
  }
ALIstring ALIUtils::subQuotes ( const ALIstring str) [static]

Definition at line 472 of file ALIUtils.cc.

References benchmark_cfg::cerr, and cmsRelvalreport::exit.

{
  
  //---------- Take out leading and trailing '"'
  if( str.find('"') != 0 || str.rfind('"') != str.length()-1 ) { 
    std::cerr << "!!!EXITING trying to substract quotes from a word that has no quotes " << str << std::endl;
    exit(1);
  }

  //  str = str.strip(ALIstring::both, '\"');
  //---------- Take out leading and trallling '"'
  ALIstring strt = str.substr(1,str.size()-2);

  //-  std::cout << " subquotes " << str << std::endl;
  //---------- Look for leading spaces
  while( strt[0] == ' ' ) {
   strt = strt.substr(1,strt.size()-1);
  }

  //---------- Look for trailing spaces
  while( strt[strt.size()-1] == ' ' ) {
   strt = strt.substr(0,strt.size()-1);
  }

  return strt;

}
static time_t ALIUtils::time_now ( ) [inline, static]

Definition at line 44 of file ALIUtils.h.

References _time_now.

Referenced by Fit::getFitQuality(), Fit::multiplyMatrices(), and Fit::PropagateErrors().

                           {
    return _time_now;
  }
static ALIdouble ALIUtils::val0 ( ALIdouble  val) [inline, static]

Definition at line 88 of file ALIUtils.h.

                                         {
    //-std::cout << val << " val " << ( (val <= 1.E-9) ? 0. : val) << std::endl; 
//    return (abs(val) <= 1.E-9) ? 0. : val; }
    if( fabs(val) <= 1.E-9) { return 0.;
    }else { return val; }; }

Member Data Documentation

Definition at line 123 of file ALIUtils.h.

Referenced by AngleSigmaDimensionFactor(), and SetAngleDimensionFactors().

Definition at line 122 of file ALIUtils.h.

Referenced by AngleValueDimensionFactor(), and SetAngleDimensionFactors().

Definition at line 121 of file ALIUtils.h.

Referenced by LengthSigmaDimensionFactor(), and SetLengthDimensionFactors().

Definition at line 120 of file ALIUtils.h.

Referenced by LengthValueDimensionFactor(), and SetLengthDimensionFactors().

time_t ALIUtils::_time_now [static, private]

Definition at line 128 of file ALIUtils.h.

Referenced by set_time_now(), and time_now().

ALIint ALIUtils::debug = -1 [static]

Definition at line 35 of file ALIUtils.h.

Referenced by Measurement::addAffectingEntriesFromOptO(), Fit::addDaMatrixToEntries(), Entry::addFittedDisplacementToValue(), ParameterMgr::addParameter(), ParameterMgr::addRandomFlatParameter(), ParameterMgr::addRandomGaussParameter(), ALILine::ALILine(), ALIPlane::ALIPlane(), CocoaDBMgr::BuildAlignments(), Model::BuildMeasurementsFromOA(), CocoaDaqReaderRoot::BuildMeasurementsFromOptAlign(), CocoaDBMgr::BuildOpticalAlignments(), Measurement::buildOptOList(), OpticalObject::buildRmFromEntryValuesOriginalOriginal(), OpticalObject::buildWordList(), OptOOpticalSquare::calculateFaces(), OpticalObject::calculateLocalRotationAxisInGlobal(), Measurement::calculateOriginalSimulatedValue(), Fit::calculateSimulatedMeasurementsWithOriginalValues(), MeasurementSensor2D::calculateSimulatedValue(), MeasurementTiltmeter::calculateSimulatedValue(), MeasurementCOPS::calculateSimulatedValue(), MeasurementDistancemeter3dim::calculateSimulatedValue(), MeasurementDistancemeter::calculateSimulatedValue(), MeasurementDiffEntry::calculateSimulatedValue(), Fit::CheckIfFitPossible(), Fit::CheckIfMeasIsProportionalToAnother(), Model::CMSLinkDeleteOptOs(), CocoaDaqReaderRoot::CocoaDaqReaderRoot(), CocoaDaqReaderText::CocoaDaqReaderText(), OpticalObject::construct(), Measurement::construct(), Measurement::constructFromOA(), OpticalObject::constructFromOptAligInfo(), OptOSensor2D::convertPointToLocalCoordinates(), OptOCOPS::convertPointToLocalCoordinates(), OpticalObject::copyData(), Measurement::copyMeas(), CocoaAnalyzer::CorrectOaParam(), CocoaAnalyzer::CorrectOptAlignments(), MeasurementCOPS::correctValueAndSigma(), MeasurementDistancemeter::correctValueAndSigma(), MeasurementDistancemeter3dim::correctValueAndSigma(), MeasurementSensor2D::correctValueAndSigma(), MeasurementTiltmeter::correctValueAndSigma(), OpticalObject::createComponentOptOs(), OpticalObject::createComponentOptOsFromOptAlignInfo(), Model::createCopyComponentList(), FittedEntriesManager::createFileName(), Fit::CreateMatrices(), OpticalObject::createNewOptO(), OptOLaser::defaultBehaviour(), OptOXLaser::defaultBehaviour(), OptOPinhole::defaultBehaviour(), OptOCOPS::defaultBehaviour(), OptOSource::defaultBehaviour(), Model::deleteOptO(), Measurement::DerivativeRespectEntry(), OptOCubeSplitter::detailedDeviatesLightRay(), OptOOpticalSquare::detailedDeviatesLightRay(), OptOMirror::detailedDeviatesLightRay(), OptOPlateSplitter::detailedDeviatesLightRay(), OptOModifiedRhomboidPrism::detailedDeviatesLightRay(), OptOModifiedRhomboidPrism::detailedTraversesLightRay(), OptOCubeSplitter::detailedTraversesLightRay(), OptOPlateSplitter::detailedTraversesLightRay(), OptOMirror::detailedTraversesLightRay(), OptOSensor2D::detailedTraversesLightRay(), OptOOpticalSquare::detailedTraversesLightRay(), EntryLengthAffCentre::displace(), Entry::displace(), OpticalObject::displaceCentreGlob(), OpticalObject::displaceCentreGlobOriginal(), OpticalObject::displaceCentreGlobOriginalOriginal(), EntryLengthAffCentre::displaceOriginal(), Entry::displaceOriginal(), Entry::displaceOriginalOriginal(), EntryAngleAffAngles::displaceOriginalOriginal(), EntryLengthAffCentre::displaceOriginalOriginal(), OpticalObject::displaceRmGlobAroundGlobal(), OpticalObject::displaceRmGlobAroundLocal(), OpticalObject::displaceRmGlobOriginal(), OpticalObject::displaceRmGlobOriginalOriginal(), Measurement::DumpBadOrderOptOs(), CocoaDBMgr::DumpCocoaResults(), FittedEntriesManager::dumpEntriesSubstraction(), Fit::dumpEntryAfterFit(), Fit::dumpEntryCorrelations(), Fit::dumpFittedValues(), MatrixMeschach::EliminateColumns(), MatrixMeschach::EliminateLines(), Entry::Entry(), OptOOpticalSquare::fastDeviatesLightRay(), OptOCubeSplitter::fastDeviatesLightRay(), OptOModifiedRhomboidPrism::fastDeviatesLightRay(), OptOPlateSplitter::fastDeviatesLightRay(), OptOMirror::fastDeviatesLightRay(), OptOPlateSplitter::fastTraversesLightRay(), OptOMirror::fastTraversesLightRay(), OptOCubeSplitter::fastTraversesLightRay(), OptOCOPS::fastTraversesLightRay(), OptOModifiedRhomboidPrism::fastTraversesLightRay(), OptOOpticalSquare::fastTraversesLightRay(), OptOSensor2D::fastTraversesLightRay(), EntryData::fill(), Entry::fill(), Model::fillCopyComponentList(), Measurement::fillData(), FittedEntriesSet::FillEntriesAveragingSets(), OpticalObject::fillExtraEntry(), OptOSensor2D::fillExtraEntry(), Entry::fillFromInputFileQuality(), Entry::fillFromInputFileSigma(), Entry::fillFromInputFileValue(), Entry::fillFromReportOutFileValue(), Fit::FillMatricesWithCalibratedParameters(), Fit::FillMatricesWithMeasurements(), EntryMgr::findEntryByLongName(), OpticalObject::findExtraEntryValue(), CocoaAnalyzer::FindOpticalAlignInfoXML(), Fit::fitNextEvent(), Fit::fitParameters(), FittedEntry::FittedEntry(), CocoaDBMgr::GetAlignInfoErrorFromOptO(), CocoaDBMgr::GetAlignInfoFromOptO(), Model::getComponentOptOs(), OpticalObject::getCoordinateFromOptAlignParam(), FittedEntriesManager::GetDifferentBetweenLasers(), OpticalObject::getDispVec(), Model::getEntryByName(), Fit::getEntryValue(), Fit::getFitQuality(), GlobalOptionMgr::getGlobalOption(), GlobalOptionMgr::getGlobalOptionValue(), Fit::getInstance(), OptOCOPS::getMeasFromInters(), OptOCubeSplitter::getMiddlePlate(), Model::getOptOByName(), OpticalObject::getPlate(), OptOModifiedRhomboidPrism::getRotatedPlate(), getRotationAnglesFromMatrix(), OpticalObject::getRotationAnglesFromMatrix(), OpticalObject::getRotationAnglesInOptOFrame(), Fit::GetSChi2(), OptOCubeSplitter::getUpperPlate(), ALILine::intersect(), LightRay::intersect(), MatrixMeschach::inverse(), LightRay::LightRay(), FittedEntriesManager::MakeHistos(), OptODistancemeter::makeMeasurement(), OptODistancemeter3dim::makeMeasurement(), OptOTiltmeter::makeMeasurement(), OptOSensor2D::makeMeasurement(), OptOCOPS::makeMeasurement(), Fit::multiplyMatrices(), Model::nextOptOToCopy(), operator+(), MatrixMeschach::operator=(), OpticalObject::OpticalObject(), Measurement::postConstruct(), Fit::printCentreInOptOFrame(), Fit::PrintChi2(), Fit::PropagateErrors(), CocoaAnalyzer::ReadCalibrationDB(), OpticalObject::readCoordinates(), EntryMgr::readEntryFromReportOut(), CocoaDaqReaderRoot::ReadEvent(), DeviationsFromFileSensor2D::readFile(), FittedEntriesReader::readFittedEntriesFromFile(), ErrorCorrelationMgr::readFromReportFile(), Model::readMeasurementsFromFile(), CocoaDaqReaderText::ReadNextEvent(), Model::readSystemDescription(), CocoaAnalyzer::ReadXMLFile(), Fit::redoMatrices(), LightRay::reflect(), LightRay::refract(), OpticalObject::rotateItAroundGlobal(), CocoaAnalyzer::RunCocoa(), SetAngleDimensionFactors(), OpticalObject::SetCentreGlobFromCentreLocal(), OpticalObject::SetCentreLocalFromEntryValues(), MatrixMeschach::SetCorrelation(), Fit::setCorrelationsInWMatrix(), setDebugVerbosity(), Fit::setFittableEntries(), GlobalOptionMgr::setGlobalOption(), OpticalObject::setGlobalRMOriginalOriginal(), SetLengthDimensionFactors(), FittedEntriesSet::SetOptOEntries(), OpticalObject::setOriginalEntryValues(), SetOutputAngleDimensionFactors(), SetOutputLengthDimensionFactors(), OpticalObject::SetRMGlobFromRMLocal(), OpticalObject::SetRMLocalFromEntryValues(), Model::SetValueDisplacementsFromReportOut(), LightRay::shiftAndDeviateWhileTraversing(), Fit::startFit(), LightRay::startLightRay(), Measurement::Substitute2p(), FittedEntriesReader::substitutePointBySlash(), Fit::substractLastDisplacementToEntries(), OpticalObject::transformCylindrical2Cartesian(), OptOUserDefined::userDefinedBehaviour(), Entry::valueDisplaced(), EntryLengthAffCentre::valueDisplaced(), EntryAngleAffAngles::valueDisplaced(), and Fit::WriteVisualisationFiles().

ALIdouble ALIUtils::deg = 0.017453293 [static]

Definition at line 36 of file ALIUtils.h.

Referenced by OptOModifiedRhomboidPrism::getRotatedPlate().

ALIbool ALIUtils::firstTime = false [static, private]

Definition at line 130 of file ALIUtils.h.

Referenced by getFirstTime(), and setFirstTime().

Definition at line 132 of file ALIUtils.h.

Referenced by getMaximumDeviationDerivative(), and setMaximumDeviationDerivative().

ALIint ALIUtils::report = 1 [static]