Fork me on GitHub

Changes in / [9ad08ca:c008923] in git


Ignore:
Files:
11 deleted
15 edited

Legend:

Unmodified
Added
Removed
  • Makefile

    r9ad08ca rc008923  
    319319        modules/EnergySmearing.h \
    320320        modules/MomentumSmearing.h \
    321         modules/TrackSmearing.h \
    322321        modules/ImpactParameterSmearing.h \
    323322        modules/TimeSmearing.h \
     
    342341        modules/StatusPidFilter.h \
    343342        modules/PdgCodeFilter.h \
    344         modules/BeamSpotFilter.h \
    345343        modules/Cloner.h \
    346344        modules/Weighter.h \
     
    348346        modules/JetFlavorAssociation.h \
    349347        modules/JetFakeParticle.h \
    350         modules/VertexSorter.h \
    351         modules/VertexFinder.h \
    352348        modules/ExampleModule.h
    353349tmp/modules/ModulesDict$(PcmSuf): \
     
    556552        classes/DelphesFactory.h \
    557553        classes/DelphesFormula.h
    558 tmp/modules/BeamSpotFilter.$(ObjSuf): \
    559         modules/BeamSpotFilter.$(SrcSuf) \
    560         modules/BeamSpotFilter.h \
    561         classes/DelphesClasses.h \
    562         classes/DelphesFactory.h \
    563         classes/DelphesFormula.h \
    564         external/ExRootAnalysis/ExRootResult.h \
    565         external/ExRootAnalysis/ExRootFilter.h \
    566         external/ExRootAnalysis/ExRootClassifier.h
    567554tmp/modules/Calorimeter.$(ObjSuf): \
    568555        modules/Calorimeter.$(SrcSuf) \
     
    855842        external/ExRootAnalysis/ExRootFilter.h \
    856843        external/ExRootAnalysis/ExRootClassifier.h
    857 tmp/modules/TrackSmearing.$(ObjSuf): \
    858         modules/TrackSmearing.$(SrcSuf) \
    859         modules/TrackSmearing.h \
    860         classes/DelphesClasses.h \
    861         classes/DelphesFactory.h \
    862         classes/DelphesFormula.h \
    863         external/ExRootAnalysis/ExRootResult.h \
    864         external/ExRootAnalysis/ExRootFilter.h \
    865         external/ExRootAnalysis/ExRootClassifier.h
    866844tmp/modules/TreeWriter.$(ObjSuf): \
    867845        modules/TreeWriter.$(SrcSuf) \
     
    880858        classes/DelphesFactory.h \
    881859        classes/DelphesFormula.h \
    882         external/ExRootAnalysis/ExRootResult.h \
    883         external/ExRootAnalysis/ExRootFilter.h \
    884         external/ExRootAnalysis/ExRootClassifier.h
    885 tmp/modules/VertexFinder.$(ObjSuf): \
    886         modules/VertexFinder.$(SrcSuf) \
    887         modules/VertexFinder.h \
    888         classes/DelphesClasses.h \
    889         classes/DelphesFactory.h \
    890         classes/DelphesFormula.h \
    891         classes/DelphesPileUpReader.h \
    892         external/ExRootAnalysis/ExRootResult.h \
    893         external/ExRootAnalysis/ExRootFilter.h \
    894         external/ExRootAnalysis/ExRootClassifier.h
    895 tmp/modules/VertexSorter.$(ObjSuf): \
    896         modules/VertexSorter.$(SrcSuf) \
    897         modules/VertexSorter.h \
    898         classes/DelphesClasses.h \
    899         classes/DelphesFactory.h \
    900         classes/DelphesFormula.h \
    901         classes/DelphesPileUpReader.h \
    902860        external/ExRootAnalysis/ExRootResult.h \
    903861        external/ExRootAnalysis/ExRootFilter.h \
     
    963921        tmp/modules/AngularSmearing.$(ObjSuf) \
    964922        tmp/modules/BTagging.$(ObjSuf) \
    965         tmp/modules/BeamSpotFilter.$(ObjSuf) \
    966923        tmp/modules/Calorimeter.$(ObjSuf) \
    967924        tmp/modules/Cloner.$(ObjSuf) \
     
    995952        tmp/modules/TrackCountingTauTagging.$(ObjSuf) \
    996953        tmp/modules/TrackPileUpSubtractor.$(ObjSuf) \
    997         tmp/modules/TrackSmearing.$(ObjSuf) \
    998954        tmp/modules/TreeWriter.$(ObjSuf) \
    999955        tmp/modules/UniqueObjectFinder.$(ObjSuf) \
    1000         tmp/modules/VertexFinder.$(ObjSuf) \
    1001         tmp/modules/VertexSorter.$(ObjSuf) \
    1002956        tmp/modules/Weighter.$(ObjSuf)
    1003957
     
    16041558        tmp/external/tcl/tclVar.$(ObjSuf)
    16051559
    1606 modules/TrackSmearing.h: \
    1607         classes/DelphesModule.h
    1608         @touch $@
    1609 
    16101560external/fastjet/ClusterSequence.hh: \
    16111561        external/fastjet/PseudoJet.hh \
     
    18651815        @touch $@
    18661816
    1867 modules/VertexSorter.h: \
    1868         classes/DelphesModule.h \
    1869         classes/DelphesClasses.h
    1870         @touch $@
    1871 
    18721817modules/Delphes.h: \
    18731818        classes/DelphesModule.h
    1874         @touch $@
    1875 
    1876 modules/VertexFinder.h: \
    1877         classes/DelphesModule.h \
    1878         classes/DelphesClasses.h
    18791819        @touch $@
    18801820
     
    20431983
    20441984modules/FastJetFinder.h: \
    2045         classes/DelphesModule.h
    2046         @touch $@
    2047 
    2048 modules/BeamSpotFilter.h: \
    20491985        classes/DelphesModule.h
    20501986        @touch $@
  • classes/DelphesClasses.cc

    r9ad08ca rc008923  
    4141CompBase *Tower::fgCompare = CompE<Tower>::Instance();
    4242CompBase *HectorHit::fgCompare = CompE<HectorHit>::Instance();
    43 CompBase *Vertex::fgCompare = CompSumPT2<Vertex>::Instance();
    4443CompBase *Candidate::fgCompare = CompMomentumPt<Candidate>::Instance();
    4544
     
    122121  Charge(0), Mass(0.0),
    123122  IsPU(0), IsRecoPU(0), IsConstituent(0), IsFromConversion(0),
    124   ClusterIndex(-1), ClusterNDF(0), ClusterSigma(0), SumPT2(0), BTVSumPT2(0), GenDeltaZ(0), GenSumPT2(0),
    125123  Flavor(0), FlavorAlgo(0), FlavorPhys(0),
    126124  BTag(0), BTagAlgo(0), BTagPhys(0),
     
    129127  Momentum(0.0, 0.0, 0.0, 0.0),
    130128  Position(0.0, 0.0, 0.0, 0.0),
    131   PositionError(0.0, 0.0, 0.0, 0.0),
    132   InitialPosition(0.0, 0.0, 0.0, 0.0),
    133129  Area(0.0, 0.0, 0.0, 0.0),
    134   L(0),
    135   D0(0), ErrorD0(0),
    136   DZ(0), ErrorDZ(0),
    137   P(0),  ErrorP(0),
    138   PT(0), ErrorPT(0),
    139   CtgTheta(0), ErrorCtgTheta(0),
    140   Phi(0), ErrorPhi(0), 
    141   Xd(0), Yd(0), Zd(0),
     130  Dxy(0), SDxy(0), Xd(0), Yd(0), Zd(0),
    142131  TrackResolution(0),
    143132  NCharged(0),
     
    256245  object.IsConstituent = IsConstituent;
    257246  object.IsFromConversion = IsFromConversion;
    258   object.ClusterIndex = ClusterIndex;
    259   object.ClusterNDF = ClusterNDF;
    260   object.ClusterSigma = ClusterSigma;
    261   object.SumPT2 = SumPT2;
    262   object.BTVSumPT2 = BTVSumPT2;
    263   object.GenDeltaZ = GenDeltaZ;
    264   object.GenSumPT2 = GenSumPT2;
    265247  object.Flavor = Flavor;
    266248  object.FlavorAlgo = FlavorAlgo;
     
    280262  object.Momentum = Momentum;
    281263  object.Position = Position;
    282   object.InitialPosition = InitialPosition;
    283   object.PositionError = PositionError;
    284264  object.Area = Area;
    285   object.L = L;
    286   object.ErrorT = ErrorT;
    287   object.D0 = D0;
    288   object.ErrorD0 = ErrorD0;
    289   object.DZ = DZ;
    290   object.ErrorDZ = ErrorDZ;
    291   object.P = P;
    292   object.ErrorP = ErrorP;
    293   object.PT = PT;
    294   object.ErrorPT = ErrorPT;
    295   object.CtgTheta = CtgTheta ;
    296   object.ErrorCtgTheta = ErrorCtgTheta;
    297   object.Phi = Phi;
    298   object.ErrorPhi = ErrorPhi; 
     265  object.Dxy = Dxy;
     266  object.SDxy = SDxy;
    299267  object.Xd = Xd;
    300268  object.Yd = Yd;
     
    314282  object.SumPtChargedPU = SumPtChargedPU;
    315283  object.SumPt = SumPt;
    316   object.ClusterIndex = ClusterIndex;
    317   object.ClusterNDF = ClusterNDF;
    318   object.ClusterSigma = ClusterSigma;
    319   object.SumPT2 = SumPT2;
    320  
     284
    321285  object.FracPt[0] = FracPt[0];
    322286  object.FracPt[1] = FracPt[1];
     
    399363  Momentum.SetXYZT(0.0, 0.0, 0.0, 0.0);
    400364  Position.SetXYZT(0.0, 0.0, 0.0, 0.0);
    401   InitialPosition.SetXYZT(0.0, 0.0, 0.0, 0.0);
    402365  Area.SetXYZT(0.0, 0.0, 0.0, 0.0);
    403   L = 0.0;
    404   ErrorT = 0.0;
    405   D0 = 0.0; 
    406   ErrorD0 = 0.0;
    407   DZ = 0.0;
    408   ErrorDZ = 0.0;
    409   P =0.0;
    410   ErrorP =0.0;
    411   PT = 0.0;
    412   ErrorPT = 0.0;
    413   CtgTheta = 0.0;
    414   ErrorCtgTheta = 0.0;
    415   Phi = 0.0;
    416   ErrorPhi = 0.0;
     366  Dxy = 0.0;
     367  SDxy = 0.0;
    417368  Xd = 0.0;
    418369  Yd = 0.0;
     
    436387  SumPt = -999;
    437388
    438   ClusterIndex = -1;
    439   ClusterNDF = -99;
    440   ClusterSigma = 0.0;
    441   SumPT2 = 0.0;
    442   BTVSumPT2 = 0.0;
    443   GenDeltaZ = 0.0;
    444   GenSumPT2 = 0.0;
    445  
    446389  FracPt[0] = 0.0;
    447390  FracPt[1] = 0.0;
  • classes/DelphesClasses.h

    r9ad08ca rc008923  
    147147  Float_t Pz; // particle momentum vector (z component) | hepevt.phep[number][2]
    148148
    149   Float_t D0;
    150   Float_t DZ;
    151   Float_t P;
    152   Float_t PT;
    153   Float_t CtgTheta;
    154   Float_t Phi;
     149  Float_t PT; // particle transverse momentum
    155150  Float_t Eta; // particle pseudorapidity
     151  Float_t Phi; // particle azimuthal angle
     152
    156153  Float_t Rapidity; // particle rapidity
    157154
     
    171168//---------------------------------------------------------------------------
    172169
    173 class Vertex: public SortableObject
     170class Vertex: public TObject
    174171{
    175172public:
     
    179176  Float_t Z; // vertex position (z component)
    180177
    181   Double_t ErrorX;
    182   Double_t ErrorY;
    183   Double_t ErrorZ;
    184   Double_t ErrorT;
    185 
    186   Int_t Index;
    187   Int_t NDF;
    188   Double_t Sigma;
    189   Double_t SumPT2;
    190   Double_t BTVSumPT2;
    191   Double_t GenDeltaZ;
    192   Double_t GenSumPT2;
    193 
    194   TRefArray Constituents; // references to constituents
    195 
    196   static CompBase *fgCompare; //!
    197   const CompBase *GetCompare() const { return fgCompare; }
    198 
    199   ClassDef(Vertex, 3)
     178  ClassDef(Vertex, 1)
    200179};
    201180
     
    418397  Int_t Charge; // track charge
    419398
     399  Float_t PT; // track transverse momentum
     400
    420401  Float_t Eta; // track pseudorapidity
     402  Float_t Phi; // track azimuthal angle
    421403
    422404  Float_t EtaOuter; // track pseudorapidity at the tracker edge
     
    433415  Float_t TOuter; // track position (z component) at the tracker edge
    434416
    435   Float_t L; // track path length
    436   Float_t ErrorT; // error on the time measurement
    437 
    438   Float_t D0;     // track signed transverse impact parameter
    439   Float_t ErrorD0;    // signed error on the track signed transverse impact parameter
    440 
    441   Float_t DZ; // track transverse momentum
    442   Float_t ErrorDZ; // track transverse momentum error
    443 
    444   Float_t P; // track transverse momentum
    445   Float_t ErrorP; // track transverse momentum error
    446 
    447   Float_t PT; // track transverse momentum
    448   Float_t ErrorPT; // track transverse momentum error
    449 
    450   Float_t CtgTheta; // track transverse momentum
    451   Float_t ErrorCtgTheta; // track transverse momentum error
    452 
    453   Float_t Phi; // track azimuthal angle
    454   Float_t ErrorPhi; // track azimuthal angle
    455 
     417  Float_t Dxy;     // track signed transverse impact parameter
     418  Float_t SDxy;    // signed error on the track signed transverse impact parameter
    456419  Float_t Xd;      // X coordinate of point of closest approach to vertex
    457420  Float_t Yd;      // Y coordinate of point of closest approach to vertex
     
    460423  TRef Particle; // reference to generated particle
    461424
    462   Int_t VertexIndex; // reference to vertex
    463 
    464425  static CompBase *fgCompare; //!
    465426  const CompBase *GetCompare() const { return fgCompare; }
     
    565526  Float_t DeltaPhi;
    566527
    567   TLorentzVector Momentum, Position, InitialPosition, PositionError, Area;
    568 
    569   Float_t L; // path length
    570   Float_t ErrorT; // path length
    571   Float_t D0;
    572   Float_t ErrorD0;
    573   Float_t DZ;
    574   Float_t ErrorDZ;
    575   Float_t P;
    576   Float_t ErrorP;
    577   Float_t PT;
    578   Float_t ErrorPT;
    579   Float_t CtgTheta;
    580   Float_t ErrorCtgTheta;
    581   Float_t Phi;
    582   Float_t ErrorPhi;
    583 
     528  TLorentzVector Momentum, Position, Area;
     529
     530  Float_t Dxy;
     531  Float_t SDxy;
    584532  Float_t Xd;
    585533  Float_t Yd;
     
    587535
    588536  // tracking resolution
    589 
     537 
    590538  Float_t TrackResolution;
    591539
     
    614562  Float_t SumPt;
    615563
    616   // vertex variables
    617 
    618   Int_t ClusterIndex;
    619   Int_t ClusterNDF;
    620   Double_t ClusterSigma;
    621   Double_t SumPT2;
    622   Double_t BTVSumPT2;
    623   Double_t GenDeltaZ;
    624   Double_t GenSumPT2;
    625 
    626564  // N-subjettiness variables
    627565
     
    657595  void SetFactory(DelphesFactory *factory) { fFactory = factory; }
    658596
    659   ClassDef(Candidate, 5)
     597  ClassDef(Candidate, 4)
    660598};
    661599
  • classes/SortableObject.h

    r9ad08ca rc008923  
    156156      return -1;
    157157    else if(t1->ET < t2->ET)
    158       return 1;
    159     else
    160       return 0;
    161   }
    162 };
    163 
    164 //---------------------------------------------------------------------------
    165 
    166 template <typename T>
    167 class CompSumPT2: public CompBase
    168 {
    169   CompSumPT2() {}
    170 public:
    171   static CompSumPT2 *Instance()
    172   {
    173     static CompSumPT2 single;
    174     return &single;
    175   }
    176 
    177   Int_t Compare(const TObject *obj1, const TObject *obj2) const
    178   {
    179     const T *t1 = static_cast<const T*>(obj1);
    180     const T *t2 = static_cast<const T*>(obj2);
    181     if(t1->SumPT2 > t2->SumPT2)
    182       return -1;
    183     else if(t1->SumPT2 < t2->SumPT2)
    184158      return 1;
    185159    else
  • doc/genMakefile.tcl

    r9ad08ca rc008923  
    263263executableDeps {converters/*.cpp} {examples/*.cpp}
    264264
    265 executableDeps {readers/DelphesHepMC.cpp} {readers/DelphesLHEF.cpp} {readers/DelphesSTDHEP.cpp} {readers/DelphesROOT.cpp}
     265executableDeps {readers/DelphesHepMC.cpp} {readers/DelphesLHEF.cpp} {readers/DelphesSTDHEP.cpp}
    266266
    267267puts {ifeq ($(HAS_CMSSW),true)}
  • modules/ImpactParameterSmearing.cc

    r9ad08ca rc008923  
    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

    r9ad08ca rc008923  
    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"
     
    6462#include "modules/JetFlavorAssociation.h"
    6563#include "modules/JetFakeParticle.h"
    66 #include "modules/VertexSorter.h"
    67 #include "modules/VertexFinder.h"
    68 #include "modules/VertexFinderDA4D.h"
    6964#include "modules/ExampleModule.h"
    7065
     
    8479#pragma link C++ class EnergySmearing+;
    8580#pragma link C++ class MomentumSmearing+;
    86 #pragma link C++ class TrackSmearing+;
    8781#pragma link C++ class ImpactParameterSmearing+;
    8882#pragma link C++ class TimeSmearing+;
     
    107101#pragma link C++ class StatusPidFilter+;
    108102#pragma link C++ class PdgCodeFilter+;
    109 #pragma link C++ class BeamSpotFilter+;
    110103#pragma link C++ class Cloner+;
    111104#pragma link C++ class Weighter+;
     
    113106#pragma link C++ class JetFlavorAssociation+;
    114107#pragma link C++ class JetFakeParticle+;
    115 #pragma link C++ class VertexSorter+;
    116 #pragma link C++ class VertexFinder+;
    117 #pragma link C++ class VertexFinderDA4D+;
    118108#pragma link C++ class ExampleModule+;
    119109
  • modules/ParticlePropagator.cc

    r9ad08ca rc008923  
    6666{
    6767}
    68 
    6968
    7069//------------------------------------------------------------------------------
     
    9291  fItInputArray = fInputArray->MakeIterator();
    9392
    94   // import beamspot
    95   try
    96   {
    97     fBeamSpotInputArray = ImportArray(GetString("BeamSpotInputArray", "BeamSpotFilter/beamSpotParticle"));
    98   }
    99   catch(runtime_error &e)
    100   {
    101     fBeamSpotInputArray = 0;
    102   } 
    10393  // create output arrays
    10494
     
    121111{
    122112  Candidate *candidate, *mother;
    123   TLorentzVector candidatePosition, candidateMomentum, beamSpotPosition;
     113  TLorentzVector candidatePosition, candidateMomentum;
    124114  Double_t px, py, pz, pt, pt2, e, q;
    125115  Double_t x, y, z, t, r, phi;
     
    130120  Double_t tmp, discr, discr2;
    131121  Double_t delta, gammam, omega, asinrho;
    132   Double_t rcu, rc2, xd, yd, zd;
    133   Double_t l, d0, dz, p, ctgTheta, phip, etap, alpha;
    134   Double_t bsx, bsy, bsz;
    135          
     122  Double_t rcu, rc2, dxy, xd, yd, zd;
     123
    136124  const Double_t c_light = 2.99792458E8;
    137  
    138   if (!fBeamSpotInputArray || fBeamSpotInputArray->GetSize () == 0)
    139     beamSpotPosition.SetXYZT(0.0, 0.0, 0.0, 0.0);
    140   else
    141   {
    142     Candidate &beamSpotCandidate = *((Candidate *) fBeamSpotInputArray->At(0));
    143     beamSpotPosition = beamSpotCandidate.Position;
    144   }
    145  
     125
    146126  fItInputArray->Reset();
    147127  while((candidate = static_cast<Candidate*>(fItInputArray->Next())))
     
    152132    y = candidatePosition.Y()*1.0E-3;
    153133    z = candidatePosition.Z()*1.0E-3;
    154    
    155     bsx = beamSpotPosition.X()*1.0E-3;
    156     bsy = beamSpotPosition.Y()*1.0E-3;
    157     bsz = beamSpotPosition.Z()*1.0E-3;
    158    
    159134    q = candidate->Charge;
    160135
     
    206181      y_t = y + py*t;
    207182      z_t = z + pz*t;
    208      
    209       l = TMath::Sqrt( (x_t - x)*(x_t - x) + (y_t - y)*(y_t - y) + (z_t - z)*(z_t - z));
    210183
    211184      mother = candidate;
    212185      candidate = static_cast<Candidate*>(candidate->Clone());
    213186
    214       candidate->InitialPosition = candidatePosition;
    215187      candidate->Position.SetXYZT(x_t*1.0E3, y_t*1.0E3, z_t*1.0E3, candidatePosition.T() + t*e*1.0E3);
    216       candidate->L = l*1.0E3;
    217    
     188
    218189      candidate->Momentum = candidateMomentum;
    219190      candidate->AddCandidate(mother);
     
    267238      yd = (rc2 > 0.0) ? yd / rc2 : -999;
    268239      zd = z + (TMath::Sqrt(xd*xd + yd*yd) - TMath::Sqrt(x*x + y*y))*pz/pt;
    269      
    270       // use perigee momentum rather than original particle
    271       // momentum, since the orignal particle momentum isn't known
    272      
    273       px = TMath::Sign(1.0,r) * pt * (-y_c / r_c);
    274       py = TMath::Sign(1.0,r) * pt * (x_c / r_c);
    275       etap = candidateMomentum.Eta();
    276       phip = TMath::ATan2(py, px);
    277        
    278       candidateMomentum.SetPtEtaPhiE(pt, etap, phip, candidateMomentum.E());
    279      
    280       // calculate additional track parameters (correct for beamspot position)
    281        
    282       d0        = (  (x - bsx) * py - (y - bsy) * px) / pt;
    283       dz        = z - ((x - bsx) * px + (y - bsy) * py) / pt * (pz / pt);
    284       p         = candidateMomentum.P();
    285       ctgTheta  = 1.0 / TMath::Tan (candidateMomentum.Theta ());
    286          
     240
     241      // calculate impact paramater
     242      dxy = (xd*py - yd*px)/pt;
     243
    287244      // 3. time evaluation t = TMath::Min(t_r, t_z)
    288245      //    t_r : time to exit from the sides
     
    330287      r_t = TMath::Hypot(x_t, y_t);
    331288
    332      
    333       // compute path length for an helix
    334      
    335       alpha = pz*1.0E9 / c_light / gammam;
    336       l = t * TMath::Sqrt(alpha*alpha + r*r*omega*omega);
    337          
    338289      if(r_t > 0.0)
    339290      {
    340        
    341         // store these variables before cloning
    342            
    343         candidate->D0 = d0*1.0E3;
    344         candidate->DZ = dz*1.0E3;
    345         candidate->P  = p;
    346         candidate->PT = pt;
    347         candidate->CtgTheta = ctgTheta;
    348         candidate->Phi = phip;
    349      
    350291        mother = candidate;
    351292        candidate = static_cast<Candidate*>(candidate->Clone());
    352293
    353         candidate->InitialPosition = candidatePosition;
    354294        candidate->Position.SetXYZT(x_t*1.0E3, y_t*1.0E3, z_t*1.0E3, candidatePosition.T() + t*c_light*1.0E3);
    355295
    356296        candidate->Momentum = candidateMomentum;
    357        
    358             candidate->L  =  l*1.0E3;
    359        
    360             candidate->Xd = xd*1.0E3;
     297        candidate->Dxy = dxy*1.0E3;
     298        candidate->Xd = xd*1.0E3;
    361299        candidate->Yd = yd*1.0E3;
    362300        candidate->Zd = zd*1.0E3;
  • modules/ParticlePropagator.h

    r9ad08ca rc008923  
    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/PileUpMerger.cc

    r9ad08ca rc008923  
    115115  TDatabasePDG *pdg = TDatabasePDG::Instance();
    116116  TParticlePDG *pdgParticle;
    117   Int_t pid, nch, nvtx = -1;
     117  Int_t pid;
    118118  Float_t x, y, z, t, vx, vy;
    119   Float_t px, py, pz, e, pt;
    120   Double_t dz, dphi, dt, sumpt2, dz0, dt0;
     119  Float_t px, py, pz, e;
     120  Double_t dz, dphi, dt;
    121121  Int_t numberOfEvents, event, numberOfParticles;
    122122  Long64_t allEntries, entry;
     
    132132  fFunction->GetRandom2(dz, dt);
    133133
    134   dz0 = -1.0e6;
    135   dt0 = -1.0e6;
    136 
    137134  dt *= c_light*1.0E3; // necessary in order to make t in mm/c
    138135  dz *= 1.0E3; // necessary in order to make z in mm
    139 
    140   //cout<<dz<<","<<dt<<endl;
    141 
    142136  vx = 0.0;
    143137  vy = 0.0;
    144 
    145138  numberOfParticles = fInputArray->GetEntriesFast();
    146   nch = 0;
    147   sumpt2 = 0.0;
    148 
    149   factory = GetFactory();
    150   vertex = factory->NewCandidate();
    151 
    152139  while((candidate = static_cast<Candidate*>(fItInputArray->Next())))
    153140  {
     
    156143    z = candidate->Position.Z();
    157144    t = candidate->Position.T();
    158     pt = candidate->Momentum.Pt();
    159 
    160     // take postion and time from first stable particle
    161     if (dz0 < -999999.0)
    162       dz0 = z;
    163     if (dt0 < -999999.0)
    164       dt0 = t;
    165 
    166     // cancel any possible offset in position and time the input file
    167     candidate->Position.SetZ(z - dz0 + dz);
    168     candidate->Position.SetT(t - dt0 + dt);
    169 
    170     candidate->IsPU = 0;
    171 
     145    candidate->Position.SetZ(z + dz);
     146    candidate->Position.SetT(t + dt);
    172147    fParticleOutputArray->Add(candidate);
    173 
    174     if(TMath::Abs(candidate->Charge) >  1.0E-9)
    175     {
    176       nch++;
    177       sumpt2 += pt*pt;
    178       vertex->AddCandidate(candidate);
    179     }
    180148  }
    181149
    182150  if(numberOfParticles > 0)
    183151  {
    184     vx /= sumpt2;
    185     vy /= sumpt2;
    186   }
    187 
    188   nvtx++;
     152    vx /= numberOfParticles;
     153    vy /= numberOfParticles;
     154  }
     155
     156  factory = GetFactory();
     157
     158  vertex = factory->NewCandidate();
    189159  vertex->Position.SetXYZT(vx, vy, dz, dt);
    190   vertex->ClusterIndex = nvtx;
    191   vertex->ClusterNDF = nch;
    192   vertex->SumPT2 = sumpt2;
    193   vertex->GenSumPT2 = sumpt2;
    194160  fVertexOutputArray->Add(vertex);
    195161
     
    204170      numberOfEvents = gRandom->Integer(2*fMeanPileUp + 1);
    205171      break;
    206     case 2:
    207       numberOfEvents = fMeanPileUp;
    208       break;
    209172    default:
    210173      numberOfEvents = gRandom->Poisson(fMeanPileUp);
     
    213176
    214177  allEntries = fReader->GetEntries();
    215 
    216178
    217179  for(event = 0; event < numberOfEvents; ++event)
     
    236198    vx = 0.0;
    237199    vy = 0.0;
    238 
    239200    numberOfParticles = 0;
    240     sumpt2 = 0.0;
    241 
    242     //factory = GetFactory();
    243     vertex = factory->NewCandidate();
    244 
    245201    while(fReader->ReadParticle(pid, x, y, z, t, px, py, pz, e))
    246202    {
     
    259215      candidate->Momentum.SetPxPyPzE(px, py, pz, e);
    260216      candidate->Momentum.RotateZ(dphi);
    261       pt = candidate->Momentum.Pt();
    262217
    263218      x -= fInputBeamSpotX;
     
    269224      vx += candidate->Position.X();
    270225      vy += candidate->Position.Y();
    271 
    272226      ++numberOfParticles;
    273       if(TMath::Abs(candidate->Charge) >  1.0E-9)
    274       {
    275         nch++;
    276         sumpt2 += pt*pt;
    277         vertex->AddCandidate(candidate);
    278       }
    279227
    280228      fParticleOutputArray->Add(candidate);
     
    287235    }
    288236
    289     nvtx++;
    290 
     237    vertex = factory->NewCandidate();
    291238    vertex->Position.SetXYZT(vx, vy, dz, dt);
    292 
    293     vertex->ClusterIndex = nvtx;
    294     vertex->ClusterNDF = nch;
    295     vertex->SumPT2 = sumpt2;
    296     vertex->GenSumPT2 = sumpt2;
    297 
    298239    vertex->IsPU = 1;
    299240
    300241    fVertexOutputArray->Add(vertex);
    301 
    302   }
    303 }
    304 
    305 //------------------------------------------------------------------------------
     242  }
     243}
     244
     245//------------------------------------------------------------------------------
  • modules/SimpleCalorimeter.cc

    r9ad08ca rc008923  
    366366      energy = momentum.E() * fTrackFractions[number];
    367367
    368       fTrackTime += energy*position.T();
    369       fTrackTimeWeight += energy;
     368      fTrackTime += TMath::Sqrt(energy)*position.T();
     369      fTrackTimeWeight += TMath::Sqrt(energy);
    370370
    371371      if(fTrackFractions[number] > 1.0E-9)
     
    403403    fTowerEnergy += energy;
    404404
    405     fTowerTime += energy*position.T();
    406     fTowerTimeWeight += energy;
     405    fTowerTime += TMath::Sqrt(energy)*position.T();
     406    fTowerTimeWeight += TMath::Sqrt(energy);
    407407
    408408    fTower->AddCandidate(particle);
  • modules/TimeSmearing.cc

    r9ad08ca rc008923  
    9393{
    9494  Candidate *candidate, *mother;
    95   Double_t ti, tf_smeared, tf;
     95  Double_t t;
    9696  const Double_t c_light = 2.99792458E8;
    9797
     
    9999  while((candidate = static_cast<Candidate*>(fItInputArray->Next())))
    100100  {
    101     const TLorentzVector &candidateInitialPosition = candidate->InitialPosition;
    102     const TLorentzVector &candidateFinalPosition = candidate->Position;
    103 
    104     ti = candidateInitialPosition.T()*1.0E-3/c_light;
    105     tf = candidateFinalPosition.T()*1.0E-3/c_light;
     101    const TLorentzVector &candidatePosition = candidate->Position;
     102    t = candidatePosition.T()*1.0E-3/c_light;
    106103
    107104    // apply smearing formula
    108     tf_smeared = gRandom->Gaus(tf, fTimeResolution);
    109     ti = ti + tf_smeared - tf;
     105    t = gRandom->Gaus(t, fTimeResolution);
    110106
    111107    mother = candidate;
    112108    candidate = static_cast<Candidate*>(candidate->Clone());
    113     candidate->InitialPosition.SetT(ti*1.0E3*c_light);
    114     candidate->Position.SetT(tf*1.0E3*c_light);
    115 
    116     candidate->ErrorT = fTimeResolution*1.0E3*c_light;
     109    candidate->Position.SetT(t*1.0E3*c_light);
    117110
    118111    candidate->AddCandidate(mother);
  • modules/TrackCountingBTagging.cc

    r9ad08ca rc008923  
    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

    r9ad08ca rc008923  
    215215    entry->Pz = momentum.Pz();
    216216
    217     entry->D0            = candidate->D0;
    218     entry->DZ            = candidate->DZ;
    219     entry->P             = candidate->P;
    220     entry->PT            = candidate->PT;
    221     entry->CtgTheta      = candidate->CtgTheta;
    222     entry->Phi           = candidate->Phi;
    223 
    224217    entry->Eta = eta;
    225218    entry->Phi = momentum.Phi();
     
    240233{
    241234  TIter iterator(array);
    242   Candidate *candidate = 0, *constituent = 0;
     235  Candidate *candidate = 0;
    243236  Vertex *entry = 0;
    244237
    245238  const Double_t c_light = 2.99792458E8;
    246239
    247   Double_t x, y, z, t, xError, yError, zError, tError, sigma, sumPT2, btvSumPT2, genDeltaZ, genSumPT2;
    248   UInt_t index, ndf;
    249 
    250   CompBase *compare = Candidate::fgCompare;
    251   Candidate::fgCompare = CompSumPT2<Candidate>::Instance();
    252   array->Sort();
    253   Candidate::fgCompare = compare;
    254 
    255240  // loop over all vertices
    256241  iterator.Reset();
    257242  while((candidate = static_cast<Candidate*>(iterator.Next())))
    258243  {
    259 
    260     index = candidate->ClusterIndex;
    261     ndf = candidate->ClusterNDF;
    262     sigma = candidate->ClusterSigma;
    263     sumPT2 = candidate->SumPT2;
    264     btvSumPT2 = candidate->BTVSumPT2;
    265     genDeltaZ = candidate->GenDeltaZ;
    266     genSumPT2 = candidate->GenSumPT2;
    267 
    268     x = candidate->Position.X();
    269     y = candidate->Position.Y();
    270     z = candidate->Position.Z();
    271     t = candidate->Position.T()*1.0E-3/c_light;
    272 
    273     xError = candidate->PositionError.X ();
    274     yError = candidate->PositionError.Y ();
    275     zError = candidate->PositionError.Z ();
    276     tError = candidate->PositionError.T ()*1.0E-3/c_light;
     244    const TLorentzVector &position = candidate->Position;
    277245
    278246    entry = static_cast<Vertex*>(branch->NewEntry());
    279247
    280     entry->Index = index;
    281     entry->NDF = ndf;
    282     entry->Sigma = sigma;
    283     entry->SumPT2 = sumPT2;
    284     entry->BTVSumPT2 = btvSumPT2;
    285     entry->GenDeltaZ = genDeltaZ;
    286     entry->GenSumPT2 = genSumPT2;
    287 
    288     entry->X = x;
    289     entry->Y = y;
    290     entry->Z = z;
    291     entry->T = t;
    292 
    293     entry->ErrorX = xError;
    294     entry->ErrorY = yError;
    295     entry->ErrorZ = zError;
    296     entry->ErrorT = tError;
    297 
    298 
    299     TIter itConstituents(candidate->GetCandidates());
    300     itConstituents.Reset();
    301     entry->Constituents.Clear();
    302     while((constituent = static_cast<Candidate*>(itConstituents.Next())))
    303     {
    304       entry->Constituents.Add(constituent);
    305     }
    306 
    307   }
    308 }
    309 
     248    entry->X = position.X();
     249    entry->Y = position.Y();
     250    entry->Z = position.Z();
     251    entry->T = position.T()*1.0E-3/c_light;
     252  }
     253}
    310254
    311255//------------------------------------------------------------------------------
     
    348292    entry->TOuter = position.T()*1.0E-3/c_light;
    349293
    350     entry->L = candidate->L;
    351 
    352     entry->D0            = candidate->D0;
    353     entry->ErrorD0       = candidate->ErrorD0;
    354     entry->DZ            = candidate->DZ;
    355     entry->ErrorDZ       = candidate->ErrorDZ;
    356     entry->P             = candidate->P;
    357     entry->ErrorP        = candidate->ErrorP;
    358     entry->PT            = candidate->PT;
    359     entry->ErrorPT       = candidate->ErrorPT;
    360     entry->CtgTheta      = candidate->CtgTheta;
    361     entry->ErrorCtgTheta = candidate->ErrorCtgTheta;
    362     entry->Phi           = candidate->Phi;
    363     entry->ErrorPhi      = candidate->ErrorPhi;
    364 
     294    entry->Dxy = candidate->Dxy;
     295    entry->SDxy = candidate->SDxy ;
    365296    entry->Xd = candidate->Xd;
    366297    entry->Yd = candidate->Yd;
     
    376307
    377308    entry->Eta = eta;
     309    entry->Phi = momentum.Phi();
     310    entry->PT = pt;
    378311
    379312    particle = static_cast<Candidate*>(candidate->GetCandidates()->At(0));
     
    386319
    387320    entry->Particle = particle;
    388 
    389     entry->VertexIndex = candidate->ClusterIndex;
    390 
    391321  }
    392322}
  • readers/DelphesCMSFWLite.cpp

    r9ad08ca rc008923  
    240240
    241241    branchEvent = treeWriter->NewBranch("Event", HepMCEvent::Class());
    242     branchRwgt = treeWriter->NewBranch("Weight", Weight::Class());
     242    branchRwgt = treeWriter->NewBranch("Rwgt", Weight::Class());
    243243
    244244    confReader = new ExRootConfReader;
Note: See TracChangeset for help on using the changeset viewer.