Correction in ion definition.
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 18 Apr 2008 18:57:04 +0000 (18:57 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 18 Apr 2008 18:57:04 +0000 (18:57 +0000)
TFluka/TFluka.cxx
TFluka/TFlukaIon.cxx

index f384afd..81b5a1b 100644 (file)
@@ -267,6 +267,7 @@ void TFluka::Init() {
     // Add ions to PDG Data base
     //
      AddParticlesToPdgDataBase();
+     fApplication->AddIons();
     //
 }
 
@@ -2617,9 +2618,6 @@ void TFluka::AddParticlesToPdgDataBase() const
                      khShGev/(12.33*kYear2Sec),6,"Ion",TFlukaIon::GetIonPdg(2,4));
   pdgDB->AddParticle("HE3","HE3",3*kAu2Gev+14.931e-3,kFALSE,
                      0,6,"Ion",TFlukaIon::GetIonPdg(2,3));
-//
-// Default user ion
-  TFlukaIon::AddIon(12, 6);
   
 //
 //
index 09af298..cb9f14d 100644 (file)
@@ -107,16 +107,18 @@ void TFlukaIon::AddIon(Int_t a, Int_t z)
 }
 
 void  TFlukaIon::AddIon(const char* name, Int_t z, Int_t a, Int_t q,
-                       Double_t /*exE*/, Double_t mass)
+                       Double_t exE, Double_t mass)
 {
 // User defined ion
     TDatabasePDG *pdgDB = TDatabasePDG::Instance();
     const Double_t kAu2Gev   = 0.9314943228;
-    Int_t pdg =  GetIonPdg(z, a, q);
+    Int_t is = (exE > 0.)? 1 : 0;
+    if (q == 0) q = z;
+    Int_t pdg =  GetIonPdg(z, a, is);
     if (pdgDB->GetParticle(pdg)) return;
-    if (mass = 0.) mass = Float_t(a) * kAu2Gev + 8.071e-3;
+    if (mass == 0.) mass = Float_t(a) * kAu2Gev + 8.071e-3;
 
-    pdgDB->AddParticle(name, "User Ion", mass, kTRUE, 0, 3 * z, "Ion", pdg);
+    pdgDB->AddParticle(name, "User Ion", mass, kTRUE, 0, 3 * q, "Ion", pdg);
 }
 
 void TFlukaIon::WriteUserInputCard(FILE* pFlukaVmcInp)