CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
TotemT2OrganizationGem Class Reference

#include <SimG4CMS/Forward/interface/TotemT2OrganizationGem.h>

Inheritance diagram for TotemT2OrganizationGem:
TotemVDetectorOrganization TotemT2NumberingSchemeGem

Public Member Functions

uint32_t GetUnitID (const G4Step *aStep)
 
uint32_t GetUnitID (const G4Step *aStep) const override
 
 TotemT2OrganizationGem ()
 
 ~TotemT2OrganizationGem () override
 
- Public Member Functions inherited from TotemVDetectorOrganization
 TotemVDetectorOrganization ()
 
virtual ~TotemVDetectorOrganization ()
 

Private Attributes

int _currentCSC
 
int _currentDetectorPosition
 
int _currentLayer
 
int _currentPlane
 
int _currentUnitID
 
bool _needUpdateData
 
bool _needUpdateUnitID
 

Detailed Description

Description: This class manages the UnitID that labels TotemT2Gem sensitive volumes

Usage: Used in TotemSD to get unique ID of sensitive detector element

Definition at line 26 of file TotemT2OrganizationGem.h.

Constructor & Destructor Documentation

TotemT2OrganizationGem::TotemT2OrganizationGem ( )
TotemT2OrganizationGem::~TotemT2OrganizationGem ( )
override

Definition at line 34 of file TotemT2OrganizationGem.cc.

34  {
35 }

Member Function Documentation

uint32_t TotemT2OrganizationGem::GetUnitID ( const G4Step *  aStep)

Definition at line 41 of file TotemT2OrganizationGem.cc.

References _currentDetectorPosition, cuy::ii, and LogDebug.

Referenced by GetUnitID().

41  {
42 
43  G4VPhysicalVolume* physVol;
44  uint32_t UNITA = 0;
45  const G4VTouchable* touch = aStep->GetPreStepPoint()->GetTouchable();
46  int ii =0;
47  for( ii = 0; ii < touch->GetHistoryDepth(); ii++ ){
48  physVol = touch->GetVolume(ii);
49 
50 #ifdef SCRIVI
51  LogDebug("ForwardSim") << "physVol=" << physVol->GetName() << ", level="
52  << ii << ", physVol->GetCopyNo()="
53  << physVol->GetCopyNo();
54 #endif
55  if (physVol->GetName() == "TotemT2gem") _currentDetectorPosition = 3;
56  }
57 
58  physVol= touch->GetVolume(0);
59 
60  if(physVol->GetName() == "TotemT2gem")UNITA = 10 + physVol->GetCopyNo() ;
61  if(physVol->GetName() == "TotemT2gem_supporto")UNITA =20 + physVol->GetCopyNo();
62  if(physVol->GetName() == "TotemT2gem_detector7r")UNITA = 100 + physVol->GetCopyNo() + (touch->GetVolume(2)->GetCopyNo())*1000;
63  if(physVol->GetName() == "TotemT2gem_HC7r")UNITA = 200 + touch->GetVolume(1)->GetCopyNo()+ (touch->GetVolume(3)->GetCopyNo())*1000;
64  if(physVol->GetName() == "TotemT2gem_drift7r")UNITA = 300 + touch->GetVolume(1)->GetCopyNo()+ (touch->GetVolume(3)->GetCopyNo())*1000;
65  if(physVol->GetName() == "TotemT2gem_driftspace7r")UNITA = 400 + touch->GetVolume(1)->GetCopyNo()+ (touch->GetVolume(3)->GetCopyNo())*1000;
66  if(physVol->GetName() == "TotemT2gem_GEMa7r")UNITA = 500 + touch->GetVolume(1)->GetCopyNo()+ (touch->GetVolume(3)->GetCopyNo())*1000;
67  if(physVol->GetName() == "TotemT2gem_GEMb7r")UNITA = 600 + touch->GetVolume(1)->GetCopyNo()+ (touch->GetVolume(3)->GetCopyNo())*1000;
68  if(physVol->GetName() == "TotemT2gem_GEMc7r")UNITA = 700 + touch->GetVolume(1)->GetCopyNo()+ (touch->GetVolume(3)->GetCopyNo())*1000;
69  if(physVol->GetName() == "TotemT2gem_GAS7r")UNITA = 800 + touch->GetVolume(1)->GetCopyNo()+ (touch->GetVolume(3)->GetCopyNo())*1000;
70  if(physVol->GetName() == "TotemT2gem_GEMa17r")UNITA = 900 + touch->GetVolume(1)->GetCopyNo()+ (touch->GetVolume(3)->GetCopyNo())*1000;
71  if(physVol->GetName() == "TotemT2gem_GEMb17r")UNITA = 1000 + touch->GetVolume(1)->GetCopyNo()+ (touch->GetVolume(3)->GetCopyNo())*1000;
72  if(physVol->GetName() == "TotemT2gem_GEMc17r")UNITA = 1100 + touch->GetVolume(1)->GetCopyNo()+ (touch->GetVolume(3)->GetCopyNo())*1000;
73  if(physVol->GetName() == "TotemT2gem_GAS17r")UNITA = 1200 + touch->GetVolume(1)->GetCopyNo()+ (touch->GetVolume(3)->GetCopyNo())*1000;
74  if(physVol->GetName() == "TotemT2gem_GEMa27r")UNITA = 1300 + touch->GetVolume(1)->GetCopyNo()+ (touch->GetVolume(3)->GetCopyNo())*1000;
75  if(physVol->GetName() == "TotemT2gem_GEMb27r")UNITA = 1400 + touch->GetVolume(1)->GetCopyNo()+ (touch->GetVolume(3)->GetCopyNo())*1000;
76  if(physVol->GetName() == "TotemT2gem_GEMc27r")UNITA = 1500 + touch->GetVolume(1)->GetCopyNo()+ (touch->GetVolume(3)->GetCopyNo())*1000;
77  if(physVol->GetName() == "TotemT2gem_GAS27r")UNITA = 1600 + touch->GetVolume(1)->GetCopyNo()+ (touch->GetVolume(3)->GetCopyNo())*1000;
78  if(physVol->GetName() == "TotemT2gem_strips7r")UNITA = 1700 + touch->GetVolume(1)->GetCopyNo()+ (touch->GetVolume(3)->GetCopyNo())*1000;
79  if(physVol->GetName() == "TotemT2gem_isol7r")UNITA = 1800 + touch->GetVolume(1)->GetCopyNo()+ (touch->GetVolume(3)->GetCopyNo())*1000;
80  if(physVol->GetName() == "TotemT2gem_pads7r")UNITA = 1900 + touch->GetVolume(1)->GetCopyNo()+ (touch->GetVolume(3)->GetCopyNo())*1000;
81  if(physVol->GetName() == "TotemT2gem_HC17r")UNITA = 2000 + touch->GetVolume(1)->GetCopyNo()+ (touch->GetVolume(3)->GetCopyNo())*1000;
82 
83  return UNITA;
84 }
#define LogDebug(id)
ii
Definition: cuy.py:588
uint32_t TotemT2OrganizationGem::GetUnitID ( const G4Step *  aStep) const
overridevirtual

Implements TotemVDetectorOrganization.

Definition at line 37 of file TotemT2OrganizationGem.cc.

References GetUnitID().

37  {
38  return const_cast<TotemT2OrganizationGem *>(this)->GetUnitID(aStep);
39 }
uint32_t GetUnitID(const G4Step *aStep)

Member Data Documentation

int TotemT2OrganizationGem::_currentCSC
private

Definition at line 46 of file TotemT2OrganizationGem.h.

int TotemT2OrganizationGem::_currentDetectorPosition
private

Definition at line 44 of file TotemT2OrganizationGem.h.

Referenced by GetUnitID().

int TotemT2OrganizationGem::_currentLayer
private

Definition at line 47 of file TotemT2OrganizationGem.h.

int TotemT2OrganizationGem::_currentPlane
private

Definition at line 45 of file TotemT2OrganizationGem.h.

int TotemT2OrganizationGem::_currentUnitID
private

Definition at line 43 of file TotemT2OrganizationGem.h.

bool TotemT2OrganizationGem::_needUpdateData
private

Definition at line 42 of file TotemT2OrganizationGem.h.

bool TotemT2OrganizationGem::_needUpdateUnitID
private

Definition at line 41 of file TotemT2OrganizationGem.h.