Fork me on GitHub

Changes in / [2b5ff2c:584e2e9] in git


Ignore:
Files:
9 added
5 edited

Legend:

Unmodified
Added
Removed
  • Makefile

    r2b5ff2c r584e2e9  
    428428        modules/JetPileUpSubtractor.h \
    429429        modules/TrackPileUpSubtractor.h \
     430        modules/TrackTimingPileUpSubtractor.h \
    430431        modules/TaggingParticlesSkimmer.h \
    431432        modules/PileUpJetID.h \
     
    444445        modules/VertexFinder.h \
    445446        modules/VertexFinderDA4D.h \
     447        modules/HighMassVertexRecover.h \
    446448        modules/DecayFilter.h \
    447449        modules/ExampleModule.h
     
    782784        external/Hector/H_BeamParticle.h \
    783785        external/Hector/H_RecRPObject.h
     786tmp/modules/HighMassVertexRecover.$(ObjSuf): \
     787        modules/HighMassVertexRecover.$(SrcSuf) \
     788        modules/HighMassVertexRecover.h \
     789        classes/DelphesClasses.h \
     790        classes/DelphesFactory.h \
     791        classes/DelphesFormula.h \
     792        external/ExRootAnalysis/ExRootResult.h \
     793        external/ExRootAnalysis/ExRootFilter.h \
     794        external/ExRootAnalysis/ExRootClassifier.h
    784795tmp/modules/IdentificationMap.$(ObjSuf): \
    785796        modules/IdentificationMap.$(SrcSuf) \
     
    10161027        modules/TrackSmearing.$(SrcSuf) \
    10171028        modules/TrackSmearing.h \
     1029        classes/DelphesClasses.h \
     1030        classes/DelphesFactory.h \
     1031        classes/DelphesFormula.h \
     1032        external/ExRootAnalysis/ExRootClassifier.h \
     1033        external/ExRootAnalysis/ExRootFilter.h \
     1034        external/ExRootAnalysis/ExRootResult.h
     1035tmp/modules/TrackTimingPileUpSubtractor.$(ObjSuf): \
     1036        modules/TrackTimingPileUpSubtractor.$(SrcSuf) \
     1037        modules/TrackTimingPileUpSubtractor.h \
    10181038        classes/DelphesClasses.h \
    10191039        classes/DelphesFactory.h \
     
    10581078        classes/DelphesFormula.h \
    10591079        classes/DelphesPileUpReader.h \
    1060         external/ExRootAnalysis/ExRootClassifier.h \
    1061         external/ExRootAnalysis/ExRootFilter.h \
    1062         external/ExRootAnalysis/ExRootResult.h
     1080        external/ExRootAnalysis/ExRootResult.h \
     1081        external/ExRootAnalysis/ExRootFilter.h \
     1082        external/ExRootAnalysis/ExRootClassifier.h
    10631083tmp/modules/VertexSorter.$(ObjSuf): \
    10641084        modules/VertexSorter.$(SrcSuf) \
     
    11461166        tmp/modules/ExampleModule.$(ObjSuf) \
    11471167        tmp/modules/Hector.$(ObjSuf) \
     1168        tmp/modules/HighMassVertexRecover.$(ObjSuf) \
    11481169        tmp/modules/IdentificationMap.$(ObjSuf) \
    11491170        tmp/modules/ImpactParameterSmearing.$(ObjSuf) \
     
    11721193        tmp/modules/TrackPileUpSubtractor.$(ObjSuf) \
    11731194        tmp/modules/TrackSmearing.$(ObjSuf) \
     1195        tmp/modules/TrackTimingPileUpSubtractor.$(ObjSuf) \
    11741196        tmp/modules/TreeWriter.$(ObjSuf) \
    11751197        tmp/modules/UniqueObjectFinder.$(ObjSuf) \
     
    20932115        @touch $@
    20942116
     2117modules/TrackTimingPileUpSubtractor.h: \
     2118        classes/DelphesModule.h
     2119        @touch $@
     2120
    20952121modules/Delphes.h: \
    20962122        classes/DelphesModule.h
     
    22672293external/fastjet/config.h: \
    22682294        external/fastjet/config_win.h
     2295        @touch $@
     2296
     2297modules/HighMassVertexRecover.h: \
     2298        classes/DelphesModule.h \
     2299        classes/DelphesClasses.h
    22692300        @touch $@
    22702301
  • cards/CMS_PhaseII/propagatorTest.tcl

    r2b5ff2c r584e2e9  
    3434
    3535  VertexFinderDA4D
     36  HighMassVertexRecover
     37
     38  CandidateFilter
    3639
    3740  TreeWriter 
     
    236239}
    237240
     241######################################
     242# Heavy(slow) particles vertex recover
     243######################################
     244
     245module HighMassVertexRecover HighMassVertexRecover {
     246  set TrackInputArray VertexFinderDAClusterizerZT/tracks
     247  set VertexInputArray VertexFinderDAClusterizerZT/vertices
     248
     249  set TrackOutputArray tracks
     250  set VertexOutputArray vertices
     251
     252  set Verbose 0
     253}
     254
     255
     256########################################
     257# Remove uninteresting tracks          #
     258########################################
     259
     260module CandidateFilter CandidateFilter {
     261  set InputArray HighMassVertexRecover/tracks
     262  set OutputArray tracks
     263
     264  set PtMin 10
     265  set MassMin 0.2
     266}
     267
     268
    238269##################
    239270# ROOT tree writer
     
    243274# add Branch InputArray BranchName BranchClass
    244275  add Branch PileUpMerger/stableParticles Particle GenParticle
     276  add Branch PileUpMerger/vertices GenVertex Vertex 
    245277  add Branch TimeSmearing/tracks Track Track
    246278  add Branch VertexFinderDA4D/vertices Vertex4D Vertex
    247   add Branch PileUpMerger/vertices GenVertex Vertex
    248 }
     279  add Branch HighMassVertexRecover/vertices Vertex4D Vertex
     280  add Branch CandidateFilter/tracks Track Track 
     281}
  • cards/FCC/FCChh_PileUpVtx.tcl

    r2b5ff2c r584e2e9  
    1212#######################################
    1313
     14set MaxEvents 100
     15set RandomSeed 123
     16
    1417set ExecutionPath {
    1518
     19  BeamSpotFilter
     20  PileUpMerger
    1621  ParticlePropagator
    1722
     
    2530
    2631  TrackMerger
     32
     33  TrackSmearing
     34  TimeSmearing 
     35
     36  VertexFinderDA4D 
     37
     38  TrackTimingPileUpSubtractor 
    2739
    2840  ECal
     
    6880}
    6981
     82#######################
     83# GenBeamSpotFilter
     84# Saves a particle intended to represent the beamspot
     85#######################
     86
     87module BeamSpotFilter BeamSpotFilter {
     88    set InputArray Delphes/stableParticles
     89    set OutputArray beamSpotParticle
     90
     91}
     92
     93###############
     94# PileUp Merger
     95###############
     96
     97module PileUpMerger PileUpMerger {
     98  set InputArray Delphes/stableParticles
     99
     100  set ParticleOutputArray stableParticles
     101  set VertexOutputArray vertices
     102
     103  # pre-generated minbias input file
     104  set PileUpFile MinBias.pileup
     105
     106  # average expected pile up
     107  set MeanPileUp 10
     108
     109  # 0-poisson, 1-uniform, 2-delta
     110  set PileUpDistribution 2
     111
     112  # maximum spread in the beam direction in m
     113  set ZVertexSpread 0.25
     114
     115  # maximum spread in time in s
     116  set TVertexSpread 800E-12
     117
     118  # vertex smearing formula f(z,t) (z,t need to be respectively given in m,s)
     119
     120  #set VertexDistributionFormula {exp(-(t^2/(2*(0.063/2.99792458E8*exp(-(z^2/(2*(0.063)^2))))^2)))}
     121  set VertexDistributionFormula {exp(-(t^2/160e-12^2/2))*exp(-(z^2/0.053^2/2))}
     122
     123  # taking 5.3 cm x 160 ps
     124
     125  #set VertexDistributionFormula { (abs(t) <= 160e-12) * (abs(z) <= 0.053) * (1.00) +
     126  #                                (abs(t) >  160e-12) * (abs(z) <= 0.053) * (0.00) +
     127  #                               (abs(t) <= 160e-12) * (abs(z) > 0.053)  * (0.00) +
     128  #                           (abs(t) >  160e-12) * (abs(z) > 0.053)  * (0.00)}
     129
     130}
    70131
    71132#################################
     
    74135
    75136module ParticlePropagator ParticlePropagator {
    76   set InputArray Delphes/stableParticles
     137  set InputArray PileUpMerger/stableParticles
    77138  set OutputArray stableParticles
    78139  set ChargedHadronOutputArray chargedHadrons
     
    204265
    205266
    206 #### ADD TRACKSMEARING
    207 #### ADD TIMESMEARING
    208 
     267########################################
     268#   Smear tracks
     269########################################
     270
     271module TrackSmearing TrackSmearing {
     272  set InputArray TrackMerger/tracks
     273  set OutputArray tracks
     274  set ApplyToPileUp true
     275
     276  # from http://mersi.web.cern.ch/mersi/layouts/.private/Baseline_tilted_200_Pixel_1_1_1/index.html
     277  source trackResolutionCMS.tcl
     278  # FIXME !!!! we need to add track resolution of FCC-hh baseline detector !!!!!
     279}
     280
     281########################################
     282#   Time Smearing
     283########################################
     284
     285module TimeSmearing TimeSmearing {
     286  set InputArray TrackSmearing/tracks
     287  set OutputArray tracks
     288
     289  # assume 20 ps resolution for now
     290  set TimeResolution 20E-12
     291}
     292
     293##################################
     294# Primary vertex reconstruction
     295##################################
     296
     297
     298module VertexFinderDA4D VertexFinderDA4D {
     299  set InputArray TimeSmearing/tracks
     300
     301  set OutputArray tracks
     302  set VertexOutputArray vertices
     303
     304  set Verbose 0
     305  set MinPT 1.0
     306
     307  # in mm
     308  set VertexSpaceSize 0.5
     309
     310  # in s
     311  set VertexTimeSize 10E-12
     312
     313  set UseTc 1
     314  set BetaMax 0.1
     315  set BetaStop 1.0
     316  set CoolingFactor 0.8
     317  set MaxIterations 100
     318
     319  # in mm
     320  set DzCutOff 40
     321  set D0CutOff 30
     322
     323}
     324
     325##########################
     326# Track pile-up subtractor
     327##########################
     328
     329module TrackTimingPileUpSubtractor TrackTimingPileUpSubtractor {
     330# add InputArray InputArray OutputArray
     331
     332  add InputArray ChargedHadronMomentumSmearing/chargedHadrons
     333  add InputArray ElectronMomentumSmearing/electrons
     334  add InputArray MuonMomentumSmearing/muons
     335 
     336  set VertexInputArray VertexFinderDA4D/vertices
     337  # assume perfect pile-up subtraction for tracks with |z| > fZVertexResolution
     338  # Z vertex resolution in m
     339  set ZVertexResolution {0.0001}
     340}
    209341
    210342
     
    217349module SimpleCalorimeter ECal {
    218350  set ParticleInputArray ParticlePropagator/stableParticles
    219   set TrackInputArray TrackMerger/tracks
     351  set TrackInputArray TimeSmearing/tracks
    220352
    221353  set TowerOutputArray ecalTowers
     
    374506}
    375507
     508
    376509#################
    377510# Electron filter
     
    494627  set MomentumOutputArray momentum
    495628}
    496 
    497 
    498629
    499630
     
    8731004  add Branch GenMissingET/momentum GenMissingET MissingET
    8741005
    875   add Branch TrackMerger/tracks Track Track
     1006  add Branch TimeSmearing/tracks Track Track
    8761007  add Branch Calorimeter/towers Tower Tower
    8771008
     
    8921023  add Branch MissingET/momentum MissingET MissingET
    8931024  add Branch ScalarHT/energy ScalarHT ScalarHT
    894 }
    895 
     1025  add Branch VertexFinderDA4D/vertices Vertex4D Vertex
     1026}
     1027
  • modules/ModulesLinkDef.h

    r2b5ff2c r584e2e9  
    5656#include "modules/JetPileUpSubtractor.h"
    5757#include "modules/TrackPileUpSubtractor.h"
     58#include "modules/TrackTimingPileUpSubtractor.h"
    5859#include "modules/TaggingParticlesSkimmer.h"
    5960#include "modules/PileUpJetID.h"
     
    7273#include "modules/VertexFinder.h"
    7374#include "modules/VertexFinderDA4D.h"
     75#include "modules/HighMassVertexRecover.h"
    7476#include "modules/DecayFilter.h"
    7577#include "modules/ExampleModule.h"
     
    111113#pragma link C++ class JetPileUpSubtractor+;
    112114#pragma link C++ class TrackPileUpSubtractor+;
     115#pragma link C++ class TrackTimingPileUpSubtractor+;
    113116#pragma link C++ class TaggingParticlesSkimmer+;
    114117#pragma link C++ class PileUpJetID+;
     
    127130#pragma link C++ class VertexFinder+;
    128131#pragma link C++ class VertexFinderDA4D+;
     132#pragma link C++ class HighMassVertexRecover+;
    129133#pragma link C++ class DecayFilter+;
    130134#pragma link C++ class ExampleModule+;
  • modules/TrackPileUpSubtractor.cc

    r2b5ff2c r584e2e9  
    117117void TrackPileUpSubtractor::Process()
    118118{
    119   Candidate *candidate, *particle;
     119  Candidate *candidate, *particle, *particleTest;
    120120  map<TIterator *, TObjArray *>::iterator itInputMap;
    121121  TIterator *iterator;
     
    123123  Double_t z, zvtx = 0;
    124124  Double_t pt, eta, phi, e;
    125 
     125  Double_t sumPT2 = 0;
     126  Double_t sumSquare = 0;
     127  int counter = 0;
     128  Double_t tempPTSquare = 0;
     129  Double_t tempZVertex = 0;
    126130  // find z position of primary vertex
    127131
     132  cout << " ---------- NEW EVENT --------- " << endl;
     133
    128134  fItVertexInputArray->Reset();
     135  cout << " NUMBER OF VERTICES : " << fVertexInputArray->GetEntriesFast() << endl;
    129136  while((candidate = static_cast<Candidate *>(fItVertexInputArray->Next())))
    130137  {
    131     if(!candidate->IsPU)
    132     {
    133       zvtx = candidate->Position.Z();
    134       // break;
    135     }
     138      cout << " ---------- NEW VERTEX --------- " << candidate->IsPU << endl;
     139      tempZVertex = candidate->Position.Z();
     140      tempPTSquare = candidate->SumPT2;
     141      if(tempPTSquare > sumSquare)
     142      {
     143        sumSquare = tempPTSquare;
     144        zvtx = tempZVertex;
     145        cout << " Sum Square : " << sumSquare << " Z of Vertex : " << zvtx << "  Is PileUp : " << candidate->IsPU << endl;
     146      }
     147     
     148      /*
     149      for(int i = 0; i < candidate->GetCandidates()->GetEntriesFast(); i++)
     150      {
     151        particleTest = static_cast<Candidate *>(candidate->GetCandidates()->At(i));
     152        TLorentzVector &candidateMomentumNew = particleTest->Momentum;
     153        if(candidateMomentumNew.Pt() > 1.0)
     154          sumSquare += (candidateMomentumNew.Pt()*candidateMomentumNew.Pt());
     155        cout << candidateMomentumNew.Pt() << "  " << candidate->SumPT2 << " counter : " << candidate->GetCandidates()->GetEntriesFast() << endl;
     156      } 
     157      */
    136158  }
    137159
     
    147169    {
    148170      particle = static_cast<Candidate *>(candidate->GetCandidates()->At(0));
    149       const TLorentzVector &candidateMomentum = particle->Momentum;
     171      const TLorentzVector &candidateMomentum = candidate->Momentum;
    150172
    151173      eta = candidateMomentum.Eta();
     
    154176      e = candidateMomentum.E();
    155177
    156       z = particle->Position.Z();
     178      z = candidate->Position.Z();
     179      counter ++;
     180      //sum = pt*pt;
     181      if(pt > 1.0)
     182        sumPT2 += pt*pt;
    157183
    158184      // apply pile-up subtraction
    159185      // assume perfect pile-up subtraction for tracks outside fZVertexResolution
    160 
    161       if(candidate->Charge != 0 && candidate->IsPU && TMath::Abs(z - zvtx) > fFormula->Eval(pt, eta, phi, e) * 1.0e3)
     186      // cout << particle->IsRecoPU << " ParticleSumSquare : " << sumPT2 << " VertexResult : " << sumSquare << " Added SumSquare : " << zvtx << endl;
     187      //cout << pt << "  " << candidate->IsPU << "  " <<  TMath::Abs(z - zvtx) << "   " << sumPT2 << "   " << sumPT2 << endl;
     188
     189     
     190      if(particle->Charge != 0 && TMath::Abs(z - zvtx) > fFormula->Eval(pt, eta, phi, e) * 1.0e3)
    162191      {
    163192        candidate->IsRecoPU = 1;
     193        //cout <<  TMath::Abs(z - zvtx) << "   " << fFormula->Eval(pt, eta, phi, e) * 1.0e3 << endl;
    164194      }
    165195      else
Note: See TracChangeset for help on using the changeset viewer.