Print

Print


Hi Gary,

Since this is detailed I haven't sent it to the whole list. You have
re-phrased most of the content of my comment correctly, but more
clearly. My point about the 3-vectors comes from this section of code:

   else if (o instanceof IHep3Vector)
   {
    IHep3Vector in = (IHep3Vector) o;
    m_devis += Math.sqrt(in.mag2() + defaultMass);
    m_in.addElement(in);
    m_4vec.addElement(new HepLorentzVector(in.mag(),in));
   }

It looks like the 4-vector that is created consists of the 3-vector plus
the magnitude of that 3-vector (ptot?) and does not use the defaultMass.
It seems that the default Mass is used only for the m_devis which is
later used (as esum) in the calls to the masscut methods.

The comment about the mass**2 is only for the unwary, and
under-informed, person like me. When I wanted to use the 3-vector
version (the 4-vector version didn't work) with non-zero masses I found
this method:
 /**
  * Set the mass to use when converting 3-vectors to 4-vectors
  * This is a static method so the mass applies to all instances
  * of AbstractJetFinder. The default is 0.
  * @param mass The new value to use
  */
 public static void setAssumedMassFor3Vecors(double mass)
 {
  defaultMass = mass;
 }

This is used to get:
    m_devis += Math.sqrt(in.mag2() + defaultMass);
or
    m_devis += in.t();
if already a 4-vector.

In doFindJets() there is:
  double esum = m_devis;
so esum is with units GeV, say. Continuing in the routine is:

  //
  // create invariant mass pair array.
  //
  ymass = new double[m_np][m_np];
  for (int i = 0; i < m_np - 1; i++ )
  {
   for (int j = i + 1 ; j < m_np ; j++ )
   {
    double cmass = calculate_mass(m_part[i], m_part[j]);
//    h_cmass.fill(cmass);

Which I assumed was refering to mass (GeV/c^2), but the methods actually
returned (GeV/c^2)^2.
Just a naming convention/documentation issue. Since the code is
consistent it it doesn't matter,
it just caused a few moments confusion for someone snooping around in
the guts since I was
confused about how the 3-vector routine worked. If your whole live was
devoted to making me happy
you could add a few 2, similar to the vector .mag2(), in the name like:

    double cmass2 = calculate_mass2(m_part[i], m_part[j]);

But I think you will have much more productive things to do with your
time!

I hope you didn't take this as a critcism, you have done an impressive
job making these packages
available. Also, please excuse my naive questions as I fumble my way
back into JAS/Java/FLC code.

Bob




> Hi Bob,    I'm not following your discourse very well. Can you clarify
> what you mean when you say in point number 1:"All particles are
> assumed massless in the jet mass calculations". You can pass the jet
> finder either a set of three vectors (which, of course, have no rest
> mass) or a set of four vectors which may imply a non-zero rest mass.
> If you pass four vectors with a non-zero mass then the jet mass
> calculation includes those masses. If you pass three vectors the jet
> finder immediately turns them into four vectors and then does all the
> rest of the processing based on four vectors. If you pass three
> vectors the jet finder will convert them to four vectors with a mass
> of zero unless you use the option to specify the same default mass for
> all the vectors. You have correctly identified two errors about this
> process of using an assumed mass for the three vector case, namely the
> spelling error and the calculation error where the default mass should
> have been squared.The other thing I need clarified is your comment in
> several places to the effect that in some places "mass means
> mass-squared". Can you tell me exactly where you see that happening
> and I will try to make it read consistently to be "mass" when it is
> mass and "mass-squared" when it is mass*mass (java does not have
> mass**2 like fortran.) The masscut and the mass for Geneva are not in
> the "correct" units as you point out but the only effect the two
> parameters have is by working together where the difference in units
> is consistent. Perhaps Geneva can be recoded to be consistent with the
> other jet finders but then it probably won't be consistent with the
> original authors discription of their jet finder.
>
>      -----Original Message-----
>      From: Robert J. Wilson [mailto:[log in to unmask]]
>      Sent: Thursday, October 12, 2000 2:35 PM
>      To: lcd-sim
>      Subject: AbstractJetFinder -- observations (+bugs?)
>
>      A few observations on AbstractJetFinder ... please excuse me if these are common knowledege, hopefully they will
>
>      be useful to newbies at least (especially if experts correct my misunderstandings!).
>
>      1. All particles are assumed massless in the jet mass calculations. This wouldn't be important for high energy
>
>      particles but may be for events with high jet multiplicity and with significant strange or baryon content.
>
>      2. There is a method to set a defaultMass:
>
>              /**
>               * Set the mass to use when converting 3-vectors to 4-vectors
>               * This is a static method so the mass applies to all instances
>               * of AbstractJetFinder. The default is 0.
>               * @param mass The new value to use
>               */
>              public static void setAssumedMassFor3Vecors(double mass)
>              {
>                      defaultMass = mass;
>              }
>
>      Note the unexpected spelling of "Vecors" :). This mass is only used to calculate the total energy of
>
>      the enumeration passed to the finder if it consists of 3-vectors (the .t() method of LorentzVector is
>
>      used otherwise). This is used for some masscut methods.
>
>      There is a bug (?) in the current version so that you need to pass the mass**2 value (or it is just following
>
>      the scheme elsewhere in the class that "mass" often means mass*2 - then just a slight change to the documentation
>
>      would be enough). (I have notified to Gary about this).
>
>      Note that the mass is NOT used to upgrade the particle/track 3-vectors, the energy component of the
>
>      4-vector created only uses the magnitude of the 3-vector (i.e. effectively mass=0.). This doesn't
>
>      seem consistent to me, but perhaps there is a good reason for it.
>
>      Currently, there is a bug in the JAS version that prevents the class from
>      ccepting LorentzVectors so
>
>      this bug/perculiarity of the 3-vector input might catch a few people. (Tony knows about this problem,
>
>      as he mentioned in his last posting).
>
>      3. As I mentioned above, for most of the calculations, "mass" often means mass**2. However, there are a
>
>      few places where it may be confusing. For example, the energy sum passed as a parameter to the masscut is
>
>      in linear units, but the masscut value returned is in units squared for all the methods except geneva.
>
>      I think it is used consistently, but you might want to be careful if you reuse parts parts of the code since
>
>      the naming convention may confuse you too(okay, so maybe I am easily confused!).
>
>      Bob
>
>      --
>      Robert J. Wilson
>      Professor of Physics
>      Department of Physics
>      Colorado State University
>      Fort Collins, CO 80523
>      Phone:  (970) 491 5033
>      Fax:     (970) 491 7947
>      Email: [log in to unmask]
>
>      August 2000 - July 2001:
>      ========================
>      Institut de Fisica d'Altes Energies
>      Universitat Autonoma de Barcelona
>      E-08193 Bellaterra (Barcelona)
>      SPAIN
>      Phone: (011 34) 93 581.28.32
>      Email: [log in to unmask]
>      ========================
>
>
>
--
Robert J. Wilson
Professor of Physics
Department of Physics
Colorado State University
Fort Collins, CO 80523
Phone:  (970) 491 5033
Fax:     (970) 491 7947
Email: [log in to unmask]

August 2000 - July 2001:
========================
Institut de Fisica d'Altes Energies
Universitat Autonoma de Barcelona
E-08193 Bellaterra (Barcelona)
SPAIN
Phone: (011 34) 93 581.28.32
Email: [log in to unmask]
========================