Questions about Geant4GarfieldInterface/GarfieldPhysics.cc

Hello!@hschindl Sorry to disturb you.
The codes below are from Geant4GarfieldInterface/GarfieldPhysics.cc and I have some questions:

① Can you explain in detail about SetDistanceSteps()?
② What does ’ nsum ’ mean here ( nsum++;)
③ How does the W value in TrackHeed come from ? Is it from the gas file ? (fTrackHeed->GetW()
④ Why ze, xe, ye multiplied by 10:FillH3(1, ze * 10, xe * 10, ye * 10);
⑤ What do ’ newtime ’ and ’ time ’ mean here?: double newTime = te; if (newTime < time){newTime += time;}
⑥ If the position of ’ ElectronEndpoint ’ is in rWire, what is the purpose of xe2 + = 2 * rWire
⑦ Under what circumstances do we need to enable transport delta electron ? Can you give me some examples

if (fIonizationModel != "Heed" || particleName == "gamma")
  { if (particleName == "gamma")
    {fTrackHeed->TransportPhoton(x_cm, y_cm, z_cm, time, eKin_eV, dx, dy, dz,nc);}
    else
    { fTrackHeed->TransportDeltaElectron(x_cm, y_cm, z_cm, time, eKin_eV, dx,dy, dz, nc);
      fEnergyDeposit = eKin_eV;
    }
    for (int cl = 0; cl < nc; cl++)
    { double xe, ye, ze, te;
      double ee, dxe, dye, dze;
      fTrackHeed->GetElectron(cl, xe, ye, ze, te, ee, dxe, dye, dze);
      if (ze < lTube && ze > -lTube && sqrt(xe * xe + ye * ye) < rTube)
      { nsum++;
        if (particleName == "gamma")
        { fEnergyDeposit += fTrackHeed->GetW();}
        analysisManager->FillH3(1, ze * 10, xe * 10, ye * 10);
        if (createSecondariesInGeant4)
        {double newTime = te;
          if (newTime < time)
          { newTime += time;}
          fSecondaryParticles->push_back(new GarfieldParticle( "e-", ee, newTime, xe, ye, ze, dxe, dye, dze)); }
        drift.DriftElectron(xe, ye, ze, te);
        double xe1, ye1, ze1, te1;
        double xe2, ye2, ze2, te2;
        int status;
        drift.GetElectronEndpoint(0, xe1, ye1, ze1, te1, xe2, ye2, ze2, te2,status);
        if (0 < xe2 && xe2 < rWire)
        { xe2 += 2 * rWire;}
        else if (0 > xe2 && xe2 > -rWire)
        {xe2 += -2 * rWire;}
        if (0 < ye2 && ye2 < rWire)
        { ye2 += 2 * rWire;}
        else if (0 > ye2 && ye2 > -rWire)
        {ye2 += -2 * rWire;}

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.