← Back to team overview

kaliveda-dev team mailing list archive

[Bug 833482] [NEW] KV2Body CalculateKinematics can reset Q-value

 

Public bug reported:

KaliVeda-1.8.1-2011-06-10, ROOT 5.30, Gentoo Linux (full update near
2011.4), gcc-4.5.2

A second CalculateKinematics() call on a KV2Body somehow sets the
Q-value to zero.  Prior to the overhaul on KV2Body, this did not happen.
For example, this code:

KVNucleus *beam = new KVNucleus;
beam->Set("30S");
KVNucleus *target = new KVNucleus;
target->Set("4He");
KVNucleus *rib = new KVNucleus;
rib->Set("33Cl");
KVNucleus *recoil = new KVNucleus;
recoil->Set("1H");
beam->SetEnergy(48);
KV2Body reaction;
reaction.SetProjectile(beam);
reaction.SetTarget(target);
reaction.SetOutgoing(rib);
reaction.CalculateKinematics();
reaction.Print();
cout << "testing Q value: " << reaction.GetQReaction() << endl;
reaction.CalculateKinematics();
cout << "testing Q value: " << reaction.GetQReaction() << endl;

Leads to the output:

 ***** REACTION    30S  +  4He --->   33Cl  +  1H    ******
  E.LAB = 48 MEV     QGG = 2.0768 MEV
  E.EXC = 0 MEV ==> Q-REACTION = 2.0768 MEV
 AVAILABLE ENERGY IN C.M. : ECM = 5.65231 MEV  (0.166244 MEV/A)
 PROJECTILE VELOCITY IN LAB 1.75532 CM/NS  ( 0.0585511 * C )
 VELOCITY OF C.M.           1.54891 CM/NS
 ENERGY - VELOCITY OF NUCLEUS 1 IN CM : 0.66604 MEV  0.207032 CM/NS   (K=7.48152)
 ENERGY - VELOCITY OF NUCLEUS 2 IN CM : 4.98627 MEV  1.54891 CM/NS   (K=1)
 ENERGY - VELOCITY OF NUCLEUS 3 IN CM : 0.230092 MEV  0.116034 CM/NS   (K=13.3488)
 ENERGY - VELOCITY OF NUCLEUS 4 IN CM : 7.49901 MEV  3.76674 CM/NS   (K=0.411208)
 MAXIMUM SCATTERING ANGLE IN LABORATORY
        THETA #3#   4.29052 DEG.
        THETA #4#   180 DEG.
 GRAZING ANGLE IN LABORATORY : PROJECTILE 2.53412 DEG.
 GRAZING ANGLE IN LABORATORY : TARGET     8.41611 DEG.
testing Q value: 2.0768
testing Q value: 0

Another difference using the new KV2Body is that it no longer
dynamically interacts with the KVParticles.  Previously, if a KVParticle
had two SetEnergy calls, one before and one after the
CalculateKinematics, the last energy was reflected in calculations; now
only the settings prior to CalculateKinematics are used.  Personally I
prefer the dynamic interaction.

The new static behavior would be okay, if one was able to send
additional CalculateKinematics calls (which cannot be done at present
due to the Q-value reset).

PS: New KV2Body implementation is so much more intuitive than the
previous one.  Thanks for the hard work.

** Affects: kaliveda
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of KaliVeda
Development Team, which is subscribed to KaliVeda.
https://bugs.launchpad.net/bugs/833482

Title:
  KV2Body CalculateKinematics can reset Q-value

Status in KaliVeda data analysis framework:
  New

Bug description:
  KaliVeda-1.8.1-2011-06-10, ROOT 5.30, Gentoo Linux (full update near
  2011.4), gcc-4.5.2

  A second CalculateKinematics() call on a KV2Body somehow sets the
  Q-value to zero.  Prior to the overhaul on KV2Body, this did not
  happen.  For example, this code:

  KVNucleus *beam = new KVNucleus;
  beam->Set("30S");
  KVNucleus *target = new KVNucleus;
  target->Set("4He");
  KVNucleus *rib = new KVNucleus;
  rib->Set("33Cl");
  KVNucleus *recoil = new KVNucleus;
  recoil->Set("1H");
  beam->SetEnergy(48);
  KV2Body reaction;
  reaction.SetProjectile(beam);
  reaction.SetTarget(target);
  reaction.SetOutgoing(rib);
  reaction.CalculateKinematics();
  reaction.Print();
  cout << "testing Q value: " << reaction.GetQReaction() << endl;
  reaction.CalculateKinematics();
  cout << "testing Q value: " << reaction.GetQReaction() << endl;

  Leads to the output:

   ***** REACTION    30S  +  4He --->   33Cl  +  1H    ******
    E.LAB = 48 MEV     QGG = 2.0768 MEV
    E.EXC = 0 MEV ==> Q-REACTION = 2.0768 MEV
   AVAILABLE ENERGY IN C.M. : ECM = 5.65231 MEV  (0.166244 MEV/A)
   PROJECTILE VELOCITY IN LAB 1.75532 CM/NS  ( 0.0585511 * C )
   VELOCITY OF C.M.           1.54891 CM/NS
   ENERGY - VELOCITY OF NUCLEUS 1 IN CM : 0.66604 MEV  0.207032 CM/NS   (K=7.48152)
   ENERGY - VELOCITY OF NUCLEUS 2 IN CM : 4.98627 MEV  1.54891 CM/NS   (K=1)
   ENERGY - VELOCITY OF NUCLEUS 3 IN CM : 0.230092 MEV  0.116034 CM/NS   (K=13.3488)
   ENERGY - VELOCITY OF NUCLEUS 4 IN CM : 7.49901 MEV  3.76674 CM/NS   (K=0.411208)
   MAXIMUM SCATTERING ANGLE IN LABORATORY
          THETA #3#   4.29052 DEG.
          THETA #4#   180 DEG.
   GRAZING ANGLE IN LABORATORY : PROJECTILE 2.53412 DEG.
   GRAZING ANGLE IN LABORATORY : TARGET     8.41611 DEG.
  testing Q value: 2.0768
  testing Q value: 0

  Another difference using the new KV2Body is that it no longer
  dynamically interacts with the KVParticles.  Previously, if a
  KVParticle had two SetEnergy calls, one before and one after the
  CalculateKinematics, the last energy was reflected in calculations;
  now only the settings prior to CalculateKinematics are used.
  Personally I prefer the dynamic interaction.

  The new static behavior would be okay, if one was able to send
  additional CalculateKinematics calls (which cannot be done at present
  due to the Q-value reset).

  PS: New KV2Body implementation is so much more intuitive than the
  previous one.  Thanks for the hard work.

To manage notifications about this bug go to:
https://bugs.launchpad.net/kaliveda/+bug/833482/+subscriptions


Follow ups

References