Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHG4SpacalPrototypeDetector Class Reference

#include <prototype/blob/master/simulation/g4simulation/g4caloprototype/PHG4SpacalPrototypeDetector.h>

+ Inheritance diagram for PHG4SpacalPrototypeDetector:
+ Collaboration diagram for PHG4SpacalPrototypeDetector:

Public Types

enum  {
  FIBER_CORE = 1, FIBER_CLADING = 0, ABSORBER = -1, SUPPORT = -2,
  INACTIVE = -100
}
 
typedef PHG4CylinderGeom_Spacalv3 SpacalGeom_t
 

Public Member Functions

 PHG4SpacalPrototypeDetector (PHG4Subsystem *subsys, PHCompositeNode *Node, PHParameters *parameters, const std::string &dnam)
 
virtual ~PHG4SpacalPrototypeDetector (void)
 
virtual void ConstructMe (G4LogicalVolume *world)
 
virtual std::pair
< G4LogicalVolume
*, G4Transform3D > 
Construct_AzimuthalSeg ()
 
virtual G4LogicalVolume * Construct_Tower (const SpacalGeom_t::geom_tower &tower)
 a block along z axis built with G4Trd that is slightly tapered in x dimension
 
virtual G4LogicalVolume * Construct_LightGuide (const SpacalGeom_t::geom_tower &tower, const int index_x, const int index_y)
 a block for the light guide along z axis that fit to the tower
 
virtual int Construct_Fibers_SameLengthFiberPerTower (const SpacalGeom_t::geom_tower &tower, G4LogicalVolume *LV_tower)
 Fully projective spacal with 2D tapered modules. To speed up construction, same-length fiber is used cross one tower.
 
virtual G4LogicalVolume * Construct_Fiber (const G4double length, const std::string &id)
 
void SetActive (const int i=1)
 
void SetAbsorberActive (const int i=1)
 
void SetDetectorType (const std::string &typ)
 
int IsInCylinderActive (const G4VPhysicalVolume *)
 
void SuperDetector (const std::string &name)
 
const std::string SuperDetector () const
 
virtual void Print (const std::string &what="ALL") const
 
const SpacalGeom_tget_geom () const
 
- Public Member Functions inherited from PHG4Detector
 PHG4Detector ()=delete
 constructor
 
 PHG4Detector (PHG4Subsystem *subsys, PHCompositeNode *Node, const std::string &nam)
 
virtual ~PHG4Detector (void)
 destructor
 
virtual void Construct (G4LogicalVolume *world) final
 construct method
 
virtual void PostConstruction ()
 Optional PostConstruction call after all geometry is constructed.
 
virtual void Verbosity (const int v)
 
virtual int Verbosity () const
 
virtual G4UserSteppingAction * GetSteppingAction ()
 
virtual std::string GetName () const
 
virtual void OverlapCheck (const bool chk)
 
virtual bool OverlapCheck () const
 
virtual int DisplayVolume (G4VSolid *volume, G4LogicalVolume *logvol, G4RotationMatrix *rotm=nullptr)
 
virtual int DisplayVolume (G4LogicalVolume *checksolid, G4LogicalVolume *logvol, G4RotationMatrix *rotm=nullptr)
 
virtual PHCompositeNodetopNode ()
 
virtual PHG4SubsystemGetMySubsystem ()
 

Protected Attributes

PHParametersconstruction_params
 
G4VSolid * cylinder_solid
 
G4LogicalVolume * cylinder_logic
 
G4VPhysicalVolumecylinder_physi
 
std::map< const
G4VPhysicalVolume *, int > 
fiber_core_vol
 
std::map< const
G4VPhysicalVolume *, int > 
fiber_vol
 map for G4VPhysicalVolume -> fiber ID
 
std::map< const
G4VPhysicalVolume *, int > 
calo_vol
 map for G4VPhysicalVolume -> Sector ID
 
std::map< const
G4VPhysicalVolume *, int > 
block_vol
 map for G4VPhysicalVolume -> towers ID
 
int active
 
int absorberactive
 
std::string detector_type
 
std::string superdetector
 
G4UserLimits * step_limits
 
G4UserLimits * clading_step_limits
 
G4UserLimits * fiber_core_step_limits
 

Private Attributes

SpacalGeom_t_geom
 

Additional Inherited Members

- Static Public Member Functions inherited from PHG4Detector
static G4Material * GetDetectorMaterial (const std::string &name, const bool quit=true)
 
static G4Element * GetDetectorElement (const std::string &name, const bool quit=true)
 

Detailed Description

Definition at line 26 of file PHG4SpacalPrototypeDetector.h.

View newest version in sPHENIX GitHub at line 26 of file PHG4SpacalPrototypeDetector.h

Member Typedef Documentation

Definition at line 29 of file PHG4SpacalPrototypeDetector.h.

View newest version in sPHENIX GitHub at line 29 of file PHG4SpacalPrototypeDetector.h

Member Enumeration Documentation

anonymous enum
Enumerator:
FIBER_CORE 
FIBER_CLADING 
ABSORBER 
SUPPORT 
INACTIVE 

Definition at line 97 of file PHG4SpacalPrototypeDetector.h.

View newest version in sPHENIX GitHub at line 97 of file PHG4SpacalPrototypeDetector.h

Constructor & Destructor Documentation

PHG4SpacalPrototypeDetector::PHG4SpacalPrototypeDetector ( PHG4Subsystem subsys,
PHCompositeNode Node,
PHParameters parameters,
const std::string &  dnam 
)

Definition at line 54 of file PHG4SpacalPrototypeDetector.cc.

View newest version in sPHENIX GitHub at line 54 of file PHG4SpacalPrototypeDetector.cc

PHG4SpacalPrototypeDetector::~PHG4SpacalPrototypeDetector ( void  )
virtual

Definition at line 72 of file PHG4SpacalPrototypeDetector.cc.

View newest version in sPHENIX GitHub at line 72 of file PHG4SpacalPrototypeDetector.cc

References _geom, clading_step_limits, fiber_core_step_limits, and step_limits.

Member Function Documentation

std::pair< G4LogicalVolume *, G4Transform3D > PHG4SpacalPrototypeDetector::Construct_AzimuthalSeg ( )
virtual

Definition at line 376 of file PHG4SpacalPrototypeDetector.cc.

View newest version in sPHENIX GitHub at line 376 of file PHG4SpacalPrototypeDetector.cc

References _geom, assert, block_vol, PHG4CylinderGeom_Spacalv3::geom_tower::centralX, PHG4CylinderGeom_Spacalv3::geom_tower::centralY, PHG4CylinderGeom_Spacalv3::geom_tower::centralZ, Acts::UnitConstants::cm, Construct_LightGuide(), Construct_Tower(), PHG4CylinderGeom_Spacalv2::get_azimuthal_n_sec(), PHG4CylinderGeom_Spacalv1::get_construction_verbose(), PHG4CylinderGeom_Spacalv1::get_length(), PHG4CylinderGeom_Spacalv3::get_max_lightguide_height(), PHG4CylinderGeom_Spacalv1::get_max_radius(), PHG4CylinderGeomv1::get_radius(), PHG4CylinderGeom_Spacalv3::get_sector_tower_map(), PHG4CylinderGeom_Spacalv3::get_sidewall_thickness(), PHG4CylinderGeomv1::get_zmax(), PHG4CylinderGeomv1::get_zmin(), PHG4Detector::GetName(), PHG4CylinderGeom_Spacalv3::geom_tower::id, PHG4CylinderGeom_Spacalv2::is_azimuthal_seg_visible(), PHG4CylinderGeom_Spacalv1::is_virualize_fiber(), PHG4CylinderGeom_Spacalv3::geom_tower::LightguideHeight, PHG4CylinderGeom_Spacalv3::geom_tower::NSubtowerX, PHG4CylinderGeom_Spacalv3::geom_tower::NSubtowerY, PHG4Detector::OverlapCheck(), pi, PHG4CylinderGeom_Spacalv3::geom_tower::pRotationAngleX, Acts::UnitConstants::rad, step_limits, and twopi.

Referenced by ConstructMe().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4LogicalVolume * PHG4SpacalPrototypeDetector::Construct_Fiber ( const G4double  length,
const std::string &  id 
)
virtual

Definition at line 576 of file PHG4SpacalPrototypeDetector.cc.

View newest version in sPHENIX GitHub at line 576 of file PHG4SpacalPrototypeDetector.cc

References _geom, assert, clading_step_limits, Acts::UnitConstants::cm, fiber_core_step_limits, fiber_core_vol, PHG4CylinderGeom_Spacalv1::get_construction_verbose(), PHG4CylinderGeom_Spacalv1::get_fiber_clading_mat(), PHG4CylinderGeom_Spacalv1::get_fiber_core_diameter(), PHG4CylinderGeom_Spacalv1::get_fiber_core_mat(), PHG4CylinderGeom_Spacalv1::get_fiber_outer_r(), PHG4Detector::GetName(), PHG4CylinderGeom_Spacalv1::is_virualize_fiber(), PHG4Detector::OverlapCheck(), PHG4Utils::SetColour(), and twopi.

Referenced by Construct_Fibers_SameLengthFiberPerTower().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int PHG4SpacalPrototypeDetector::Construct_Fibers_SameLengthFiberPerTower ( const SpacalGeom_t::geom_tower tower,
G4LogicalVolume *  LV_tower 
)
virtual

Fully projective spacal with 2D tapered modules. To speed up construction, same-length fiber is used cross one tower.

Definition at line 638 of file PHG4SpacalPrototypeDetector.cc.

View newest version in sPHENIX GitHub at line 638 of file PHG4SpacalPrototypeDetector.cc

References _geom, assert, Acts::UnitConstants::cm, PHG4CylinderGeom_Spacalv3::geom_tower::compose_fiber_id(), Construct_Fiber(), fiber_vol, PHG4CylinderGeom_Spacalv1::get_construction_verbose(), PHG4CylinderGeom_Spacalv1::get_fiber_outer_r(), PHG4Detector::GetName(), PHG4CylinderGeom_Spacalv3::geom_tower::id, Acts::UnitConstants::min, PHG4CylinderGeom_Spacalv3::geom_tower::ModuleSkinThickness, perf_headwind::name, PHG4CylinderGeom_Spacalv3::geom_tower::NFiberX, PHG4CylinderGeom_Spacalv3::geom_tower::NFiberY, PHG4Detector::OverlapCheck(), PHG4CylinderGeom_Spacalv3::geom_tower::pAlp1, PHG4CylinderGeom_Spacalv3::geom_tower::pAlp2, PHG4CylinderGeom_Spacalv3::geom_tower::pDx1, PHG4CylinderGeom_Spacalv3::geom_tower::pDx2, PHG4CylinderGeom_Spacalv3::geom_tower::pDx3, PHG4CylinderGeom_Spacalv3::geom_tower::pDx4, PHG4CylinderGeom_Spacalv3::geom_tower::pDy1, PHG4CylinderGeom_Spacalv3::geom_tower::pDy2, PHG4CylinderGeom_Spacalv3::geom_tower::pDz, PHG4CylinderGeom_Spacalv3::geom_tower::pPhi, PHG4CylinderGeom_Spacalv3::geom_tower::pTheta, v1, and v2.

Referenced by Construct_Tower().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4LogicalVolume * PHG4SpacalPrototypeDetector::Construct_LightGuide ( const SpacalGeom_t::geom_tower tower,
const int  index_x,
const int  index_y 
)
virtual
G4LogicalVolume * PHG4SpacalPrototypeDetector::Construct_Tower ( const SpacalGeom_t::geom_tower tower)
virtual

a block along z axis built with G4Trd that is slightly tapered in x dimension

Definition at line 777 of file PHG4SpacalPrototypeDetector.cc.

View newest version in sPHENIX GitHub at line 777 of file PHG4SpacalPrototypeDetector.cc

References _geom, assert, Acts::UnitConstants::cm, Construct_Fibers_SameLengthFiberPerTower(), PHG4CylinderGeom_Spacalv1::get_absorber_mat(), PHG4CylinderGeom_Spacalv1::get_construction_verbose(), PHG4Detector::GetName(), PHG4CylinderGeom_Spacalv3::geom_tower::id, PHG4CylinderGeom_Spacalv3::geom_tower::identify(), PHG4CylinderGeom_Spacalv2::is_azimuthal_seg_visible(), PHG4CylinderGeom_Spacalv1::is_virualize_fiber(), PHG4CylinderGeom_Spacalv3::geom_tower::pAlp1, PHG4CylinderGeom_Spacalv3::geom_tower::pAlp2, PHG4CylinderGeom_Spacalv3::geom_tower::pDx1, PHG4CylinderGeom_Spacalv3::geom_tower::pDx2, PHG4CylinderGeom_Spacalv3::geom_tower::pDx3, PHG4CylinderGeom_Spacalv3::geom_tower::pDx4, PHG4CylinderGeom_Spacalv3::geom_tower::pDy1, PHG4CylinderGeom_Spacalv3::geom_tower::pDy2, PHG4CylinderGeom_Spacalv3::geom_tower::pDz, PHG4CylinderGeom_Spacalv3::geom_tower::pPhi, PHG4CylinderGeom_Spacalv3::geom_tower::pTheta, Acts::UnitConstants::rad, and step_limits.

Referenced by Construct_AzimuthalSeg().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void PHG4SpacalPrototypeDetector::ConstructMe ( G4LogicalVolume *  world)
virtual

Implements PHG4Detector.

Definition at line 107 of file PHG4SpacalPrototypeDetector.cc.

View newest version in sPHENIX GitHub at line 107 of file PHG4SpacalPrototypeDetector.cc

References _geom, absorberactive, active, PHG4CylinderGeomContainer::AddLayerGeom(), PHCompositeNode::addNode(), assert, calo_vol, clading_step_limits, Acts::UnitConstants::cm, Construct_AzimuthalSeg(), construction_params, cylinder_logic, cylinder_physi, cylinder_solid, Acts::UnitConstants::degree, detector_type, fiber_core_step_limits, PHNodeIterator::findFirst(), PHG4CylinderGeom_Spacalv2::get_azimuthal_n_sec(), PHG4CylinderGeom_Spacalv1::get_construction_verbose(), PHParameters::get_double_param(), PHG4CylinderGeom_Spacalv1::get_fiber_core_step_size(), PHG4CylinderGeom_Spacalv1::get_length(), PHG4CylinderGeom_Spacalv3::get_max_lightguide_height(), PHG4CylinderGeomv2::get_nscint(), PHG4CylinderGeomv1::get_radius(), PHG4CylinderGeom_Spacalv1::get_sector_map(), PHParameters::get_string_param(), PHG4CylinderGeomv1::get_thickness(), PHG4CylinderGeom_Spacalv1::get_xpos(), PHG4CylinderGeom_Spacalv1::get_ypos(), PHG4CylinderGeomv1::get_zmax(), PHG4CylinderGeomv1::get_zmin(), PHG4CylinderGeom_Spacalv1::get_zpos(), findNode::getClass(), PHG4Detector::GetName(), PHG4CylinderGeomContainer::identify(), PHG4CylinderGeom_Spacalv3::ImportParameters(), PHG4CylinderGeom_Spacalv2::is_azimuthal_seg_visible(), PHG4CylinderGeom_Spacalv1::is_virualize_fiber(), PHG4CylinderGeom_Spacalv1::kFullProjective_2DTaper_SameLengthFiberPerTower, perf_headwind::name, PHG4Detector::OverlapCheck(), Print(), PHG4CylinderGeom_Spacalv1::set_config(), PHG4CylinderGeomv2::set_nscint(), PHG4Utils::SetColour(), step_limits, PHG4CylinderGeom_Spacalv3::subtower_consistency_check(), superdetector, PHG4Detector::topNode(), and twopi.

+ Here is the call graph for this function:

const SpacalGeom_t* PHG4SpacalPrototypeDetector::get_geom ( ) const
inline

Definition at line 92 of file PHG4SpacalPrototypeDetector.h.

View newest version in sPHENIX GitHub at line 92 of file PHG4SpacalPrototypeDetector.h

References _geom.

Referenced by PHG4SpacalPrototypeSteppingAction::get_zmax(), PHG4SpacalPrototypeSteppingAction::get_zmin(), and PHG4SpacalPrototypeSteppingAction::UserSteppingAction().

+ Here is the caller graph for this function:

int PHG4SpacalPrototypeDetector::IsInCylinderActive ( const G4VPhysicalVolume volume)

Definition at line 83 of file PHG4SpacalPrototypeDetector.cc.

View newest version in sPHENIX GitHub at line 83 of file PHG4SpacalPrototypeDetector.cc

References ABSORBER, absorberactive, active, block_vol, calo_vol, FIBER_CLADING, FIBER_CORE, fiber_core_vol, fiber_vol, INACTIVE, and SUPPORT.

Referenced by PHG4SpacalPrototypeSteppingAction::UserSteppingAction().

+ Here is the caller graph for this function:

void PHG4SpacalPrototypeDetector::Print ( const std::string &  what = "ALL") const
virtual

Reimplemented from PHG4Detector.

Definition at line 626 of file PHG4SpacalPrototypeDetector.cc.

View newest version in sPHENIX GitHub at line 626 of file PHG4SpacalPrototypeDetector.cc

References _geom, assert, PHG4Detector::GetName(), and PHG4CylinderGeom_Spacalv3::Print().

Referenced by ConstructMe(), and PHG4SpacalPrototypeSubsystem::Print().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void PHG4SpacalPrototypeDetector::SetAbsorberActive ( const int  i = 1)
inline

Definition at line 63 of file PHG4SpacalPrototypeDetector.h.

View newest version in sPHENIX GitHub at line 63 of file PHG4SpacalPrototypeDetector.h

References absorberactive, and i.

Referenced by PHG4SpacalPrototypeSubsystem::InitRunSubsystem().

+ Here is the caller graph for this function:

void PHG4SpacalPrototypeDetector::SetActive ( const int  i = 1)
inline

Definition at line 57 of file PHG4SpacalPrototypeDetector.h.

View newest version in sPHENIX GitHub at line 57 of file PHG4SpacalPrototypeDetector.h

References active, and i.

Referenced by PHG4SpacalPrototypeSubsystem::InitRunSubsystem().

+ Here is the caller graph for this function:

void PHG4SpacalPrototypeDetector::SetDetectorType ( const std::string &  typ)
inline

Definition at line 69 of file PHG4SpacalPrototypeDetector.h.

View newest version in sPHENIX GitHub at line 69 of file PHG4SpacalPrototypeDetector.h

References detector_type.

void PHG4SpacalPrototypeDetector::SuperDetector ( const std::string &  name)
inline

Definition at line 77 of file PHG4SpacalPrototypeDetector.h.

View newest version in sPHENIX GitHub at line 77 of file PHG4SpacalPrototypeDetector.h

References perf_headwind::name, and superdetector.

Referenced by PHG4SpacalPrototypeSubsystem::InitRunSubsystem(), and PHG4SpacalPrototypeSteppingAction::SetInterfacePointers().

+ Here is the caller graph for this function:

const std::string PHG4SpacalPrototypeDetector::SuperDetector ( ) const
inline

Definition at line 83 of file PHG4SpacalPrototypeDetector.h.

View newest version in sPHENIX GitHub at line 83 of file PHG4SpacalPrototypeDetector.h

References superdetector.

Member Data Documentation

int PHG4SpacalPrototypeDetector::absorberactive
protected

Definition at line 124 of file PHG4SpacalPrototypeDetector.h.

View newest version in sPHENIX GitHub at line 124 of file PHG4SpacalPrototypeDetector.h

Referenced by ConstructMe(), IsInCylinderActive(), and SetAbsorberActive().

int PHG4SpacalPrototypeDetector::active
protected

Definition at line 123 of file PHG4SpacalPrototypeDetector.h.

View newest version in sPHENIX GitHub at line 123 of file PHG4SpacalPrototypeDetector.h

Referenced by ConstructMe(), IsInCylinderActive(), and SetActive().

std::map<const G4VPhysicalVolume*, int> PHG4SpacalPrototypeDetector::block_vol
protected

map for G4VPhysicalVolume -> towers ID

Definition at line 121 of file PHG4SpacalPrototypeDetector.h.

View newest version in sPHENIX GitHub at line 121 of file PHG4SpacalPrototypeDetector.h

Referenced by Construct_AzimuthalSeg(), and IsInCylinderActive().

std::map<const G4VPhysicalVolume*, int> PHG4SpacalPrototypeDetector::calo_vol
protected

map for G4VPhysicalVolume -> Sector ID

Definition at line 118 of file PHG4SpacalPrototypeDetector.h.

View newest version in sPHENIX GitHub at line 118 of file PHG4SpacalPrototypeDetector.h

Referenced by ConstructMe(), and IsInCylinderActive().

G4UserLimits* PHG4SpacalPrototypeDetector::clading_step_limits
protected

Definition at line 129 of file PHG4SpacalPrototypeDetector.h.

View newest version in sPHENIX GitHub at line 129 of file PHG4SpacalPrototypeDetector.h

Referenced by Construct_Fiber(), ConstructMe(), and ~PHG4SpacalPrototypeDetector().

PHParameters* PHG4SpacalPrototypeDetector::construction_params
protected

Definition at line 107 of file PHG4SpacalPrototypeDetector.h.

View newest version in sPHENIX GitHub at line 107 of file PHG4SpacalPrototypeDetector.h

Referenced by ConstructMe().

G4LogicalVolume* PHG4SpacalPrototypeDetector::cylinder_logic
protected

Definition at line 110 of file PHG4SpacalPrototypeDetector.h.

View newest version in sPHENIX GitHub at line 110 of file PHG4SpacalPrototypeDetector.h

Referenced by ConstructMe().

G4VPhysicalVolume* PHG4SpacalPrototypeDetector::cylinder_physi
protected

Definition at line 111 of file PHG4SpacalPrototypeDetector.h.

View newest version in sPHENIX GitHub at line 111 of file PHG4SpacalPrototypeDetector.h

Referenced by ConstructMe().

G4VSolid* PHG4SpacalPrototypeDetector::cylinder_solid
protected

Definition at line 109 of file PHG4SpacalPrototypeDetector.h.

View newest version in sPHENIX GitHub at line 109 of file PHG4SpacalPrototypeDetector.h

Referenced by ConstructMe().

std::string PHG4SpacalPrototypeDetector::detector_type
protected

Definition at line 125 of file PHG4SpacalPrototypeDetector.h.

View newest version in sPHENIX GitHub at line 125 of file PHG4SpacalPrototypeDetector.h

Referenced by ConstructMe(), and SetDetectorType().

G4UserLimits* PHG4SpacalPrototypeDetector::fiber_core_step_limits
protected

Definition at line 130 of file PHG4SpacalPrototypeDetector.h.

View newest version in sPHENIX GitHub at line 130 of file PHG4SpacalPrototypeDetector.h

Referenced by Construct_Fiber(), ConstructMe(), and ~PHG4SpacalPrototypeDetector().

std::map<const G4VPhysicalVolume*, int> PHG4SpacalPrototypeDetector::fiber_core_vol
protected

Definition at line 112 of file PHG4SpacalPrototypeDetector.h.

View newest version in sPHENIX GitHub at line 112 of file PHG4SpacalPrototypeDetector.h

Referenced by Construct_Fiber(), and IsInCylinderActive().

std::map<const G4VPhysicalVolume*, int> PHG4SpacalPrototypeDetector::fiber_vol
protected

map for G4VPhysicalVolume -> fiber ID

Definition at line 115 of file PHG4SpacalPrototypeDetector.h.

View newest version in sPHENIX GitHub at line 115 of file PHG4SpacalPrototypeDetector.h

Referenced by Construct_Fibers_SameLengthFiberPerTower(), and IsInCylinderActive().

G4UserLimits* PHG4SpacalPrototypeDetector::step_limits
protected

Definition at line 128 of file PHG4SpacalPrototypeDetector.h.

View newest version in sPHENIX GitHub at line 128 of file PHG4SpacalPrototypeDetector.h

Referenced by Construct_AzimuthalSeg(), Construct_LightGuide(), Construct_Tower(), ConstructMe(), and ~PHG4SpacalPrototypeDetector().

std::string PHG4SpacalPrototypeDetector::superdetector
protected

Definition at line 126 of file PHG4SpacalPrototypeDetector.h.

View newest version in sPHENIX GitHub at line 126 of file PHG4SpacalPrototypeDetector.h

Referenced by ConstructMe(), and SuperDetector().


The documentation for this class was generated from the following files: