problem2 with g2root

From: Alexander Zvyagin (zvyagin@mx.ihep.su)
Date: Thu Feb 26 1998 - 23:49:48 MET


                                           IHEP, Protvino, Russia, 27-FEB-1998

    Dear ALL!

I have GEANT3 program (the FULL fortran code is at the end of the E-mail)
that produce RZ-file.

Then I run g2root (at this case it works) and convert GEANT geometry
to root one.

The problem is that this two geometries arn't equal!
Root geometry does not contain shape PIN.

Why?

P.S. All files (with g.rz file) are in
     http://gams.ihep.su/~zvyagin/home/ALICE/work/test/

Thanks in advance,
Alexander Zvyagin.

-------------------------------------------------------------------------------
File g.f
******************************************************************************

      PROGRAM MAIN

        PARAMETER (NWGEAN=1000000,NWPAW=1000000)
        COMMON/GCBANK/GEANT(NWGEAN)
        COMMON/PAWC/PAW(NWPAW)

        CALL GPAWPP(NWGEAN,NWPAW)

      END

*****************************************************************************

      SUBROUTINE GUTREV
C.
C.    *
C.    *       User routine to control tracking of one event
C.    *
C.    *       Called by GRUN
C.    *
C.
        CALL GTREVE
C
      END

*****************************************************************************
       
      SUBROUTINE GUTRACK
        CALL GTRACK
      END
       
*****************************************************************************

      SUBROUTINE QNEXT
      END

******************************************************************************

       SUBROUTINE UGINIT
         CALL GINIT
*        CALL GFFGO
         CALL GZINIT
         CALL GPART
         CALL GMATE
         CALL UGEOM
         CALL GPHYSI

         CALL GRFILE(21,'g.rz','ON')
       END

******************************************************************************

       SUBROUTINE UGEOM
         IMPLICIT NONE
         real           max_displ_for_mult_scat         ,
     ,                  max_fract_energy_loss_step      ,
     ,                  boundary_precision              ,
     ,                  min_step_energy_loss__mult_scat ,
     ,                  magnetic_field                  ,
     ,                  field_max                       ,
     ,                  angle_max                       ,
     ,                  cell_size                       ,
     ,                  cell_length                     ,
     ,                  crystal_length                  ,
     ,                  air_thikness                    ,
     ,                  wrap_thikness                   ,
     ,                  PIN_size                        ,
     ,                  PIN_length                      ,
     ,                  par(3)                          ,
     ,                  x,y,z

         INTEGER        sensitive_volume                ,
     ,                  ifield                          ,
     ,                  flag

         max_displ_for_mult_scat        = 1.
         max_fract_energy_loss_step     = 0.05
         boundary_precision             = 1e-3
         min_step_energy_loss__mult_scat= 0.001
         magnetic_field                 = 0.
         field_max                      = 0.
         angle_max                      = 10.
         sensitive_volume               = 0
         ifield                         = 0

         crystal_length                 = 18.
         air_thikness                   = 0.3
         wrap_thikness                  = 0.2
         PIN_length                     = 0.5
         PIN_size                       = 1.5
         cell_size                      = 2.2
         cell_length                    = crystal_length+wrap_thikness+
     ,                                    PIN_length

         CALL GSTMED(1,'AIR $',15, sensitive_volume, ifield,
     ,         field_max, angle_max, max_displ_for_mult_scat,
     ,         max_fract_energy_loss_step, boundary_precision,
     ,         min_step_energy_loss__mult_scat, 0, 0 )

         par(1) = 50.
         par(2) = 50.
         par(3) = 50.
         CALL GSVOLU('PHOS','BOX ',1,par,3,flag)

         par(1) = cell_size/2
         par(2) = cell_size/2
         par(3) = cell_length/2
         CALL GSVOLU('CELL','BOX ',1,par,3,flag)

         par(1) = cell_size/2-air_thikness
         par(2) = cell_size/2-air_thikness
         par(3) = crystal_length/2+wrap_thikness/2
         CALL GSVOLU('WRAP','BOX ',1,par,3,flag)

         par(1) = cell_size/2-air_thikness-wrap_thikness
         par(2) = cell_size/2-air_thikness-wrap_thikness
         par(3) = crystal_length/2
         CALL GSVOLU("CRST","BOX ",1,par,3,flag)

         par(1) = PIN_size/2
         par(2) = PIN_size/2
         par(3) = PIN_length/2
         CALL GSVOLU('PIN ','BOX ',1,par,3,flag)

         x = 0.
         y = 0.
         z = -wrap_thikness/2
         CALL GSPOS('CRST',1,'WRAP',x,y,z,0,'ONLY')

         x = 0.
         y = 0.
         z = PIN_length/2
         CALL GSPOS('WRAP',1,'CELL',x,y,z,0,'ONLY')

         x = 0.
         y = 0.
         z = -crystal_length/2-wrap_thikness/2
         CALL GSPOS('PIN ',1,'CELL',x,y,z,0,'ONLY')

         CALL GSPOS('CELL',1,'PHOS',0.,0.,0.,0,'ONLY');

         CALL GPMATE(0)
         CALL GPTMED(0)
         CALL GPVOLU(0)

         CALL GGCLOS
       END

******************************************************************************

       SUBROUTINE UGLAST
         CALL GLAST
       END

******************************************************************************


//File g.C
void g()
{
//
//  This file has been generated automatically via the root
//  utility g2root from an interactive version of GEANT
//   (see ROOT class TGeometry header for an example of use)
//
TMaterial *mat;
TMixture  *mix;
TRotMatrix *rot;
TNode *Node, *Node1;

TGeometry *g = new TGeometry("g","g.C");


//-----------List of Materials and Mixtures--------------

mat = new TMaterial("mat1","HYDROGEN",1.01,1,.0708);
mat = new TMaterial("mat2","DEUTERIUM",2.01,1,.162);
mat = new TMaterial("mat3","HELIUM",4,2,.125);
mat = new TMaterial("mat4","LITHIUM",6.94,3,.534);
mat = new TMaterial("mat5","BERILLIUM",9.01,4,1.848);
mat = new TMaterial("mat6","CARBON",12.01,6,2.265);
mat = new TMaterial("mat7","NITROGEN",14.01,7,.808);
mat = new TMaterial("mat8","NEON",20.18,10,1.207);
mat = new TMaterial("mat9","ALUMINIUM",26.97999,13,2.7);
mat = new TMaterial("mat10","IRON",55.84999,26,7.869999);
mat = new TMaterial("mat11","COPPER",63.54,29,8.96);
mat = new TMaterial("mat12","TUNGSTEN",183.85,74,19.29999);
mat = new TMaterial("mat13","LEAD",207.19,82,11.35);
mat = new TMaterial("mat14","URANIUM",238.0299,92,18.95);
mat = new TMaterial("mat15","AIR",14.60999,7.3,.001205);
mat = new TMaterial("mat16","VACUUM",0,0,0);

//-----------List of Rotation matrices--------------


//-----------List of Volumes--------------

TBRIK *PHOS = new TBRIK("PHOS","PHOS","mat15",50,50,50);
TBRIK *CELL = new TBRIK("CELL","CELL","mat15",1.1,1.1,9.35);
TBRIK *WRAP = new TBRIK("WRAP","WRAP","mat15",.8,.8,9.1);
TBRIK *CRST = new TBRIK("CRST","CRST","mat15",.6,.6,9);
TBRIK *PIN_ = new TBRIK("PIN_","PIN_","mat15",.75,.75,.25);

//-----------List of Nodes--------------

Node1 = new TNode("PHOS1","PHOS1","PHOS");
Node1->cd();
 TNode *Node2;
 Node2 = new TNode("CELL1","CELL1","CELL",0,0,0,"");
 Node2->cd();
  TNode *Node3;
  Node3 = new TNode("WRAP1","WRAP1","WRAP",0,0,.25,"");
  Node3->cd();
   Node = new TNode("CRST1","CRST1","CRST",0,0,-.1,"");
 Node2->cd();
Node1->cd();
}



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:34:30 MET