Message: Re: Optical photon detection Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

More Re: Optical photon detection 

Keywords: optical photon detection
Forum: Particles
Re: Question Optical photon detection (Matt Orr)
Re: None Re: Optical photon detection (Gumplinger Peter)
Date: 28 Sep, 2004
From: Gumplinger Peter <Gumplinger Peter>

to be more specific:

in your G4UserSteppingAction:

Manually trigger a sensitive detector when a boundary process detects

************************
*PMT sensitive detector*
************************
The PMT sensitive detector cannot be triggered like a normal sensitive detector because the sensitive volume does not allow photons to pass through it. Rather, it detects them in the OpBoundary process based on an efficiency set on the skin of the volume.

------

  G4OpticalSurface* photocath_opsurf=
     new G4OpticalSurface("photocath_opsurf",glisur,polished,
                           dielectric_metal);
  G4double photocath_EFF[num]={1.,1.};
  G4double photocath_REFL[num]={0.,0.};
  G4MaterialPropertiesTable* photocath_mt = new G4MaterialPropertiesTable();
  photocath_mt->AddProperty("EFFICIENCY",Ephoton,photocath_EFF,num);
  photocath_mt->AddProperty("REFLECTIVITY",Ephoton,photocath_REFL,num);
  photocath_opsurf->SetMaterialPropertiesTable(photocath_mt);
  new G4LogicalSkinSurface("photocath_surf",photocath_log,photocath_opsurf);

------

A normal sensitive detector would have its ProcessHits function called for each step by a particle inside the volume. So, to record these hits with a sensitive detector we watched the status of the OpBoundary process from the stepping manager whenever a photon hit the sensitive volume of the pmt. If the status was 'Detection', we retrieve the sensitive detector from G4SDManager and call its ProcessHits function.

------

  boundaryStatus=boundary->GetStatus();
  //Check to see if the particle was actually at a boundary 
  if(thePostPoint->GetStepStatus()==fGeomBoundary){
    switch(boundaryStatus){
    //...
      case Detection: //Note, this assumes that the volume causing detection
                      //is the photocathode because it is the only one with
                      //non-zero efficiency
        {
          //Trigger sensitive detector manually since photon is
          //absorbed but status was Detection
          G4SDManager* SDman = G4SDManager::GetSDMpointer();
          G4String sdName="/LXeDet/pmtSD";
          LXePMTSD* pmtSD = (LXePMTSD*)SDman
            ->FindSensitiveDetector(sdName);
          if(pmtSD)
            pmtSD->ProcessHits_constStep(theStep,NULL);
          break;
        }
      //...
    }

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

 Add Message Add Message
to: "Re: Optical photon detection"

 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 ]