[Rivet] beams definiton

Holger Schulz holger.schulz at physik.hu-berlin.de
Mon Mar 28 07:14:12 BST 2011


On 28/03/11 07:20, Hannes Jung wrote:
> Dear Holger
>
> ahh, thanks a lot, I will try this.
> How are the beam particles extracted in rivet ?
> Should this be included in the rivet part to define beam particles, or 
> in the user code ?

Rivet checks if the HepMC has valid beam particles
in the initialisation step to check whether the analzses to
be run are compatible with the HepMC. IIRC this requirement
will go away in the future but at the moment there is no way
avoiding it. So you need to make sure the beam particles
are set properly in HepMC.

>
> Sorry for my ignorance
You are welcome!

HOlger
> cheers
> hannes
>
> On 27.03.2011, at 22:25, Holger Schulz wrote:
>
>> On 27/03/11 17:36, Hannes Jung wrote:
>>> Dear all
>>>
>>> I am rying to run PHOJET with rivet, I managed to write out the hepmc record and inserted the beam particles.
>>> It seems to be fine, but rivet cannot identify the beams. The following error appears:
>>> ----------
>>> ~/jung/cvs/rivet/myrivet>   ../../phojet/main1/main1<  ../../phojet/main1/mb.inp>  test.out&
>>> [3] 12393
>>> ~/jung/cvs/rivet/myrivet>  ../build/Rivet-1.5.0/bin/rivet-nopy /tmp/example_out.dat CMS_FWD_11_001
>>> Rivet.Analysis.Handler: WARN  Analysis 'CMS_FWD_11_001' is unvalidated: be careful, it may be broken!
>>>   CMS_FWD_11_001 init phase
>>>   new event
>>> Assertion failed: (beams.first&&  beams.second), function project, file Beam.cc, line 53.
>>> zsh: abort      ../build/Rivet-1.5.0/bin/rivet-nopy /tmp/example_out.dat CMS_FWD_11_001
>>> ----------
>>>
>>> The first few lines of the hepmc file look like:
>>>
>>> HepMC::Version 2.03.11
>>> HepMC::IO_GenEvent-START_EVENT_LISTING
>>> E 0 -1 -1.0000000000000000e+00 -1.0000000000000000e+00 -1.0000000000000000e+00 0 0 167 1 2 0 0
>>> H 0 0 0 0 0 0 0 0 0 0 0 0 0
>>> F 0 0 0 0 0 0 0
>>> V -1 0 0 0 0 0 1 1 0
>>> P 1 2212 0 0 3.5000000000000000e+03 3.5000000000000000e+03 9.3827000000000005e-01 3 0 0 -1 0
>>> P 3 1 -1.9197591135156278e+00 -3.9088666188920991e-02 1.8743428161779718e+01 1.8841528606871407e+01 9.9000002932664519e-03 2 0 0 -3 0
>>> V -2 0 0 0 0 0 1 27 0
>>> P 2 2212 0 0 -3.5000000000000000e+03 3.5000000000000000e+03 9.3827000000000005e-01 3 0 0 -2 0
>>> P 4 -2 4.9018658469058018e-01 5.6550380835818814e-01 -2.0026574606985077e+03 2.0026576005398924e+03 5.5999254606944934e-03 2 0 0 -4 0
>>> P 5 -1 -2.1560772467809458e-01 -1.8019388783202768e+00 2.5303300407030580e+00 3.1138623182516181e+00 9.8999999999710413e-03 2 0 0 -5 0
>>> .....
>>>
>>> Any idea what I am doing wrong here ?
>>>
>>> Thanks a lot
>>> Cheers
>>> Hannes
>>>
>>>
>>>    
>> Hi Hannes,
>>
>> I am not 100 percent sure but it could be that the beams have not 
>> properly been
>> set in the HepMC event record. Something similar showed up when 
>> recently we
>> solved a problem with the Whizard event generator. There is a 
>> solution by Frank
>> Siegert that may apply here as well. When filling the HepMC stuff, 
>> you could
>> iterate over all particles and look for those without a mother and 
>> explicitly
>> set those as beam particles.
>>
>> Here is a code snippet that solved the Whizard problem,
>> the lines in blue do the beam particle finding:
>>
>> // Function copied from Frank siegert
>> bool cmpGenParticleByEDesc(const HepMC::GenParticle* a, const 
>> HepMC::GenParticle* b) {
>>   return a->momentum().e() > b->momentum().e();
>> }
>>
>> extern "C" void io_gen_event_write_event
>> ( IO_GenEvent* iostream, GenEvent* evt) {
>>   // Add beam particles by trying to find those particles without a 
>> mother
>> if (!evt->valid_beam_particles()) {
>>     std::vector<HepMC::GenParticle*> beams;
>>     for ( HepMC::GenEvent::particle_const_iterator p = 
>> evt->particles_begin();
>>           p != evt->particles_end(); ++p ) {
>>       if (!(*p)->production_vertex() && (*p)->pdg_id()!=0) {
>>         beams.push_back(*p);
>>       }
>>     }
>>    // Set the beam particles
>>    evt->set_beam_particles(beams[0], beams[1]);
>>   }
>>   // Write the event
>>   iostream->write_event( evt);
>> }
>>
>>
>> Hope that helps,
>> Holger
>>
>>
>>
>>
>>
>
> ***********************************************************************
> Hannes Jung
> Email: Hannes.Jung at cern.ch <mailto:Hannes.Jung at cern.ch>
> mobile :+49 40 8998 93741
> http://www.desy.de/~jung <http://www.desy.de/%7Ejung>
> Tel: +49 (0) 40 8998 3741 (DESY)
> Tel: +41 22 76 71691 (CERN)
> CERN - PH
> 40-3 B11
> CH-1211 Genève 23
> Switzerland
> ***********************************************************************
>
>
>
>
>
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.hepforge.org/lists-archive/rivet/attachments/20110328/4b91c853/attachment.html>


More information about the Rivet mailing list