Label an "element" as a collimator for output purposes

Issue #292 resolved
Laurie Nevay created an issue

Often, a GDML file is used for particular collimator geometry. We would still like to have this counted as a ‘collimator’ for the purposes of special summary quantities and sensitivity such as number of collimators hit, collimator index, collimator histograms.

A collimator is distinguished by:

  • a different sensitive detector class - “collimatorcomplete”
  • vacuum volumes have the “vacuumedep” sensitive detector
  • registering the mass logical volumes in a volume set in the AcceleratorModel, used in TrackingAction
  • they are identifiable by their type name in the beam line

See:

std::vector<G4int> BDSBeamline::GetIndicesOfCollimators() const

I think one solution would be to create a new AcceleratorComponent class that inherits BDSElement so it has a unique type name for identification, but also so the sensitivity can be pasted correctly.

To check:

  • for an “element” with named vacuum volumes - is the sensitivity correctly set to default “vacuumedep”?
  • sensitivity isn’t double registered per volume if we ‘update’ it in proposed new derived class

Comments (1)

  1. Laurie Nevay reporter

    This has been implemented now. An element can be marked as a collimator for the purpose of the collimator summary information. e.g.

    tcp1: element, l=900.2*mm, geometryFile="gdml:jcol.gdml", markAsCollimator=1;

    No new class was needed in the end.

  2. Log in to comment