Problem 2389 - Try to use G4PVReplica
Summary: Try to use G4PVReplica
Status: RESOLVED INVALID
Alias: None
Product: Geant4
Classification: Unclassified
Component: geometry (show other problems)
Version: 10.7
Hardware: All All
: P4 minor
Assignee: Gabriele Cosmo
URL:
Depends on:
Blocks:
 
Reported: 2021-06-16 20:37 CEST by Nelssom
Modified: 2021-06-17 08:15 CEST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this problem.
Description Nelssom 2021-06-16 20:37:48 CEST
Hello

I try to use G4PVReplica, not woking

## Birks coefficients used in run time

-------- EEEE ------- G4Exception-START -------- EEEE -------
*** G4Exception : GeomMgt0002
      issued by : G4SmartVoxelHeader::BuildReplicaVoxels
Sanity check: wrong solid extent.
        Replicated geometry, logical volume: logic_Tank1
*** Fatal Exception *** core dump ***
 **** Track information is not available at this moment
 **** Step information is not available at this moment

-------- EEEE -------- G4Exception-END --------- EEEE -------

this is my code:


G4double Tank_z, Tank_y, Tank_x, Tank2_x, phi, theta;
    Tank_y = Tank_z = 0.*m;
    
    phi = 0.0*deg;
    theta =  0.0*deg; 


    Tank_x  =7.5*um;
    
   
    G4Box* tank_box1 = 
        new G4Box("solid_Tank1",Tank_x, Tank_y, Tank_z);
    
    G4LogicalVolume* logic_Tank1 = 
        new G4LogicalVolume(tank_box1, Material1, "logic_Tank1"); //Here it's the right place to assign a material to the Disk
        

        	G4RotationMatrix rotm  = G4RotationMatrix();
        	rotm.rotateY(theta); // Rotation of an Theta_Disk angle in the ZY plane
  			rotm.rotateX(0);
  			rotm.rotateZ(phi); 
  
        	G4ThreeVector Trans(-Tank_x *std::cos(theta)*std::cos(phi),-Tank_x *std::cos(theta)*std::sin(phi),-Tank_x *std::sin(-theta));// Translation putting the     
                                                                                                // central point of the face  of the Disk in   
                                                                                                // the origin (0,0,0) counting with rotation  
                                                                                                // in theta (ZX plane)
        	G4Transform3D transform = G4Transform3D(rotm,Trans);
                           

    G4VPhysicalVolume* physiTank1 =
        new G4PVPlacement(transform, logic_Tank1, "physiTank1", logicWorld, false, 0);
 

    G4Box* tank_box1_la = 
        new G4Box("solid_Tank1_la",Tank_x, 1*um, Tank_z);

    G4LogicalVolume* logic_Tank1_la = 
        new G4LogicalVolume(tank_box1_la, Material2, "logic_Tank1_la");

     G4VPhysicalVolume* physiTank1_la =
        new G4PVReplica( "physiTank1_la", logic_Tank1_la,logic_Tank1, kYAxis, 10,3*mm);

I am doing something wrong?

Best Regards
Nelssom
Comment 1 Gabriele Cosmo 2021-06-17 08:15:33 CEST
Your setup is totally wrong.
You define an invalid box "solid_Tank1" of these dimensions (!?): 15*um, 0, 0
... and try to slice it in 10 parts of 3*mm along Y (??) with another invalid box
"solid_Tank1_1a" of these dimensions (!?): 15*um, 2*um, 0  ????

Please, avoid opening tickets for misunderstandings of this sort.
Use the User Forum for any help.