Fill fluence data for every single nuclide

Good evening all;
am trying to simulate the interactions of carbon ions in a heterogeneous medium.
so, I use for this an ion vector to calculate the number of ions and the deposition energy for each ion in many volumes but in the output file the program gives me no results and when I display the size of my vector at the end of run it, give me zero ion.(can anyone help plzz!!!)
…the code below
my greetings…
in my steppingaction class:


Run* run = static_cast<Run*>(G4RunManager::GetRunManager()->GetNonConstCurrentRun());
//--------------------------------fill
G4int copyNb = prePoint->GetTouchableHandle()-> GetCopyNumber();
if( edep!=0.){
if(ZZ >= 1 && copyNb > 0) run->Fill(TrackID,particle,copyNb-1,edep);
//---------------------------------------------

in my Run.cc:
G4bool Run::Fill(G4int trackID,
G4ParticleDefinition* particle,
G4int copyN,
G4double energyDeposit,
G4bool fluence)
{
if ( (energyDeposit <=0. && !fluence) || secondary) return false;

// Get Particle Data Group particle ID

G4int PDGencoding = particle → GetPDGEncoding();
//G4cout<<PDGencoding<<G4endl;
// G4int PDGencoding = particle → GetPDGEncoding();
PDGencoding -= PDGencoding%10;
//------------------------------------------------

//G4cout<<“PDGe… :”<<PDGencoding<<G4endl;

//------------------------------------------------
G4int tallyNumber = det->GetTallyNumber();
// Search for already allocated data…
for (size_t l=0; l < mystore.size(); l++)
{
if (mystore[l].PDGencoding1 == PDGencoding )
{ // Is it a primary or a secondary particle?

        if ( (trackID ==1 && mystore[l].isPrimary) || (trackID !=1 && !mystorel].isPrimary))
        {
            if (energyDeposit > 0.)

                mystore[l].deposit[copyN] += energyDeposit;

            if (fluence) mystore[l].fluenCe[copyN]++;

//G4cout<<“AM HERE…2”<<G4endl;
return true;
}
}
}
G4int Z = particle-> GetAtomicNumber();
G4int A = particle-> GetAtomicMass();
G4String fullName = particle → GetParticleName();
//---------------------- new particle in our store…
ions nIon =
{

    (trackID == 1) ? true:false,
    PDGencoding,
    fullName,
    fullName.length(),
    Z,
    A,
    new G4double[tallyNumber],
    new unsigned int[tallyNumber]
    //kinetic
};

if (nIon.deposit && nIon.fluenCe)
{
    for(G4int i=0; i<tallyNumber; i++)
    {
        nIon.deposit[i] = 0.;
        nIon.fluenCe[i] = 0;
    }

    if (energyDeposit > 0.) {nIon.deposit[copyN] += energyDeposit; 

}
if (fluence) {nIon.fluenCe[copyN]++; }
mystore.push_back(nIon);
return true;
}
else
{
return false;
}

  • the EndOfRun;

for(size_t i=0;i<mystore.size();i++){
G4cout<< mystore[i].fullName<<G4endl;}