Hands-on 5

Code for download: session5_start.tar.gz

Exercise 5a:

Complete the implementation of the hit and sensitive detector classes for the Drift chamber (ChamberHit, ChamberSD) to account the following information when a charged track passed through the detector:

  • the chamber layer number
  • the time when a particle hits chamber
  • the hit global position (the position in the world volume frame)


  • The code for the time is already implemented, add code for the other two quantities
  • To check if the hits are correctly accounted, add printing of the added hit data in ChamberHit::Print()

Exercise 5b:

Complete the implementation of the sensitive detector class for the EM calorimeter (EmCalorimeterSD) to account the following information in the calorimeter hits (EmCalorimeterHit):

  • the layer number
  • the total energy deposit in the layer (= the accumulated deposit from all particles).


  • In difference from the Chamber hits, the Calorimeter hits are created in EmCalorimeterSD::Initialize() and updated in EmCalorimeterSD::ProcessHits().

    • See also example B4/B4c how to account the energy deposit in a calorimeter.
  • The class EmCalorimeterHit is already implemented.

  • To control your implementation, add printing of the calorimeter hit collection at end of each event (in EmCalorimeterSD::EndOfEvent()), see the similar code in ChamberSD class)

Exercise 5c:

Implement drawing of Chamber hits:

  • Add and implement the ChamberHit::Draw() function.(See B2TrackerHit class in basic/B2/B2a example).

  • Activate drawing hits in vis.mac macro

Solution: session5_solution.tar.gz