Fork me on GitHub

Changeset 7c5b8f3 in git


Ignore:
Timestamp:
03/27/20 09:21:22 (5 months ago)
Author:
GitHub <noreply@…>
Branches:
ImprovedOutputFile, master
Children:
354b7f3
Parents:
288a5fc (diff), 36fb740 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
git-author:
Pavel Demin <pavel-demin@…> (03/27/20 09:21:22)
git-committer:
GitHub <noreply@…> (03/27/20 09:21:22)
Message:

Merge pull request #71 from preghenella/rdev

Radius and particle-density dependence of formula parameterisations

Files:
2 added
10 edited

Legend:

Unmodified
Added
Removed
  • Makefile

    r288a5fc r7c5b8f3  
    446446        modules/VertexFinderDA4D.h \
    447447        modules/DecayFilter.h \
     448        modules/ParticleDensity.h \
    448449        modules/ExampleModule.h
    449450tmp/modules/ModulesDict$(PcmSuf): \
     
    510511tmp/classes/DelphesFormula.$(ObjSuf): \
    511512        classes/DelphesFormula.$(SrcSuf) \
    512         classes/DelphesFormula.h
     513        classes/DelphesFormula.h \
     514        classes/DelphesClasses.h
    513515tmp/classes/DelphesHepMCReader.$(ObjSuf): \
    514516        classes/DelphesHepMCReader.$(SrcSuf) \
     
    881883        external/ExRootAnalysis/ExRootFilter.h \
    882884        external/ExRootAnalysis/ExRootResult.h
     885tmp/modules/ParticleDensity.$(ObjSuf): \
     886        modules/ParticleDensity.$(SrcSuf) \
     887        modules/ParticleDensity.h \
     888        classes/DelphesClasses.h \
     889        classes/DelphesFactory.h \
     890        classes/DelphesFormula.h \
     891        external/ExRootAnalysis/ExRootClassifier.h \
     892        external/ExRootAnalysis/ExRootFilter.h \
     893        external/ExRootAnalysis/ExRootResult.h
    883894tmp/modules/ParticlePropagator.$(ObjSuf): \
    884895        modules/ParticlePropagator.$(SrcSuf) \
     
    10171028        modules/TrackCovariance.h \
    10181029        classes/DelphesClasses.h \
    1019         external/TrackCovariance/SolGeom.h
     1030        external/TrackCovariance/SolGeom.h \
     1031        external/TrackCovariance/SolGridCov.h \
     1032        external/TrackCovariance/ObsTrk.h
    10201033tmp/modules/TrackPileUpSubtractor.$(ObjSuf): \
    10211034        modules/TrackPileUpSubtractor.$(SrcSuf) \
     
    11741187        tmp/modules/MomentumSmearing.$(ObjSuf) \
    11751188        tmp/modules/OldCalorimeter.$(ObjSuf) \
     1189        tmp/modules/ParticleDensity.$(ObjSuf) \
    11761190        tmp/modules/ParticlePropagator.$(ObjSuf) \
    11771191        tmp/modules/PdgCodeFilter.$(ObjSuf) \
     
    22622276        @touch $@
    22632277
     2278modules/ParticleDensity.h: \
     2279        classes/DelphesModule.h
     2280        @touch $@
     2281
    22642282modules/TimeSmearing.h: \
    22652283        classes/DelphesModule.h
  • classes/DelphesClasses.cc

    r288a5fc r7c5b8f3  
    172172  ExclYmerge45(0),
    173173  ExclYmerge56(0),
     174  ParticleDensity(0),
    174175  fFactory(0),
    175176  fArray(0)
  • classes/DelphesClasses.h

    r288a5fc r7c5b8f3  
    733733  Double_t ExclYmerge56;
    734734
     735  // event characteristics variables
     736  Double_t ParticleDensity; // particle multiplicity density in the proximity of the particle
     737 
    735738  static CompBase *fgCompare; //!
    736739  const CompBase *GetCompare() const { return fgCompare; }
  • classes/DelphesFormula.cc

    r288a5fc r7c5b8f3  
    1818
    1919#include "classes/DelphesFormula.h"
     20#include "classes/DelphesClasses.h"
    2021
    2122#include "TString.h"
     
    6364  buffer.ReplaceAll("dz", "[1]");
    6465  buffer.ReplaceAll("ctgTheta", "[2]");
     66  buffer.ReplaceAll("radius", "[3]");
     67  buffer.ReplaceAll("density", "[4]");
    6568
    6669#if ROOT_VERSION_CODE < ROOT_VERSION(6, 3, 0)
     
    7780//------------------------------------------------------------------------------
    7881
    79 Double_t DelphesFormula::Eval(Double_t pt, Double_t eta, Double_t phi,
    80   Double_t energy, Double_t d0, Double_t dz,
    81   Double_t ctgTheta)
     82Double_t DelphesFormula::Eval(Double_t pt, Double_t eta, Double_t phi, Double_t energy, Candidate *candidate)
    8283{
     84
     85  Double_t d0 = 0., dz = 0., ctgTheta = 0., radius = 0., density = 0.;
     86  if (candidate) {
     87    d0 = candidate->D0;
     88    dz = candidate->DZ;
     89    ctgTheta = candidate->CtgTheta;
     90    radius = candidate->Position.Pt();
     91    density = candidate->ParticleDensity;
     92  }
     93   
    8394  Double_t x[4] = {pt, eta, phi, energy};
    84   Double_t params[3] = {d0, dz, ctgTheta};
     95  Double_t params[5] = {d0, dz, ctgTheta, radius, density};
    8596  return EvalPar(x, params);
    8697}
  • classes/DelphesFormula.h

    r288a5fc r7c5b8f3  
    2222#include "TFormula.h"
    2323
     24class Candidate;
     25
    2426class DelphesFormula: public TFormula
    2527{
     
    3335  Int_t Compile(const char *expression);
    3436
    35   Double_t Eval(Double_t pt, Double_t eta = 0, Double_t phi = 0,
    36     Double_t energy = 0, Double_t d0 = 0, Double_t dz = 0,
    37     Double_t ctgTheta = 0);
     37  Double_t Eval(Double_t pt, Double_t eta = 0, Double_t phi = 0, Double_t energy = 0, Candidate *candidate = nullptr);
    3838};
    3939
  • modules/AngularSmearing.cc

    r288a5fc r7c5b8f3  
    112112    // apply smearing formula for eta,phi
    113113
    114     eta = gRandom->Gaus(eta, fFormulaEta->Eval(pt, eta, phi, e));
    115     phi = gRandom->Gaus(phi, fFormulaPhi->Eval(pt, eta, phi, e));
     114    eta = gRandom->Gaus(eta, fFormulaEta->Eval(pt, eta, phi, e, candidate));
     115    phi = gRandom->Gaus(phi, fFormulaPhi->Eval(pt, eta, phi, e, candidate));
    116116
    117117    if(pt <= 0.0) continue;
  • modules/Efficiency.cc

    r288a5fc r7c5b8f3  
    9595{
    9696  Candidate *candidate;
    97   Double_t pt, eta, phi, e, d0, dz, ctgTheta;
     97  Double_t pt, eta, phi, e;
    9898
    9999  fItInputArray->Reset();
     
    106106    pt = candidateMomentum.Pt();
    107107    e = candidateMomentum.E();
    108     d0 = candidate->D0;
    109     dz = candidate->DZ;
    110     ctgTheta = candidate->CtgTheta;
    111 
     108   
    112109    // apply an efficency formula
    113     if(gRandom->Uniform() > fFormula->Eval(pt, eta, phi, e, d0, dz, ctgTheta)) continue;
     110    if(gRandom->Uniform() > fFormula->Eval(pt, eta, phi, e, candidate)) continue;
    114111
    115112    fOutputArray->Add(candidate);
  • modules/ModulesLinkDef.h

    r288a5fc r7c5b8f3  
    7474#include "modules/VertexFinderDA4D.h"
    7575#include "modules/DecayFilter.h"
     76#include "modules/ParticleDensity.h"
    7677#include "modules/ExampleModule.h"
    7778
     
    130131#pragma link C++ class VertexFinderDA4D+;
    131132#pragma link C++ class DecayFilter+;
     133#pragma link C++ class ParticleDensity+;
    132134#pragma link C++ class ExampleModule+;
    133135
  • modules/MomentumSmearing.cc

    r288a5fc r7c5b8f3  
    106106    pt = candidateMomentum.Pt();
    107107    e = candidateMomentum.E();
    108     res = fFormula->Eval(pt, eta, phi, e);
     108    res = fFormula->Eval(pt, eta, phi, e, candidate);
    109109
    110110    // apply smearing formula
  • modules/TrackSmearing.cc

    r288a5fc r7c5b8f3  
    158158  TLorentzVector beamSpotPosition;
    159159  Candidate *candidate, *mother;
    160   Double_t pt, eta, d0, d0Error, trueD0, dz, dzError, trueDZ, p, pError, trueP, ctgTheta, ctgThetaError, trueCtgTheta, phi, phiError, truePhi;
     160  Double_t pt, eta, e, d0, d0Error, trueD0, dz, dzError, trueDZ, p, pError, trueP, ctgTheta, ctgThetaError, trueCtgTheta, phi, phiError, truePhi;
    161161  Double_t x, y, z, t, px, py, pz, theta;
    162162  Double_t q, r;
     
    223223    pt = momentum.Pt();
    224224    eta = momentum.Eta();
    225 
     225    e = momentum.E();
     226   
    226227    d0 = trueD0 = candidate->D0;
    227228    dz = trueDZ = candidate->DZ;
     
    232233
    233234    if(fUseD0Formula)
    234       d0Error = fD0Formula->Eval(pt, eta);
     235      d0Error = fD0Formula->Eval(pt, eta, phi, e, candidate);
    235236    else
    236237    {
     
    247248
    248249    if(fUseDZFormula)
    249       dzError = fDZFormula->Eval(pt, eta);
     250      dzError = fDZFormula->Eval(pt, eta, phi, e, candidate);
    250251    else
    251252    {
     
    262263
    263264    if(fUsePFormula)
    264       pError = fPFormula->Eval(pt, eta) * p;
     265      pError = fPFormula->Eval(pt, eta, phi, e, candidate) * p;
    265266    else
    266267    {
     
    277278
    278279    if(fUseCtgThetaFormula)
    279       ctgThetaError = fCtgThetaFormula->Eval(pt, eta);
     280      ctgThetaError = fCtgThetaFormula->Eval(pt, eta, phi, e, candidate);
    280281    else
    281282    {
     
    292293
    293294    if(fUsePhiFormula)
    294       phiError = fPhiFormula->Eval(pt, eta);
     295      phiError = fPhiFormula->Eval(pt, eta, phi, e, candidate);
    295296    else
    296297    {
Note: See TracChangeset for help on using the changeset viewer.