Fork me on GitHub

Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • readers/DelphesProMC.cpp

    r7c0fcd5 ra85a257  
    4747#include "ExRootAnalysis/ExRootProgressBar.h"
    4848
    49 #include "ProMC/ProMC.pb.h"
    50 #include "ProMC/ProMCBook.h"
    51 #include "ProMC/ProMCHeader.pb.h"
     49#include "ProMC.pb.h"
     50#include "ProMCBook.h"
     51#include "ProMCHeader.pb.h"
    5252
    5353using namespace std;
     
    5555//---------------------------------------------------------------------------
    5656
    57 void ConvertInput(ProMCEvent &event, ExRootTreeBranch *branch, DelphesFactory *factory,
    58   TObjArray *allParticleOutputArray, TObjArray *stableParticleOutputArray, TObjArray *partonOutputArray,
    59   TStopwatch *readStopWatch, TStopwatch *procStopWatch)
     57void ConvertInput(ProMCEvent &event, double momentumUnit, double positionUnit,
     58  ExRootTreeBranch *branch, DelphesFactory *factory,
     59  TObjArray *allParticleOutputArray, TObjArray *stableParticleOutputArray,
     60  TObjArray *partonOutputArray, TStopwatch *readStopWatch, TStopwatch *procStopWatch)
    6061{
    6162  Int_t i;
     
    107108    pid = mutableParticles->pdg_id(i);
    108109    status = mutableParticles->status(i);
    109     px = mutableParticles->px(i); py = mutableParticles->py(i); pz = mutableParticles->pz(i); mass = mutableParticles->mass(i);
    110     x = mutableParticles->x(i); y = mutableParticles->y(i); z = mutableParticles->z(i); t = mutableParticles->t(i);
     110
     111    px = mutableParticles->px(i)/momentumUnit;
     112    py = mutableParticles->py(i)/momentumUnit;
     113    pz = mutableParticles->pz(i)/momentumUnit;
     114    mass = mutableParticles->mass(i)/momentumUnit;
     115    x = mutableParticles->x(i)/positionUnit;
     116    y = mutableParticles->y(i)/positionUnit;
     117    z = mutableParticles->z(i)/positionUnit;
     118    t = mutableParticles->t(i)/positionUnit;
    111119
    112120    candidate = factory->NewCandidate();
     
    172180  Int_t i;
    173181  Long64_t eventCounter, numberOfEvents;
     182  double momentumUnit = 1.0, positionUnit = 1.0;
    174183
    175184  if(argc < 4)
     
    224233      inputFile = new ProMCBook(argv[i], "r");
    225234
     235      ProMCHeader header = inputFile->getHeader();
     236
     237      momentumUnit = static_cast<double>(header.momentumunit());
     238      positionUnit = static_cast<double>(header.lengthunit());
     239
     240
     241
    226242      if(inputFile == NULL)
    227243      {
     
    248264
    249265        procStopWatch.Start();
    250         ConvertInput(event, branchEvent, factory,
    251           allParticleOutputArray, stableParticleOutputArray, partonOutputArray,
    252           &readStopWatch, &procStopWatch);
     266        ConvertInput(event, momentumUnit, positionUnit,
     267          branchEvent, factory,
     268          allParticleOutputArray, stableParticleOutputArray,
     269          partonOutputArray, &readStopWatch, &procStopWatch);
    253270        modularDelphes->ProcessTask();
    254271        procStopWatch.Stop();
Note: See TracChangeset for help on using the changeset viewer.