MC Shower Proposal

This proposal stems from Traudl's MC raw data document. The underlying goals of this proposal are to allow a good record of energy deposit in the calorimeter: based on a shower initiating particle, and to allow albedo particles from showers to be recreated as 'real' particles.

This was done from the LCD project using Gismo, so there is an example to start from.

Requirements

Implications

Sample Implementation for Shower Bookkeeping

Here are snippets of code from the LCD project which achieved this shower bookkeeping.

DigitizerInterface::score is modified to pass a pointer to the current MCParticle

void DigitizerInterface::score(MCParticle* track)

Supply a function to search the tree for a parent shower particle

// look back into the shower to find a shower, or return zero
const MCParticle* shower_initiator(const MCParticle* p) {
    while( p !=0 ) {
        if( p->status() == MCParticle::SHOWER ) return p;
        p = p->parent();
    }
return p;

In the CAL digitizer:

// if the particle has interacted, and has no source itself, set its status to SHOWER

const MCParticle* shower_source = 0;

if (MCPart->status() != MCParticle::ALIVE) {

    shower_source = shower_initiator(MCPart);
    if(shower_source==0) { 
    const_cast<MCParticle*>(MCPart)->setStatus(MCParticle::SHOWER);
    shower_source = MCPart;
    }
}

.....

// depositing energy: look for a shower initiator
if( shower_source==0 ) shower_source = shower_initiator(MCPart);

// if none, attribute it to this guy
if( shower_source==0 ) shower_source = MCPart;


then use shower_source as the MCParticle of record for storing particle info for this deposit.

In MCParticle, where the generations are trimmed, only do it for showering particles, and trim all generations. Note that this trim will kill off newly real albedo particles!

// finally, if not displaying, get rid of children here
// only for particles which showered in the calorimeters

if(status() == SHOWER) removeChildren();

Implementation Problems/Consequences

Implementation Questions


R.Dubois Last Modified: 12/13/2000 10:45