Fork me on GitHub

Changes in / [f01803a:4bf6061] in git


Ignore:
Files:
4 deleted
9 edited

Legend:

Unmodified
Added
Removed
  • Makefile

    rf01803a r4bf6061  
    316316        modules/EnergySmearing.h \
    317317        modules/MomentumSmearing.h \
    318         modules/TrackSmearing.h \
    319318        modules/ImpactParameterSmearing.h \
    320319        modules/TimeSmearing.h \
     
    339338        modules/StatusPidFilter.h \
    340339        modules/PdgCodeFilter.h \
    341         modules/BeamSpotFilter.h \
    342340        modules/Cloner.h \
    343341        modules/Weighter.h \
     
    548546        classes/DelphesFactory.h \
    549547        classes/DelphesFormula.h
    550 tmp/modules/BeamSpotFilter.$(ObjSuf): \
    551         modules/BeamSpotFilter.$(SrcSuf) \
    552         modules/BeamSpotFilter.h \
    553         classes/DelphesClasses.h \
    554         classes/DelphesFactory.h \
    555         classes/DelphesFormula.h \
    556         external/ExRootAnalysis/ExRootResult.h \
    557         external/ExRootAnalysis/ExRootFilter.h \
    558         external/ExRootAnalysis/ExRootClassifier.h
    559548tmp/modules/Calorimeter.$(ObjSuf): \
    560549        modules/Calorimeter.$(SrcSuf) \
     
    841830        modules/TrackPileUpSubtractor.$(SrcSuf) \
    842831        modules/TrackPileUpSubtractor.h \
    843         classes/DelphesClasses.h \
    844         classes/DelphesFactory.h \
    845         classes/DelphesFormula.h \
    846         external/ExRootAnalysis/ExRootResult.h \
    847         external/ExRootAnalysis/ExRootFilter.h \
    848         external/ExRootAnalysis/ExRootClassifier.h
    849 tmp/modules/TrackSmearing.$(ObjSuf): \
    850         modules/TrackSmearing.$(SrcSuf) \
    851         modules/TrackSmearing.h \
    852832        classes/DelphesClasses.h \
    853833        classes/DelphesFactory.h \
     
    935915        tmp/modules/AngularSmearing.$(ObjSuf) \
    936916        tmp/modules/BTagging.$(ObjSuf) \
    937         tmp/modules/BeamSpotFilter.$(ObjSuf) \
    938917        tmp/modules/Calorimeter.$(ObjSuf) \
    939918        tmp/modules/Cloner.$(ObjSuf) \
     
    967946        tmp/modules/TrackCountingTauTagging.$(ObjSuf) \
    968947        tmp/modules/TrackPileUpSubtractor.$(ObjSuf) \
    969         tmp/modules/TrackSmearing.$(ObjSuf) \
    970948        tmp/modules/TreeWriter.$(ObjSuf) \
    971949        tmp/modules/UniqueObjectFinder.$(ObjSuf) \
     
    15671545        tmp/external/tcl/tclVar.$(ObjSuf)
    15681546
    1569 modules/TrackSmearing.h: \
    1570         classes/DelphesModule.h
    1571         @touch $@
    1572 
    15731547external/fastjet/ClusterSequence.hh: \
    15741548        external/fastjet/PseudoJet.hh \
     
    20031977
    20041978modules/FastJetFinder.h: \
    2005         classes/DelphesModule.h
    2006         @touch $@
    2007 
    2008 modules/BeamSpotFilter.h: \
    20091979        classes/DelphesModule.h
    20101980        @touch $@
  • classes/DelphesClasses.cc

    rf01803a r4bf6061  
    127127  Momentum(0.0, 0.0, 0.0, 0.0),
    128128  Position(0.0, 0.0, 0.0, 0.0),
    129   InitialPosition(0.0, 0.0, 0.0, 0.0),
    130129  Area(0.0, 0.0, 0.0, 0.0),
    131   L(0),
    132   D0(0), ErrorD0(0),
    133   DZ(0), ErrorDZ(0),
    134   P(0),  ErrorP(0),
    135   PT(0), ErrorPT(0),
    136   CtgTheta(0), ErrorCtgTheta(0),
    137   Phi(0), ErrorPhi(0), 
    138   Xd(0), Yd(0), Zd(0),
     130  Dxy(0), SDxy(0), Xd(0), Yd(0), Zd(0),
    139131  TrackResolution(0),
    140132  NCharged(0),
     
    270262  object.Momentum = Momentum;
    271263  object.Position = Position;
    272   object.InitialPosition = Position;
    273264  object.Area = Area;
    274   object.L = L;
    275   object.D0 = D0;
    276   object.ErrorD0 = ErrorD0;
    277   object.DZ = DZ;
    278   object.ErrorDZ = ErrorDZ;
    279   object.P = P;
    280   object.ErrorP = ErrorP;
    281   object.PT = PT;
    282   object.ErrorPT = ErrorPT;
    283   object.CtgTheta = CtgTheta ;
    284   object.ErrorCtgTheta = ErrorCtgTheta;
    285   object.Phi = Phi;
    286   object.ErrorPhi = ErrorPhi; 
     265  object.Dxy = Dxy;
     266  object.SDxy = SDxy;
    287267  object.Xd = Xd;
    288268  object.Yd = Yd;
     
    383363  Momentum.SetXYZT(0.0, 0.0, 0.0, 0.0);
    384364  Position.SetXYZT(0.0, 0.0, 0.0, 0.0);
    385   InitialPosition.SetXYZT(0.0, 0.0, 0.0, 0.0);
    386365  Area.SetXYZT(0.0, 0.0, 0.0, 0.0);
    387   L = 0.0;
    388   D0 = 0.0; 
    389   ErrorD0 = 0.0;
    390   DZ = 0.0;
    391   ErrorDZ = 0.0;
    392   P =0.0;
    393   ErrorP =0.0;
    394   PT = 0.0;
    395   ErrorPT = 0.0;
    396   CtgTheta = 0.0;
    397   ErrorCtgTheta = 0.0;
    398   Phi = 0.0;
    399   ErrorPhi = 0.0;
     366  Dxy = 0.0;
     367  SDxy = 0.0;
    400368  Xd = 0.0;
    401369  Yd = 0.0;
  • classes/DelphesClasses.h

    rf01803a r4bf6061  
    415415  Float_t TOuter; // track position (z component) at the tracker edge
    416416
    417   Float_t D0;     // track signed transverse impact parameter
    418   Float_t ErrorD0;    // signed error on the track signed transverse impact parameter
     417  Float_t Dxy;     // track signed transverse impact parameter
     418  Float_t SDxy;    // signed error on the track signed transverse impact parameter
    419419  Float_t Xd;      // X coordinate of point of closest approach to vertex
    420420  Float_t Yd;      // Y coordinate of point of closest approach to vertex
     
    526526  Float_t DeltaPhi;
    527527
    528   TLorentzVector Momentum, Position, InitialPosition, Area;
    529 
    530   Float_t L; // path length
    531   Float_t D0;
    532   Float_t ErrorD0;
    533   Float_t DZ;
    534   Float_t ErrorDZ;
    535   Float_t P;
    536   Float_t ErrorP;
    537   Float_t PT;
    538   Float_t ErrorPT;
    539   Float_t CtgTheta;
    540   Float_t ErrorCtgTheta;
    541   Float_t Phi;
    542   Float_t ErrorPhi;
    543 
     528  TLorentzVector Momentum, Position, Area;
     529
     530  Float_t Dxy;
     531  Float_t SDxy;
    544532  Float_t Xd;
    545533  Float_t Yd;
  • modules/ImpactParameterSmearing.cc

    rf01803a r4bf6061  
    9696{
    9797  Candidate *candidate, *particle, *mother;
    98   Double_t xd, yd, zd, d0, sx, sy, sz, dd0;
     98  Double_t xd, yd, zd, dxy, sx, sy, sz, ddxy;
    9999  Double_t pt, eta, px, py, phi, e;
    100100
     
    103103  {
    104104
    105     // take momentum before smearing (otherwise apply double smearing on d0)
     105    // take momentum before smearing (otherwise apply double smearing on dxy)
    106106    particle = static_cast<Candidate*>(candidate->GetCandidates()->At(0));
    107107
     
    131131
    132132    // calculate impact parameter (after-smearing)
    133     d0 = (xd*py - yd*px)/pt;
     133    dxy = (xd*py - yd*px)/pt;
    134134
    135     dd0 = gRandom->Gaus(0.0, fFormula->Eval(pt, eta, phi, e));
     135    ddxy = gRandom->Gaus(0.0, fFormula->Eval(pt, eta, phi, e));
    136136
    137137    // fill smeared values in candidate
     
    143143    candidate->Zd = zd;
    144144
    145     candidate->D0 = d0;
    146     candidate->ErrorD0 = dd0;
     145    candidate->Dxy = dxy;
     146    candidate->SDxy = ddxy;
    147147
    148148    candidate->AddCandidate(mother);
  • modules/ModulesLinkDef.h

    rf01803a r4bf6061  
    3535#include "modules/EnergySmearing.h"
    3636#include "modules/MomentumSmearing.h"
    37 #include "modules/TrackSmearing.h"
    3837#include "modules/ImpactParameterSmearing.h"
    3938#include "modules/TimeSmearing.h"
     
    5857#include "modules/StatusPidFilter.h"
    5958#include "modules/PdgCodeFilter.h"
    60 #include "modules/BeamSpotFilter.h"
    6159#include "modules/Cloner.h"
    6260#include "modules/Weighter.h"
     
    8179#pragma link C++ class EnergySmearing+;
    8280#pragma link C++ class MomentumSmearing+;
    83 #pragma link C++ class TrackSmearing+;
    8481#pragma link C++ class ImpactParameterSmearing+;
    8582#pragma link C++ class TimeSmearing+;
     
    104101#pragma link C++ class StatusPidFilter+;
    105102#pragma link C++ class PdgCodeFilter+;
    106 #pragma link C++ class BeamSpotFilter+;
    107103#pragma link C++ class Cloner+;
    108104#pragma link C++ class Weighter+;
  • modules/ParticlePropagator.cc

    rf01803a r4bf6061  
    6666{
    6767}
    68 
    6968
    7069//------------------------------------------------------------------------------
     
    9291  fItInputArray = fInputArray->MakeIterator();
    9392
    94   // import beamspot
    95  
    96   fBeamSpotInputArray = ImportArray(GetString("BeamSpotInputArray", "BeamSpotFilter/beamSpotParticle"));
    97 
    9893  // create output arrays
    9994
     
    116111{
    117112  Candidate *candidate, *mother;
    118   TLorentzVector candidatePosition, candidateMomentum, beamSpotPosition;
     113  TLorentzVector candidatePosition, candidateMomentum;
    119114  Double_t px, py, pz, pt, pt2, e, q;
    120115  Double_t x, y, z, t, r, phi;
     
    125120  Double_t tmp, discr, discr2;
    126121  Double_t delta, gammam, omega, asinrho;
    127   Double_t rcu, rc2, xd, yd, zd;
    128   Double_t l, d0, dz, p, ctgTheta, phip, etap, alpha;
    129   Double_t bsx, bsy, bsz;
    130          
     122  Double_t rcu, rc2, dxy, xd, yd, zd;
     123
    131124  const Double_t c_light = 2.99792458E8;
    132  
    133   if (!fBeamSpotInputArray->GetSize () || !fBeamSpotInputArray->At(0))
    134     beamSpotPosition.SetXYZT(0.0, 0.0, 0.0, 0.0);
    135   else
    136   {
    137     Candidate &beamSpotCandidate = *((Candidate *) fBeamSpotInputArray->At(0));
    138     beamSpotPosition = beamSpotCandidate.Position;
    139   }
    140  
     125
    141126  fItInputArray->Reset();
    142127  while((candidate = static_cast<Candidate*>(fItInputArray->Next())))
     
    147132    y = candidatePosition.Y()*1.0E-3;
    148133    z = candidatePosition.Z()*1.0E-3;
    149    
    150     bsx = beamSpotPosition.X()*1.0E-3;
    151     bsy = beamSpotPosition.Y()*1.0E-3;
    152     bsz = beamSpotPosition.Z()*1.0E-3;
    153    
    154134    q = candidate->Charge;
    155135
     
    201181      y_t = y + py*t;
    202182      z_t = z + pz*t;
    203      
    204       l = TMath::Sqrt( (x_t - x)*(x_t - x) + (y_t - y)*(y_t - y) + (z_t - z)*(z_t - z));
    205183
    206184      mother = candidate;
     
    208186
    209187      candidate->Position.SetXYZT(x_t*1.0E3, y_t*1.0E3, z_t*1.0E3, candidatePosition.T() + t*e*1.0E3);
    210       candidate->L = l*1.0E3;
    211    
     188
    212189      candidate->Momentum = candidateMomentum;
    213190      candidate->AddCandidate(mother);
     
    261238      yd = (rc2 > 0.0) ? yd / rc2 : -999;
    262239      zd = z + (TMath::Sqrt(xd*xd + yd*yd) - TMath::Sqrt(x*x + y*y))*pz/pt;
    263      
    264       // use perigee momentum rather than original particle
    265       // momentum, since the orignal particle momentum isn't known
    266      
    267       px = TMath::Sign(1.0,r) * pt * (-y_c / r_c);
    268       py = TMath::Sign(1.0,r) * pt * (x_c / r_c);
    269       etap = candidateMomentum.Eta();
    270       phip = TMath::ATan2(py, px);
    271        
    272       candidateMomentum.SetPtEtaPhiE(pt, etap, phip, candidateMomentum.E());
    273      
    274       // calculate additional track parameters (correct for beamspot position)
    275        
    276       d0        = (  (x - bsx) * py - (y - bsy) * px) / pt;
    277       dz        = z - ((x - bsx) * px + (py - bsy) * py) / pt * (pz / pt);
    278       p         = candidateMomentum.P();
    279       ctgTheta  = 1.0 / TMath::Tan (candidateMomentum.Theta ());
    280          
     240
     241      // calculate impact paramater
     242      dxy = (xd*py - yd*px)/pt;
     243
    281244      // 3. time evaluation t = TMath::Min(t_r, t_z)
    282245      //    t_r : time to exit from the sides
     
    324287      r_t = TMath::Hypot(x_t, y_t);
    325288
    326      
    327       // compute path length for an helix
    328      
    329       alpha = pz*1.0E9 / c_light / gammam;
    330       l = t * TMath::Sqrt(alpha*alpha + r*r*omega*omega);
    331          
    332289      if(r_t > 0.0)
    333290      {
     
    338295
    339296        candidate->Momentum = candidateMomentum;
    340        
    341         candidate->L =  l*1.0E3;
    342         candidate->D0 = d0*1.0E3;
    343         candidate->DZ = dz*1.0E3;
    344         candidate->P = p;
    345         candidate->PT = pt;
    346         candidate->CtgTheta = ctgTheta;
    347         candidate->Phi = phi;
    348 
    349         candidate->Xd = xd*1.0E3;
     297        candidate->Dxy = dxy*1.0E3;
     298        candidate->Xd = xd*1.0E3;
    350299        candidate->Yd = yd*1.0E3;
    351300        candidate->Zd = zd*1.0E3;
  • modules/ParticlePropagator.h

    rf01803a r4bf6061  
    3535class TClonesArray;
    3636class TIterator;
    37 class TLorentzVector;
    3837
    3938class ParticlePropagator: public DelphesModule
     
    5655
    5756  const TObjArray *fInputArray; //!
    58   const TObjArray *fBeamSpotInputArray; //!
    5957
    6058  TObjArray *fOutputArray; //!
  • modules/TrackCountingBTagging.cc

    rf01803a r4bf6061  
    9696
    9797  Double_t jpx, jpy;
    98   Double_t dr, tpt;
    99   Double_t xd, yd, d0, dd0, ip, sip;
     98  Double_t dr, tpx, tpy, tpt;
     99  Double_t xd, yd, dxy, ddxy, ip, sip;
    100100
    101101  Int_t sign;
     
    117117    {
    118118      const TLorentzVector &trkMomentum = track->Momentum;
    119      
     119
    120120      dr = jetMomentum.DeltaR(trkMomentum);
     121
    121122      tpt = trkMomentum.Pt();
     123      tpx = trkMomentum.Px();
     124      tpy = trkMomentum.Py();
     125
    122126      xd = track->Xd;
    123127      yd = track->Yd;
    124       d0 = TMath::Hypot(xd, yd);
    125       dd0 = track->ErrorD0;
     128      dxy = TMath::Hypot(xd, yd);
     129      ddxy = track->SDxy;
    126130
    127131      if(tpt < fPtMin) continue;
    128132      if(dr > fDeltaR) continue;
    129       if(d0 > fIPmax) continue;
     133      if(dxy > fIPmax) continue;
    130134
    131135      sign = (jpx*xd + jpy*yd > 0.0) ? 1 : -1;
    132136
    133       ip = sign*d0;
    134       sip = ip / TMath::Abs(dd0);
     137      ip = sign*dxy;
     138      sip = ip / TMath::Abs(ddxy);
    135139
    136140      if(sip > fSigMin) count++;
  • modules/TreeWriter.cc

    rf01803a r4bf6061  
    292292    entry->TOuter = position.T()*1.0E-3/c_light;
    293293
    294     entry->D0 = candidate->D0;
    295     entry->ErrorD0 = candidate->ErrorD0 ;
     294    entry->Dxy = candidate->Dxy;
     295    entry->SDxy = candidate->SDxy ;
    296296    entry->Xd = candidate->Xd;
    297297    entry->Yd = candidate->Yd;
Note: See TracChangeset for help on using the changeset viewer.