Review of MC TDS Classes

The MC suite consist of three classes: McParticle, McPositionHit and McIntegratingHit. See this memo for the overall rationale of the MC classes.  This review will look at content and consistency amongst these classes. These are to be found in the GlastEvent package, under MonteCarlo.

McParticle

This class contains the parentage tree and particle properties. The tree is accessed by a pointer to the parent and to a list of daughters. The particle properties are encased in an StdHepId object, and initial and final positions and 4-momenta are accessible. The particle status is contained in a bit field (allowing multiple status flags to be set).

Conventions

Set functions have been deprecated; a single init member function is supplied to do a bulk set.

Names used are initial and final; position and FourMomentum.

The Gaudi container ObjectList is (twice) typedef'ed as McParticleList and McParticleCol. [Should one of these be an ObjectVector, and is the convention Vector, List or Col? I've seen Vector in the Digi classes.]

McPositionHit

This class represents the passage of trajectories through volumes, and is used for 'tracker-like' hits. It gives access to the volume identifier, entry and exit positions, direction cosines, deposited and particle energies, time of flight and MC parent. There is a flag for whether the hit needs to be digitized. The direction cosine is computed by a difference of the entry and exit positions.

It has some access functions that I do not see as necessary (or do not understand their purpose): pointer to the origin MC particle (accessible from the MC particle itself); flags for primary particle or CaloShowerOrigin.

There may be some confusion in the MC pointers: the spec of the class was to identify both the primary particle responsible for the hit as well as the type of the specific particle passing through. In this case, the McParticle (primaryMcParticle) pointer should go to the primary particle parent, and there should be an StdHepId object representing the current particle type (currentParticleType).

Conventions

This class uses set functions. The suite should standardize. Toby's coding recommendation has been to deprecate set functions.

The access function for the McParticle is mcParticle.

It deals with energies, and refers to deposited and particleEnergies. Positions are referred to as points. These should standardize on 'position' as per McParticle (more explicit than 'point').

The Gaudi containers ObjectVector and ObjectList are typedef'ed as McPositionHitVector and McPositionHitList. [Again, is the convention Vector, List or Col? I've seen Vector in the Digi classes.]

McIntegratingHit

This class represents the sum of energy loss through volumes, and is used for 'calorimeter-like' hits. It gives access to the volume identifier,  deposited total energy, energy weighted position moments and an MC parent-deposited energy map. There is a flag for whether the hit needs to be digitized. 

It has some access functions that I do not see as necessary (or do not understand their purpose):  flags for primary particle or CaloShowerOrigin.

Conventions

This class uses set functions. The suite should standardize. Toby's coding recommendation has been to deprecate set functions.

It refers to total energies;  for consistency with McPositionHit, perhaps this should be depositedEnergy.

The Gaudi containers ObjectVector and ObjectList are typedef'ed as McIntegratingHitVector and McIntegratingHitList. [Again, is the convention Vector, List or Col? I've seen Vector in the Digi classes.]


R.Dubois Last Modified: 2002-04-04 07:02:29 -0800