ATLAS Offline Software
|
#include <LArBarrelPresamplerGeometry.h>
Public Member Functions | |
Geometry (const std::string &name, ISvcLocator *pSvcLocator) | |
virtual | ~Geometry () |
virtual StatusCode | initialize () override final |
initialize geometry parameters this should at some stage be taken from a database... More... | |
virtual LArG4Identifier | CalculateIdentifier (const G4Step *) const override final |
The following method computes the identifiers in the Presampler volume: More... | |
virtual bool | findCell (CalcData ¤tCellData, G4double xloc, G4double yloc, G4double zloc) const override final |
=============================================================================== bool findCell(xloc,yloc,zloc) const More... | |
Private Member Functions | |
LArG4Identifier | CalculatePSActiveIdentifier (const G4Step *, const G4int indPS) const |
calculate identifier from a G4 step in the PS active region This function should always return a valid identifier which can be used for calibration hit even if the hit is not really in the "fiducial" active part More... | |
LArG4Identifier | CalculatePS_DMIdentifier (const G4Step *, const G4int indPS) const |
G4int | determineZSide (const double zCoord) const |
Private Attributes | |
std::string | m_detectorName {"LArMgr"} |
G4double | m_end_module [8] {} |
G4double | m_zminPS {3.00*Athena::Units::mm} |
G4double | m_zpres {1549.*Athena::Units::mm} |
G4double | m_cat_th {} |
G4double | m_first_cathod [8] {} |
G4double | m_tilt [8] {} |
G4int | m_ngap_cell [8] {} |
G4double | m_pitch [8] {} |
G4int | m_ncell_module [8] {} |
G4double | m_halfThickLAr {0.5*13.*Athena::Units::mm} |
bool | m_testbeam {false} |
Definition at line 27 of file LArBarrelPresamplerGeometry.h.
LArG4::BarrelPresampler::Geometry::Geometry | ( | const std::string & | name, |
ISvcLocator * | pSvcLocator | ||
) |
Definition at line 85 of file LArBarrelPresamplerGeometry.cxx.
|
virtual |
Definition at line 93 of file LArBarrelPresamplerGeometry.cxx.
|
finaloverridevirtual |
The following method computes the identifiers in the Presampler volume:
1) Navigate through the volumes hierarchy
2) Calculate identifier using the CalculatePSActiveIdentifier method if the hit is in the Module volume and CalculatePS_DMIdentifier if the hit is in some dead region
Get all the required information from the current step
Now navigate through the volumes hierarchy
Definition at line 152 of file LArBarrelPresamplerGeometry.cxx.
|
private |
to get coordinates in local half barrel frame, independently of overall presampler position/rotation
shift z such that z=0 is eta=0 in Atlas standard frame
eta,phi in "local" half barrel coordinates
check if the hit is in front of the active layer of the presampler in order to distinguish between regin 2 and 3: WARNING the method is temporary!
PSModuleRmean = 1420 is the distance between the middle of the active layer (LAr) of the PS modules and the interaction point
Fill identifier.
Definition at line 237 of file LArBarrelPresamplerGeometry.cxx.
|
private |
calculate identifier from a G4 step in the PS active region This function should always return a valid identifier which can be used for calibration hit even if the hit is not really in the "fiducial" active part
following code for an Y-axis rotation to define the side C half-barrel
Append the cell ID to the (empty) identifier.
Definition at line 186 of file LArBarrelPresamplerGeometry.cxx.
|
inlineprivate |
Definition at line 45 of file LArBarrelPresamplerGeometry.h.
|
finaloverridevirtual |
=============================================================================== bool findCell(xloc,yloc,zloc) const
From local PS coordinates (half barrel tube mother volume) compute etaBin,phiBin,sampling,region as well as gap number, distance to closest electrode and projection along electrode axis
Takes into account for complexity of eta segmentation
Return true if where are really within the 13mm LAr gap Return false for the few steps which are in the safety region at the edges of module Assume that hit is in the "active" LAr
note that here phiBin is computed for the + half barrel some care has to be taken to convert to the - half barrel, taking into account the rotation
findCell always fills valid currentCellData.region, currentCellData.sampling, currentCellData.etaBin, currentCellData.phiBin it returns true if the hit is in the normal 13mm Ar gap, within a real module it returns false otherwise
eta,phi in "local" Atlas like half barrel coordinates
According to the memo, phi is divided into 64 regions [0..63].
Convert phi into integer bins.
if inside LAr but outside a module, returns some etaBin value for the DM identifier, but function return false to veto this step in the normal calculator
find in which module in z the hit is
compute signed distance from middle of active layer along layer height axis
compute z distance from first cathode of module to step, taking into account the m_tilt angle of the cathode
compute gap number
compute cell number in eta
z of the centre of the anode of the gap
compute step position in electrode reference frame currentCellData.distElec => signed distance to electrode currentCellData.xElec => projection along electrode axis
Definition at line 374 of file LArBarrelPresamplerGeometry.cxx.
|
finaloverridevirtual |
initialize geometry parameters this should at some stage be taken from a database...
compute positions of end of modules and of first cathode in a module in nominal Atlas coordinates
Definition at line 98 of file LArBarrelPresamplerGeometry.cxx.
|
private |
Definition at line 62 of file LArBarrelPresamplerGeometry.h.
|
private |
Definition at line 54 of file LArBarrelPresamplerGeometry.h.
|
private |
Definition at line 59 of file LArBarrelPresamplerGeometry.h.
|
private |
Definition at line 64 of file LArBarrelPresamplerGeometry.h.
|
private |
Definition at line 74 of file LArBarrelPresamplerGeometry.h.
|
private |
Definition at line 72 of file LArBarrelPresamplerGeometry.h.
|
private |
Definition at line 68 of file LArBarrelPresamplerGeometry.h.
|
private |
Definition at line 70 of file LArBarrelPresamplerGeometry.h.
|
private |
Definition at line 76 of file LArBarrelPresamplerGeometry.h.
|
private |
Definition at line 66 of file LArBarrelPresamplerGeometry.h.
|
private |
Definition at line 60 of file LArBarrelPresamplerGeometry.h.
|
private |
Definition at line 61 of file LArBarrelPresamplerGeometry.h.