13#ifndef CALODETDESCR_CALODETDESCRIPTOR_H
14#define CALODETDESCR_CALODETDESCRIPTOR_H
79 virtual void print()
const;
83 void dump(std::ostream& os)
const;
247 bool is_in (
double eta_min,
250 double phi_max)
const;
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
CaloCell_ID::CaloSample CaloSample
Eigen::Affine3d Transform3D
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
Helper base class for offline cell identifiers.
SUBCALO
enumeration of sub calorimeters
Helper class for offline cell identifiers.
CaloCell_Base_ID::SUBCALO SUBCALO
CaloSampling::CaloSample CaloSample
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 m_calo_eta_max
maximal Eta (to be defined in the derived classes)
double calo_phi_max() const
'ideal' geometry: phi maximal
bool is_lar_em_barrel() const
descriptor belongs to EM barrel
double m_lar_eta_min
minimal Eta for LAr region
bool m_is_lar_em_endcap_outer
descriptor belongs to the outer wheel of EM end cap
double deta() const
delta eta
bool is_lar_fcal() const
descriptor belongs to FCAL
void set_depth_out(std::vector< double > &calo_depth)
set vector of out depths
void setLArRegMin(double reg_min)
Set LAr Region Eta Min.
double m_calo_r_max
maximal R (to be defined in the derived classes)
int n_phi() const
phi granularity
IdentifierHash caloCellMin() const
minimal hash identifier for calo cells in the region
std::vector< double > m_calo_depth_in
in depths
void setLArPhiMin(double phi_min)
Set LAr Region Phi Min.
double calo_eta_min() const
'ideal' geometry: eta minimal
int m_lar_n_eta
eta granularity (LAr)
int layer() const
get layer
double m_calo_phi_min
minimal Phi (to be defined in the derived classes)
const CaloCell_Base_ID * m_calo_helper
Calo Cell ID helper.
int n_calo_depth() const
number of calo depths
bool is_lar_em_endcap_inner() const
descriptor belongs to the inner wheel of EM end cap
double dphi() const
delta phi
void setCaloRMin(double r_min)
Set R Min.
void set_eta_phi_granularity(int neta, double deta, int nphi, double dphi)
Set Phi granularity.
double calo_z_min() const
'ideal' geometry: z minimal
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)
double m_calo_phi_max
maximal Phi (to be defined in the derived classes)
double calo_z_max() const
'ideal' geometry: z maximal
double m_lar_phi_min
minimal Phi for LAr region
bool is_lar_em_endcap_outer() const
descriptor belongs to the outer wheel of EM end cap
void setLArRegMax(double reg_max)
Set LAr Region Eta Max.
double calo_r_min() const
'ideal' geometry: r minimal
void set_transform(const Amg::Transform3D &transform)
Set the transformation matrix.
double reg_max() const
eta min and max once misaligned
double m_lar_reg_max
maximal Abs Eta for LAr region
std::vector< double > m_calo_depth_out
out depths
IdentifierHash subcalo_hash() const
get subcalo hash
IdentifierHash m_calocell_min
minimal hash id of region cells
int eta_channel(double eta) const
channel number for a given eta/phi (if outside returns -1).
double m_calo_eta_min
minimal Eta (to be defined in the derived classes)
double lar_phi_min() const
minimal Phi for LAr region
void setCaloZMax(double z_max)
Set Z Max.
virtual ~CaloDetDescriptor()
virtual detructor
double calo_r_max() const
'ideal' geometry: r maximal
double m_calo_z_max
maximal Z (to be defined in the derived classes)
bool get_disk_surface(Amg::Transform3D &htrans, double &z, double &rmin, double &rmax, double &hphisec, double &depth) const
(for Trk::Surface)
bool is_tile() const
descriptor belongs to Tile
CaloCell_ID::CaloSample m_calo_sampl
Calo Sample.
void set_n_calo_depth(int n_calo_depth)
set number of calo depths
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
CaloCell_ID::SUBCALO m_calo_num
Subcalo.
void setCaloZMin(double z_min)
Set Z Min.
double calo_eta_max() const
'ideal' geometry: eta maximal
double reg_min() const
eta min and max once misaligned
void setCaloPhiMin(double phi_min)
Set Phi Min.
int phi_channel(double phi) const
channel number for a given eta/phi (if outside returns -1) Should not be used for FCAL
void setCaloPhiMax(double phi_max)
Set Phi Max.
int m_n_calo_depth
number of depths
void setCaloRMax(double r_max)
Set R Max.
void get_depth_in(std::vector< double > &calo_depth) const
get vector of in depths
CaloCell_ID::CaloSample getSampling() const
get sampling returns the cached CaloSample, if the descriptor contains more than one sampling,...
bool is_lar_em_endcap() const
descriptor belongs to EM end cap
bool m_is_lar_hec
descriptor belongs to HEC
double m_lar_dphi
delta phi (LAr)
bool m_is_tile
descriptor belongs to Tile
bool m_is_lar_em_barrel
descriptor belongs to EM barrel
double calo_phi_min() const
'ideal' geometry: phi minimal
bool m_is_lar_em_endcap
descriptor belongs to EM end cap
Identifier m_id
Region identifier.
bool m_is_lar_em
descriptor belongs to EM calorimeter
IdentifierHash identifyHash() const override final
get hash identifier for the region
int calo_sign() const
'ideal' geometry: calo sign
Identifier identify() const override final
get region identifier
double m_lar_deta
delta eta (LAr)
double m_calo_z_min
minimal Z (to be defined in the derived classes)
bool m_is_lar_em_endcap_inner
descriptor belongs to the inner wheel of EM end cap
const CaloCell_Base_ID * get_calo_helper() const
get Calo Cell ID helper
Amg::Transform3D m_transform
misalignment transformation
const Amg::Transform3D & transform() const
Get the current transformation matrix.
IdentifierHash calo_hash() const
get calo hash
double lar_eta_min() const
minimal Eta for LAr region
void set_depth_in(std::vector< double > &calo_depth)
set vector of in depths
void setCaloEtaMin(double eta_min)
Set Eta Min.
void setLArEtaMin(double eta_min)
Set LAr Region Phi Max.
virtual void print() const
print the contents
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
bool is_lar_hec() const
descriptor belongs to HEC
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.
int m_etachan_min
minimal Eta channel number
int m_lar_n_phi
phi granularity (LAr)
void setCaloEtaMax(double eta_max)
Set Eta Max.
int n_eta() const
eta granularity
CaloCell_ID::SUBCALO getSubCalo() const
get subcalo
bool is_lar_em() const
descriptor belongs to EM calorimeter
double m_lar_reg_min
minimal Abs Eta for LAr region
bool m_is_lar_fcal
descriptor belongs to FCAL
void get_depth_out(std::vector< double > &calo_depth) const
get vector of out depths
double m_calo_r_min
minimal R (to be defined in the derived classes)
This class provides an abstract interface to an Identifiable object.
This is a "hash" representation of an Identifier.
std::string depth
tag string for intendation
Definition of ATLAS Math & Geometry primitives (Amg)
Eigen::Affine3d Transform3D