Index: trunk/source/physics_lists/builders/include/G4IonQMDPhysics.hh
===================================================================
--- trunk/source/physics_lists/builders/include/G4IonQMDPhysics.hh	(revision 1274)
+++ trunk/source/physics_lists/builders/include/G4IonQMDPhysics.hh	(revision 1274)
@@ -0,0 +1,111 @@
+//
+// ********************************************************************
+// * License and Disclaimer                                           *
+// *                                                                  *
+// * The  Geant4 software  is  copyright of the Copyright Holders  of *
+// * the Geant4 Collaboration.  It is provided  under  the terms  and *
+// * conditions of the Geant4 Software License,  included in the file *
+// * LICENSE and available at  http://cern.ch/geant4/license .  These *
+// * include a list of copyright holders.                             *
+// *                                                                  *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work  make  any representation or  warranty, express or implied, *
+// * regarding  this  software system or assume any liability for its *
+// * use.  Please see the license in the file  LICENSE  and URL above *
+// * for the full disclaimer and the limitation of liability.         *
+// *                                                                  *
+// * This  code  implementation is the result of  the  scientific and *
+// * technical work of the GEANT4 collaboration.                      *
+// * By using,  copying,  modifying or  distributing the software (or *
+// * any work based  on the software)  you  agree  to acknowledge its *
+// * use  in  resulting  scientific  publications,  and indicate your *
+// * acceptance of all terms of the Geant4 Software license.          *
+// ********************************************************************
+//
+// $Id: G4IonQMDPhysics.hh,v 1.1 2009/11/27 17:25:15 gunter Exp $
+// GEANT4 tag $Name: geant4-09-03 $
+//
+//---------------------------------------------------------------------------
+//
+// ClassName:   G4IonBinaryCascadeBuilder
+//   Created from G4IonBinaryCascadePhysics
+//
+// Author:      G.Folger
+//
+// Modified:
+//
+//----------------------------------------------------------------------------
+//
+
+#ifndef G4IonQMDPhysics_h
+#define G4IonQMDPhysics_h 1
+
+#include "globals.hh"
+#include "G4VPhysicsConstructor.hh"
+
+#include "G4LEDeuteronInelastic.hh"
+#include "G4LETritonInelastic.hh"
+#include "G4LEAlphaInelastic.hh"
+
+#include <vector>
+
+class G4HadronInelasticProcess;
+class G4HadronicInteraction;
+class G4BinaryLightIonReaction;
+class G4QMDReaction;
+class G4TripathiLightCrossSection;
+class G4TripathiCrossSection;
+class G4IonsShenCrossSection;
+
+
+class G4IonQMDPhysics : public G4VPhysicsConstructor
+{
+public:
+  G4IonQMDPhysics(const G4String& name="ions", G4int verb = 0);
+  virtual ~G4IonQMDPhysics();
+
+  // This method will be invoked in the Construct() method.
+  // each particle type will be instantiated
+  virtual void ConstructParticle();
+
+  // This method will be invoked in the Construct() method.
+  // each physics process will be instantiated and
+  // registered to the process manager of each particle type
+  virtual void ConstructProcess();
+
+private:
+
+  void AddProcess(const G4String&,
+		  G4ParticleDefinition*, 
+		  G4BinaryLightIonReaction*,
+		  G4QMDReaction*,
+		  G4HadronicInteraction*);
+
+  std::vector<G4HadronInelasticProcess*> p_list;
+  std::vector<G4HadronicInteraction*> model_list;
+
+  G4TripathiCrossSection* fTripathi;
+  G4TripathiLightCrossSection* fTripathiLight;
+  G4IonsShenCrossSection* fShen;
+
+  G4LEDeuteronInelastic*  fLEDModel;
+  G4LETritonInelastic*    fLETModel;
+  G4LEAlphaInelastic*     fLEAModel;
+
+  G4double eminBIC;
+ 
+  G4double eminQMD;
+  G4double emaxQMD;
+
+  G4double emaxLHEP;
+
+  G4double overlap;
+   
+  G4int  verbose;
+  G4bool wasActivated;
+};
+
+
+#endif
+
Index: trunk/source/physics_lists/builders/include/G4MiscCHIPSBuilder.hh
===================================================================
--- trunk/source/physics_lists/builders/include/G4MiscCHIPSBuilder.hh	(revision 1274)
+++ trunk/source/physics_lists/builders/include/G4MiscCHIPSBuilder.hh	(revision 1274)
@@ -0,0 +1,68 @@
+//
+// ********************************************************************
+// * License and Disclaimer                                           *
+// *                                                                  *
+// * The  Geant4 software  is  copyright of the Copyright Holders  of *
+// * the Geant4 Collaboration.  It is provided  under  the terms  and *
+// * conditions of the Geant4 Software License,  included in the file *
+// * LICENSE and available at  http://cern.ch/geant4/license .  These *
+// * include a list of copyright holders.                             *
+// *                                                                  *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work  make  any representation or  warranty, express or implied, *
+// * regarding  this  software system or assume any liability for its *
+// * use.  Please see the license in the file  LICENSE  and URL above *
+// * for the full disclaimer and the limitation of liability.         *
+// *                                                                  *
+// * This  code  implementation is the result of  the  scientific and *
+// * technical work of the GEANT4 collaboration.                      *
+// * By using,  copying,  modifying or  distributing the software (or *
+// * any work based  on the software)  you  agree  to acknowledge its *
+// * use  in  resulting  scientific  publications,  and indicate your *
+// * acceptance of all terms of the Geant4 Software license.          *
+// ********************************************************************
+//
+// GEANT4 tag $Name: phys-lists-V09-03-03 $
+//
+//---------------------------------------------------------------------------
+//
+// ClassName:   G4MiscCHIPSBuilder
+//
+// Author: 2010, G.Folger
+//
+// created by modifying G4QInelasticCHIPSBuilder to apply only to MISC particles
+// -----------------------------------------------------------------------------
+#ifndef G4MiscCHIPSBuilder_h
+#define G4MiscCHIPSBuilder_h 1
+
+#include "globals.hh"
+
+#include "G4VPhysicsConstructor.hh"
+#include "G4QInelastic.hh"
+
+#include "G4ParticleDefinition.hh"
+#include "G4ParticleTable.hh"
+#include "G4ProcessManager.hh"
+
+class G4MiscCHIPSBuilder
+{
+ public: 
+  G4MiscCHIPSBuilder(G4int verbose=0);
+  virtual ~G4MiscCHIPSBuilder();
+
+ public: 
+  void Build();
+
+ protected:
+  // the particle table has the complete List of existing particle types
+  G4ParticleTable* theParticleTable;
+  G4ParticleTable::G4PTblDicIterator* theParticleIterator;
+
+ private:
+  G4int  verbose;
+  G4bool wasActivated;
+  G4QInelastic* inelastic;
+};
+
+#endif
Index: trunk/source/physics_lists/builders/src/G4MiscCHIPSBuilder.cc
===================================================================
--- trunk/source/physics_lists/builders/src/G4MiscCHIPSBuilder.cc	(revision 1274)
+++ trunk/source/physics_lists/builders/src/G4MiscCHIPSBuilder.cc	(revision 1274)
@@ -0,0 +1,81 @@
+//
+// ********************************************************************
+// * License and Disclaimer                                           *
+// *                                                                  *
+// * The  Geant4 software  is  copyright of the Copyright Holders  of *
+// * the Geant4 Collaboration.  It is provided  under  the terms  and *
+// * conditions of the Geant4 Software License,  included in the file *
+// * LICENSE and available at  http://cern.ch/geant4/license .  These *
+// * include a list of copyright holders.                             *
+// *                                                                  *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work  make  any representation or  warranty, express or implied, *
+// * regarding  this  software system or assume any liability for its *
+// * use.  Please see the license in the file  LICENSE  and URL above *
+// * for the full disclaimer and the limitation of liability.         *
+// *                                                                  *
+// * This  code  implementation is the result of  the  scientific and *
+// * technical work of the GEANT4 collaboration.                      *
+// * By using,  copying,  modifying or  distributing the software (or *
+// * any work based  on the software)  you  agree  to acknowledge its *
+// * use  in  resulting  scientific  publications,  and indicate your *
+// * acceptance of all terms of the Geant4 Software license.          *
+// ********************************************************************
+//
+// GEANT4 tag $Name: phys-lists-V09-03-03 $
+//
+//---------------------------------------------------------------------------
+//
+// ClassName:   G4MiscCHIPSBuilder
+//
+// Author: 2010, G.Folger
+//
+// created by modifying G4QInelasticCHIPSBuilder to apply only to MISC particles
+// -----------------------------------------------------------------------------
+#include "G4MiscCHIPSBuilder.hh"
+
+G4MiscCHIPSBuilder::G4MiscCHIPSBuilder(G4int ver):
+ verbose(ver), wasActivated(false)
+{
+  // pointer to the particle table
+  theParticleTable = G4ParticleTable::GetParticleTable();
+  theParticleIterator = theParticleTable->GetIterator();
+}
+
+G4MiscCHIPSBuilder::~G4MiscCHIPSBuilder()
+{
+  if(wasActivated) delete inelastic;
+}
+
+void G4MiscCHIPSBuilder::Build()
+{
+  if(wasActivated) return;
+
+  wasActivated = true;
+  theParticleIterator->reset();
+  inelastic = new G4QInelastic();
+
+  while( (*theParticleIterator)() )
+  {
+    G4ParticleDefinition* particle = theParticleIterator->value();
+    G4String pname = particle->GetParticleName();
+    if(pname == "kaon-" || pname == "kaon+" || pname == "kaon0S"  ||  pname == "kaon0L" ||
+       pname == "pi-"   || pname == "pi+"   || pname == "neutron" ||  pname == "proton" )
+    {
+      if(verbose>1)G4cout<<"** G4MiscCHIPSBuilder: "<<pname<<" already defined"<<G4endl;
+    }
+    else  if( pname == "lambda"       || pname == "sigma+"       || pname == "sigma0"       ||
+              pname == "sigma-"       || pname == "xi0" || pname == "xi-" || pname == "omega-" ||
+              pname == "anti_proton"  || pname == "anti_neutron" || pname == "anti_lambda"  ||
+              pname == "anti_sigma+"  || pname == "anti_sigma0"  || pname == "anti_sigma-"  ||
+              pname == "anti_xi0"     || pname == "anti_xi-"     || pname == "anti_omega-"  )
+    {
+      if(verbose>1)G4cout<< "__G4QInelCHIPSBuilder: "<< pname <<" is defined here"<<G4endl;
+      G4ProcessManager* pmanager = particle->GetProcessManager();
+      pmanager->AddDiscreteProcess(inelastic);
+      if(verbose>1) G4cout<<"###> G4MiscCHIPSBuilder: "<<inelastic->GetProcessName()
+                          <<" is added for "<<pname<<G4endl;
+    }
+  }
+}
Index: trunk/source/physics_lists/lists/include/HadronPhysicsQGSP_BERT_CHIPS.hh
===================================================================
--- trunk/source/physics_lists/lists/include/HadronPhysicsQGSP_BERT_CHIPS.hh	(revision 1274)
+++ trunk/source/physics_lists/lists/include/HadronPhysicsQGSP_BERT_CHIPS.hh	(revision 1274)
@@ -0,0 +1,104 @@
+//
+// ********************************************************************
+// * License and Disclaimer                                           *
+// *                                                                  *
+// * The  Geant4 software  is  copyright of the Copyright Holders  of *
+// * the Geant4 Collaboration.  It is provided  under  the terms  and *
+// * conditions of the Geant4 Software License,  included in the file *
+// * LICENSE and available at  http://cern.ch/geant4/license .  These *
+// * include a list of copyright holders.                             *
+// *                                                                  *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work  make  any representation or  warranty, express or implied, *
+// * regarding  this  software system or assume any liability for its *
+// * use.  Please see the license in the file  LICENSE  and URL above *
+// * for the full disclaimer and the limitation of liability.         *
+// *                                                                  *
+// * This  code  implementation is the result of  the  scientific and *
+// * technical work of the GEANT4 collaboration.                      *
+// * By using,  copying,  modifying or  distributing the software (or *
+// * any work based  on the software)  you  agree  to acknowledge its *
+// * use  in  resulting  scientific  publications,  and indicate your *
+// * acceptance of all terms of the Geant4 Software license.          *
+// ********************************************************************
+//
+// $Id: HadronPhysicsQGSP_BERT_CHIPS.hh,v 1.1 2010/05/26 15:06:49 gunter Exp $
+// GEANT4 tag $Name: phys-lists-V09-03-03 $
+//
+//---------------------------------------------------------------------------
+//
+// ClassName:   HadronPhysicsQGSP_BERT_CHIPS
+//
+// Author: 2010 G.Folger
+//   derived from HadronPhysicsQGSP_BERT
+//
+// Modified:
+//
+//----------------------------------------------------------------------------
+//
+#ifndef HadronPhysicsQGSP_BERT_CHIPS_h
+#define HadronPhysicsQGSP_BERT_CHIPS_h 1
+
+#include "globals.hh"
+#include "G4ios.hh"
+
+#include "G4VPhysicsConstructor.hh"
+#include "G4MiscCHIPSBuilder.hh"
+
+#include "G4PiKBuilder.hh"
+#include "G4LEPPiKBuilder.hh"
+#include "G4QGSPPiKBuilder.hh"
+#include "G4BertiniPiKBuilder.hh"
+
+#include "G4ProtonBuilder.hh"
+#include "G4LEPProtonBuilder.hh"
+#include "G4QGSPProtonBuilder.hh"
+#include "G4BertiniProtonBuilder.hh"
+
+#include "G4NeutronBuilder.hh"
+#include "G4LEPNeutronBuilder.hh"
+#include "G4QGSPNeutronBuilder.hh"
+#include "G4BertiniNeutronBuilder.hh"
+
+class HadronPhysicsQGSP_BERT_CHIPS : public G4VPhysicsConstructor
+{
+  public: 
+    HadronPhysicsQGSP_BERT_CHIPS(const G4String& name ="hadron",G4bool quasiElastic=true);
+    virtual ~HadronPhysicsQGSP_BERT_CHIPS();
+
+  public: 
+    virtual void ConstructParticle();
+    virtual void ConstructProcess();
+
+    void SetQuasiElastic(G4bool value) {QuasiElastic = value;}; 
+    void SetProjectileDiffraction(G4bool value) {ProjectileDiffraction = value;}; 
+
+  private:
+    void CreateModels();
+    G4HadronicProcess * FindInelasticProcess(const G4ParticleDefinition *);
+    
+    G4NeutronBuilder * theNeutrons;
+    G4LEPNeutronBuilder * theLEPNeutron;
+    G4QGSPNeutronBuilder * theQGSPNeutron;
+    G4BertiniNeutronBuilder * theBertiniNeutron;
+    
+    G4PiKBuilder * thePiK;
+    G4LEPPiKBuilder * theLEPPiK;
+    G4QGSPPiKBuilder * theQGSPPiK;
+    G4BertiniPiKBuilder * theBertiniPiK;
+    
+    G4ProtonBuilder * thePro;
+    G4LEPProtonBuilder * theLEPPro;
+    G4QGSPProtonBuilder * theQGSPPro; 
+    G4BertiniProtonBuilder * theBertiniPro;
+    
+    G4MiscCHIPSBuilder * theMiscCHIPS;
+    
+    G4bool QuasiElastic;
+    G4bool ProjectileDiffraction;
+    G4VCrossSectionDataSet * theCHIPSInelastic;
+};
+
+#endif
+
Index: trunk/source/physics_lists/lists/include/QGSP_BERT_CHIPS.hh
===================================================================
--- trunk/source/physics_lists/lists/include/QGSP_BERT_CHIPS.hh	(revision 1274)
+++ trunk/source/physics_lists/lists/include/QGSP_BERT_CHIPS.hh	(revision 1274)
@@ -0,0 +1,67 @@
+//
+// ********************************************************************
+// * License and Disclaimer                                           *
+// *                                                                  *
+// * The  Geant4 software  is  copyright of the Copyright Holders  of *
+// * the Geant4 Collaboration.  It is provided  under  the terms  and *
+// * conditions of the Geant4 Software License,  included in the file *
+// * LICENSE and available at  http://cern.ch/geant4/license .  These *
+// * include a list of copyright holders.                             *
+// *                                                                  *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work  make  any representation or  warranty, express or implied, *
+// * regarding  this  software system or assume any liability for its *
+// * use.  Please see the license in the file  LICENSE  and URL above *
+// * for the full disclaimer and the limitation of liability.         *
+// *                                                                  *
+// * This  code  implementation is the result of  the  scientific and *
+// * technical work of the GEANT4 collaboration.                      *
+// * By using,  copying,  modifying or  distributing the software (or *
+// * any work based  on the software)  you  agree  to acknowledge its *
+// * use  in  resulting  scientific  publications,  and indicate your *
+// * acceptance of all terms of the Geant4 Software license.          *
+// ********************************************************************
+//
+// $Id: QGSP_BERT_CHIPS.hh,v 1.1 2010/05/26 15:06:49 gunter Exp $
+// GEANT4 tag $Name: phys-lists-V09-03-03 $
+//
+//---------------------------------------------------------------------------
+//
+// ClassName:   QGSP_BERT_CHIPS
+//
+// Author: 2010 G.Folger
+//   derived from QGSP_BERT
+//
+// Modified:
+//
+//----------------------------------------------------------------------------
+//
+#ifndef TQGSP_BERT_CHIPS_h
+#define TQGSP_BERT_CHIPS_h 1
+
+#include "G4VModularPhysicsList.hh"
+#include "globals.hh"
+#include "CompileTimeConstraints.hh"
+
+template<class T>
+class TQGSP_BERT_CHIPS: public T
+{
+public:
+  TQGSP_BERT_CHIPS(G4int ver = 1);
+  virtual ~TQGSP_BERT_CHIPS();
+  
+public:
+  // SetCuts() 
+  virtual void SetCuts();
+
+private:
+  enum {ok = CompileTimeConstraints::IsA<T, G4VModularPhysicsList>::ok };
+};
+
+#include "QGSP_BERT_CHIPS.icc"
+typedef TQGSP_BERT_CHIPS<G4VModularPhysicsList> QGSP_BERT_CHIPS;
+#endif
+
+
+
Index: trunk/source/physics_lists/lists/include/QGSP_BERT_CHIPS.icc
===================================================================
--- trunk/source/physics_lists/lists/include/QGSP_BERT_CHIPS.icc	(revision 1274)
+++ trunk/source/physics_lists/lists/include/QGSP_BERT_CHIPS.icc	(revision 1274)
@@ -0,0 +1,118 @@
+//
+// ********************************************************************
+// * License and Disclaimer                                           *
+// *                                                                  *
+// * The  Geant4 software  is  copyright of the Copyright Holders  of *
+// * the Geant4 Collaboration.  It is provided  under  the terms  and *
+// * conditions of the Geant4 Software License,  included in the file *
+// * LICENSE and available at  http://cern.ch/geant4/license .  These *
+// * include a list of copyright holders.                             *
+// *                                                                  *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work  make  any representation or  warranty, express or implied, *
+// * regarding  this  software system or assume any liability for its *
+// * use.  Please see the license in the file  LICENSE  and URL above *
+// * for the full disclaimer and the limitation of liability.         *
+// *                                                                  *
+// * This  code  implementation is the result of  the  scientific and *
+// * technical work of the GEANT4 collaboration.                      *
+// * By using,  copying,  modifying or  distributing the software (or *
+// * any work based  on the software)  you  agree  to acknowledge its *
+// * use  in  resulting  scientific  publications,  and indicate your *
+// * acceptance of all terms of the Geant4 Software license.          *
+// ********************************************************************
+//
+// $Id: QGSP_BERT_CHIPS.icc,v 1.1 2010/05/26 15:06:49 gunter Exp $
+// GEANT4 tag $Name: phys-lists-V09-03-03 $
+//
+//---------------------------------------------------------------------------
+//
+// ClassName:   QGSP_BERT_CHIPS
+//
+// Author: 2010 G.Folger
+//   derived from QGSP_BERT
+//
+// Modified:
+//
+//----------------------------------------------------------------------------
+//
+
+#include "globals.hh"
+#include "G4ParticleDefinition.hh"
+#include "G4ParticleWithCuts.hh"
+#include "G4ProcessManager.hh"
+#include "G4ProcessVector.hh"
+#include "G4ParticleTypes.hh"
+#include "G4ParticleTable.hh"
+
+#include "G4Material.hh"
+#include "G4MaterialTable.hh"
+#include "G4ios.hh"
+#include <iomanip>   
+
+#include "G4DecayPhysics.hh"
+#include "G4EmStandardPhysics.hh"
+#include "G4EmExtraPhysics.hh"
+#include "G4IonPhysics.hh"
+#include "G4QStoppingPhysics.hh"
+#include "G4HadronElasticPhysics.hh"
+#include "G4NeutronTrackingCut.hh"
+
+#include "G4DataQuestionaire.hh"
+#include "HadronPhysicsQGSP_BERT_CHIPS.hh"
+
+template<class T> TQGSP_BERT_CHIPS<T>::TQGSP_BERT_CHIPS(G4int ver):  T()
+{
+
+  G4DataQuestionaire it(photon);
+  G4cout << "<<< Geant4 Physics List simulation engine: QGSP_BERT_CHIPS 1.0"<<G4endl;
+  G4cout <<G4endl;
+
+  this->defaultCutValue = 0.7*mm;  
+  this->SetVerboseLevel(ver);
+
+  // EM Physics
+  this->RegisterPhysics( new G4EmStandardPhysics(ver));
+
+  // Synchroton Radiation & GN Physics
+  this->RegisterPhysics( new G4EmExtraPhysics("extra EM"));
+
+  // Decays
+  this->RegisterPhysics( new G4DecayPhysics("decay",ver) );
+
+   // Hadron Elastic scattering
+  this-> RegisterPhysics( new G4HadronElasticPhysics("elastic",ver,false));
+
+  // Hadron Physics
+   G4bool quasiElastic;
+  this->RegisterPhysics( new HadronPhysicsQGSP_BERT_CHIPS("hadron",quasiElastic=true));
+
+  // Stopping Physics
+  this->RegisterPhysics( new G4QStoppingPhysics("stopping"));
+
+  // Ion Physics
+  this->RegisterPhysics( new G4IonPhysics("ion"));
+  
+  // Neutron tracking cut
+  this->RegisterPhysics( new G4NeutronTrackingCut("Neutron tracking cut", ver));
+
+}
+
+template<class T> TQGSP_BERT_CHIPS<T>::~TQGSP_BERT_CHIPS()
+{
+}
+
+template<class T> void TQGSP_BERT_CHIPS<T>::SetCuts()
+{
+  if (this->verboseLevel >1){
+    G4cout << "QGSP_BERT_CHIPS::SetCuts:";
+  }  
+  //  " G4VUserPhysicsList::SetCutsWithDefault" method sets 
+  //   the default cut value for all particle types 
+
+  this->SetCutsWithDefault();   
+  
+//  if (this->verboseLevel >0)
+//    G4VUserPhysicsList::DumpCutValuesTable();  
+}
Index: trunk/source/physics_lists/lists/src/HadronPhysicsQGSP_BERT_CHIPS.cc
===================================================================
--- trunk/source/physics_lists/lists/src/HadronPhysicsQGSP_BERT_CHIPS.cc	(revision 1274)
+++ trunk/source/physics_lists/lists/src/HadronPhysicsQGSP_BERT_CHIPS.cc	(revision 1274)
@@ -0,0 +1,158 @@
+//
+// ********************************************************************
+// * License and Disclaimer                                           *
+// *                                                                  *
+// * The  Geant4 software  is  copyright of the Copyright Holders  of *
+// * the Geant4 Collaboration.  It is provided  under  the terms  and *
+// * conditions of the Geant4 Software License,  included in the file *
+// * LICENSE and available at  http://cern.ch/geant4/license .  These *
+// * include a list of copyright holders.                             *
+// *                                                                  *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work  make  any representation or  warranty, express or implied, *
+// * regarding  this  software system or assume any liability for its *
+// * use.  Please see the license in the file  LICENSE  and URL above *
+// * for the full disclaimer and the limitation of liability.         *
+// *                                                                  *
+// * This  code  implementation is the result of  the  scientific and *
+// * technical work of the GEANT4 collaboration.                      *
+// * By using,  copying,  modifying or  distributing the software (or *
+// * any work based  on the software)  you  agree  to acknowledge its *
+// * use  in  resulting  scientific  publications,  and indicate your *
+// * acceptance of all terms of the Geant4 Software license.          *
+// ********************************************************************
+//
+// $Id: HadronPhysicsQGSP_BERT_CHIPS.cc,v 1.1 2010/05/26 15:06:49 gunter Exp $
+// GEANT4 tag $Name: phys-lists-V09-03-03 $
+//
+//---------------------------------------------------------------------------
+//
+// ClassName:   HadronPhysicsQGSP_BERT_CHIPS
+//
+// Author: 2010 G.Folger
+//   derived from HadronPhysicsQGSP_BERT
+//
+// Modified:
+//
+//----------------------------------------------------------------------------
+//
+#include "HadronPhysicsQGSP_BERT_CHIPS.hh"
+
+#include "globals.hh"
+#include "G4ios.hh"
+#include <iomanip>   
+#include "G4ParticleDefinition.hh"
+#include "G4ParticleTable.hh"
+#include "G4HadronicProcessType.hh"
+
+#include "G4MesonConstructor.hh"
+#include "G4BaryonConstructor.hh"
+#include "G4ShortLivedConstructor.hh"
+
+#include "G4QHadronInelasticDataSet.hh"
+
+HadronPhysicsQGSP_BERT_CHIPS::HadronPhysicsQGSP_BERT_CHIPS(const G4String& name, G4bool quasiElastic)
+                    :  G4VPhysicsConstructor(name) , QuasiElastic(quasiElastic)
+{
+   ProjectileDiffraction=false;
+}
+
+void HadronPhysicsQGSP_BERT_CHIPS::CreateModels()
+{
+  theNeutrons=new G4NeutronBuilder;
+  theNeutrons->RegisterMe(theQGSPNeutron=new G4QGSPNeutronBuilder(QuasiElastic, ProjectileDiffraction));
+  theNeutrons->RegisterMe(theLEPNeutron=new G4LEPNeutronBuilder);
+  theLEPNeutron->SetMinInelasticEnergy(9.5*GeV);
+  theLEPNeutron->SetMaxInelasticEnergy(25*GeV);  
+
+  theNeutrons->RegisterMe(theBertiniNeutron=new G4BertiniNeutronBuilder);
+  theBertiniNeutron->SetMinEnergy(0.0*GeV);
+  theBertiniNeutron->SetMaxEnergy(9.9*GeV);
+
+  thePro=new G4ProtonBuilder;
+  thePro->RegisterMe(theQGSPPro=new G4QGSPProtonBuilder(QuasiElastic, ProjectileDiffraction));
+  thePro->RegisterMe(theLEPPro=new G4LEPProtonBuilder);
+  theLEPPro->SetMinEnergy(9.5*GeV);
+  theLEPPro->SetMaxEnergy(25*GeV);
+
+  thePro->RegisterMe(theBertiniPro=new G4BertiniProtonBuilder);
+  theBertiniPro->SetMaxEnergy(9.9*GeV);
+  
+  thePiK=new G4PiKBuilder;
+  thePiK->RegisterMe(theQGSPPiK=new G4QGSPPiKBuilder(QuasiElastic));
+  thePiK->RegisterMe(theLEPPiK=new G4LEPPiKBuilder);
+  theLEPPiK->SetMaxEnergy(25*GeV);
+  theLEPPiK->SetMinEnergy(9.5*GeV);
+
+  thePiK->RegisterMe(theBertiniPiK=new G4BertiniPiKBuilder);
+  theBertiniPiK->SetMaxEnergy(9.9*GeV);
+  
+  theMiscCHIPS=new G4MiscCHIPSBuilder;
+}
+
+HadronPhysicsQGSP_BERT_CHIPS::~HadronPhysicsQGSP_BERT_CHIPS()
+{
+   delete theMiscCHIPS;
+   delete theQGSPNeutron;
+   delete theLEPNeutron;
+   delete theBertiniNeutron;
+   delete theQGSPPro;
+   delete theLEPPro;
+   delete thePro;
+   delete theBertiniPro;
+   delete theQGSPPiK;
+   delete theLEPPiK;
+   delete theBertiniPiK;
+   delete thePiK;
+   delete theCHIPSInelastic;
+}
+
+void HadronPhysicsQGSP_BERT_CHIPS::ConstructParticle()
+{
+  G4MesonConstructor pMesonConstructor;
+  pMesonConstructor.ConstructParticle();
+
+  G4BaryonConstructor pBaryonConstructor;
+  pBaryonConstructor.ConstructParticle();
+
+  G4ShortLivedConstructor pShortLivedConstructor;
+  pShortLivedConstructor.ConstructParticle();  
+}
+
+#include "G4ProcessManager.hh"
+void HadronPhysicsQGSP_BERT_CHIPS::ConstructProcess()
+{
+  CreateModels();
+  theNeutrons->Build();
+  thePro->Build();
+  thePiK->Build();
+  // use CHIPS cross sections also for Kaons
+  theCHIPSInelastic = new G4QHadronInelasticDataSet();
+  
+  FindInelasticProcess(G4KaonMinus::KaonMinus())->AddDataSet(theCHIPSInelastic);
+  FindInelasticProcess(G4KaonPlus::KaonPlus())->AddDataSet(theCHIPSInelastic);
+  FindInelasticProcess(G4KaonZeroShort::KaonZeroShort())->AddDataSet(theCHIPSInelastic);
+  FindInelasticProcess(G4KaonZeroLong::KaonZeroLong())->AddDataSet(theCHIPSInelastic);
+
+  theMiscCHIPS->Build();
+}
+
+G4HadronicProcess* 
+HadronPhysicsQGSP_BERT_CHIPS::FindInelasticProcess(const G4ParticleDefinition* p)
+{
+  G4HadronicProcess* had = 0;
+  if(p) {
+     G4ProcessVector*  pvec = p->GetProcessManager()->GetProcessList();
+     size_t n = pvec->size();
+     if(0 < n) {
+       for(size_t i=0; i<n; ++i) {
+	 if(fHadronInelastic == ((*pvec)[i])->GetProcessSubType()) {
+	   had = static_cast<G4HadronicProcess*>((*pvec)[i]);
+	   break;
+	 }
+       }
+     }
+  }
+  return had;
+}
Index: trunk/source/physics_lists/test/compile.cc
===================================================================
--- trunk/source/physics_lists/test/compile.cc	(revision 1274)
+++ trunk/source/physics_lists/test/compile.cc	(revision 1274)
@@ -0,0 +1,127 @@
+//
+// ********************************************************************
+// * License and Disclaimer                                           *
+// *                                                                  *
+// * The  Geant4 software  is  copyright of the Copyright Holders  of *
+// * the Geant4 Collaboration.  It is provided  under  the terms  and *
+// * conditions of the Geant4 Software License,  included in the file *
+// * LICENSE and available at  http://cern.ch/geant4/license .  These *
+// * include a list of copyright holders.                             *
+// *                                                                  *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work  make  any representation or  warranty, express or implied, *
+// * regarding  this  software system or assume any liability for its *
+// * use.  Please see the license in the file  LICENSE  and URL above *
+// * for the full disclaimer and the limitation of liability.         *
+// *                                                                  *
+// * This  code  implementation is the result of  the  scientific and *
+// * technical work of the GEANT4 collaboration.                      *
+// * By using,  copying,  modifying or  distributing the software (or *
+// * any work based  on the software)  you  agree  to acknowledge its *
+// * use  in  resulting  scientific  publications,  and indicate your *
+// * acceptance of all terms of the Geant4 Software license.          *
+// ********************************************************************
+//
+#include "G4RunManager.hh" 
+
+#include "FTFC.hh"
+#include "FTFP.hh"
+#include "FTFP_BERT.hh"
+#include "FTFP_BERT_TRV.hh"
+
+#include "LBE.hh"
+#include "LHEP_BERT_HP.hh"
+#include "LHEP_BERT.hh"
+#include "LHEP_EMV.hh"
+#include "LHEP.hh"
+#include "LHEP_PRECO_HP.hh"
+
+#include "QBBC.hh"
+
+#include "QGSC_EMV.hh"
+#include "QGSC.hh"
+#include "QGSC_EFLOW.hh"
+#include "QGSC_BERT.hh"
+#include "QGSC_QGSC.hh"
+#include "QGSC_CHIPS.hh"
+#include "CHIPS.hh"
+
+#include "QGSP.hh"
+#include "QGSP_DIF.hh"
+#include "QGSP_BERT_HP.hh"
+#include "QGSP_BERT.hh"
+#include "QGSP_BERT_EMX.hh"
+#include "QGSP_BERT_DIF.hh"
+#include "QGSP_BIC_HP.hh"
+#include "QGSP_BIC.hh"
+#include "G4IonQMDPhysics.hh"
+#include "QGSP_EMV.hh"
+#include "QGSP_EMX.hh"
+#include "QGSP_QEL.hh"
+//#include "QGSP_CASC.hh"
+#include "QGSP_INCL_ABLA.hh"
+
+#include "QGSP_FTFP_BERT.hh"
+
+#include "QGS_BIC.hh"
+#include "FTF_BIC.hh"
+
+#include "CLHEP/Random/RanluxEngine.h" 
+
+int main(int argc,char** argv) { 
+
+  CLHEP::RanluxEngine defaultEngine( 1234567, 4 ); 
+  CLHEP::HepRandom::setTheEngine( &defaultEngine ); 
+  G4RunManager* runManager = new G4RunManager; 
+//  runManager->SetUserInitialization( new StatAccepTestDetectorConstruction ); 
+
+  G4VModularPhysicsList * theFTF1 = new FTFC; 
+  G4VModularPhysicsList * theFTF2 = new FTFP;
+  G4VModularPhysicsList * theFTF3 = new FTFP_BERT;
+  G4VModularPhysicsList * theFTF3a = new FTFP_BERT_TRV;
+
+  G4VModularPhysicsList *theLBE = new LBE; 
+
+  G4VModularPhysicsList *thePL4 = new LHEP_BERT_HP; 
+  G4VModularPhysicsList *thePL5 = new LHEP_BERT; 
+  G4VModularPhysicsList *thePL8 = new LHEP_EMV; 
+  G4VModularPhysicsList *thePL10 = new LHEP; 
+
+  G4VModularPhysicsList *thePL15 = new QBBC;
+
+  G4VModularPhysicsList *thePL16 = new QGSC_EMV;
+  G4VModularPhysicsList *thePL17 = new QGSC;
+//replaced  G4VModularPhysicsList *thePL17a = new QGSC_EFLOW;
+  G4VModularPhysicsList *thePL18 = new QGSC_BERT;
+  G4VModularPhysicsList *thePL18a = new QGSC_QGSC;
+  G4VModularPhysicsList *thePL18b = new QGSC_CHIPS;
+  G4VModularPhysicsList *thePL19 = new CHIPS;
+    
+  G4VModularPhysicsList *thePL20 = new QGSP_BERT_HP; 
+  G4VModularPhysicsList *thePL21 = new QGSP_BERT;
+  G4VModularPhysicsList *thePL21a = new QGSP_BERT_EMX;
+  G4VModularPhysicsList *thePL21b = new QGSP_BERT_DIF;
+  G4VModularPhysicsList *thePL22 = new QGSP_BIC_HP; 
+  G4VModularPhysicsList *thePL23 = new QGSP_BIC;
+  G4VModularPhysicsList *thePL23a= new QGSP_BIC(1);
+      G4IonQMDPhysics * ionQMD=new G4IonQMDPhysics("IonQMD",1);
+      thePL23a->RegisterPhysics(ionQMD);
+      ionQMD->ConstructProcess();
+  G4VModularPhysicsList *thePL24 = new QGSP_EMV;
+//replaced  G4VModularPhysicsList *thePL25 = new QGSP_EMX;
+  G4VModularPhysicsList *thePL27 = new QGSP;
+  G4VModularPhysicsList *thePL27a = new QGSP_DIF;
+  G4VModularPhysicsList *thePL28 = new QGSP_QEL;
+//  G4VModularPhysicsList *thePL29 = new QGSP_CASC;
+  G4VModularPhysicsList *thePL29 = new QGSP_INCL_ABLA;
+  
+  G4VModularPhysicsList *thePL30 = new QGS_BIC;
+  G4VModularPhysicsList *thePL31 = new FTF_BIC;
+  
+  G4VModularPhysicsList *thePL40 = new QGSP_FTFP_BERT;
+
+
+  delete runManager; 
+  return 0; 
+} 
