Fork me on GitHub

Changeset 1388 in svn


Ignore:
Timestamp:
Apr 22, 2014, 12:11:37 PM (11 years ago)
Author:
Pavel Demin
Message:

adapt DelphesSTDHEPReader to new versions of Event Header and Event Table

Location:
trunk/classes
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/classes/DelphesSTDHEPReader.cc

    r1189 r1388  
    8888  TObjArray *partonOutputArray)
    8989{
    90   bool skipNTuples = false;
    91 
    9290  if(feof(fInputFile)) return kFALSE;
    9391
     
    9694  SkipBytes(4);
    9795
    98   xdr_string(fInputXDR, &fBuffer, 100);
    99   if(strncmp(fBuffer, "2.00", 4) == 0)
    100   {
    101     skipNTuples = true;
    102   }
    103 
    10496  if(fBlockType == EVENTTABLE)
    10597  {
     
    108100  else if(fBlockType == EVENTHEADER)
    109101  {
    110     ReadSTDHEPHeader(skipNTuples);
     102    ReadEventHeader();
    111103  }
    112104  else if(fBlockType == MCFIO_STDHEPBEG ||
     
    189181  else version = UNKNOWN;
    190182
    191   if (version == UNKNOWN)
     183  if(version == UNKNOWN)
    192184  {
    193185    throw runtime_error("Unknown file format version.");
     
    198190  SkipArray(1);
    199191
    200   if (version == V21)
     192  if(version == V21)
    201193  {
    202194    SkipArray(1);
     
    243235void DelphesSTDHEPReader::ReadEventTable()
    244236{
    245   SkipBytes(8);
    246 
    247   SkipArray(4);
    248   SkipArray(4);
    249   SkipArray(4);
    250   SkipArray(4);
    251   SkipArray(4);
    252 }
    253 
    254 //---------------------------------------------------------------------------
    255 
    256 void DelphesSTDHEPReader::ReadSTDHEPHeader(bool skipNTuples)
    257 {
     237  // version
     238  xdr_string(fInputXDR, &fBuffer, 100);
     239  if(strncmp(fBuffer, "1.00", 4) == 0)
     240  {
     241    SkipBytes(8);
     242
     243    SkipArray(4);
     244    SkipArray(4);
     245    SkipArray(4);
     246    SkipArray(4);
     247    SkipArray(4);
     248  }
     249  else if(strncmp(fBuffer, "2.00", 4) == 0)
     250  {
     251    SkipBytes(12);
     252
     253    SkipArray(4);
     254    SkipArray(4);
     255    SkipArray(4);
     256    SkipArray(4);
     257    SkipArray(8);
     258  }
     259}
     260
     261//---------------------------------------------------------------------------
     262
     263void DelphesSTDHEPReader::ReadEventHeader()
     264{
     265  bool skipNTuples = false;
     266  u_int skipSize = 4;
     267
     268  // version
     269  xdr_string(fInputXDR, &fBuffer, 100);
     270  if(strncmp(fBuffer, "2.00", 4) == 0)
     271  {
     272    skipNTuples = true;
     273  }
     274  else if(strncmp(fBuffer, "3.00", 4) == 0)
     275  {
     276    skipNTuples = true;
     277    skipSize = 8;
     278  }
     279
    258280  SkipBytes(20);
    259281
     
    272294  {
    273295    SkipArray(4);
    274     SkipArray(4);
     296    SkipArray(skipSize);
    275297  }
    276298
     
    279301  {
    280302    SkipArray(4);
    281     SkipArray(4);
     303    SkipArray(skipSize);
    282304  }
    283305}
     
    287309void DelphesSTDHEPReader::ReadSTDCM1()
    288310{
     311  // version
     312  xdr_string(fInputXDR, &fBuffer, 100);
     313
    289314  // skip 5*4 + 2*8 = 36 bytes
    290315  SkipBytes(36);
     
    313338{
    314339  u_int idhepSize, isthepSize, jmohepSize, jdahepSize, phepSize, vhepSize;
     340
     341  // version
     342  xdr_string(fInputXDR, &fBuffer, 100);
    315343
    316344  // Extracting the event number
     
    357385{
    358386  u_int number;
     387
     388  // version
     389  xdr_string(fInputXDR, &fBuffer, 100);
    359390
    360391  // Extracting the event weight
  • trunk/classes/DelphesSTDHEPReader.h

    r1129 r1388  
    6868  void ReadFileHeader();
    6969  void ReadEventTable();
    70   void ReadSTDHEPHeader(bool skipNTuples);
     70  void ReadEventHeader();
    7171  void ReadSTDCM1();
    7272  void ReadSTDHEP();
Note: See TracChangeset for help on using the changeset viewer.