Class BMTGeometry
java.lang.Object
org.jlab.rec.cvt.bmt.BMTGeometry
- Author:
- devita
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionorg.jlab.groot.group.DataGroupdraw()getAxis(int layer, int sector) Return axis for the selected tile, identified by layer and sectorgetCstrip(int region, int sector, int strip) Returns Arc3D corresponding to the selected C-detector strip according to real geometryintReturn the number of the closest strip to the given trajectory point in the detector local framedoublegetCstripZ(int region, int strip) Returns the Z position of the selected C-detector strip in the local framestatic BMTTypegetDetectorType(int layer) Return region number for a given layerdoublegetDPhi(int layer, int sector) Return half tile phi coveragegetIdealLCZstrip(int region, int sector, int strip, Swim swim) Returns Line3D for Z detector pseudostrip identified from region, sector, strip numbers, for ideal geometry After Loentz angle correctionintReturn layer number for a given region and detector typeintReturn the layer numberstatic int[]getlC()getLCZstrip(int region, int sector, int strip, Swim swim) Returns Line3D for Z detector pseudo-strip identified from region, sector, strip numbers, for real geometry After Lorentz angle correctiondoublegetLocalAngle(int layer, int sector, Point3D trackPos, Vector3D trackDir) getLocalTrack(int layer, int sector, Point3D trackPos, Vector3D trackDir) Return track vector for local angle calculations 1) transform to the geometry service local frame first, 2) rotates to bring the track intersection at phi=90.static int[]getlZ()static intgetModuleId(int layer, int sector) intintintgetNStrips(int layer) Return number of strips of the selected layergetOffset(int layer, int sector) Return offset of the selected tile, identified by layer and sectordoublegetPhi(int layer, int sector) Return tile phi centerdoubledoublegetPitch(int layer, int strip) Return pitch for the selected layer and stripdoublegetRadius(int layer) Return radius of the selected strip layerdoublegetRadiusMidDrift(int layer) Return radius of the selected layer corresponding to the center of the drift gapintgetRegion(int layer) Return region number for a given layergetRotation(int layer, int sector) Return ROTATIONS for the selected tile, identified by layer and sectorintgetSector(int layer, double localAngle) Return the sector numberintReturn the sector numberintReturn the number of the closest strip to the given trajectory point Detector mis-alignments geometry are taken into account by transforming the trajectory point to detector local frameintChecks whether a trajectory point is within the active area of a tilegetSurface(int layer, int sector, Strip strip) getSurfaceC(int layer, int sector, int stripId, double centroid, double centroidValue) getSurfaceZ(int layer, int sector, int stripId, double centroid, double x, double y, double centroidValue) doubleReturns the local angle of the track for C detectors the angle is positive for tracks going at positive zdoublegetThetaLorentz(int layer, int sector, double x, double y, double z, Swim swim) Calculate Theta Lorentz based on solenoid scale and drift settingsdoublegetThetaLorentz(int layer, int sector, Point3D pos, Swim swim) Calculate Theta Lorentz based on solenoid scale and drift settingsdoubleReturns the local angle of the track for Z detectors the angle is positive for tracks going toward positive phidoubleReturn thickness of the drift gapgetTileSurface(int layer, int sector) doublegetZmax(int layer) Return maximum z of the selected layer in the local framedoublegetZmin(int layer) Return minimum z of the selected layer in the local framegetZstrip(int region, int sector, int strip) Returns Line3D for Z detector strip identified from region, sector, strip numbers, for real geometryintReturn the number of the closest strip to the given trajectory point in the detector local framedoublegetZstripPhi(int region, int sector, int strip) booleaninDetector(int layer, int sector, Point3D traj) Checks whether a trajectory point is within the active area of a tilestatic voidExecutable method: implements checkstoGlobal(int layer, int sector) toLocal(int layer, int sector)
-
Field Details
-
NLAYERS
public static final int NLAYERS- See Also:
-
NSECTORS
public static final int NSECTORS- See Also:
-
NPASSIVE
public static final int NPASSIVE- See Also:
-
-
Constructor Details
-
BMTGeometry
-
-
Method Details
-
getNLayers
public int getNLayers() -
getNSectors
public int getNSectors() -
getLayer
Return layer number for a given region and detector type- Parameters:
region- (1-3)detector- (C or Z)- Returns:
- layer (1-6)
-
getlZ
public static int[] getlZ()- Returns:
- the lZ
-
getlC
public static int[] getlC()- Returns:
- the lC
-
getRegion
public int getRegion(int layer) Return region number for a given layer- Parameters:
layer- (1-6)- Returns:
- region (1-3)
-
getModuleId
public static int getModuleId(int layer, int sector) -
getDetectorType
Return region number for a given layer- Parameters:
layer- (1-6)- Returns:
- type ("C" or "Z");
-
getRadius
public double getRadius(int layer) Return radius of the selected strip layer- Parameters:
layer- (1-6)- Returns:
- radius
-
getRadiusMidDrift
public double getRadiusMidDrift(int layer) Return radius of the selected layer corresponding to the center of the drift gap- Parameters:
layer- (1-6)- Returns:
- radius (=0 if layer is out of range)
-
getNStrips
public int getNStrips(int layer) Return number of strips of the selected layer- Parameters:
layer- (1-6)- Returns:
- nstrips (=0 if layer is out of range)
-
getPitch
public double getPitch(int layer, int strip) Return pitch for the selected layer and strip- Parameters:
layer- (1-6)strip-- Returns:
- pitch (=0 if layer is out of range)
-
getZmin
public double getZmin(int layer) Return minimum z of the selected layer in the local frame- Parameters:
layer- (1-6)- Returns:
- z (=udf if layer is out of range)
-
getZmax
public double getZmax(int layer) Return maximum z of the selected layer in the local frame- Parameters:
layer- (1-6)- Returns:
- z (=udf if layer is out of range)
-
getPhi
public double getPhi(int layer, int sector) Return tile phi center- Parameters:
layer- (1-6)sector- (1-3)- Returns:
- phi (=udf if layer is out of range)
-
getDPhi
public double getDPhi(int layer, int sector) Return half tile phi coverage- Parameters:
layer- (1-6)sector- (1-3)- Returns:
- dz (=udf if layer is out of range)
-
getThickness
public double getThickness()Return thickness of the drift gap- Returns:
- thickness
-
getOffset
Return offset of the selected tile, identified by layer and sector- Parameters:
layer- (1-6)sector- (1-3)- Returns:
- Point3D offset: 3D offset
-
getRotation
Return ROTATIONS for the selected tile, identified by layer and sector- Parameters:
layer- (1-6)sector- (1-3)- Returns:
- Point3D offset: 3D offset
-
toGlobal
-
toLocal
-
getAxis
Return axis for the selected tile, identified by layer and sector- Parameters:
layer- (1-6)sector- (1-3)- Returns:
- Point3D offset: 3D offset
-
toLocal
-
toGlobal
-
getZstrip
Returns Line3D for Z detector strip identified from region, sector, strip numbers, for real geometry- Parameters:
region-sector-strip-- Returns:
- stripline
-
getIdealLCZstrip
-
getLCZstrip
-
getZstripPhi
public double getZstripPhi(int region, int sector, int strip) - Parameters:
region-sector-strip-- Returns:
- the phi angle of the strip center in radians
-
getCstripZ
public double getCstripZ(int region, int strip) Returns the Z position of the selected C-detector strip in the local frame- Parameters:
region-strip-- Returns:
- zc
-
getCstrip
Returns Arc3D corresponding to the selected C-detector strip according to real geometry- Parameters:
region-sector-strip-- Returns:
-
getTileSurface
-
getSector
public int getSector(int layer, double localAngle) Return the sector number- Parameters:
layer- [0-6]localAngle- track angle in the local frame in radians- Returns:
- sector [1-3] (not) accounting for dead areas if layer (0) [1-6] or 0 if layer is undefined
-
getSector
Return the sector number- Parameters:
layer- [0-6]localTraj- trajectory point in the local frame- Returns:
- sector [1-3] (not) accounting for dead areas if layer (0) [1-6] or 0 if layer is undefined
-
getLayer
Return the layer number- Parameters:
localtraj- point on one of the detector surfacesstrip2Det-- Returns:
- layer [1-6] or 0 if undefined
-
inDetector
Checks whether a trajectory point is within the active area of a tile- Parameters:
layer-sector-traj-- Returns:
- true/false
-
getStrip
Checks whether a trajectory point is within the active area of a tile- Parameters:
traj-- Returns:
- true/false
-
getStrip
Return the number of the closest strip to the given trajectory point Detector mis-alignments geometry are taken into account by transforming the trajectory point to detector local frame- Parameters:
layer- (1-6)sector- (1-3)traj- trajectory point on the layer surface in the lab- Returns:
- strip number (0 if the point is not within the active area)
-
getCstrip
Return the number of the closest strip to the given trajectory point in the detector local frame- Parameters:
region- (1-3)traj- trajectory point on the layer surface in the local frame- Returns:
- strip number (0 if the point is not within the active area)
-
getZstrip
Return the number of the closest strip to the given trajectory point in the detector local frame- Parameters:
region- (1-3)localTraj- trajectory point on the layer surface in the local frame- Returns:
- strip number (0 if the point is not within the active area)
-
getPhi
-
getThetaLorentz
-
getThetaLorentz
Calculate Theta Lorentz based on solenoid scale and drift settings- Parameters:
layer-sector-x-y-z-swim-- Returns:
- thetaL in radians
-
getLocalTrack
Return track vector for local angle calculations 1) transform to the geometry service local frame first, 2) rotates to bring the track intersection at phi=90. The final frame has: - z along the axis of the tile cylinder - y perpendicular to the surface The y and x components determine the local angle for Z strips The x and z components determine the local angle for C strips- Parameters:
layer-sector-trackPos-trackDir-- Returns:
- track direction unit vector
-
getThetaZ
-
getThetaC
-
getLocalAngle
-
getSurfaces
-
getSurfaceC
public Surface getSurfaceC(int layer, int sector, int stripId, double centroid, double centroidValue) -
getSurfaceZ
public Surface getSurfaceZ(int layer, int sector, int stripId, double centroid, double x, double y, double centroidValue) -
getSurface
-
getInnerTube
-
getOuterTube
-
draw
public org.jlab.groot.group.DataGroup draw() -
main
-