[Rivet] Rivet - question from newbies (general and J/psi related)

Hendrik Hoeth hendrik.hoeth at cern.ch
Fri Jun 14 00:39:59 BST 2013


Hi Antonin,

quoting a pdf is kind of awkward, so you'll have to live with numbered
answers:

A.1: UnstableFinalState returns all status==1 and status==2 particles,
     minus duplicates, minus reggeons, minus decaying photons, minus
     partons, minus zero-momentum particles. So yes, all particles you
     mentioned will be seen by UnstableFinalState. And no, you can't
     choose what you get. You get everything. If you want to select, you
     need to use IdentifiedFinalState or VetoedFinalState.

A.2: Stable/unstable is set by the generator.

A.3: See A.1. You get all status==1 and status==2 particles.

A.4: See A.1. Yes. Mothers, daughters, sisters, the whole family.

B.1: The two analyses you quote ask very different questions, so
     recommending one over the other would be like answering the
     questions whether a VW Beatle or a television is better. If you
     want to know whether a certain particle appears amongst the
     ancestors, then ask for that particle (-> ALICE). If you want to
     know if any B-hadron (and there are plenty!!!) appears amongst the
     ancestors, then ask for that (-> ATLAS). It depends on your
     application.

B.2: Ancestors are ancestors. As opposed to just parents. See
     http://rivet.hepforge.org/code/hepmc/classHepMC_1_1GenVertex_1_1edge__iterator.html

C.1: Bins in histograms are automatically normalized for their bin
     width. In a histogram (as opposed to a bar chart) the defining
     quantity is the area of the bin, not its height.

C.2: The weight is supplied by the MC event generator. It might be the
     same for all events, it might be a different weight for each event
     (to make the generation more efficient (or possible at all!)). The
     sumOfWeights() is the sum of weights of all events Rivet has seen.
     Scaling by 1./sumOfWeights() means normalizing the histogram area
     (if for example you had exactly one fill per event, the histogram
     will be normalized to 1).

C.3: crossSection() is the cross-section value provided by the
     generator and of course depends on the process. But it doesn't know
     anything about your analysis. If you want to document your cut
     flow, you have to do some bookkeeping yourself.

C.4: Yes, it is up to the user to define what NSD means. Because NSD is
     not a physically meaningful definition. Cuts are. Triggers are. But
     "NSD" is not.

D.1: The Multiplicity projection takes whatever particles you feed into
     it and counts them for you. If, like in your "cnfs" example, you
     feed it charged and neutral stable particles within -4 < |eta| < 4
     and pT>2GeV, then it will count those. If you feed it something
     else, well, it'll count that.

D.2: I'm sorry, I don't understand the question.

E.1: Yes. Read the generator manual on setting the random number seeds.
     About combining the results, well, it depends on your observables.
     Overall, yodamerge is a good starting point.

E.2: Yes. Read the generator manual.

E.3: Read the generator manual.

E.4: Read the generator manual and/or visit the MCnet school. All
     generators come with examples, and all our previous schools used
     the C++ generators in the tutorials, not the Fortran ones.

In August there will be the next MCnet school with lectures and several
hands-on tutorials on Rivet and the major MC event generators. The
generator authors and the Rivet authors will be present. This might be a
good opportunity to learn more about Monte Carlo, and probably answers
all your questions (certainly all the ones you asked in your mail). Note
that the registration deadline is soon -- if you miss it but still want
to go, contact the organisers:
http://www.montecarlonet.org/index.php?p=MCSchool/Gottingen

Cheers,

   Hendrik

-- 
If your dreams don't scare you, then you are not dreaming big enough.


More information about the Rivet mailing list