Message: Creating 2D sensitive detectors Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

Question Creating 2D sensitive detectors  

Forum: Hits, Digitization and Pileup
Date: 24 Mar, 2015
From: Maluba Vernon <Maluba Vernon>

Hi all, I wish to collect energy deposited by protons (and their products) traversing a water phantom as a function of radius, r, and depth, z. So, I imagine my geometry to be a bunch of concentric cylinders with width(height), say 1mm, placed one after the other to take up any reasonable length of the beam axis (z-axis), say 30 cm. I have built this kind of geometry

  G4ThreeVector FirstCylposition = G4ThreeVector(0,0,0);
  G4double cylgap[]={10.*mm,7.*mm,5.*mm,3.*mm,1.*mm,10.*mm}; //fNbOfCylinders     0.25 *cm,0.5*cm,2.*cm,
//  G4double r_0 = 10.*mm;
  G4double rmax = 0;//r_0;

  G4double rmin = 0;

  G4int copyNo; 
  for(copyNo=0; copyNo<fNbOfCylinders; copyNo++)
  {
    rmin = rmax;
    rmax = rmax + cylgap[copyNo];

    G4VSolid*TrackerCylinders = new G4Tubs("TrackerCylinder_solid", rmin,rmax, 0.5*SliceThicknessZ,0.*deg,360.*deg);

    fTrackerCylinderLV[copyNo] = new G4LogicalVolume(TrackerCylinders, phantomMaterial,"TrackerCylinderLV", 0,0,0);

// new G4PVPlacement(0, FirstCylposition,fTrackerCylinderLV[copyNo],"TrackerCylinderPhys", worldLV, false,copyNo, fCheckOverlaps);

// fTrackerCylinderLV[copyNo]->SetVisAttributes(simpleBoxVisAtt);

    //reproducing cylinders along the z-axis
    G4int CopyNo;
    for(CopyNo=0; CopyNo<fNofSlicesAlongZ; CopyNo++)
    {
        G4double FirstZposition = 0;
        G4double Zposition = FirstZposition + CopyNo * SliceThicknessZ;
//         fSlicesAlongZLV[CopyNo] = new G4LogicalVolume(TrackerCylinders, phantomMaterial,"TrackerCylinderZLV", 0,0,0);
        new G4PVPlacement(0, G4ThreeVector(0,0,Zposition), fTrackerCylinderLV[copyNo], "TrackerCylinderZPhys",worldLV, false,CopyNo/*, fCheckOverlaps*/);
    }

//making slices sensitive  
G4String trackerSliceSDname = "/hadrontherapy/phantomSD";
  phantomSD* SDname1 = new phantomSD(trackerSliceSDname, "PhantomSliceHitsCollection", fNofSlicesAlongZ);
  SetSensitiveDetector("TrackerCylinderLV",SDname1,true);

but the way I did it, I can only create objects of the sensitive detectors in slices along the beam (z) -axis (can create my histogram for depth dose) but I want to store/collect data in the individual rings, get histograms of energy deposition as a function of radial distance from the the beam axis.

Does anyone know of a better way I can build this so that I can retrieve energy deposits radially too?

Any help will be most appreciated.

Regards, maluba

   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/03/24/04.42-57847-02_03_15.png
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/03/24/04.42-67824-004.png

Inline Depth:
 1 1
 All All
Outline Depth:
 1 1
 2 2
 All All
Add message: (add)

1 None: Re: Creating 2D sensitive detectors   (michel maire - 24 Mar, 2015)
 Add Message Add Message
to: "Creating 2D sensitive detectors "

 Subscribe Subscribe

This site runs SLAC HyperNews version 1.11-slac-98, derived from the original HyperNews


[ Geant 4 Home | Geant 4 HyperNews | Search | Request New Forum | Feedback ]