Fork me on GitHub

Changeset 03b9c0f in git


Ignore:
Timestamp:
Jan 6, 2020, 10:13:21 PM (5 years ago)
Author:
Kaan Yüksel Oyulmaz <kaanyukseloyulmaz@…>
Branches:
Timing
Children:
7939c6c
Parents:
d4e5b6a
Message:

New Time Smearing Module for Neutral Particles and FCC-hh Detector Card Update

Files:
2 added
5 edited

Legend:

Unmodified
Added
Removed
  • cards/FCC/FCChh_PileUpVtx.tcl

    rd4e5b6a r03b9c0f  
    1717set ExecutionPath {
    1818
    19   BeamSpotFilter
    2019  PileUpMerger
    2120  ParticlePropagator
     
    3231
    3332  TrackSmearing
    34   TimeSmearing 
    35 
    36   VertexFinderDA4D 
    37 
    38   TrackTimingPileUpSubtractor 
     33  TimeSmearing     
    3934
    4035  ECal
    4136  HCal
     37
     38  TimeSmearingMIP
     39  TimeSmearingPhotons
     40  TimeSmearingNH 
    4241
    4342  Calorimeter
    4443  EFlowMerger
    4544  EFlowFilter
     45
     46  VertexFinderDA4D
     47  TrackTimingPileUpSubtractor
     48
     49  HighMassVertexRecover   
    4650
    4751  PhotonEfficiency
     
    7882
    7983  TreeWriter
    80 }
    81 
    82 #######################
    83 # GenBeamSpotFilter
    84 # Saves a particle intended to represent the beamspot
    85 #######################
    86 
    87 module BeamSpotFilter BeamSpotFilter {
    88     set InputArray Delphes/stableParticles
    89     set OutputArray beamSpotParticle
    90 
    9184}
    9285
     
    288281
    289282  # assume 20 ps resolution for now
    290   set TimeResolution 20E-12
    291 }
    292 
    293 ##################################
    294 # Primary vertex reconstruction
    295 ##################################
    296 
    297 
    298 module 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 
    329 module 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}
     283  set TimeResolution {20E-12}
    340284}
    341285
     
    506450}
    507451
     452########################################
     453#   Time Smearing Neutral MIP
     454########################################
     455
     456module TimeSmearingNeutral TimeSmearingMIP {
     457  set InputArray HCal/eflowTracks
     458  set OutputArray timeSmearingMIP
     459
     460  # assume 20 ps resolution for now
     461  set TimeResolution {30E-12}
     462}
     463
     464########################################
     465#   Time Smearing Neutral Photons
     466########################################
     467
     468module TimeSmearingNeutral TimeSmearingPhotons {
     469  set InputArray HCal/eflowTracks
     470  set OutputArray timeSmearingPhotons
     471}
     472
     473########################################
     474#   Time Smearing Neutral NeutralHadrons
     475########################################
     476
     477module TimeSmearingNeutral TimeSmearingNH {
     478  set InputArray HCal/eflowTracks
     479  set OutputArray timeSmearingNH
     480
     481  # assume 20 ps resolution for now
     482  set TimeResolution {30E-12}
     483}
     484
    508485
    509486#################
     
    573550}
    574551
     552##################################
     553# Primary vertex reconstruction
     554##################################
     555
     556
     557module VertexFinderDA4D VertexFinderDA4D {
     558  set InputArray TimeSmearing/tracks
     559
     560  set OutputArray tracks
     561  set VertexOutputArray vertices
     562
     563  set Verbose 0
     564  set MinPT 1.0
     565
     566  # in mm
     567  set VertexSpaceSize 0.5
     568
     569  # in s
     570  set VertexTimeSize 10E-12
     571
     572  set UseTc 1
     573  set BetaMax 0.1
     574  set BetaStop 1.0
     575  set CoolingFactor 0.8
     576  set MaxIterations 100
     577
     578  # in mm
     579  set DzCutOff 40
     580  set D0CutOff 30
     581
     582}
     583
     584##########################
     585# Track pile-up subtractor
     586##########################
     587
     588module TrackTimingPileUpSubtractor TrackTimingPileUpSubtractor {
     589# add InputArray InputArray OutputArray
     590
     591  add InputArray ChargedHadronMomentumSmearing/chargedHadrons
     592  add InputArray ElectronMomentumSmearing/electrons
     593  add InputArray MuonMomentumSmearing/muons
     594  add InputArray EFlowMerger/eflow
     595
     596  set VertexInputArray VertexFinderDA4D/vertices
     597
     598  set ZVertexResolution {3}
     599  set TVertexResolution {3}
     600}
     601
     602######################################
     603# Heavy(slow) particles vertex recover
     604######################################
     605
     606module HighMassVertexRecover HighMassVertexRecover {
     607  set TrackInputArray VertexFinderDA4D/tracks
     608  set VertexInputArray VertexFinderDA4D/vertices
     609
     610  set TrackOutputArray tracks
     611  set VertexOutputArray vertices
     612
     613  set Verbose 0
     614
     615}
    575616
    576617###################
     
    10241065  add Branch ScalarHT/energy ScalarHT ScalarHT
    10251066  add Branch VertexFinderDA4D/vertices Vertex4D Vertex
    1026 }
    1027 
     1067
     1068  add Branch HighMassVertexRecover/tracks Track Track
     1069}
     1070
  • modules/ModulesLinkDef.h

    rd4e5b6a r03b9c0f  
    3838#include "modules/ImpactParameterSmearing.h"
    3939#include "modules/TimeSmearing.h"
     40#include "modules/TimeSmearingNeutral.h"
    4041#include "modules/SimpleCalorimeter.h"
    4142#include "modules/DenseTrackFilter.h"
     
    5556#include "modules/PileUpMerger.h"
    5657#include "modules/JetPileUpSubtractor.h"
    57 #include "modules/TrackPileUpSubtractor.h"
    5858#include "modules/TrackTimingPileUpSubtractor.h"
    5959#include "modules/TaggingParticlesSkimmer.h"
     
    9595#pragma link C++ class ImpactParameterSmearing+;
    9696#pragma link C++ class TimeSmearing+;
     97#pragma link C++ class TimeSmearingNeutral+;
    9798#pragma link C++ class SimpleCalorimeter+;
    9899#pragma link C++ class DenseTrackFilter+;
     
    112113#pragma link C++ class PileUpMerger+;
    113114#pragma link C++ class JetPileUpSubtractor+;
    114 #pragma link C++ class TrackPileUpSubtractor+;
    115115#pragma link C++ class TrackTimingPileUpSubtractor+;
    116116#pragma link C++ class TaggingParticlesSkimmer+;
  • modules/TrackTimingPileUpSubtractor.cc

    rd4e5b6a r03b9c0f  
    7575
    7676  // read resolution formula in m
    77   fFormula->Compile(GetString("ZVertexResolution", "0.001"));
     77  fZVertexResolution = GetDouble("ZVertexResolution", 3);
     78  fTVertexResolution = GetDouble("TVertexResolution", 3);
    7879
    7980  fPTMin = GetDouble("PTMin", 0.);
     
    128129  Double_t tempPTSquare = 0;
    129130  Double_t pt, eta, phi, e;
    130   Double_t distance = 0;
     131  Double_t distanceCharged, distanceNeutral = 0;
    131132
    132133  // find z position of primary vertex
     
    143144      tvtx = candidate->Position.T();
    144145      tvtx_err = candidate->PositionError.T();
    145       cout << " initial : " << candidate->InitialPosition.T() << " final : " << candidate->Position.T() << endl;
    146146    }
    147147  }
     
    167167      z = particle->Position.Z();
    168168      z_err = particle->PositionError.Z();
    169       t = particle->Position.T();
     169      t = particle->InitialPosition.T();
    170170      t_err = particle->PositionError.T();
    171171
    172       // apply pile-up subtraction
    173       distance = pow((zvtx - z),2)/pow((zvtx_err - z_err),2) + pow((tvtx - t),2)/pow((tvtx_err - t_err),2);
    174       //cout << " t : " << tvtx << "  t(particle)" << t << endl;
    175       // here I calculated distance using Z and T of selected vertex (highest sum Pt square) and particles
    176       // however z_err of vertices is gives 0 because of using CMS trackResolutionCMS.tcl (in that formula, there is limitation on |eta| < 2.5)
    177       // thats why I used TMath::Abs(z - zvtx) < 0.005 && TMath::Abs(t - tvtx) < 5.0
     172      distanceCharged = pow((zvtx - z),2)/pow((zvtx_err - z_err),2) + pow((tvtx - t),2)/pow((tvtx_err - t_err),2);
     173      distanceNeutral = pow((tvtx - t),2)/pow((tvtx_err - t_err),2);
    178174
    179       if(candidate->Charge != 0 && TMath::Abs(z - zvtx) < 0.005 && TMath::Abs(t - tvtx) < 5.0)
     175      if(candidate->Charge != 0 && distanceCharged < fZVertexResolution)
    180176      {
    181177        candidate->IsRecoPU = 1;
    182178      }
     179      else if(candidate->Charge == 0 && distanceNeutral < fTVertexResolution)
     180      {
     181        candidate->IsRecoPU = 1;
     182      } 
    183183      else
    184184      {
  • modules/TrackTimingPileUpSubtractor.h

    rd4e5b6a r03b9c0f  
    4949  DelphesFormula *fFormula; //!
    5050
     51  Double_t fZVertexResolution;
     52  Double_t fTVertexResolution;
     53
    5154  Double_t fPTMin;
    5255
  • modules/VertexFinderDA4D.cc

    rd4e5b6a r03b9c0f  
    425425    candidate->ClusterIndex = k;
    426426    candidate->Position.SetXYZT(0.0, 0.0, vtx.z[k] , vtx.t[k]*1E-9*c_light);
     427    candidate->InitialPosition.SetXYZT(0.0, 0.0, vtx.z[k] , vtx.t[k]*1E-9*c_light);   
    427428    candidate->PositionError.SetXYZT(0.0, 0.0, fVertexZSize , fVertexTSize*1E-9*c_light);
    428429    candidate->SumPT2 = 0;
Note: See TracChangeset for help on using the changeset viewer.