Fork me on GitHub

Changes in / [b3bd4d2:bc58cf5] in git


Ignore:
Files:
6 deleted
3 edited

Legend:

Unmodified
Added
Removed
  • Makefile

    rb3bd4d2 rbc58cf5  
    148148tmp/examples/Validation.$(ObjSuf): \
    149149        examples/Validation.cpp \
    150         classes/DelphesClasses.h \
    151         external/ExRootAnalysis/ExRootTreeReader.h \
    152         external/ExRootAnalysis/ExRootTreeWriter.h \
    153         external/ExRootAnalysis/ExRootTreeBranch.h \
    154         external/ExRootAnalysis/ExRootResult.h \
    155         external/ExRootAnalysis/ExRootUtilities.h
    156 Validation_electron$(ExeSuf): \
    157         tmp/examples/Validation_electron.$(ObjSuf)
    158 
    159 tmp/examples/Validation_electron.$(ObjSuf): \
    160         examples/Validation_electron.cpp \
    161         classes/DelphesClasses.h \
    162         external/ExRootAnalysis/ExRootTreeReader.h \
    163         external/ExRootAnalysis/ExRootTreeWriter.h \
    164         external/ExRootAnalysis/ExRootTreeBranch.h \
    165         external/ExRootAnalysis/ExRootResult.h \
    166         external/ExRootAnalysis/ExRootUtilities.h
    167 Validation_jet$(ExeSuf): \
    168         tmp/examples/Validation_jet.$(ObjSuf)
    169 
    170 tmp/examples/Validation_jet.$(ObjSuf): \
    171         examples/Validation_jet.cpp \
    172         classes/DelphesClasses.h \
    173         external/ExRootAnalysis/ExRootTreeReader.h \
    174         external/ExRootAnalysis/ExRootTreeWriter.h \
    175         external/ExRootAnalysis/ExRootTreeBranch.h \
    176         external/ExRootAnalysis/ExRootResult.h \
    177         external/ExRootAnalysis/ExRootUtilities.h
    178 Validation_muon$(ExeSuf): \
    179         tmp/examples/Validation_muon.$(ObjSuf)
    180 
    181 tmp/examples/Validation_muon.$(ObjSuf): \
    182         examples/Validation_muon.cpp \
    183         classes/DelphesClasses.h \
    184         external/ExRootAnalysis/ExRootTreeReader.h \
    185         external/ExRootAnalysis/ExRootTreeWriter.h \
    186         external/ExRootAnalysis/ExRootTreeBranch.h \
    187         external/ExRootAnalysis/ExRootResult.h \
    188         external/ExRootAnalysis/ExRootUtilities.h
    189 Validation_photon$(ExeSuf): \
    190         tmp/examples/Validation_photon.$(ObjSuf)
    191 
    192 tmp/examples/Validation_photon.$(ObjSuf): \
    193         examples/Validation_photon.cpp \
    194150        classes/DelphesClasses.h \
    195151        external/ExRootAnalysis/ExRootTreeReader.h \
     
    206162        stdhep2pileup$(ExeSuf) \
    207163        Example1$(ExeSuf) \
    208         Validation$(ExeSuf) \
    209         Validation_electron$(ExeSuf) \
    210         Validation_jet$(ExeSuf) \
    211         Validation_muon$(ExeSuf) \
    212         Validation_photon$(ExeSuf)
     164        Validation$(ExeSuf)
    213165
    214166EXECUTABLE_OBJ +=  \
     
    220172        tmp/converters/stdhep2pileup.$(ObjSuf) \
    221173        tmp/examples/Example1.$(ObjSuf) \
    222         tmp/examples/Validation.$(ObjSuf) \
    223         tmp/examples/Validation_electron.$(ObjSuf) \
    224         tmp/examples/Validation_jet.$(ObjSuf) \
    225         tmp/examples/Validation_muon.$(ObjSuf) \
    226         tmp/examples/Validation_photon.$(ObjSuf)
     174        tmp/examples/Validation.$(ObjSuf)
    227175
    228176DelphesHepMC$(ExeSuf): \
  • examples/Validation.cpp

    rb3bd4d2 rbc58cf5  
    188188  TH1D *histRecoPtfwd = new TH1D(name+" reco spectra Eta",name+" reco spectra fwd", Nbins, TMath::Log10(ptrangemin), TMath::Log10(ptrangemax));
    189189
    190   histGenPtcen->SetDirectory(0);
    191   histRecoPtcen->SetDirectory(0);
    192   histGenPtfwd->SetDirectory(0);
    193   histRecoPtfwd->SetDirectory(0);
    194190
    195191  BinLogX(histGenPtcen);
     
    333329        for (bin = 0; bin < Nbins; bin++)
    334330        {
    335           if(pt > histos->at(bin).ptmin && pt < histos->at(bin).ptmax && eta < 2.5)
     331          if(pt > histos->at(bin).ptmin && pt < histos->at(bin).ptmax && eta > 0.0 && eta < 2.5)
    336332          {
    337333            if (eta < 1.5) {histos->at(bin).cenResolHist->Fill(recoMomentum.Pt()/bestGenMomentum.Pt());}
     
    735731  std::pair<TH1D*,TH1D*> histos_el = GetEff<Electron>(branchElectron, branchParticleElectron, "Electron", elID, treeReaderElectron);
    736732
    737   histos_el.second->SaveAs("test1.pdf");
    738 
    739733  // tracking reconstruction efficiency
    740734  std::pair <TH1D*,TH1D*> histos_eltrack = GetEff<Track>(branchTrackElectron, branchParticleElectron, "electronTrack", elID, treeReaderElectron);
     
    801795  DrawAxis(histos_eltrack.second, leg_el2, 0);
    802796  leg_el2->Draw();
     797
     798  C_el1->cd(0);
    803799
    804800  TString elRes = "electronERes";
     
    12801276  char *appName = "Validation";
    12811277
    1282   if(argc != 8)
     1278  if(argc != 3)
    12831279  {
    12841280    cout << " Usage: " << appName << " input_file_electron input_file_muon input_file_photon input_file_jet input_file_bjet input_file_taujet output_file" << endl;
  • readers/DelphesPythia8.cpp

    rb3bd4d2 rbc58cf5  
    153153// from pythia8 example 21
    154154
    155 void fillParticle(int id, double pt_max, double eta_max,
    156   Pythia8::Event &event, Pythia8::ParticleData &pdt, Pythia8::Rndm &rndm)
    157 {
     155void fillParticle(int id, double ee_max, double thetaIn, double phiIn,
     156  Pythia8::Event& event, Pythia8::ParticleData& pdt, Pythia8::Rndm& rndm, bool atRest = false) {
     157
    158158  // Reset event record to allow for new event.
    159159  event.reset();
    160160
    161   // Generate uniform pt and eta.
    162   double pt, eta, phi, pp, ee, mm;
    163   pt = pow(10, 1.0 + (log10(pt_max) - 1.0) * rndm.flat());
    164   eta = (2.0 * rndm.flat() - 1.0) * eta_max;
    165   phi = 2.0 * M_PI * rndm.flat();
    166   pp = pt * cosh(eta);
    167   mm = pdt.mSel(id);
    168   ee = Pythia8::sqrtpos(pp*pp + mm*mm);
     161  // Angles uniform in solid angle.
     162  double cThe, sThe, phi, ee;
     163  cThe = 2. * rndm.flat() - 1.;
     164  sThe = Pythia8::sqrtpos(1. - cThe * cThe);
     165  phi = 2. * M_PI * rndm.flat();
     166  ee = pow(10,1+(log10(ee_max)-1)*rndm.flat());
     167  double mm = pdt.mSel(id);
     168  double pp = Pythia8::sqrtpos(ee*ee - mm*mm);
    169169
    170170  // Store the particle in the event record.
    171   event.append(id, 1, 0, 0, pt * cos(phi), pt * sin(phi), pt * sinh(eta), ee, mm);
     171  event.append( id, 1, 0, 0, pp * sThe * cos(phi), pp * sThe * sin(phi), pp * cThe, ee, mm);
     172
    172173}
    173174
    174 void fillPartons(int id, double pt_max, double eta_max,
    175   Pythia8::Event &event, Pythia8::ParticleData &pdt, Pythia8::Rndm &rndm)
    176 {
     175void fillPartons(int type, double ee_max, Pythia8::Event& event, Pythia8::ParticleData& pdt,
     176  Pythia8::Rndm& rndm) {
    177177
    178178  // Reset event record to allow for new event.
    179179  event.reset();
    180180
     181  // Angles uniform in solid angle.
     182  double cThe, sThe, phi, ee;
     183
    181184  // Information on a q qbar system, to be hadronized.
    182185
    183   // Generate uniform pt and eta.
    184   double pt, eta, phi, pp, ee, mm;
    185   pt = pow(10, 1.0 + (log10(pt_max) - 1.0) * rndm.flat());
    186   eta = (2.0 * rndm.flat() - 1.0) * eta_max;
    187   phi = 2.0 * M_PI * rndm.flat();
    188   pp = pt * cosh(eta);
    189   mm = pdt.m0(id);
    190   ee = Pythia8::sqrtpos(pp*pp + mm*mm);
    191 
    192   if(id == 21)
    193   {
    194     event.append(21, 23, 101, 102, pt * cos(phi), pt * sin(phi), pt * sinh(eta), ee);
    195     event.append(21, 23, 102, 101, -pt * cos(phi), -pt * sin(phi), -pt * sinh(eta), ee);
     186  cThe = 2. * rndm.flat() - 1.;
     187  sThe = Pythia8::sqrtpos(1. - cThe * cThe);
     188  phi = 2. * M_PI * rndm.flat();
     189  ee = pow(10,1+(log10(ee_max)-1)*rndm.flat());
     190  double mm = pdt.m0(type);
     191  double pp = Pythia8::sqrtpos(ee*ee - mm*mm);
     192  if (type == 21)
     193  {
     194    event.append( 21, 23, 101, 102, pp * sThe * cos(phi), pp * sThe * sin(phi), pp * cThe, ee);
     195    event.append( 21, 23, 102, 101, -pp * sThe * cos(phi), -pp * sThe * sin(phi), -pp * cThe, ee);
    196196  }
    197197  else
    198198  {
    199     event.append(id, 23, 101, 0, pt * cos(phi), pt * sin(phi), pt * sinh(eta), ee, mm);
    200     event.append(-id, 23, 0, 101, -pt * cos(phi), -pt * sin(phi), -pt * sinh(eta), ee, mm);
     199    event.append(  type, 23, 101,   0, pp * sThe * cos(phi), pp * sThe * sin(phi), pp * cThe, ee, mm);
     200    event.append( -type, 23,   0, 101, -pp * sThe * cos(phi), -pp * sThe * sin(phi), -pp * cThe, ee, mm);
    201201  }
    202202}
     
    338338      if (pythia->flag("Main:spareFlag1"))
    339339      {
    340         if (pythia->mode("Main:spareMode1") == 11 || pythia->mode("Main:spareMode1") == 13 || pythia->mode("Main:spareMode1") == 15 || pythia->mode("Main:spareMode1") == 22)
     340        if (pythia->mode("Main:spareMode1") == 11 || pythia->mode("Main:spareMode1") == 13 || pythia->mode("Main:spareMode1") == 22)
    341341        {
    342           fillParticle(pythia->mode("Main:spareMode1"), pythia->parm("Main:spareParm1"), pythia->parm("Main:spareParm2"), pythia->event, pythia->particleData, pythia->rndm);
     342          fillParticle( pythia->mode("Main:spareMode1"), pythia->parm("Main:spareParm1"), -1., 0.,pythia->event, pythia->particleData, pythia->rndm, 0);
    343343        }
    344         else
    345         {
    346           fillPartons(pythia->mode("Main:spareMode1"), pythia->parm("Main:spareParm1"), pythia->parm("Main:spareParm2"), pythia->event, pythia->particleData, pythia->rndm);
    347         }
     344        else fillPartons( pythia->mode("Main:spareMode1"), pythia->parm("Main:spareParm1"), pythia->event, pythia->particleData, pythia->rndm);
    348345      }
    349346
Note: See TracChangeset for help on using the changeset viewer.