CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes

LHAupLesHouches Class Reference

#include <LHAupLesHouches.h>

List of all members.

Public Member Functions

 LHAupLesHouches ()
void loadEvent (lhef::LHEEvent *event)
void loadRunInfo (lhef::LHERunInfo *runInfo)

Private Member Functions

bool setEvent (int idProcIn)
bool setInit ()

Private Attributes

lhef::LHEEventevent
lhef::LHERunInforunInfo

Detailed Description

Definition at line 22 of file LHAupLesHouches.h.


Constructor & Destructor Documentation

LHAupLesHouches::LHAupLesHouches ( ) [inline]

Definition at line 24 of file LHAupLesHouches.h.

{;}

Member Function Documentation

void LHAupLesHouches::loadEvent ( lhef::LHEEvent event) [inline]

Definition at line 31 of file LHAupLesHouches.h.

References event.

      { this->event = event; }
void LHAupLesHouches::loadRunInfo ( lhef::LHERunInfo runInfo) [inline]

Definition at line 27 of file LHAupLesHouches.h.

References runInfo.

      { this->runInfo = runInfo; }
bool LHAupLesHouches::setEvent ( int  idProcIn) [private]

Definition at line 36 of file LHAupLesHouches.cc.

References lhef::HEPEUP::AQCDUP, lhef::HEPEUP::AQEDUP, event(), i, lhef::HEPEUP::ICOLUP, gen::PdfInfo::id, lhef::HEPEUP::IDPRUP, lhef::HEPEUP::IDUP, lhef::HEPEUP::ISTUP, lhef::HEPEUP::MOTHUP, lhef::HEPEUP::NUP, lhef::HEPEUP::PUP, gen::PdfInfo::scalePDF, lhef::HEPEUP::SCALUP, lhef::HEPEUP::SPINUP, lhef::HEPEUP::VTIMUP, gen::PdfInfo::x, gen::PdfInfo::xPDF, and lhef::HEPEUP::XWGTUP.

{
  if (!event) return false;
        
  if ( event->getReadAttempts() > 0 ) return false; // record already tried
        
  const lhef::HEPEUP &hepeup = *event->getHEPEUP();
        
  if ( !hepeup.NUP ) return false;      

  setProcess(hepeup.IDPRUP, hepeup.XWGTUP, hepeup.SCALUP,
             hepeup.AQEDUP, hepeup.AQCDUP);

  for(int i = 0; i < hepeup.NUP; i++)
    addParticle(hepeup.IDUP[i], hepeup.ISTUP[i],
                hepeup.MOTHUP[i].first, hepeup.MOTHUP[i].second,
                hepeup.ICOLUP[i].first, hepeup.ICOLUP[i].second,
                hepeup.PUP[i][0], hepeup.PUP[i][1],
                hepeup.PUP[i][2], hepeup.PUP[i][3],
                hepeup.PUP[i][4], hepeup.VTIMUP[i],
                hepeup.SPINUP[i]);

  const lhef::LHEEvent::PDF *pdf = event->getPDF();
  if (pdf) {
    this->setPdf(pdf->id.first, pdf->id.second,
                 pdf->x.first, pdf->x.second,
                 pdf->scalePDF,
                 pdf->xPDF.first, pdf->xPDF.second, true);
  }
  else {
    this->setPdf(hepeup.IDUP[0], hepeup.IDUP[1],
                 hepeup.PUP[0][3] / runInfo->getHEPRUP()->EBMUP.first,
                 hepeup.PUP[1][3] / runInfo->getHEPRUP()->EBMUP.second,
                 0., 0., 0., false);
  }

  //hadronisation->onBeforeHadronisation().emit();

  //event.reset();

  event->attempted();

  return true;
}
bool LHAupLesHouches::setInit ( ) [private]

Definition at line 14 of file LHAupLesHouches.cc.

References lhef::HEPRUP::EBMUP, i, lhef::HEPRUP::IDBMUP, lhef::HEPRUP::IDWTUP, lhef::HEPRUP::LPRUP, lhef::HEPRUP::NPRUP, lhef::HEPRUP::PDFGUP, lhef::HEPRUP::PDFSUP, lhef::HEPRUP::XERRUP, lhef::HEPRUP::XMAXUP, and lhef::HEPRUP::XSECUP.

{
  if (!runInfo) return false;
  const lhef::HEPRUP &heprup = *runInfo->getHEPRUP();

  setBeamA(heprup.IDBMUP.first, heprup.EBMUP.first,
           heprup.PDFGUP.first, heprup.PDFSUP.first);
  setBeamB(heprup.IDBMUP.second, heprup.EBMUP.second,
           heprup.PDFGUP.second, heprup.PDFSUP.second);
  setStrategy(heprup.IDWTUP);

  for(int i = 0; i < heprup.NPRUP; i++)
    addProcess(heprup.LPRUP[i], heprup.XSECUP[i],
               heprup.XERRUP[i], heprup.XMAXUP[i]);

  //hadronisation->onInit().emit();

  //runInfo.reset();
  return true;
}

Member Data Documentation

Definition at line 42 of file LHAupLesHouches.h.

Referenced by loadEvent().

Definition at line 40 of file LHAupLesHouches.h.

Referenced by loadRunInfo().