Package org.jlab.rec.cvt.bmt
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.DataGroup
draw()
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 geometryint
Return the number of the closest strip to the given trajectory point in the detector local framedouble
getCstripZ
(int region, int strip) Returns the Z position of the selected C-detector strip in the local framestatic BMTType
getDetectorType
(int layer) Return region number for a given layerdouble
getDPhi
(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 correctionint
Return layer number for a given region and detector typeint
Return 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 correctiondouble
getLocalAngle
(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 int
getModuleId
(int layer, int sector) int
int
int
getNStrips
(int layer) Return number of strips of the selected layergetOffset
(int layer, int sector) Return offset of the selected tile, identified by layer and sectordouble
getPhi
(int layer, int sector) Return tile phi centerdouble
double
getPitch
(int layer, int strip) Return pitch for the selected layer and stripdouble
getRadius
(int layer) Return radius of the selected strip layerdouble
getRadiusMidDrift
(int layer) Return radius of the selected layer corresponding to the center of the drift gapint
getRegion
(int layer) Return region number for a given layergetRotation
(int layer, int sector) Return ROTATIONS for the selected tile, identified by layer and sectorint
getSector
(int layer, double localAngle) Return the sector numberint
Return the sector numberint
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 frameint
Checks 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) double
Returns the local angle of the track for C detectors the angle is positive for tracks going at positive zdouble
getThetaLorentz
(int layer, int sector, double x, double y, double z, Swim swim) Calculate Theta Lorentz based on solenoid scale and drift settingsdouble
getThetaLorentz
(int layer, int sector, Point3D pos, Swim swim) Calculate Theta Lorentz based on solenoid scale and drift settingsdouble
Returns the local angle of the track for Z detectors the angle is positive for tracks going toward positive phidouble
Return thickness of the drift gapgetTileSurface
(int layer, int sector) double
getZmax
(int layer) Return maximum z of the selected layer in the local framedouble
getZmin
(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 geometryint
Return the number of the closest strip to the given trajectory point in the detector local framedouble
getZstripPhi
(int region, int sector, int strip) boolean
inDetector
(int layer, int sector, Point3D traj) Checks whether a trajectory point is within the active area of a tilestatic void
Executable 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
Handles BMT geometry- Parameters:
voltage
- HV table
-
-
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
Returns Line3D for Z detector pseudostrip identified from region, sector, strip numbers, for ideal geometry After Loentz angle correction- Parameters:
region
-sector
-strip
-swim
-- Returns:
- Line3D
-
getLCZstrip
Returns Line3D for Z detector pseudo-strip identified from region, sector, strip numbers, for real geometry After Lorentz angle correction- Parameters:
region
-sector
-strip
-swim
-- Returns:
- stripline
-
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
Calculate Theta Lorentz based on solenoid scale and drift settings- Parameters:
layer
-sector
-pos
-swim
-- Returns:
- thetaL in radians
-
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
Returns the local angle of the track for Z detectors the angle is positive for tracks going toward positive phi- Parameters:
layer
-sector
-trackPos
-trackDir
-- Returns:
- local angle
-
getThetaC
Returns the local angle of the track for C detectors the angle is positive for tracks going at positive z- Parameters:
layer
-sector
-trackPos
-trackDir
-- Returns:
- local angle
-
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
Executable method: implements checks- Parameters:
arg
-
-