Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-07-13 08:21:04

0001 
0002 #ifndef G4HepEmElectronTableBuilder_HH
0003 #define G4HepEmElectronTableBuilder_HH
0004 
0005 // computes the dedx for e-/e+ and builds the range, dedx and inverse range tables
0006 // for all material-cuts couples
0007 
0008 class G4VEmModel;
0009 class G4MollerBhabhaModel;
0010 class G4SeltzerBergerModel;
0011 class G4eBremsstrahlungRelModel;
0012 class G4ParticleDefinition;
0013 class G4CrossSectionDataStore;
0014 
0015 
0016 struct G4HepEmData;
0017 struct G4HepEmParameters;
0018 struct G4HepEmMatData;
0019 
0020 
0021 // Should receive pointers to G4 models that are already initialised for the
0022 // particle i.e. either for e- or e+
0023 void BuildELossTables(G4MollerBhabhaModel* mbModel, G4SeltzerBergerModel* sbModel,
0024                       G4eBremsstrahlungRelModel* rbModel, struct G4HepEmData* hepEmData,
0025                       struct G4HepEmParameters* hepEmParams, bool iselectron);
0026 
0027 void BuildLambdaTables(G4MollerBhabhaModel* mbModel, G4SeltzerBergerModel* sbModel,
0028                       G4eBremsstrahlungRelModel* rbModel, struct G4HepEmData* hepEmData,
0029                       struct G4HepEmParameters* hepEmParams, bool iselectron);
0030 
0031 void BuildNuclearLambdaTables(G4CrossSectionDataStore* hadENucXSDataStore,
0032                       struct G4HepEmData* hepEmData, struct G4HepEmParameters* hepEmParams,
0033                       bool iselectron);
0034 
0035 void BuildTransportXSectionTables(G4VEmModel* mscModel, struct G4HepEmData* hepEmData,
0036                       struct G4HepEmParameters* hepEmParams, bool iselectron);
0037 
0038 void BuildElementSelectorTables(G4MollerBhabhaModel* mbModel, G4SeltzerBergerModel* sbModel,
0039                       G4eBremsstrahlungRelModel* rbModel, struct G4HepEmData* hepEmData,
0040                       struct G4HepEmParameters* hepEmParams, bool iselectron);
0041 
0042 
0043 void BuildElementSelector(double minEKin, double maxEKin, int numBinsPerDecade, double *data, int& indxCont, const struct G4HepEmMatData& matData, G4VEmModel* emModel, double cut, const G4ParticleDefinition* g4PartDef);
0044 
0045 int InitElementSelectorEnergyGrid(int binsperdecade, double* egrid, double mine, double maxe,
0046                                   double& logMinEnergy, double& invLEDelta);
0047 
0048 void BuildSBBremSTables(struct G4HepEmData* hepEmData, struct G4HepEmParameters* hepEmPars, G4SeltzerBergerModel* sbModel);
0049 
0050 #endif  // G4HepEmElectronTableBuilder_HH