80 if (!crystalmatrixLog) {
81 crystalmatrixLog = constructGlobal();
102 if (mother != 0) name = mother->
GetName();
103 G4cout << crystalmatrixLog->
GetName() <<
" Number " << num <<
" positioned in "
104 << name <<
" at (" << x <<
", " << y <<
", " << z <<
")";
113 G4cout <<
"Creating a new rotation: " << rotstr <<
tab
143 G4cout <<
"<<== End of CCalG4Ecal construction ..." <<
G4endl;
145 return crystalmatrix;
187 zp = (zshift +
getLayPar(0)*std::abs(std::sin(angle))) *
mm;
188 rotstr =
idName +
"Layer" + i;
192 G4cout <<
"Creating a new rotation: " << rotstr <<
tab
194 << 90.0*
deg <<
"," << angle <<
"," << 0.0*
deg << G4endl;
197 90.0*
deg, angle, 0.0*
deg);
202 G4cout << laylog->
GetName() <<
" number " << i+1 <<
" positioned in "
203 << glog->
GetName() <<
" at (" << xp <<
", 0," << zp
204 <<
") with rotation angle " << angle/
deg <<
G4endl;
209 name =
idName +
"Crystal";
222 sensitiveLogs.push_back(detLog);
227 rotstr =
idName +
"Crystal" + i;
231 G4cout <<
"Creating a new rotation: " << rotstr <<
tab << 90.0*
deg <<
","
233 << angle <<
"," << 90.0*
deg << G4endl;
236 90.0*
deg, angle, 90.0*
deg);
241 G4cout << detLog->
GetName() <<
" number " << i+1 <<
" positioned in "
242 << laylog->
GetName() <<
" at (0," << yp <<
"," << zp
243 <<
") with rotation angle " << angle/
deg <<
G4endl;
248 name =
idName +
"Support";
267 G4cout << slog->
GetName() <<
" number " << i+1 <<
" positioned in "
268 << glog->
GetName() <<
" at (0," << yp <<
"," << zp
269 <<
") with no rotation" <<
G4endl;
279 G4cout <<
"Now registering CrystalMatrix LogicalVolume's to SD's:" <<
G4endl;
281 if (sensitiveLogs.size()>0) {
284 for(std::vector<ptrG4Log>::iterator iter=sensitiveLogs.begin();
285 iter<sensitiveLogs.end(); iter++) {
288 G4cout <<
"Register volume " << (*iter)->GetName() <<
" for" << SDname
static constexpr double mm
CLHEP::Hep3Vector G4ThreeVector
double getDistSupp() const
virtual G4VPhysicalVolume * constructIn(G4VPhysicalVolume *)
void setVisType(CCalVisualisable::visType, G4LogicalVolume *)
static G4double angle[DIM]
static CCalSensitiveDetectors * getInstance()
G4RotationMatrix * AddMatrix(const G4String &name, G4double th1, G4double phi1, G4double th2, G4double phi2, G4double th3, G4double phi3)
G4String getLayMat() const
double getLayPar(unsigned int i) const
double getCrystTol() const
void registerVolume(const G4String &name, G4LogicalVolume *)
G4GLOB_DLL std::ostream G4cout
const G4String & GetName() const
std::ostream & tab(std::ostream &)
static CCalRotationMatrixFactory * getInstance()
double getCrystLength() const
G4Material * findMaterial(const G4String &) const
double getCrystPar(unsigned int i) const
G4String getSuppMat() const
virtual void constructSensitive()
double getLengBox() const
double getLayAngle() const
double getLayRadius() const
G4LogicalVolume * GetLogicalVolume() const
G4String getGenMat() const
double getLengFront() const
G4RotationMatrix * findMatrix(const G4String &)
static CCalMaterialFactory * getInstance()
const G4String & GetName() const
static constexpr double deg
CCalG4Ecal(const G4String &name)
G4String getCrystMat() const