|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #include "Identifier/Identifier.h"
118 os <<
" CaloDetDescriptor print: \n\n";
132 if(!
m_is_tile)
os <<
" UNKNOW LAr decriptor !!!! \n";
135 os <<
"Ideal values before alignment :\n";
136 os <<
" eta_min eta_max deta n_eta phi_min phi_max dphi n_phi \n";
137 os << std::setw(9) << std::setprecision(4) <<
calo_eta_min() <<
" "
138 << std::setw(9) << std::setw(9) << std::setprecision(4) <<
calo_eta_max() <<
" "
139 << std::setw(9) << std::setprecision(4) <<
deta() <<
" "
140 << std::setw(9) << std::setprecision(4) <<
n_eta() <<
" "
141 << std::setw(9) << std::setprecision(4) <<
calo_phi_min() <<
" "
142 << std::setw(9) << std::setprecision(4) <<
calo_phi_max() <<
" "
143 << std::setw(9) << std::setprecision(4) <<
dphi() <<
" "
144 << std::setw(9) << std::setprecision(4) <<
n_phi() <<
"\n";
146 os <<
" r_min z_min r_max z_max sign\n";
149 << std::setprecision(4) <<
calo_r_max() <<
" "
150 << std::setprecision(4) <<
calo_z_min() <<
" "
151 << std::setprecision(4) <<
calo_z_max() <<
" "
152 << std::setprecision(1) <<
calo_sign() <<
"\n";
157 double theta1, psi1, phi1;
158 if (std::abs(std::abs(rot(2,1))-1.0
f) > 0.00001)
160 theta1 = -std::asin(rot(2,0));
167 psi1 = std::atan2(rot(0,1),rot(0,2));
169 theta1 = -(
M_PI * 0.5);
170 psi1 = std::atan2(-rot(0,1), -rot(0,2));
174 os <<
"\nEigenTransform phi,theta,psi,x,y,z: "
175 << phi1 <<
" " << theta1 <<
" "
179 os << std::setprecision(4) <<
"in real world (can be <0)"
220 htrans = (htrans) *
vec;
241 htrans = (htrans) *
vec;
277 double phi_fixed =
phi ;
281 phi_fixed = phi_fixed + 2.0*
M_PI;
307 double phi_fixed =
phi ;
311 phi_fixed = phi_fixed + 2.0*
M_PI;
double calo_eta_max() const
'ideal' geometry: eta maximal
CaloCell_ID::CaloSample getSampling() const
get sampling returns the cached CaloSample, if the descriptor contains more than one sampling,...
double m_lar_deta
delta eta (LAr)
Amg::Transform3D m_transform
misalignment transformation
CaloCell_ID::SUBCALO m_calo_num
Subcalo.
void dump(std::ostream &os) const
dump contents to a stream.
bool is_em_endcap_outer(const Identifier id) const
test if the id belongs to the EM Endcap outer wheel
double m_lar_reg_max
maximal Abs Eta for LAr region
bool get_cylinder_surface(Amg::Transform3D &htrans, double &radius, double &hphi, double &hlength, double &depth) const
this will be the closest radius of this region
bool m_is_lar_em_endcap_inner
descriptor belongs to the inner wheel of EM end cap
@ depth
pointing depth of the shower as calculated in egammaqgcld
double m_lar_eta_min
minimal Eta for LAr region
void get_depth_out(std::vector< double > &calo_depth) const
get vector of out depths
double m_calo_eta_min
minimal Eta (to be defined in the derived classes)
Scalar phi() const
phi method
int phi_min(const Identifier regId) const
min value of phi index (-999 == failure)
int phi_channel(double phi) const
channel number for a given eta/phi (if outside returns -1) Should not be used for FCAL
bool is_lar_fcal(Identifier id) const
bool is_tile_gap(const Identifier &id) const
Scalar eta() const
pseudorapidity method
bool is_em_endcap(const Identifier id) const
test if the id belongs to the EM Endcap
bool m_is_lar_em_endcap
descriptor belongs to EM end cap
int pos_neg(const Identifier id) const
LAr field values (NOT_VALID == invalid request)
int m_etachan_min
minimal Eta channel number
double dphi() const
delta phi
int n_calo_depth() const
number of calo depths
int sample(const Identifier &id) const
double m_lar_reg_min
minimal Abs Eta for LAr region
void set_n_calo_depth(int n_calo_depth)
set number of calo depths
int m_lar_n_eta
eta granularity (LAr)
bool is_tile_extbarrel(const Identifier &id) const
std::vector< size_t > vec
int eta_max(const Identifier regId) const
max value of eta index (-999 == failure)
int m_n_calo_depth
number of depths
bool is_in(double eta_min, double eta_max, double phi_min, double phi_max) const
check overlap with a given zone in eta and phi (for LAr only)
int calo_sample(const Identifier id) const
returns an int taken from Sampling enum and describing the subCalo to which the Id belongs.
double calo_phi_min() const
'ideal' geometry: phi minimal
double calo_phi_max() const
'ideal' geometry: phi maximal
bool is_tile(const Identifier id) const
test if the id belongs to the Tiles
double m_lar_dphi
delta phi (LAr)
bool get_disk_surface(Amg::Transform3D &htrans, double &z, double &rmin, double &rmax, double &hphisec, double &depth) const
(for Trk::Surface)
int eta_channel_raw(double eta) const
channel number for a given eta/phi raw (if outside returns -1).
const AtlasDetectorID * m_helper
Atlas Detector ID helper.
bool is_hec(const Identifier id) const
test if the id belongs to the HEC
virtual void print() const
print the contents
double calo_z_max() const
'ideal' geometry: z maximal
double m_lar_phi_min
minimal Phi for LAr region
typename vecDetail::vec_typedef< T, N >::type vec
Define a nice alias for the vectorized type.
Definition of CaloDetDescriptor.
const CaloCell_Base_ID * m_calo_helper
Calo Cell ID helper.
CaloCell_Base_ID::SUBCALO SUBCALO
int m_lar_n_phi
phi granularity (LAr)
int phi_max(const Identifier regId) const
max value of phi index (-999 == failure)
bool is_em(const Identifier id) const
test if the id belongs to LArEM
void get_depth_in(std::vector< double > &calo_depth) const
get vector of in depths
int calo_sign() const
'ideal' geometry: calo sign
double calo_z_min() const
'ideal' geometry: z minimal
CaloSampling::CaloSample CaloSample
std::vector< double > m_calo_depth_in
in depths
int n_phi() const
phi granularity
void calo_cell_hash_range(const Identifier id, IdentifierHash &caloCellMin, IdentifierHash &caloCellMax) const
to loop on 'global' cell hashes of one sub-calorimeter alone
bool is_fcal(const Identifier id) const
test if the id belongs to the FCAL - true also for MiniFCAL
int sampling(const Identifier id) const
LAr field values (NOT_VALID == invalid request)
int eta_channel(double eta) const
channel number for a given eta/phi (if outside returns -1).
This class factors out code common between TileID and Tile_SuperCell_ID.
virtual ~CaloDetDescriptor()
virtual detructor
Eigen::Affine3d Transform3D
double m_calo_z_max
maximal Z (to be defined in the derived classes)
int layer() const
get layer
bool is_em_endcap_inner(const Identifier id) const
test if the id belongs to the EM Endcap inner wheel
double m_calo_z_min
minimal Z (to be defined in the derived classes)
int sub_calo(const Identifier id) const
returns an int taken from SUBCALO enum and describing the subCalo to which the Id belongs.
bool is_lar_hec(Identifier id) const
float phiGranularity(const Identifier regId) const
LAr phi granularity (NOT_VALID == failure)
void set_depth_in(std::vector< double > &calo_depth)
set vector of in depths
double deta() const
delta eta
bool m_is_lar_em_endcap_outer
descriptor belongs to the outer wheel of EM end cap
double m_calo_phi_max
maximal Phi (to be defined in the derived classes)
bool is_em_barrel(const Identifier id) const
test if the id belongs to the EM barrel
std::string print_to_string(Identifier id, const IdContext *context=0) const
or provide the printout in string form
int eta_min(const Identifier regId) const
min value of eta index (-999 == failure)
std::vector< double > m_calo_depth_out
out depths
CaloCell_ID::CaloSample m_calo_sampl
Calo Sample.
bool m_is_lar_em_barrel
descriptor belongs to EM barrel
double m_calo_eta_max
maximal Eta (to be defined in the derived classes)
Eigen::Matrix< double, 3, 1 > Vector3D
void set_depth_out(std::vector< double > &calo_depth)
set vector of out depths
double m_calo_r_max
maximal R (to be defined in the derived classes)
Identifier m_id
Region identifier.
CaloDetDescriptor(const Identifier &id, const AtlasDetectorID *helper, const CaloCell_Base_ID *calo_helper, CaloCell_ID::CaloSample sample=CaloCell_ID::Unknown, int layer=CaloCell_ID::NOT_VALID)
Constructor.
double calo_eta_min() const
'ideal' geometry: eta minimal
int side(const Identifier id) const
Tile field values (NOT_VALID == invalid request)
double m_calo_r_min
minimal R (to be defined in the derived classes)
void set_eta_phi_granularity(int neta, double deta, int nphi, double dphi)
Set Phi granularity.
bool m_is_lar_fcal
descriptor belongs to FCAL
int phi_channel_raw(double phi) const
channel number for a given eta/phi raw (if outside returns -1) Should not be used for FCAL
Eigen::Matrix< double, 3, 3 > RotationMatrix3D
int n_eta() const
eta granularity
bool m_is_lar_hec
descriptor belongs to HEC
Eigen::Translation< double, 3 > Translation3D
bool m_is_tile
descriptor belongs to Tile
double m_calo_phi_min
minimal Phi (to be defined in the derived classes)
bool m_is_lar_em
descriptor belongs to EM calorimeter
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
double calo_r_max() const
'ideal' geometry: r maximal
bool is_tile_barrel(const Identifier &id) const
Test of an Identifier to see if it belongs to a particular part of the calorimeter.
Identifier cell_id(const Identifier &any_id) const
Helper base class for offline cell identifiers.
double calo_r_min() const
'ideal' geometry: r minimal
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
IdentifierHash m_calocell_min
minimal hash id of region cells
float etaGranularity(const Identifier regId) const
LAr eta granularity (NOT_VALID == failure)