Help understanding track and hits energy

REST version : v2.2.11

Hello,

I am trying to understand an event in a detailed way. I am printing event info with a macro similar to TRestG4Event::PrintEvent()

	for (Int_t track_id=0; track_id < event->GetNumberOfTracks(); track_id++){

		track = event->GetTrack(track_id);
		hits = track->GetHits();
		printf("number of hits in %5s track (id %d, parent_id: %d): %d energy: %8.4f keV KE: %8.4f keV\n\n", ((string)track->GetParticleName()).c_str(), track_id, track->GetParentID(), hits->GetNumberOfHits(), track->GetEnergy(), track->GetKineticEnergy());

		for (Int_t hit_id = 0; hit_id < hits->GetNumberOfHits(); hit_id++){
		    volume_name=(string)restG4_metadata->GetActiveVolumeName(hits->GetVolumeId(hit_id));
		    process_name=(string)track->GetProcessName(hits->GetHitProcess(hit_id));
		    energy_in_volume=hits->GetEnergyInVolume(hits->GetVolumeId(hit_id));

		    printf("-   hit %3d: volume: %15s process: %18s energy: %8.4f keV\n", hit_id, volume_name.c_str(), process_name.c_str(), energy_in_volume);
		}
		cout << endl;
	}

But I am finding some confusing information that I don’t understand.

This is a sample from the output log:

number of hits in    e- track (id 378, parent_id: 361): 1 energy:   0.2334 keV KE:   0.2334 keV

-   hit   0: volume:   LeadShielding process:              eIoni energy:   0.2334 keV

number of hits in    e- track (id 379, parent_id: 361): 1 energy:   0.0957 keV KE:   0.0957 keV

-   hit   0: volume:   LeadShielding process:              eIoni energy:   0.0957 keV

number of hits in    e- track (id 380, parent_id: 361): 1 energy:   0.1344 keV KE:   0.1344 keV

-   hit   0: volume:   LeadShielding process:              eIoni energy:   0.1344 keV

number of hits in    e- track (id 381, parent_id: 361): 1 energy:   0.0740 keV KE:   0.0740 keV

-   hit   0: volume:   LeadShielding process:              eIoni energy:   0.0740 keV

number of hits in    e- track (id 382, parent_id: 361): 1 energy:   0.2359 keV KE:   0.2359 keV

-   hit   0: volume:   LeadShielding process:              eIoni energy:   0.2359 keV

number of hits in    e- track (id 383, parent_id: 361): 1 energy:   1.4195 keV KE:   1.4195 keV

-   hit   0: volume:   LeadShielding process:              eIoni energy:   1.4195 keV

number of hits in    e- track (id 384, parent_id: 361): 1 energy:   0.1531 keV KE:   0.1531 keV

-   hit   0: volume:   LeadShielding process:              eIoni energy:   0.1531 keV

number of hits in    e- track (id 385, parent_id: 322): 5 energy: 890.8293 keV KE: 956.5879 keV

-   hit   0: volume:   LeadShielding process:              eIoni energy: 890.8293 keV
-   hit   1: volume:   LeadShielding process:              eIoni energy: 890.8293 keV
-   hit   2: volume:   LeadShielding process:              eIoni energy: 890.8293 keV
-   hit   3: volume:   LeadShielding process:              eBrem energy: 890.8293 keV
-   hit   4: volume:   LeadShielding process:              eIoni energy: 890.8293 keV

number of hits in    e- track (id 386, parent_id: 386): 1 energy:   0.0930 keV KE:   0.0930 keV

-   hit   0: volume:   LeadShielding process:              eIoni energy:   0.0930 keV

number of hits in    e- track (id 387, parent_id: 386): 1 energy:   0.0561 keV KE:   0.0561 keV

-   hit   0: volume:   LeadShielding process:              eIoni energy:   0.0561 keV

You can see that on some of this tracks the kinetic energy (KE) and the track energy (which I don’t really know what it is) are less than the total combined hits energy. Also on this cases many of the hits have the exact same energy so maybe this is a case of duplicated hits?

I think it would be easier if we keep a common PrintEvent formatting.

It is this a punctual case, or I can reproduce it easily? Could I get your RML to launch the simulation and try to find the same result?