38 fProperties.SetOwner();
39 if (model == kMglisur) {
42 }
else if (model == kMunified || model == kMLUT || model == kMdichroic || model == kMDAVIS) {
46 Fatal(
"TGeoOpticalSurface::TGeoOpticalSurface()",
"Constructor called with INVALID model.");
56 if ((stype ==
"dielectric_metal") || (stype ==
"0")) {
58 }
else if ((stype ==
"dielectric_dielectric") || (stype ==
"1")) {
60 }
else if ((stype ==
"dielectric_LUT") || (stype ==
"2")) {
62 }
else if ((stype ==
"dielectric_dichroic") || (stype ==
"3")) {
64 }
else if ((stype ==
"firsov") || (stype ==
"4")) {
86 return "unhandled surface type";
96 if ((smodel ==
"glisur") || (smodel ==
"0")) {
98 }
else if ((smodel ==
"unified") || (smodel ==
"1")) {
100 }
else if ((smodel ==
"LUT") || (smodel ==
"2")) {
115 case kMLUT:
return "LUT";
120 return "unhandled model type";
129 if ((sfinish ==
"polished") || (sfinish ==
"0")) {
131 }
else if ((sfinish ==
"polishedfrontpainted") || (sfinish ==
"1")) {
133 }
else if ((sfinish ==
"polishedbackpainted") || (sfinish ==
"2")) {
135 }
else if ((sfinish ==
"ground") || (sfinish ==
"3")) {
137 }
else if ((sfinish ==
"groundfrontpainted") || (sfinish ==
"4")) {
139 }
else if ((sfinish ==
"groundbackpainted") || (sfinish ==
"5")) {
141 }
else if ((sfinish ==
"polishedlumirrorair") || (sfinish ==
"6")) {
143 }
else if ((sfinish ==
"polishedlumirrorglue") || (sfinish ==
"7")) {
145 }
else if ((sfinish ==
"polishedair") || (sfinish ==
"8")) {
147 }
else if ((sfinish ==
"polishedteflonair") || (sfinish ==
"9")) {
149 }
else if ((sfinish ==
"polishedtioair") || (sfinish ==
"10")) {
151 }
else if ((sfinish ==
"polishedtyvekair") || (sfinish ==
"11")) {
153 }
else if ((sfinish ==
"polishedvm2000air") || (sfinish ==
"12")) {
155 }
else if ((sfinish ==
"polishedvm2000glue") || (sfinish ==
"13")) {
157 }
else if ((sfinish ==
"etchedlumirrorair") || (sfinish ==
"14")) {
159 }
else if ((sfinish ==
"etchedlumirrorglue") || (sfinish ==
"15")) {
161 }
else if ((sfinish ==
"etchedair") || (sfinish ==
"16")) {
163 }
else if ((sfinish ==
"etchedteflonair") || (sfinish ==
"17")) {
165 }
else if ((sfinish ==
"etchedtioair") || (sfinish ==
"18")) {
167 }
else if ((sfinish ==
"etchedtyvekair") || (sfinish ==
"19")) {
169 }
else if ((sfinish ==
"etchedvm2000air") || (sfinish ==
"20")) {
171 }
else if ((sfinish ==
"etchedvm2000glue") || (sfinish ==
"21")) {
173 }
else if ((sfinish ==
"groundlumirrorair") || (sfinish ==
"22")) {
175 }
else if ((sfinish ==
"groundlumirrorglue") || (sfinish ==
"23")) {
177 }
else if ((sfinish ==
"groundair") || (sfinish ==
"24")) {
179 }
else if ((sfinish ==
"groundteflonair") || (sfinish ==
"25")) {
181 }
else if ((sfinish ==
"groundtioair") || (sfinish ==
"26")) {
183 }
else if ((sfinish ==
"groundtyvekair") || (sfinish ==
"27")) {
185 }
else if ((sfinish ==
"groundvm2000air") || (sfinish ==
"28")) {
243 return "unhandled model finish";
251 return (
prop) ?
prop->GetTitle() :
nullptr;
259 if ( !
prop )
return nullptr;
268 if ( !
prop )
return nullptr;
288 printf(
"*** opticalsurface: %s type: %s model: %s finish: %s value = %g\n",
GetName(),
295 printf(
" property: %s ref: %s\n",
property->GetName(),
property->GetTitle());
304 Error(
"Print",
"Skin surface %s: volume not set",
GetName());
315 Error(
"Print",
"Border surface %s: nodes not set",
GetName());
318 printf(
"*** bordersurface: %s surfaceproperty: %s physvolref: %s %s \n",
GetName(),
GetTitle(),
void Fatal(const char *location, const char *msgfmt,...)
Use this function in case of a fatal error. It will abort the program.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h prop
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t property
R__EXTERN TGeoManager * gGeoManager
virtual void SetOwner(Bool_t enable=kTRUE)
Set whether this collection is the owner (enable==true) of its content.
virtual Int_t GetSize() const
Return the capacity of the collection, i.e.
This class is used in the process of reading and writing the GDML "matrix" tag.
void Print(Option_t *option="") const
This method must be overridden when a class wants to print itself.
TGDMLMatrix * GetGDMLMatrix(const char *name) const
Get GDML matrix with a given name;.
This is a wrapper class to G4OpticalSurface.
static ESurfaceType StringToType(const char *type)
bool AddProperty(const char *property, const char *ref)
static const char * ModelToString(ESurfaceModel model)
@ kTdielectric_dielectric
static const char * TypeToString(ESurfaceType type)
static ESurfaceFinish StringToFinish(const char *finish)
TGDMLMatrix * GetProperty(const char *name) const
static const char * FinishToString(ESurfaceFinish finish)
void Print(Option_t *option="") const
This method must be overridden when a class wants to print itself.
@ kFPolishedESRGrease_LUT
static ESurfaceModel StringToModel(const char *model)
const char * GetPropertyRef(const char *property)
TGeoVolume const * fVolume
void Print(Option_t *option="") const
This method must be overridden when a class wants to print itself.
TObject * FindObject(const char *name) const override
Find an object in this list using its name.
void Add(TObject *obj) override
TObject * At(Int_t idx) const override
Returns the object at position idx. Returns 0 if idx is out of range.
The TNamed class is the base class for all named ROOT classes.
const char * GetName() const override
Returns name of object.
const char * GetTitle() const override
Returns title of object.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.