Correct use of G4VDigi and Digitizer in general

Dear all,

I was wondering if I understand correctly the correct use of G4VDigi, G4VHit and Digitizer in general.
Could someone confirm or correct me on the following points, please:

  1. G4VHit and HitCollection can be filled only(!) in SD. I mean that we cannot create a HitCollection from another class, as Digitizer, for example
  2. The point 1) is the reason why we have G4Digi. Indeed, in a Digitizer we take as input a HitCollection and create a DigiCollection that we can reuse for the next step of digitization if we have any.
  3. Digitizer modules suppose to be inherited from G4VDigitizerModule
  4. If there are several Digitizer modules we can use G4DigiManager and G4DCtable

I work on development of a quite have and very used platform based on G4, GATE.
Thus, I want to be sure that G4 methodology is strictly respected in my developments.

I would really appreciate your answers.