71 Error(
"copy constructor",
"copying not allowed for TGeoBuilder");
87 Error(
"Assignment",
"assignment not allowed for TGeoBuilder");
97 printf(
"ERROR: Cannot create geometry builder with NULL geometry\n");
110 if (!material)
return -1;
114 materials->
Add(material);
124 if (!matrix)
return -1;
137 if (!shape)
return -1;
193 Warning(
"MakePara",
"parallelipiped %s having alpha=0, theta=0 -> making box instead", name);
194 return MakeBox(name, medium, dx, dy, dz);
197 para =
new TGeoPara(name, dx, dy, dz, alpha, theta, phi);
238 Error(
"MakeTube",
"tube %s, Rmin=%g greater than Rmax=%g", name,rmin,rmax);
327 TGeoCtub *
ctub =
new TGeoCtub(name, rmin, rmax, dz, phi1, phi2, lx, ly, lz, tx, ty, tz);
434 TGeoTrap *
trap =
new TGeoTrap(name, dz, theta, phi, h1, bl1, tl1, alpha1, h2, bl2,
448 TGeoGtra *
gtra =
new TGeoGtra(name, dz, theta, phi, twist, h1, bl1, tl1, alpha1, h2, bl2,
501 sname = sname.
Strip();
502 const char *vname = sname.
Data();
504 smname = smname.
Strip();
505 const char *mname = smname.
Data();
509 if (amother)
return amother->
Divide(vname,iaxis,ndiv,start,step,numed, option);
511 Error(
"Division",
"VOLUME: \"%s\" not defined",mname);
557 for (i=0;i<nelem;i++) {
573 for (i=0;i<nelem;i++) {
604 return new TGeoMedium(name,numed,nmat,isvol,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
634 mname = mname.
Strip();
635 Error(
"Node",
"Mother VOLUME \"%s\" not defined",mname.
Data());
641 if (
gDebug > 0)
Info(
"Node",
"Calling gspos, mother=%s, name=%s, nr=%d, x=%g, y=%g, z=%g, irot=%d, konly=%i",mother,name,nr,x,y,z,irot,(
Int_t)isOnly);
647 vname = vname.
Strip();
648 Error(
"Node",
"VOLUME: \"%s\" not defined",vname.
Data());
652 Error(
"Node",
"cannot add multiple-volume object %s as node", volume->
GetName());
661 Warning(
"Node",
"volume: %s is defined as single -> ignoring shape parameters", volume->
GetName());
662 Node(name,nr,mother,x,y,z,irot,isOnly, upar);
666 vname = vname.
Strip();
667 Error(
"Node",
"VOLUME: \"%s\" not defined ",vname.
Data());
674 volume =
MakeBox(name,medium,upar[0],upar[1],upar[2]);
676 volume =
MakeTrd1(name,medium,upar[0],upar[1],upar[2],upar[3]);
678 volume =
MakeTrd2(name,medium,upar[0],upar[1],upar[2],upar[3],upar[4]);
680 volume =
MakeTrap(name,medium,upar[0],upar[1],upar[2],upar[3],upar[4],upar[5],upar[6],upar[7],upar[8],upar[9],upar[10]);
682 volume =
MakeGtra(name,medium,upar[0],upar[1],upar[2],upar[3],upar[4],upar[5],upar[6],upar[7],upar[8],upar[9],upar[10],upar[11]);
684 volume =
MakeTube(name,medium,upar[0],upar[1],upar[2]);
686 volume =
MakeTubs(name,medium,upar[0],upar[1],upar[2],upar[3],upar[4]);
688 volume =
MakeCone(name,medium,upar[0],upar[1],upar[2],upar[3],upar[4]);
690 volume =
MakeCons(name,medium,upar[0],upar[1],upar[2],upar[3],upar[4],upar[5],upar[6]);
695 ((
TGeoPgon*)volume->
GetShape())->DefineSection(i,upar[3*i+4],upar[3*i+5],upar[3*i+6]);
698 volume =
MakePcon(name,medium,upar[0],upar[1],(
Int_t)upar[2]);
701 ((
TGeoPcon*)volume->
GetShape())->DefineSection(i,upar[3*i+3],upar[3*i+4],upar[3*i+5]);
704 volume =
MakeEltu(name,medium,upar[0],upar[1],upar[2]);
706 volume =
MakeSphere(name,medium,upar[0],upar[1],upar[2],upar[3],upar[4],upar[5]);
708 volume =
MakeCtub(name,medium,upar[0],upar[1],upar[2],upar[3],upar[4],upar[5],upar[6],upar[7],upar[8],upar[9],upar[10]);
710 volume =
MakePara(name,medium,upar[0],upar[1],upar[2],upar[3],upar[4],upar[5]);
712 Error(
"Node",
"cannot create shape %s",sh.
Data());
729 Fatal(
"Node",
"Node %s/%s_%d rotation %i not found",mother, name, nr ,irot);
738 if (isOnly) amother->
AddNode(volume,nr);
774 mname = mname.
Strip();
775 Error(
"Node",
"Mother VOLUME \"%s\" not defined",mname.
Data());
781 if (
gDebug > 0)
Info(
"Node",
"Calling gspos, mother=%s, name=%s, nr=%d, x=%g, y=%g, z=%g, irot=%d, konly=%i",mother,name,nr,x,y,z,irot,(
Int_t)isOnly);
787 vname = vname.
Strip();
788 Error(
"Node",
"VOLUME: \"%s\" not defined",vname.
Data());
792 Error(
"Node",
"cannot add multiple-volume object %s as node", volume->
GetName());
801 Warning(
"Node",
"volume: %s is defined as single -> ignoring shape parameters", volume->
GetName());
802 Node(name,nr,mother,x,y,z,irot,isOnly, upar);
806 vname = vname.
Strip();
807 Error(
"Node",
"VOLUME: \"%s\" not defined ",vname.
Data());
814 volume =
MakeBox(name,medium,upar[0],upar[1],upar[2]);
816 volume =
MakeTrd1(name,medium,upar[0],upar[1],upar[2],upar[3]);
818 volume =
MakeTrd2(name,medium,upar[0],upar[1],upar[2],upar[3],upar[4]);
820 volume =
MakeTrap(name,medium,upar[0],upar[1],upar[2],upar[3],upar[4],upar[5],upar[6],upar[7],upar[8],upar[9],upar[10]);
822 volume =
MakeGtra(name,medium,upar[0],upar[1],upar[2],upar[3],upar[4],upar[5],upar[6],upar[7],upar[8],upar[9],upar[10],upar[11]);
824 volume =
MakeTube(name,medium,upar[0],upar[1],upar[2]);
826 volume =
MakeTubs(name,medium,upar[0],upar[1],upar[2],upar[3],upar[4]);
828 volume =
MakeCone(name,medium,upar[0],upar[1],upar[2],upar[3],upar[4]);
830 volume =
MakeCons(name,medium,upar[0],upar[1],upar[2],upar[3],upar[4],upar[5],upar[6]);
835 ((
TGeoPgon*)volume->
GetShape())->DefineSection(i,upar[3*i+4],upar[3*i+5],upar[3*i+6]);
838 volume =
MakePcon(name,medium,upar[0],upar[1],(
Int_t)upar[2]);
841 ((
TGeoPcon*)volume->
GetShape())->DefineSection(i,upar[3*i+3],upar[3*i+4],upar[3*i+5]);
844 volume =
MakeEltu(name,medium,upar[0],upar[1],upar[2]);
846 volume =
MakeSphere(name,medium,upar[0],upar[1],upar[2],upar[3],upar[4],upar[5]);
848 volume =
MakeCtub(name,medium,upar[0],upar[1],upar[2],upar[3],upar[4],upar[5],upar[6],upar[7],upar[8],upar[9],upar[10]);
850 volume =
MakePara(name,medium,upar[0],upar[1],upar[2],upar[3],upar[4],upar[5]);
852 Error(
"Node",
"cannot create shape %s",sh.
Data());
869 Fatal(
"Node",
"Node %s/%s_%d rotation %i not found",mother, name, nr ,irot);
878 if (isOnly) amother->
AddNode(volume,nr);
902 Error(
"Volume",
"cannot create volume: %s, medium: %d is unknown",name,nmed);
907 sname = sname.
Strip();
908 const char *vname = sname.
Data();
915 Error(
"Volume",
"volume multi: %s not created",vname);
923 volume =
MakeBox(vname,medium,upar[0],upar[1],upar[2]);
925 volume =
MakeTrd1(vname,medium,upar[0],upar[1],upar[2],upar[3]);
927 volume =
MakeTrd2(vname,medium,upar[0],upar[1],upar[2],upar[3],upar[4]);
929 volume =
MakeTrap(vname,medium,upar[0],upar[1],upar[2],upar[3],upar[4],upar[5],upar[6],upar[7],upar[8],upar[9],upar[10]);
931 volume =
MakeGtra(vname,medium,upar[0],upar[1],upar[2],upar[3],upar[4],upar[5],upar[6],upar[7],upar[8],upar[9],upar[10],upar[11]);
933 volume =
MakeTube(vname,medium,upar[0],upar[1],upar[2]);
935 volume =
MakeTubs(vname,medium,upar[0],upar[1],upar[2],upar[3],upar[4]);
937 volume =
MakeCone(vname,medium,upar[0],upar[1],upar[2],upar[3],upar[4]);
939 volume =
MakeCons(vname,medium,upar[0],upar[1],upar[2],upar[3],upar[4],upar[5],upar[6]);
944 ((
TGeoPgon*)volume->
GetShape())->DefineSection(i,upar[3*i+4],upar[3*i+5],upar[3*i+6]);
947 volume =
MakePcon(vname,medium,upar[0],upar[1],(
Int_t)upar[2]);
950 ((
TGeoPcon*)volume->
GetShape())->DefineSection(i,upar[3*i+3],upar[3*i+4],upar[3*i+5]);
953 volume =
MakeEltu(vname,medium,upar[0],upar[1],upar[2]);
955 volume =
MakeSphere(vname,medium,upar[0],upar[1],upar[2],upar[3],upar[4],upar[5]);
957 volume =
MakeCtub(vname,medium,upar[0],upar[1],upar[2],upar[3],upar[4],upar[5],upar[6],upar[7],upar[8],upar[9],upar[10]);
959 volume =
MakePara(vname,medium,upar[0],upar[1],upar[2],upar[3],upar[4],upar[5]);
961 volume =
MakeTorus(vname,medium,upar[0],upar[1],upar[2],upar[3],upar[4]);
965 Error(
"Volume",
"volume: %s not created",vname);
987 Error(
"Volume",
"cannot create volume: %s, medium: %d is unknown",name,nmed);
992 sname = sname.
Strip();
993 const char *vname = sname.
Data();
1000 Error(
"Volume",
"volume multi: %s not created",vname);
1008 volume =
MakeBox(vname,medium,upar[0],upar[1],upar[2]);
1010 volume =
MakeTrd1(vname,medium,upar[0],upar[1],upar[2],upar[3]);
1012 volume =
MakeTrd2(vname,medium,upar[0],upar[1],upar[2],upar[3],upar[4]);
1014 volume =
MakeTrap(vname,medium,upar[0],upar[1],upar[2],upar[3],upar[4],upar[5],upar[6],upar[7],upar[8],upar[9],upar[10]);
1016 volume =
MakeGtra(vname,medium,upar[0],upar[1],upar[2],upar[3],upar[4],upar[5],upar[6],upar[7],upar[8],upar[9],upar[10],upar[11]);
1018 volume =
MakeTube(vname,medium,upar[0],upar[1],upar[2]);
1020 volume =
MakeTubs(vname,medium,upar[0],upar[1],upar[2],upar[3],upar[4]);
1022 volume =
MakeCone(vname,medium,upar[0],upar[1],upar[2],upar[3],upar[4]);
1024 volume =
MakeCons(vname,medium,upar[0],upar[1],upar[2],upar[3],upar[4],upar[5],upar[6]);
1028 for (i=0;i<nz;i++) {
1029 ((
TGeoPgon*)volume->
GetShape())->DefineSection(i,upar[3*i+4],upar[3*i+5],upar[3*i+6]);
1032 volume =
MakePcon(vname,medium,upar[0],upar[1],(
Int_t)upar[2]);
1034 for (i=0;i<nz;i++) {
1035 ((
TGeoPcon*)volume->
GetShape())->DefineSection(i,upar[3*i+3],upar[3*i+4],upar[3*i+5]);
1038 volume =
MakeEltu(vname,medium,upar[0],upar[1],upar[2]);
1040 volume =
MakeSphere(vname,medium,upar[0],upar[1],upar[2],upar[3],upar[4],upar[5]);
1042 volume =
MakeCtub(vname,medium,upar[0],upar[1],upar[2],upar[3],upar[4],upar[5],upar[6],upar[7],upar[8],upar[9],upar[10]);
1044 volume =
MakePara(vname,medium,upar[0],upar[1],upar[2],upar[3],upar[4],upar[5]);
1046 volume =
MakeTorus(vname,medium,upar[0],upar[1],upar[2],upar[3],upar[4]);
1050 Error(
"Volume",
"volume: %s not created",vname);
TGeoVolumeMulti * MakeVolumeMulti(const char *name, TGeoMedium *medium)
Make a TGeoVolumeMulti handling a list of volumes.
virtual const char * GetTitle() const
Returns title of object.
Int_t AddShape(TGeoShape *shape)
Add a shape to the list. Returns index of the shape in list.
Bool_t IsRunTimeShape() const
void para(Int_t iaxis=0, Int_t ndiv=8, Double_t start=0, Double_t step=0)
TGeoVolume * MakeGtra(const char *name, TGeoMedium *medium, Double_t dz, Double_t theta, Double_t phi, Double_t twist, Double_t h1, Double_t bl1, Double_t tl1, Double_t alpha1, Double_t h2, Double_t bl2, Double_t tl2, Double_t alpha2)
Make in one step a volume pointing to a twisted trapezoid shape with given medium.
TGeoVolume * MakeXtru(const char *name, TGeoMedium *medium, Int_t nz)
Make a TGeoXtru-shaped volume with nz planes.
TGeoVolumeAssembly * MakeVolumeAssembly(const char *name)
Make an assembly of volumes.
TList * GetListOfMaterials() const
void DefineElement(Int_t iel, Double_t a, Double_t z, Double_t weight)
TGeoVolume * MakeBox(const char *name, TGeoMedium *medium, Double_t dx, Double_t dy, Double_t dz)
Make in one step a volume pointing to a box shape with given medium.
ClassImp(TSeqCollection) Int_t TSeqCollection TIter next(this)
Return index of object in collection.
TGeoVolume * MakeCtub(const char *name, TGeoMedium *medium, Double_t rmin, Double_t rmax, Double_t dz, Double_t phi1, Double_t phi2, Double_t lx, Double_t ly, Double_t lz, Double_t tx, Double_t ty, Double_t tz)
Make in one step a volume pointing to a tube segment shape with given medium.
TGeoVolume * MakePgon(const char *name, TGeoMedium *medium, Double_t phi, Double_t dphi, Int_t nedges, Int_t nz)
Make in one step a volume pointing to a polygone shape with given medium.
virtual void SetName(const char *name)
Change (i.e.
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message.
virtual void AddNodeOverlap(TGeoVolume *vol, Int_t copy_no, TGeoMatrix *mat=0, Option_t *option="")
Add a TGeoNode to the list of nodes.
void SetGeometry(TGeoManager *geom)
current geometry
TGeoVolume * MakeHype(const char *name, TGeoMedium *medium, Double_t rin, Double_t stin, Double_t rout, Double_t stout, Double_t dz)
Make in one step a volume pointing to a tube shape with given medium.
TObjArray * GetListOfShapes() const
void gtra(Int_t iaxis=0, Int_t ndiv=8, Double_t start=0, Double_t step=0)
void ToLower()
Change string to lower-case.
TGeoVolume * MakeCons(const char *name, TGeoMedium *medium, Double_t dz, Double_t rmin1, Double_t rmax1, Double_t rmin2, Double_t rmax2, Double_t phi1, Double_t phi2)
Make in one step a volume pointing to a cone segment shape with given medium.
void trap(Int_t iaxis=0, Int_t ndiv=8, Double_t start=0, Double_t step=0)
TGeoVolume * Division(const char *name, const char *mother, Int_t iaxis, Int_t ndiv, Double_t start, Double_t step, Int_t numed=0, Option_t *option="")
Create a new volume by dividing an existing one (GEANT3 like)
Int_t GetEntriesFast() const
void box(Int_t pat, Double_t x1, Double_t y1, Double_t x2, Double_t y2)
TGeoMedium * Medium(const char *name, Int_t numed, Int_t nmat, Int_t isvol, Int_t ifield, Double_t fieldm, Double_t tmaxfd, Double_t stemax, Double_t deemax, Double_t epsil, Double_t stmin)
Create tracking medium.
static Double_t Tolerance()
const char * Data() const
virtual TObject * FindObject(const char *name) const
Find an object in this collection using its name.
virtual void Fatal(const char *method, const char *msgfmt,...) const
Issue fatal error message.
void AddVolume(TGeoVolume *vol)
Add a volume with valid shape to the list of volumes.
TGeoVolume * MakeArb8(const char *name, TGeoMedium *medium, Double_t dz, Double_t *vertices=0)
Make an TGeoArb8 volume.
void SetIndex(Int_t index)
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
virtual TGeoVolume * Divide(const char *divname, Int_t iaxis, Int_t ndiv, Double_t start, Double_t step, Int_t numed=0, Option_t *option="")
Division a la G3.
virtual void SetUniqueID(UInt_t uid)
Set the unique object id.
virtual void AddNode(TGeoVolume *vol, Int_t copy_no, TGeoMatrix *mat=0, Option_t *option="")
Add a TGeoNode to the list of nodes.
TGeoVolume * MakeCone(const char *name, TGeoMedium *medium, Double_t dz, Double_t rmin1, Double_t rmax1, Double_t rmin2, Double_t rmax2)
Make in one step a volume pointing to a cone shape with given medium.
void SetShape(const TGeoShape *shape)
set the shape associated with this volume
void eltu(Int_t iaxis=0, Int_t ndiv=8, Double_t start=0, Double_t step=0)
void pcon(Int_t iaxis=0, Int_t ndiv=8, Double_t start=0, Double_t step=0)
virtual void AddAtAndExpand(TObject *obj, Int_t idx)
Add object at position idx.
Int_t AddMaterial(TGeoMaterial *material)
Add a material to the list. Returns index of the material in list.
TGeoVolume * MakePara(const char *name, TGeoMedium *medium, Double_t dx, Double_t dy, Double_t dz, Double_t alpha, Double_t theta, Double_t phi)
Make in one step a volume pointing to a paralelipiped shape with given medium.
void Node(const char *name, Int_t nr, const char *mother, Double_t x, Double_t y, Double_t z, Int_t irot, Bool_t isOnly, Float_t *upar, Int_t npar=0)
Create a node called <name_nr> pointing to the volume called <name> as daughter of the volume called ...
void tube(Int_t iaxis=0, Int_t ndiv=8, Double_t start=0, Double_t step=0)
void ctub(Int_t iaxis=0, Int_t ndiv=8, Double_t start=0, Double_t step=0)
TGeoVolumeMulti * MakeVolumeMulti(const char *name, TGeoMedium *medium)
Make a TGeoVolumeMulti handling a list of volumes.
virtual void RegisterYourself()
Register the matrix in the current manager, which will become the owner.
void pgon(Int_t iaxis=0, Int_t ndiv=8, Double_t start=0, Double_t step=0)
virtual const char * GetName() const
Returns name of object.
TSubString Strip(EStripType s=kTrailing, char c= ' ') const
Return a substring of self stripped at beginning and/or end.
TGeoMedium * GetMedium(const char *medium) const
Search for a named tracking medium. All trailing blanks stripped.
TGeoVolume * MakeTrap(const char *name, TGeoMedium *medium, Double_t dz, Double_t theta, Double_t phi, Double_t h1, Double_t bl1, Double_t tl1, Double_t alpha1, Double_t h2, Double_t bl2, Double_t tl2, Double_t alpha2)
Make in one step a volume pointing to a trapezoid shape with given medium.
TGeoVolume * MakeSphere(const char *name, TGeoMedium *medium, Double_t rmin, Double_t rmax, Double_t themin=0, Double_t themax=180, Double_t phimin=0, Double_t phimax=360)
Make in one step a volume pointing to a sphere shape with given medium.
void cone(Int_t iaxis=0, Int_t ndiv=8, Double_t start=0, Double_t step=0)
TObjArray * GetListOfMatrices() const
TGeoVolume * MakeTrd2(const char *name, TGeoMedium *medium, Double_t dx1, Double_t dx2, Double_t dy1, Double_t dy2, Double_t dz)
Make in one step a volume pointing to a TGeoTrd2 shape with given medium.
TGeoVolume * MakeEltu(const char *name, TGeoMedium *medium, Double_t a, Double_t b, Double_t dz)
Make in one step a volume pointing to a tube shape with given medium.
TObjArray * GetListOfGVolumes() const
void trd2(Int_t iaxis=0, Int_t ndiv=8, Double_t start=0, Double_t step=0)
virtual Int_t GetSize() const
TGeoShape * GetShape() const
void RegisterMatrix(TGeoMatrix *matrix)
Register a matrix to the list of matrices.
TGeoVolume * GetVolume(const char *name) const
Search for a named volume. All trailing blanks stripped.
ClassImp(TMCParticle) void TMCParticle printf(": p=(%7.3f,%7.3f,%9.3f) ;", fPx, fPy, fPz)
Int_t AddTransformation(TGeoMatrix *matrix)
Add a matrix to the list. Returns index of the matrix in list.
Bool_t IsRegistered() const
TGeoVolume * MakeParaboloid(const char *name, TGeoMedium *medium, Double_t rlo, Double_t rhi, Double_t dz)
Make in one step a volume pointing to a tube shape with given medium.
void trd1(Int_t iaxis=0, Int_t ndiv=8, Double_t start=0, Double_t step=0)
TGeoBuilder()
static pointer to singleton
TGeoBuilder & operator=(const TGeoBuilder &)
Assignment.
virtual ~TGeoBuilder()
Destructor.
TGeoMaterial * Material(const char *name, Double_t a, Double_t z, Double_t dens, Int_t uid, Double_t radlen=0, Double_t intlen=0)
Create material with given A, Z and density, having an unique id.
virtual UInt_t GetUniqueID() const
Return the unique object id.
TGeoVolume * MakeTubs(const char *name, TGeoMedium *medium, Double_t rmin, Double_t rmax, Double_t dz, Double_t phi1, Double_t phi2)
Make in one step a volume pointing to a tube segment shape with given medium.
Mother of all ROOT objects.
static TGeoBuilder * Instance(TGeoManager *geom)
Return pointer to singleton.
virtual void Add(TObject *obj)
TGeoVolume * FindVolumeFast(const char *name, Bool_t multi=kFALSE)
Fast search for a named volume. All trailing blanks stripped.
TGeoMedium * GetMedium() const
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
TObjArray * GetListOfGShapes() const
void Matrix(Int_t index, Double_t theta1, Double_t phi1, Double_t theta2, Double_t phi2, Double_t theta3, Double_t phi3)
Create rotation matrix named 'mat<index>'.
TGeoVolume * Volume(const char *name, const char *shape, Int_t nmed, Float_t *upar, Int_t npar=0)
Create a volume in GEANT3 style.
static TGeoBuilder * fgInstance
TGeoMaterial * Mixture(const char *name, Float_t *a, Float_t *z, Double_t dens, Int_t nelem, Float_t *wmat, Int_t uid)
Create mixture OR COMPOUND IMAT as composed by THE BASIC nelem materials defined by arrays A...
virtual void SetTitle(const char *title="")
Change (i.e. set) the title of the TNamed.
TGeoVolume * MakeTorus(const char *name, TGeoMedium *medium, Double_t r, Double_t rmin, Double_t rmax, Double_t phi1=0, Double_t dphi=360)
Make in one step a volume pointing to a torus shape with given medium.
TGeoVolume * MakeTube(const char *name, TGeoMedium *medium, Double_t rmin, Double_t rmax, Double_t dz)
Make in one step a volume pointing to a tube shape with given medium.
TGeoVolume * MakePcon(const char *name, TGeoMedium *medium, Double_t phi, Double_t dphi, Int_t nz)
Make in one step a volume pointing to a polycone shape with given medium.
TGeoVolume * MakeTrd1(const char *name, TGeoMedium *medium, Double_t dx1, Double_t dx2, Double_t dy, Double_t dz)
Make in one step a volume pointing to a TGeoTrd1 shape with given medium.
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.