00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #include "G4tgrPlaceParameterisation.hh"
00036 #include "G4tgbPlaceParamCircle.hh"
00037 #include "G4RotationMatrix.hh"
00038 #include "G4VPhysicalVolume.hh"
00039 #include "G4tgrMessenger.hh"
00040 #include "G4tgbRotationMatrixMgr.hh"
00041 #include "G4UIcommand.hh"
00042
00043
00044 G4tgbPlaceParameterisation::
00045 G4tgbPlaceParameterisation( G4tgrPlaceParameterisation* tgrParam)
00046 : theNCopies(0), theAxis(kUndefined)
00047 {
00048 theRotationMatrix = G4tgbRotationMatrixMgr::GetInstance()
00049 ->FindOrBuildG4RotMatrix( tgrParam->GetRotMatName() );
00050 }
00051
00052 G4tgbPlaceParameterisation::~G4tgbPlaceParameterisation()
00053 {
00054 delete theRotationMatrix;
00055 }
00056
00057 void G4tgbPlaceParameterisation::
00058 ComputeTransformation(const G4int ,G4VPhysicalVolume *) const
00059 {
00060 }
00061
00062 void G4tgbPlaceParameterisation::
00063 CheckNExtraData( G4tgrPlaceParameterisation* tgrParam, G4int nWcheck,
00064 WLSIZEtype st, const G4String& methodName )
00065 {
00066 std::vector<G4double> extraData = tgrParam->GetExtraData();
00067 G4int ndata = extraData.size();
00068
00069 G4String outStr = methodName + " " + tgrParam->GetType() + " ";
00070 G4bool isOK = G4tgrUtils::CheckListSize( ndata, nWcheck, st, outStr );
00071
00072 if( !isOK )
00073 {
00074 G4String chartmp = G4UIcommand::ConvertToString( nWcheck );
00075 outStr += chartmp + G4String(" words");
00076 G4cerr << outStr;
00077 G4cerr << " NUMBER OF WORDS " << ndata << G4endl;
00078 G4Exception("G4tgbPlaceParameterisation::CheckNExtraData",
00079 "InvalidData", FatalException, "Invalid data size.");
00080 }
00081 }