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