CMS 3D CMS Logo

ALIRmDataFromFile.cc

Go to the documentation of this file.
00001 //   COCOA class implementation file
00002 //Id:  ALIRmDataFromFile.cc
00003 //CAT: Model
00004 //
00005 //   History: v1.0 
00006 //   Pedro Arce
00007 
00008 #include "Alignment/CocoaModel/interface/ALIRmDataFromFile.h"
00009 
00010 
00011 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
00012 ALIRmDataFromFile::ALIRmDataFromFile()
00013 {
00014 }
00015 
00016 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
00017 ALIbool ALIRmDataFromFile::setAngle( const ALIstring& coord, const ALIdouble val ){
00018 
00019   if( coord == "X" ) {
00020     return setAngleX( val );
00021   }else if( coord == "Y" ) {
00022     return setAngleY( val );
00023   }else if( coord == "Z" ) {
00024     return setAngleZ( val );
00025   }else {   
00026     std::cerr << "!!! FATAL ERROR ALIRmDataFromFile::setAngle. Coordinate must be X, Y or Z, it ii " << coord << std::endl;
00027     std::exception();
00028   }
00029 }
00030 
00031 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
00032 ALIbool ALIRmDataFromFile::setAngleX( const ALIdouble val )
00033 {
00034   theAngleX = val;
00035   theDataFilled += "X";
00036   return 1;
00037 }
00038 
00039 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
00040 ALIbool ALIRmDataFromFile::setAngleY( const ALIdouble val )
00041 {
00042   theAngleY = val;
00043   theDataFilled += "Y";
00044   return 1;
00045 }
00046 
00047 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
00048 ALIbool ALIRmDataFromFile::setAngleZ( const ALIdouble val )
00049 {
00050   theAngleZ = val;
00051   theDataFilled += "Z";
00052   return 1;
00053 }
00054 
00055 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
00056 void ALIRmDataFromFile::constructRm()
00057 {
00058   if( theDataFilled.find("X") == -1 ||  theDataFilled.find("Y") == -1 ||  theDataFilled.find("Z") == -1 ){
00059     std::cerr << "!!!  ALIRmDataFromFile::constructRm. FATAL ERROR: building rm while one angle is missing: " << theDataFilled << std::endl;
00060   } else {
00061     theRm = CLHEP::HepRotation();
00062     theRm.rotateX( theAngleX );
00063     theRm.rotateY( theAngleY );
00064     theRm.rotateZ( theAngleZ );
00065   }
00066 
00067 }

Generated on Tue Jun 9 17:23:36 2009 for CMSSW by  doxygen 1.5.4