120{
121 if(isInitialised) return;
122
123 theParticle = part;
124
125 if(part == bpart || part == G4Proton::Proton()) theBaseParticle = 0;
126 else if(bpart == 0) theBaseParticle = G4Proton::Proton();
127 else theBaseParticle = bpart;
128
129 SetBaseParticle(theBaseParticle);
130 SetSecondaryParticle(G4Electron::Electron());
131 mass = theParticle->GetPDGMass();
132 ratio = electron_mass_c2/mass;
133
134 G4VEmModel* em = new G4BraggModel();
135 em->SetLowEnergyLimit(0.1*keV);
136 eth = 2.0*MeV*mass/proton_mass_c2;
137 em->SetHighEnergyLimit(eth);
138
139 flucModel = new G4UniversalFluctuation();
140
141 AddEmModel(1, em, flucModel);
142 G4VEmModel* em1 = new G4BetheBlochModel();
143 em1->SetLowEnergyLimit(eth);
144 em1->SetHighEnergyLimit(100.0*TeV);
145 AddEmModel(2, em1, flucModel);
146
147 SetStepFunction(0.2, 1.0*mm);
148
149 isInitialised = true;
150}