21 if (ClusterNumber == StartClusterNumber)
24 cout <<
"No Cluster placed yet!" << endl;
28 return ClusterNumber -1;
35 return StartClusterNumber;
41 return ClusterNumber-StartClusterNumber;
46 if (!ParametersInputFile)
48 cout <<
"Inputfile does not exist!" << endl;
50 else if (ParametersInputFile.good())
54 getline(ParametersInputFile,InputBuffer);
57 DataArray[0] = strtod(InputBuffer.data(),&pEnd);
58 for (Int_t iValues = 1; iValues < NumberOfValues; iValues++)
60 DataArray[iValues] = strtod(pEnd,&pEnd);
67 if (!ParametersInputFile)
69 cout <<
"Inputfile does not exist!" << endl;
71 else if (ParametersInputFile.good())
74 getline(ParametersInputFile,InputBuffer);
80 CryostatTransparency = ExtTransparency;
82 Cryostat->SetTransparency(CryostatTransparency);
90 Cryostat->SetLineColor(ExtColor);
97 ClusterAssembly =
new TGeoVolumeAssembly(
"ClusterAssembly");
98 BuildCrystals(CrystalNumber);
100 SetCryostatColor(kGreen);
101 SetCryostatTransparency(0);
102 top->AddNode(ClusterAssembly,ClusterNumber,ClusterPlaceAndDirectionTranslation);
109 ClusterAssembly =
new TGeoVolumeAssembly(
"ClusterAssembly");
110 BuildCrystals(CrystalNumber);
112 SetCryostatColor(kGreen);
113 SetCryostatTransparency(0);
115 ClusterPositionX =
x;
116 ClusterPositionY =
y;
117 ClusterPositionZ = z + GlobalZOffset;
118 ClusterEulerAnglePsi = psi;
119 ClusterEulerAngleTheta =
theta;
120 ClusterEulerAnglePhi =
phi;
121 TGeoRotation *TempClusterRotation =
new TGeoRotation(
"TempClusterRotation",ClusterEulerAnglePsi,ClusterEulerAngleTheta,ClusterEulerAnglePhi);
122 TempClusterRotation->RegisterYourself();
123 top->AddNode(ClusterAssembly,ClusterNumber,
new TGeoCombiTrans(ClusterPositionX,ClusterPositionY,ClusterPositionZ,TempClusterRotation));
129 ClusterAssembly =
new TGeoVolumeAssembly(
"ClusterAssembly");
130 BuildCrystals(CrystalNumber);
132 SetCryostatColor(kGreen);
133 SetCryostatTransparency(0);
139 ClusterEulerAnglePsi = psi;
140 ClusterEulerAngleTheta =
theta;
141 ClusterEulerAnglePhi =
phi;
142 TGeoRotation *TempClusterRotation =
new TGeoRotation(
"TempClusterRotation",ClusterEulerAnglePsi,ClusterEulerAngleTheta,ClusterEulerAnglePhi);
143 TempClusterRotation->RegisterYourself();
144 top->AddNode(ClusterAssembly,ClusterNumber,
new TGeoCombiTrans(ClusterPositionX,ClusterPositionY,ClusterPositionZ,TempClusterRotation));
void GetExternalParameters(Int_t NumberOfValues, Double_t *DataArray)
void TrashCommentaryLineInFile()
void SetCryostatColor(Color_t ExtColor)
Int_t GetStartClusterNumber()
Int_t GetNumberOfCopies()
ClassImp(PndGeoHypGeCluster) Int_t PndGeoHypGeCluster
void PlaceCluster(TGeoVolume *top, TGeoMatrix *ClusterPlaceAndDirectionTranslation, Int_t *CrystalNumber)
void SetCryostatTransparency(Int_t ExtTransparency)