120 likes | 242 Views
Status of CHIPS cross sections and migration of the physics lists. Witek Pokorski 23 .05.2012. Goal. remove all the dependencies on CHIPS from the Geant4 production physics lists extract (clone) the CHIPS cross sections used by other physics lists (models)
E N D
Status of CHIPS cross sections and migration of the physics lists Witek Pokorski 23.05.2012
Goal • remove all the dependencies on CHIPS from the Geant4 production physics lists • extract (clone) the CHIPS cross sections used by other physics lists (models) • change the inheritance to use the standard Geant4 base classes • implement the standard methods, etc • remove any use of CHIPS classes (PDG, etc) • put them all in hadronic/cross_sections according to the Geant4 toolkit design allowing proper dependency of modules
Inelastic cross sections • inelastic cross sections for K+/-/0, Pi+/-, p, n, hyperons, anti-baryons have been extracted from CHIPS and put in hardonic/cross_sections • naming convention: G4ChipsKaonMinusInelasticXS.hh • inheriting from G4VCrossSectionDataSet • no any dependency on CHIPS, no singleton, follows standard G4 interface for cross sections • can be used directly in physics list and handled by G4CrossSectionDataStore • removed use of ‘tolerance’ (see later)
Elastic cross sections • elastic cross sections for K+/-/0, Pi+/-, p, n, hyperons, anti-baryons have been extracted from CHIPS and put in hardonic/cross_sections • naming convention: G4ChipsKaonMinusElasticXS.hh • inheriting from G4VCrossSectionDataSet • no any dependency on CHIPS, no singleton, follows standard G4 interface for cross sections • can be used directly in physics list and handled by G4CrossSectionDataStore • no use of ‘tolerance’
Issues in CHIPS cross-sections (1/2) • all CHIPS (inelastic) cross sections use ‘tolerance’ • if |new_momentum - old_momentum| < tolerance*p, use the same cross section, do not recompute • physically acceptable approximation, but totally breaks reproducibility • confirmed to be one of the remaining sources of the problems observed by Alberto • fixed by Vladimir I., but commented out • for instance FTFP_BERT still using the K cross-sections with tolerance • removed use of tolerance in the new (extracted) cross section classes
Issues in CHIPS cross-sections (2/2) • for K0 the following code is used in the current CHIPS interface else if(particle == G4KaonZeroLong::KaonZeroLong() || particle == G4KaonZeroShort::KaonZeroShort() || particle == G4KaonZero::KaonZero() || particle == G4AntiKaonZero::AntiKaonZero() ) { CSmanager=G4QKaonZeroNuclearCrossSection::GetPointer(); if(G4UniformRand() > 0.5) pPDG= 311; else pPDG=-311; } • uses random number to randomly choose between K0 and anti-K0
Issues in CHIPS cross-sections (2/2)- continued • but... pPDG (the randomly chosen), not used anywhere afterwards.... • instead GetCrossSection for K0 returns G4double CS=(theKMinusCS->GetCrossSection(fCS,pMom,tgZ,tgN,-321) +theKPlusCS->GetCrossSection(fCS,pMom,tgZ,tgN,321))/2; • the new class follows (for the moment?) this approach
Component cross sections class • common (optional) ‘interface’ to elastic and inelastic has been implemented • G4ChipsComponentXS in hadronic/cross_sections • allows to access all the cross sections (for all particles) through one class • gives also the total cross section
Migrations of models (1/2) • in parton_string/diffraction there was a direct use of CHIPS cross sections • this has been migrated to the new cross sections • see G4FTFParameters • the old interface G4ComponentCHIPShadronNuclearXS from parton_string/diffraction can now be removed
Migration of models (2/2) • in coherent_elastic there was the interface G4CHIPSElasticXS to CHIPS elastic cross sections and to the CHIPS elastic process (G4CHIPSElastic) • new interface has been implemented G4ChipsElasticModel for the elastic process • new cross sections can be used now directly (because they inherit from G4VCrossSectionDataSet)
Migration of physics lists • G4HadronElasticPhysics and G4HadronDElasticPhysics migrated to new elastic scattering classes (cross sections) • G4HyperonFTFPBuilder, HadronPhysicsFTFP_BERT and HadronPhysicsFTFP_BERT_TRV migrated to new cross sections • FTFP_BERT and FTFP_BERT_TRV physics lists now use the new cross sections classes • Andrea has run the simplified calorimeter with the new cross sections • no crashes, no problems • results show no differences
Conclusion • ‘Cloning’ of CHIPS cross sections done • reproducibility problems solved in the same time • processes using those cross sections internally (coherent elastic, FTF) has been migrated to the new ones • in SVN, tagged, accepted • FTFP_BERT physics list migrated to the new cross sections • in SVN, tagged, accepted • first validation results show no problems • ready to put in the next reference tag and in the beta release