DD4hep  1.30.0
Detector Description Toolkit for High Energy Physics
Classes | Public Types | Public Member Functions | Public Attributes | List of all members
dd4hep::rec::DCH_info_struct Struct Reference

#include <DCH_info.h>

Classes

struct  DCH_info_layer
 Internal helper struct for defining the layer layout. More...
 

Public Types

using DCH_layer = int
 type for layer number More...
 
using DCH_length_t = double
 tpye for lengths More...
 
using DCH_angle_t = double
 tpye for angles More...
 

Public Member Functions

void Set_lhalf (DCH_length_t _dch_Lhalf)
 
void Set_rin (DCH_length_t _dch_rin)
 
void Set_rout (DCH_length_t _dch_rout)
 
void Set_guard_rin_at_z0 (DCH_length_t _dch_rin_z0_guard)
 
void Set_guard_rout_at_zL2 (DCH_length_t _dch_rout_zL2_guard)
 
void Set_ncell0 (int _ncell0)
 
void Set_ncell_increment (int _ncell_increment)
 
void Set_nlayersPerSuperlayer (int _nlayersPerSuperlayer)
 
void Set_nsuperlayers (int _nsuperlayers)
 
void Set_ncell_per_sector (int _ncell_per_sector)
 
void Set_twist_angle (DCH_length_t _dch_twist_angle)
 
void Set_first_width (double _first_width)
 
void Set_first_sense_r (double _first_sense_r)
 
int Get_ncells (int ilayer)
 
DCH_angle_t Get_phi_width (int ilayer)
 Get phi width for the twisted tube and the step (phi distance between cells) More...
 
DCH_angle_t Get_cell_phi_angle (int ilayer, int nphi)
 
int Get_nsuperlayer_minus_1 (int ilayer)
 
DCH_length_t Radius_zLhalf (DCH_length_t r_z0) const
 Calculate radius at z=L/2 given at z=0. More...
 
DCH_angle_t stereoangle_z0 (DCH_length_t r_z0) const
 tan(stereoangle) = R(z=0) / (L/2) * tan( twist_angle/2) More...
 
DCH_angle_t stereoangle_zLhalf (DCH_length_t r_zLhalf) const
 tan(stereoangle) = R(z=L/2) / (L/2) * sin( twist_angle/2) More...
 
DCH_length_t WireLength (int nlayer, DCH_length_t r_z0) const
 WireLength = 2*dch_Lhalf/cos(atan(Pitch_z0(r_z0)/(2*dch_Lhalf)))/cos(stereoangle_z0(r_z0)) More...
 
bool IsDatabaseEmpty () const
 
void BuildLayerDatabase ()
 
void Show_DCH_info_database (std::ostream &io) const
 

Public Attributes

DCH_length_t Lhalf = {0}
 Half length of the active volume. More...
 
DCH_length_t rin = {0}
 Inner radius of the active volume. More...
 
DCH_length_t rout = {0}
 Outer radius of the active volume. More...
 
DCH_length_t guard_inner_r_at_z0 = {0}
 Inner guard wires radius. More...
 
DCH_length_t guard_outer_r_at_zL2 = {0}
 Outer guard wires radius. More...
 
int ncell0 = {0}
 number of cells of first layer More...
 
int ncell_increment = {0}
 
int ncell_per_sector = {0}
 cells within the same layer may be grouped into sectors, not in use atm More...
 
DCH_layer nlayersPerSuperlayer = {0}
 input number of layers in each superlayer More...
 
DCH_layer nsuperlayers = {0}
 
DCH_layer nlayers = {0}
 Calculated as dch_nlayersPerSuperlayer * dch_nsuperlayers. More...
 
DCH_angle_t twist_angle = {0}
 
double first_width = {0}
 Cell width for the first layer. More...
 
DCH_length_t first_sense_r = {0}
 Cell radius for the first layer. More...
 
std::map< DCH_layer, DCH_info_layerdatabase
 map to store parameters for each layer More...
 

Detailed Description

Definition at line 31 of file DCH_info.h.

Member Typedef Documentation

◆ DCH_angle_t

tpye for angles

Definition at line 41 of file DCH_info.h.

◆ DCH_layer

type for layer number

Definition at line 37 of file DCH_info.h.

◆ DCH_length_t

tpye for lengths

Definition at line 39 of file DCH_info.h.

Member Function Documentation

◆ BuildLayerDatabase()

void dd4hep::rec::DCH_info_struct::BuildLayerDatabase ( )
inline

nlayers = nsuperlayers * nlayersPerSuperlayer default: 112 = 14 * 8

Definition at line 188 of file DCH_info.h.

◆ Get_cell_phi_angle()

DCH_angle_t dd4hep::rec::DCH_info_struct::Get_cell_phi_angle ( int  ilayer,
int  nphi 
)
inline

phi positioning, adding offset for odd ilayers there is a staggering in phi for alternating layers, 0.25*cell_phi_width*(ilayer%2);

Definition at line 112 of file DCH_info.h.

◆ Get_ncells()

int dd4hep::rec::DCH_info_struct::Get_ncells ( int  ilayer)
inline

Get number of cells in a given layer ncells = number of wires/2

Definition at line 105 of file DCH_info.h.

◆ Get_nsuperlayer_minus_1()

int dd4hep::rec::DCH_info_struct::Get_nsuperlayer_minus_1 ( int  ilayer)
inline

calculate superlayer for a given ilayer. WARNING: division of integers on purpose!

Definition at line 116 of file DCH_info.h.

◆ Get_phi_width()

DCH_angle_t dd4hep::rec::DCH_info_struct::Get_phi_width ( int  ilayer)
inline

Get phi width for the twisted tube and the step (phi distance between cells)

Definition at line 108 of file DCH_info.h.

◆ IsDatabaseEmpty()

bool dd4hep::rec::DCH_info_struct::IsDatabaseEmpty ( ) const
inline

Definition at line 178 of file DCH_info.h.

◆ Radius_zLhalf()

DCH_length_t dd4hep::rec::DCH_info_struct::Radius_zLhalf ( DCH_length_t  r_z0) const
inline

Calculate radius at z=L/2 given at z=0.

Definition at line 119 of file DCH_info.h.

◆ Set_first_sense_r()

void dd4hep::rec::DCH_info_struct::Set_first_sense_r ( double  _first_sense_r)
inline

Definition at line 100 of file DCH_info.h.

◆ Set_first_width()

void dd4hep::rec::DCH_info_struct::Set_first_width ( double  _first_width)
inline

Definition at line 99 of file DCH_info.h.

◆ Set_guard_rin_at_z0()

void dd4hep::rec::DCH_info_struct::Set_guard_rin_at_z0 ( DCH_length_t  _dch_rin_z0_guard)
inline

Definition at line 86 of file DCH_info.h.

◆ Set_guard_rout_at_zL2()

void dd4hep::rec::DCH_info_struct::Set_guard_rout_at_zL2 ( DCH_length_t  _dch_rout_zL2_guard)
inline

Definition at line 87 of file DCH_info.h.

◆ Set_lhalf()

void dd4hep::rec::DCH_info_struct::Set_lhalf ( DCH_length_t  _dch_Lhalf)
inline

Definition at line 82 of file DCH_info.h.

◆ Set_ncell0()

void dd4hep::rec::DCH_info_struct::Set_ncell0 ( int  _ncell0)
inline

Definition at line 89 of file DCH_info.h.

◆ Set_ncell_increment()

void dd4hep::rec::DCH_info_struct::Set_ncell_increment ( int  _ncell_increment)
inline

Definition at line 90 of file DCH_info.h.

◆ Set_ncell_per_sector()

void dd4hep::rec::DCH_info_struct::Set_ncell_per_sector ( int  _ncell_per_sector)
inline

Definition at line 95 of file DCH_info.h.

◆ Set_nlayersPerSuperlayer()

void dd4hep::rec::DCH_info_struct::Set_nlayersPerSuperlayer ( int  _nlayersPerSuperlayer)
inline

Definition at line 92 of file DCH_info.h.

◆ Set_nsuperlayers()

void dd4hep::rec::DCH_info_struct::Set_nsuperlayers ( int  _nsuperlayers)
inline

Definition at line 93 of file DCH_info.h.

◆ Set_rin()

void dd4hep::rec::DCH_info_struct::Set_rin ( DCH_length_t  _dch_rin)
inline

Definition at line 83 of file DCH_info.h.

◆ Set_rout()

void dd4hep::rec::DCH_info_struct::Set_rout ( DCH_length_t  _dch_rout)
inline

Definition at line 84 of file DCH_info.h.

◆ Set_twist_angle()

void dd4hep::rec::DCH_info_struct::Set_twist_angle ( DCH_length_t  _dch_twist_angle)
inline

Definition at line 97 of file DCH_info.h.

◆ Show_DCH_info_database()

void dd4hep::rec::DCH_info_struct::Show_DCH_info_database ( std::ostream &  io) const
inline

Definition at line 287 of file DCH_info.h.

◆ stereoangle_z0()

DCH_angle_t dd4hep::rec::DCH_info_struct::stereoangle_z0 ( DCH_length_t  r_z0) const
inline

tan(stereoangle) = R(z=0) / (L/2) * tan( twist_angle/2)

Definition at line 124 of file DCH_info.h.

◆ stereoangle_zLhalf()

DCH_angle_t dd4hep::rec::DCH_info_struct::stereoangle_zLhalf ( DCH_length_t  r_zLhalf) const
inline

tan(stereoangle) = R(z=L/2) / (L/2) * sin( twist_angle/2)

Definition at line 129 of file DCH_info.h.

◆ WireLength()

DCH_length_t dd4hep::rec::DCH_info_struct::WireLength ( int  nlayer,
DCH_length_t  r_z0 
) const
inline

WireLength = 2*dch_Lhalf/cos(atan(Pitch_z0(r_z0)/(2*dch_Lhalf)))/cos(stereoangle_z0(r_z0))

Definition at line 134 of file DCH_info.h.

Member Data Documentation

◆ database

std::map<DCH_layer, DCH_info_layer> dd4hep::rec::DCH_info_struct::database

map to store parameters for each layer

Definition at line 177 of file DCH_info.h.

◆ first_sense_r

DCH_length_t dd4hep::rec::DCH_info_struct::first_sense_r = {0}

Cell radius for the first layer.

Definition at line 80 of file DCH_info.h.

◆ first_width

double dd4hep::rec::DCH_info_struct::first_width = {0}

Cell width for the first layer.

Definition at line 78 of file DCH_info.h.

◆ guard_inner_r_at_z0

DCH_length_t dd4hep::rec::DCH_info_struct::guard_inner_r_at_z0 = {0}

Inner guard wires radius.

Definition at line 50 of file DCH_info.h.

◆ guard_outer_r_at_zL2

DCH_length_t dd4hep::rec::DCH_info_struct::guard_outer_r_at_zL2 = {0}

Outer guard wires radius.

Definition at line 52 of file DCH_info.h.

◆ Lhalf

DCH_length_t dd4hep::rec::DCH_info_struct::Lhalf = {0}

Half length of the active volume.

Definition at line 43 of file DCH_info.h.

◆ ncell0

int dd4hep::rec::DCH_info_struct::ncell0 = {0}

number of cells of first layer

Definition at line 55 of file DCH_info.h.

◆ ncell_increment

int dd4hep::rec::DCH_info_struct::ncell_increment = {0}

increment the number of cells for each superlayer as: ncells(ilayer) = dch_ncell0 + increment*superlayer(ilayer) See DCH_info::Get_nsuperlayer_minus_1(ilayer)

Definition at line 59 of file DCH_info.h.

◆ ncell_per_sector

int dd4hep::rec::DCH_info_struct::ncell_per_sector = {0}

cells within the same layer may be grouped into sectors, not in use atm

Definition at line 62 of file DCH_info.h.

◆ nlayers

DCH_layer dd4hep::rec::DCH_info_struct::nlayers = {0}

Calculated as dch_nlayersPerSuperlayer * dch_nsuperlayers.

Definition at line 71 of file DCH_info.h.

◆ nlayersPerSuperlayer

DCH_layer dd4hep::rec::DCH_info_struct::nlayersPerSuperlayer = {0}

input number of layers in each superlayer

Definition at line 65 of file DCH_info.h.

◆ nsuperlayers

DCH_layer dd4hep::rec::DCH_info_struct::nsuperlayers = {0}

input number of superlayers superlayer is an abstract level of grouping layers used to parametrize the increment of cells in each layer

Definition at line 69 of file DCH_info.h.

◆ rin

DCH_length_t dd4hep::rec::DCH_info_struct::rin = {0}

Inner radius of the active volume.

Definition at line 45 of file DCH_info.h.

◆ rout

DCH_length_t dd4hep::rec::DCH_info_struct::rout = {0}

Outer radius of the active volume.

Definition at line 47 of file DCH_info.h.

◆ twist_angle

DCH_angle_t dd4hep::rec::DCH_info_struct::twist_angle = {0}

global twist angle alternating layers will change its sign

Definition at line 75 of file DCH_info.h.


The documentation for this struct was generated from the following file: