FairRoot/PandaRoot
Public Member Functions | Protected Attributes | List of all members
PndGeoHypGeCrystal Class Reference

#include <PndGeoHypGeCrystal.h>

Inheritance diagram for PndGeoHypGeCrystal:
PndGeoHypGeCrystalWithoutCapsule

Public Member Functions

 PndGeoHypGeCrystal ()
 
 PndGeoHypGeCrystal (TGeoMedium *ExtGe, TGeoMedium *ExtAl, Int_t ExtCrystalNumber)
 
 ~PndGeoHypGeCrystal ()
 
Int_t GetCrystalNumber ()
 
Int_t GetNdaughters ()
 
void PrintNodes ()
 
void PlaceCrystal (TGeoVolume *top, TGeoMatrix *CrystalPlaceAndDirectionTranslation)
 
 ClassDef (PndGeoHypGeCrystal, 0)
 

Protected Attributes

TGeoMedium * Ge
 
TGeoMedium * Al
 
Double_t CapsuleThickness
 
Double_t InnerScale
 
Double_t OuterPgonInnerRadius
 
Double_t CapsuleLength
 
char * CapsuleName
 
TGeoTube * CapsuleOuterTube
 
TGeoTube * CapsuleInnerTube
 
TGeoPgon * CapsuleOuterPgon
 
TGeoPgon * CapsuleInnerPgon
 
TGeoTube * CapsuleTopCover
 
TGeoTranslation * CapsuleTopZTranslation
 
TGeoTranslation * CapsuleInnerZTranslation
 
TGeoCompositeShape * CapsuleOuterShape
 
TGeoCompositeShape * CapsuleInnerShape
 
TGeoCompositeShape * CapsuleCompleteShape
 
TGeoVolume * Capsule
 
Double_t VacuumThickness
 
Double_t CrystalLength
 
Double_t CrystalFrontPgonInnerRadius
 
Double_t CrystalInnerPgonRadius
 
char * CrystalName
 
TGeoTube * CrystalTube
 
TGeoPgon * CrystalPgon
 
TGeoTube * CrystalInnerTube
 
TGeoTranslation * CrystalInnerTubeZTranslation
 
TGeoTorus * CrystalInnerTubeTorus
 
TGeoTranslation * CrystalInnerTubeTorusZTranslation
 
TGeoTube * CrystalInnerTubeMiniExtraTube
 
TGeoTranslation * CrystalInnerTubeMiniExtraTubeZTranslation
 
TGeoTube * CrystalTopRoundingTube
 
TGeoTranslation * CrystalTopRoundingTubeZTranslation
 
TGeoTorus * CrystalTopRoundingTorus
 
TGeoCompositeShape * CrystalTopRoundingTooling
 
TGeoTranslation * CrystalTopRoundingToolingZTranslation
 
TGeoTube * CrystalGuardRingTube
 
TGeoTranslation * CrystalGuardRingTubeZTranslation
 
TGeoTorus * CrystalGuardRingTorus
 
TGeoTorus * CrystalGuardRingTorusInner
 
TGeoTranslation * CrystalGuardRingTorusZTranslation
 
TGeoTube * CrystalGuardRingMiniExtraTube
 
TGeoTranslation * CrystalGuardRingMiniExtraTubeZTranslation
 
TGeoCompositeShape * CrystalShape
 
TGeoVolume * Crystal
 
TGeoVolumeAssembly * CrystalPlusCapsule
 
TGeoCombiTrans * CapsuleCombiTrans
 
TGeoCombiTrans * CrystalInsideCapsuleCombiTrans
 
Int_t CrystalNumber
 

Detailed Description

Definition at line 18 of file PndGeoHypGeCrystal.h.

Constructor & Destructor Documentation

PndGeoHypGeCrystal::PndGeoHypGeCrystal ( )

Definition at line 12 of file PndGeoHypGeCrystal.cxx.

12 {};
PndGeoHypGeCrystal::PndGeoHypGeCrystal ( TGeoMedium *  ExtGe,
TGeoMedium *  ExtAl,
Int_t  ExtCrystalNumber 
)

Definition at line 16 of file PndGeoHypGeCrystal.cxx.

References Al, Capsule, CapsuleCombiTrans, CapsuleCompleteShape, CapsuleInnerPgon, CapsuleInnerShape, CapsuleInnerTube, CapsuleInnerZTranslation, CapsuleLength, CapsuleName, CapsuleOuterPgon, CapsuleOuterShape, CapsuleOuterTube, CapsuleThickness, CapsuleTopCover, CapsuleTopZTranslation, Crystal, CrystalFrontPgonInnerRadius, CrystalGuardRingMiniExtraTube, CrystalGuardRingMiniExtraTubeZTranslation, CrystalGuardRingTorus, CrystalGuardRingTorusInner, CrystalGuardRingTorusZTranslation, CrystalGuardRingTube, CrystalGuardRingTubeZTranslation, CrystalInnerTube, CrystalInnerTubeMiniExtraTube, CrystalInnerTubeMiniExtraTubeZTranslation, CrystalInnerTubeTorus, CrystalInnerTubeTorusZTranslation, CrystalInnerTubeZTranslation, CrystalInsideCapsuleCombiTrans, CrystalLength, CrystalName, CrystalNumber, CrystalPgon, CrystalPlusCapsule, CrystalShape, CrystalTopRoundingTooling, CrystalTopRoundingToolingZTranslation, CrystalTopRoundingTorus, CrystalTopRoundingTube, CrystalTopRoundingTubeZTranslation, CrystalTube, Ge, InnerScale, OuterPgonInnerRadius, Pi, CAMath::Tan(), and VacuumThickness.

17 {
18  Ge = ExtGe;
19  Al = ExtAl;
20  CrystalNumber = ExtCrystalNumber;
21 
22 
23 //building a capsule
24  OuterPgonInnerRadius = 3.0571;
25  CapsuleThickness = 0.08;
27  CapsuleLength = 10;
28 
29  // building parts of capsule shape
30  CapsuleOuterTube = new TGeoTube("CapsuleOuterTube",0.,3.75,CapsuleLength/2);
31  CapsuleOuterPgon = new TGeoPgon("CapsuleOuterPgon",0.,360.,6,2);;
32  CapsuleOuterPgon->DefineSection(0,-CapsuleLength/2,OuterPgonInnerRadius,3.8);
33  CapsuleOuterPgon->DefineSection(1,4.9094,3.75,3.8);
34  CapsuleInnerTube = new TGeoTube("CapsuleInnerTube",0,3.75*InnerScale,5);;
35  CapsuleInnerPgon = new TGeoPgon("CapsuleInnerPgon",0.,360.,6,2);
37  CapsuleInnerPgon->DefineSection(1,4.9094,3.75-CapsuleThickness,3.8);
38  CapsuleTopCover = new TGeoTube("CapsuleTopCover",0,3.75,CapsuleThickness/2);
39  CapsuleTopZTranslation = new TGeoTranslation("CapsuleTopZTranslation",0,0,5-CapsuleThickness/2);
40  CapsuleTopZTranslation->RegisterYourself();
41 
42  //combining simple shapes
43  CapsuleOuterShape = new TGeoCompositeShape("CapsuleOuterShape","(CapsuleOuterTube-CapsuleOuterPgon)");
44  CapsuleInnerShape = new TGeoCompositeShape("CapsuleInnerShape","(CapsuleInnerTube-CapsuleInnerPgon)");
45  CapsuleInnerZTranslation = new TGeoTranslation("CapsuleInnerZTranslation",0,0,CapsuleThickness);
46  CapsuleInnerZTranslation->RegisterYourself();
47  CapsuleCompleteShape = new TGeoCompositeShape("CapsuleCompleteShape", "CapsuleOuterShape-CapsuleInnerShape:CapsuleInnerZTranslation+CapsuleTopCover:CapsuleTopZTranslation");
48 
49  //building capsule volume
50  CapsuleName= new char[11];
51  sprintf(CapsuleName,"Capsule",(int)CrystalNumber);
52  Capsule = new TGeoVolume(CapsuleName,CapsuleCompleteShape,Al);
53  Capsule->SetTransparency(50);
54  Capsule->SetLineColor(19);
55 
56 
57 //building a crystal
58 
59  CapsuleThickness = 0.08;
60  VacuumThickness = 0.08;
61  CrystalLength = 7.85;
63 
64  //building the main shape of the crystal
65  CrystalTube = new TGeoTube("CrystalTube",0,3.5,CrystalLength/2);
66  CrystalPgon = new TGeoPgon("CrystalPgon",0.,360.,6,2);
67  CrystalPgon->DefineSection(0,-CrystalLength/2,CrystalFrontPgonInnerRadius,3.8);
68  CrystalPgon->DefineSection(1,8-CrystalLength/2,CrystalFrontPgonInnerRadius+8*TMath::Tan(Pi/180*4.12),3.8);
69 
70  //building the inner hole of the crystal
71  CrystalInnerTube = new TGeoTube("CrystalInnerTube",0,0.6,3.05);
72  CrystalInnerTubeZTranslation = new TGeoTranslation("CrystalInnerTubeZTranslation",0,0,CrystalLength/2-3.05);
73  CrystalInnerTubeZTranslation->RegisterYourself();
74  CrystalInnerTubeTorus = new TGeoTorus("CrystalInnerTubeTorus",0.2,0,0.4,0,360);
75  CrystalInnerTubeTorusZTranslation = new TGeoTranslation("CrystalInnerTubeTorusZTranslation",0,0,CrystalLength/2-3.05*2);
76  CrystalInnerTubeTorusZTranslation->RegisterYourself();
77  CrystalInnerTubeMiniExtraTube = new TGeoTube("CrystalInnerTubeMiniExtraTube",0,0.2,0.2);
78  CrystalInnerTubeMiniExtraTubeZTranslation = new TGeoTranslation("CrystalInnerTubeMiniExtraTubeZTranslation",0,0,CrystalLength/2-3.05*2-0.2);
79  CrystalInnerTubeMiniExtraTubeZTranslation ->RegisterYourself();
80 
81  //building the top rounding of the crystal
82  CrystalTopRoundingTube = new TGeoTube("CrystalTopRoundingTube",2.9,3.5,0.3);
83  CrystalTopRoundingTubeZTranslation = new TGeoTranslation("CrystalTopRoundingTubeZTranslation",0,0,0.3);
84  CrystalTopRoundingTubeZTranslation->RegisterYourself();
85  CrystalTopRoundingTorus = new TGeoTorus("CrystalTopRoundingTorus",2.9,0,0.6,0,360);
86  CrystalTopRoundingTooling = new TGeoCompositeShape ("CrystalTopRoundingTooling" ,"CrystalTopRoundingTube:CrystalTopRoundingTubeZTranslation-CrystalTopRoundingTorus");
87  CrystalTopRoundingToolingZTranslation = new TGeoTranslation("CrystalTopRoundingToolingZTranslation",0,0,CrystalLength/2-0.6);
88  CrystalTopRoundingToolingZTranslation->RegisterYourself();
89 
90  //building the guard ring of the crystal
91  CrystalGuardRingTube = new TGeoTube("CrystalGuardRingTube",0.9,1.4,0.15);
92  CrystalGuardRingTubeZTranslation = new TGeoTranslation("CrystalGuardRingTubeZTranslation",0,0,CrystalLength/2-0.15);
93  CrystalGuardRingTubeZTranslation->RegisterYourself();
94  CrystalGuardRingTorus = new TGeoTorus("CrystalGuardRingTorus",1.2,0,0.2,0,360);
95  CrystalGuardRingTorusInner = new TGeoTorus("CrystalGuardRingTorusInner",1.1,0,0.2,0,360);
96  CrystalGuardRingTorusZTranslation = new TGeoTranslation("CrystalGuardRingTorusZTranslation",0,0,CrystalLength/2-0.15*2);
97  CrystalGuardRingTorusZTranslation->RegisterYourself();
98  CrystalGuardRingMiniExtraTube = new TGeoTube("CrystalGuardRingMiniExtraTube",1.1,1.2,0.2);
99  CrystalGuardRingMiniExtraTubeZTranslation = new TGeoTranslation("CrystalGuardRingMiniExtraTubeZTranslation",0,0,CrystalLength/2-0.15*2);
100  CrystalGuardRingMiniExtraTubeZTranslation ->RegisterYourself();
101 
102  //combining the final shape of the crystal
103  CrystalShape= new TGeoCompositeShape("CrystalShape","(CrystalTube-CrystalPgon)-CrystalTopRoundingTooling:CrystalTopRoundingToolingZTranslation-(CrystalInnerTube:CrystalInnerTubeZTranslation+CrystalInnerTubeTorus:CrystalInnerTubeTorusZTranslation+CrystalInnerTubeMiniExtraTube:CrystalInnerTubeMiniExtraTubeZTranslation)-(CrystalGuardRingTube:CrystalGuardRingTubeZTranslation+CrystalGuardRingTorus:CrystalGuardRingTorusZTranslation+CrystalGuardRingTorusInner:CrystalGuardRingTorusZTranslation+CrystalGuardRingMiniExtraTube:CrystalGuardRingMiniExtraTubeZTranslation)"); // (main shape) - (inner tube) - (top rounding) - (guard ring)
104 
105  CrystalName= new char[11];
106  sprintf(CrystalName,"Crystal",CrystalNumber);
107  Crystal = new TGeoVolume(CrystalName,CrystalShape,Ge);
108  Crystal->SetLineColor(kBlue);
109  Crystal->SetFillColor(kBlue);
110 
111 
112 //combining capsule and crystal
113 
114  CrystalPlusCapsule = new TGeoVolumeAssembly("CrystalPlusCapsule");
115  CapsuleCombiTrans = new TGeoCombiTrans(0,0,-CapsuleLength/2, new TGeoRotation("CapsuleRotation",0,180,0));
116  CapsuleCombiTrans->RegisterYourself();
117  CrystalInsideCapsuleCombiTrans = new TGeoCombiTrans(0,0,-(CrystalLength/2+CapsuleThickness+VacuumThickness), new TGeoRotation("CrystalRotation",0,180,0));
118  CrystalInsideCapsuleCombiTrans->RegisterYourself();
119 
122 
123 
124 };
TGeoCombiTrans * CapsuleCombiTrans
TGeoCompositeShape * CrystalShape
TGeoTranslation * CrystalTopRoundingTubeZTranslation
TGeoTranslation * CrystalTopRoundingToolingZTranslation
TGeoVolumeAssembly * CrystalPlusCapsule
TGeoTorus * CrystalTopRoundingTorus
Double_t CrystalFrontPgonInnerRadius
TGeoTranslation * CrystalGuardRingTorusZTranslation
TGeoCompositeShape * CrystalTopRoundingTooling
float Tan(float x)
Definition: PndCAMath.h:165
TGeoCompositeShape * CapsuleCompleteShape
TGeoTranslation * CrystalGuardRingMiniExtraTubeZTranslation
TGeoTranslation * CrystalInnerTubeTorusZTranslation
TGeoTranslation * CrystalInnerTubeZTranslation
TGeoTube * CrystalGuardRingTube
TGeoTorus * CrystalInnerTubeTorus
TGeoTranslation * CrystalGuardRingTubeZTranslation
TGeoCompositeShape * CapsuleOuterShape
TGeoTube * CrystalInnerTubeMiniExtraTube
TGeoCompositeShape * CapsuleInnerShape
TGeoTube * CrystalGuardRingMiniExtraTube
TGeoTranslation * CrystalInnerTubeMiniExtraTubeZTranslation
TGeoTranslation * CapsuleTopZTranslation
TGeoTranslation * CapsuleInnerZTranslation
TGeoCombiTrans * CrystalInsideCapsuleCombiTrans
Double_t Pi
TGeoTorus * CrystalGuardRingTorusInner
TGeoTorus * CrystalGuardRingTorus
TGeoTube * CrystalTopRoundingTube
PndGeoHypGeCrystal::~PndGeoHypGeCrystal ( )
inline

Definition at line 96 of file PndGeoHypGeCrystal.h.

96 {};

Member Function Documentation

PndGeoHypGeCrystal::ClassDef ( PndGeoHypGeCrystal  ,
 
)
Int_t PndGeoHypGeCrystal::GetCrystalNumber ( )

Definition at line 126 of file PndGeoHypGeCrystal.cxx.

References CrystalNumber.

127 {
128  return CrystalNumber;
129 }
Int_t PndGeoHypGeCrystal::GetNdaughters ( )

Definition at line 130 of file PndGeoHypGeCrystal.cxx.

References CrystalPlusCapsule.

Referenced by PndGeoHypGeSingleCluster::PrintNodes(), and PndGeoHypGeDoubleCluster::PrintNodes().

131 {
132  CrystalPlusCapsule->GetNdaughters();
133 };
TGeoVolumeAssembly * CrystalPlusCapsule
void PndGeoHypGeCrystal::PlaceCrystal ( TGeoVolume *  top,
TGeoMatrix *  CrystalPlaceAndDirectionTranslation 
)

Definition at line 141 of file PndGeoHypGeCrystal.cxx.

References CrystalNumber, and CrystalPlusCapsule.

Referenced by PndGeoHypGeSingleCluster::BuildCrystals(), and PndGeoHypGeDoubleCluster::BuildCrystals().

142 {
143  top->AddNode(CrystalPlusCapsule,CrystalNumber,CrystalPlaceAndDirectionTranslation);
144 };
TGeoVolumeAssembly * CrystalPlusCapsule
TGeoVolume * top
void PndGeoHypGeCrystal::PrintNodes ( )

Definition at line 136 of file PndGeoHypGeCrystal.cxx.

References CrystalPlusCapsule.

Referenced by PndGeoHypGeSingleCluster::PrintNodes(), and PndGeoHypGeDoubleCluster::PrintNodes().

137 {
138  CrystalPlusCapsule->PrintNodes();
139 }
TGeoVolumeAssembly * CrystalPlusCapsule

Member Data Documentation

TGeoMedium* PndGeoHypGeCrystal::Al
protected
TGeoVolume* PndGeoHypGeCrystal::Capsule
protected
TGeoCombiTrans* PndGeoHypGeCrystal::CapsuleCombiTrans
protected
TGeoCompositeShape* PndGeoHypGeCrystal::CapsuleCompleteShape
protected
TGeoPgon* PndGeoHypGeCrystal::CapsuleInnerPgon
protected
TGeoCompositeShape* PndGeoHypGeCrystal::CapsuleInnerShape
protected
TGeoTube* PndGeoHypGeCrystal::CapsuleInnerTube
protected
TGeoTranslation* PndGeoHypGeCrystal::CapsuleInnerZTranslation
protected
Double_t PndGeoHypGeCrystal::CapsuleLength
protected
char* PndGeoHypGeCrystal::CapsuleName
protected
TGeoPgon* PndGeoHypGeCrystal::CapsuleOuterPgon
protected
TGeoCompositeShape* PndGeoHypGeCrystal::CapsuleOuterShape
protected
TGeoTube* PndGeoHypGeCrystal::CapsuleOuterTube
protected
Double_t PndGeoHypGeCrystal::CapsuleThickness
protected
TGeoTube* PndGeoHypGeCrystal::CapsuleTopCover
protected
TGeoTranslation* PndGeoHypGeCrystal::CapsuleTopZTranslation
protected
TGeoVolume* PndGeoHypGeCrystal::Crystal
protected
Double_t PndGeoHypGeCrystal::CrystalFrontPgonInnerRadius
protected
TGeoTube* PndGeoHypGeCrystal::CrystalGuardRingMiniExtraTube
protected
TGeoTranslation* PndGeoHypGeCrystal::CrystalGuardRingMiniExtraTubeZTranslation
protected
TGeoTorus* PndGeoHypGeCrystal::CrystalGuardRingTorus
protected
TGeoTorus* PndGeoHypGeCrystal::CrystalGuardRingTorusInner
protected
TGeoTranslation* PndGeoHypGeCrystal::CrystalGuardRingTorusZTranslation
protected
TGeoTube* PndGeoHypGeCrystal::CrystalGuardRingTube
protected
TGeoTranslation* PndGeoHypGeCrystal::CrystalGuardRingTubeZTranslation
protected
Double_t PndGeoHypGeCrystal::CrystalInnerPgonRadius
protected

Definition at line 50 of file PndGeoHypGeCrystal.h.

TGeoTube* PndGeoHypGeCrystal::CrystalInnerTube
protected
TGeoTube* PndGeoHypGeCrystal::CrystalInnerTubeMiniExtraTube
protected
TGeoTranslation* PndGeoHypGeCrystal::CrystalInnerTubeMiniExtraTubeZTranslation
protected
TGeoTorus* PndGeoHypGeCrystal::CrystalInnerTubeTorus
protected
TGeoTranslation* PndGeoHypGeCrystal::CrystalInnerTubeTorusZTranslation
protected
TGeoTranslation* PndGeoHypGeCrystal::CrystalInnerTubeZTranslation
protected
TGeoCombiTrans* PndGeoHypGeCrystal::CrystalInsideCapsuleCombiTrans
protected
Double_t PndGeoHypGeCrystal::CrystalLength
protected
char* PndGeoHypGeCrystal::CrystalName
protected
Int_t PndGeoHypGeCrystal::CrystalNumber
protected
TGeoPgon* PndGeoHypGeCrystal::CrystalPgon
protected
TGeoVolumeAssembly* PndGeoHypGeCrystal::CrystalPlusCapsule
protected
TGeoCompositeShape* PndGeoHypGeCrystal::CrystalShape
protected
TGeoCompositeShape* PndGeoHypGeCrystal::CrystalTopRoundingTooling
protected
TGeoTranslation* PndGeoHypGeCrystal::CrystalTopRoundingToolingZTranslation
protected
TGeoTorus* PndGeoHypGeCrystal::CrystalTopRoundingTorus
protected
TGeoTube* PndGeoHypGeCrystal::CrystalTopRoundingTube
protected
TGeoTranslation* PndGeoHypGeCrystal::CrystalTopRoundingTubeZTranslation
protected
TGeoTube* PndGeoHypGeCrystal::CrystalTube
protected
TGeoMedium* PndGeoHypGeCrystal::Ge
protected
Double_t PndGeoHypGeCrystal::InnerScale
protected
Double_t PndGeoHypGeCrystal::OuterPgonInnerRadius
protected
Double_t PndGeoHypGeCrystal::VacuumThickness
protected

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