musrForwardParameterisation Class Reference

#include <musrForwardParameterisation.hh>

List of all members.

Public Member Functions

 musrForwardParameterisation (G4int NoRadialPixels, G4int NoLengthPixels, G4double X1Pixels, G4double X2Pixels, G4double Y1Pixels, G4double Y2Pixels, G4double ZPixels, G4double ArrayLength, G4double TiltAngle, G4double LRadius)
virtual ~musrForwardParameterisation ()
void ComputeTransformation (const G4int copyNo, G4VPhysicalVolume *physVol) const
void ComputeDimensions (G4Trd &trackerlayer, const G4int copyNo, const G4VPhysicalVolume *physVol) const


Detailed Description

Definition at line 25 of file musrForwardParameterisation.hh.


Constructor & Destructor Documentation

musrForwardParameterisation::musrForwardParameterisation G4int  NoRadialPixels,
G4int  NoLengthPixels,
G4double  X1Pixels,
G4double  X2Pixels,
G4double  Y1Pixels,
G4double  Y2Pixels,
G4double  ZPixels,
G4double  ArrayLength,
G4double  TiltAngle,
G4double  LRadius
 

Definition at line 10 of file musrForwardParameterisation.cc.

00021 {
00022    fNoRadialPixels     =  NoRadialPixels; 
00023    fNoLengthPixels     =  NoLengthPixels; 
00024    fPixelWidthX1  =  X1Pixel;
00025    fPixelWidthX2  =  X2Pixel;
00026    fPixelWidthY1  =  Y1Pixel;
00027    fPixelWidthY2  =  Y2Pixel;
00028    fPixelWidthZ  =  ZPixel;
00029    fArrayLength  =  ArrayLength;
00030    fTiltAngle    =  TiltAngle;
00031    fLRadius      =  LRadius;
00032 
00033 
00034 
00035 }

musrForwardParameterisation::~musrForwardParameterisation  )  [virtual]
 

Definition at line 39 of file musrForwardParameterisation.cc.

00040 {
00041 
00042 }


Member Function Documentation

void musrForwardParameterisation::ComputeDimensions G4Trd &  trackerlayer,
const G4int  copyNo,
const G4VPhysicalVolume *  physVol
const
 

Definition at line 91 of file musrForwardParameterisation.cc.

00092 {
00093 
00094     G4int j;
00095     G4double fNewWidthX1;
00096     G4double fNewWidthX2;
00097     G4double fNewWidthY1;
00098     G4double fNewWidthY2;
00099     G4double fNewWidthZ;
00100 
00101     G4double fRadiusAtY1;      
00102     G4double fRadiusAtY2;      
00103     G4double fZDist;
00104     G4double fZStep;
00105     G4double hArrayLength=0.5*fArrayLength;
00106     G4double hDetectorGap=1.2*mm;
00107 
00108 
00109 
00110     j=int(copyNo/fNoRadialPixels);
00111 
00112     fNewWidthZ=(hArrayLength/(cos(fTiltAngle)*fNoLengthPixels))-hDetectorGap;;
00113     fZStep = (fArrayLength/fNoLengthPixels);
00114     fZDist=j*fArrayLength/fNoLengthPixels;
00115 
00116     fRadiusAtY1=fLRadius-(fZDist)*tan(fTiltAngle);
00117     fRadiusAtY2=fLRadius-(fZDist+fZStep)*tan(fTiltAngle);
00118 
00119     fNewWidthY1=(fRadiusAtY1*tan(2*pi/(2*fNoRadialPixels)))-hDetectorGap;;
00120     fNewWidthY2=(fRadiusAtY2*tan(2*pi/(2*fNoRadialPixels)))-hDetectorGap;;
00121     fNewWidthX1=fPixelWidthX1;
00122     fNewWidthX2=fPixelWidthX2;
00123 
00124   PixelForward.CheckAndSetAllParameters(fPixelWidthX1,fPixelWidthX1,
00125                                          fNewWidthY1,fNewWidthY2,
00126                                          fNewWidthZ);
00127 }

void musrForwardParameterisation::ComputeTransformation const G4int  copyNo,
G4VPhysicalVolume *  physVol
const
 

Definition at line 47 of file musrForwardParameterisation.cc.

00048 {
00049     G4int j;
00050     G4double ftheta;    
00051     G4double fRadius;      
00052     G4double fZDist;
00053     G4double hArrayLength=0.5*fArrayLength;
00054     G4double fhZStep;
00055 
00056   j=int(copyNo/fNoRadialPixels);
00057 
00058   G4RotationMatrix* fRotFdeg= new G4RotationMatrix();
00059   G4ThreeVector fTa;
00060 
00061 
00062   fhZStep = (fArrayLength/(2*fNoLengthPixels));
00063   fZDist=j*fArrayLength/fNoLengthPixels;
00064 
00065    fTa.setZ(fZDist-(hArrayLength-fhZStep));
00066 
00067   fRadius=fLRadius-(fZDist+fhZStep)*tan(fTiltAngle);
00068 
00069   ftheta=(360*(copyNo-1)/fNoRadialPixels)*deg;
00070   fTa.setX(fRadius*cos(ftheta)*mm);
00071   fTa.setY(fRadius*sin(ftheta)*mm);
00072 
00073   fRotFdeg->rotateZ(-ftheta);
00074   fRotFdeg->rotateY(fTiltAngle);  
00075 
00076 
00077    //----- first delete the old rotation matrix 
00078    G4RotationMatrix* rmold = physVol->GetRotation();
00079    delete rmold;
00080 
00081 
00082   physVol->SetTranslation(fTa);
00083   physVol->SetRotation(fRotFdeg);
00084 
00085 
00086 }


The documentation for this class was generated from the following files:
Generated on Mon Mar 27 12:19:54 2006 for MUSR by  doxygen 1.4.6