|
[Rivet] new Rivet plug-in, ALICEAndy Buckley andy.buckley at ed.ac.ukFri Dec 7 15:53:13 GMT 2012
Hi Sercan and Martin, I actually ended up rewriting the analysis this morning because it needed a lot of cleaning up (and it shrank by almost a factor of two in the process!). I've checked both analysis versions with Pythia8.170 and get exactly the same answers, so I think it's fine. However, the answers that I got with Pythia8 were *very* different from the ones you showed: http://users.hepforge.org/~buckley/plots-ALICE_2012_I1181770/ALICE_2012_I1181770/index.html I'm also wondering (Martin is probably best placed to answer) how model-independent this data is. The names given to the different selections are phenomenological/theoretical, i.e. individual events are identified as "single diffractive", "double diffractive", etc. Of course in reality this clean separation isn't possible, since the distributions of event types overlap. The abstract says something about the measurement having been done with "a simulation of diffraction adjusted to data" -- so are the data actually directly as measured in those phase spaces or have they been "corrected" by this unnamed simulation? Is there a systematic error associated with the simulation? I really thought we had moved beyond this... I'm also wondering how there can be no experimental pT or eta cuts at all! There must have been some eta beyond which ALICE has no acceptance, and the most forward and backward gaps identified in this analysis are probably outside that acceptance. How does this work? I hope it's not been filled in with an MC model, because in that case we have an analysis that tests the difference between two MCs, not between MC and data :) Ok, that's all on the physics content: I'd be very interested to know the answers (since these questions are related to exactly the sort of model-dependence issue that Rivet has been quite invested in addressing at the LHC). Mainly for Sercan's interest, my rewritten version of the code is here: https://rivet.hepforge.org/trac/browser/branches/2012-06-aidarivet/src/Analyses/ALICE_2012_I1181770.cc Note that this won't actually work with the current Rivet release, as I added a FinalState::particlesByRapidity() method which this analysis highlighted as a missing bit of functionality. Using this and calculating the eta-ordered gap sizes into a vector eliminated a lot of fiddly code. I have also marked the analysis as VALIDATED in the .info file: please do this when you consider the analysis to have been checked and to have reproduced the analysis procedure and the MC lines in the paper, where available. Stylistically, please also try to avoid C/Fortran en masse variable declarations like this at the top of the routine: double Eslowest(0.0), pslowest(0.0), yslowest(999.); double Efastest(0.0), pfastest(0.0), yfastest(-999.); int pidslowest(0), pidfastest(0); By storing the "fastest"/"slowest" (weird names...) Particle objects, I eliminated all of this, and in general variables should be declared as close as possible to where they are set and used. Please also note that this sort of code can and should be avoided in Rivet analyses: if (fuzzyEquals(sqrtS()/GeV, 900, 1E-3)) { _h_xsec_dd->fill( 900/GeV, weight); } else if (fuzzyEquals(sqrtS()/GeV, 2760, 1E-3)) { _h_xsec_dd->fill( 2760/GeV, weight); } else if (fuzzyEquals(sqrtS()/GeV, 7000, 1E-3)) { _h_xsec_dd->fill( 7000/GeV, weight); } There were several of these and if you look closely you'll note a) the 900/GeV is definitely wrong b) this can be entirely replaced with _h_xsec_dd->fill(sqrtS()/GeV, weight); since you've explicitly checked that sqrtS()/GeV *is* 900, 2760, etc. in the if statements! There is another haphazard use of the GeV unit in the next line: double Mx = sqrt((sqrtS()/GeV-Elead-plead)*(sqrtS()/GeV-Elead+plead)); I checked, and sqrtS(), Elead, and plead are all equally "unitful" quantities: so they should either all be divided by GeV, or none of them. I prefer to do it to none of them, so that the units conversions only appear in application of cuts or when filling histograms. Finally, I have removed the use of a random number to handle the case when two floats are exactly equal. This has a negligible occurrence if there are no special values that the float will tend to appear at, and as Hendrik pointed out to me "if that's a problem, what do you do when the random number is exactly 0.5?" ;-) Cheers, Andy On 06/12/12 18:22, Andy Buckley wrote: > Thanks Sercan, > > We were just about to release a new tarball for testing, but will get > this in first! (I'll do the build integration for this one, Hendrik). > > Andy > > > On 06/12/12 17:22, Sercan Sen wrote: >> >> Dear all, >> >> Attached is the Rivet plug-in for diffractive and total inelastic cross >> section measurements paper from ALICE, http://arxiv.org/pdf/1208.4968.pdf. >> >> We check the plug-in & results with M. Poghosyan (in cc) who is the >> analysis contact of this paper in ALICE. >> >> plots: >> http://www.hep.ucl.ac.uk/~ssen/LPCC/Rivet/ALICE_2012_I1181770/plots/ >> >> Thanks for including it for the next release. >> >> Cheers, >> Sercan >> >> -- >> Sercan Sen http://cern.ch/ssen >> ---------------------------------------------- >> >> >> >> _______________________________________________ >> Rivet mailing list >> Rivet at projects.hepforge.org >> http://www.hepforge.org/lists/listinfo/rivet >> > > -- Dr Andy Buckley, SUPA Advanced Research Fellow Particle Physics Expt Group, University of Edinburgh The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336.
More information about the Rivet mailing list |