Idea of study

  1. Get trigger efficiency plots (p.ex. pT) from Z->ee tag and probe (with single top quark cuts)
  2. Get efficiency plots from Z->ee MC
  3. Use Z->ee tag and probe efficiency database to weight single top quark events (consider background), divide by distribution =>new efficiency plot
  4. see if comparable to MC efficiency, or if different bins are necessary


  • For now: Eta, P_T
  • Possible: Isolation, Phi...

Single top cuts & relevant triggers

  1. Cuts and Triggers from CSC note

  • offline high pT isolated lepton
  • abs(eta) < 2.5
  • cone delta(R)=0.2 (etcone20<6 GeV)
  • pT > 30 GeV

  • e22i
  • e22i OR e55
  • e22i OR e55 OR mu20

2. Cuts and Triggers implemented
  • require Event trigger, Tag trigger
  • isEM medium (?) not for now
  • pt(probe) > 10, pt(tag) > 20 GeV
  • eta < 2.5
  • probe out of cracks
  • for v14 & v15 dataset (mc08.106050.PythiaZee_1Lepton.recon.AOD.e347_s462_s520_r808/):
    L1_EM18, L2_e20i_loose, EF_e20i_loose

  • background subtraction


  • Trigger Efficiencies wrt ElectronLoose, ElectronTight
  1. Tag and Probe: (No of probes that pass cuts and triggers and have a valid tag)/(no of probes that pass cuts and have a valid tag) (Tag is only there to reduce bias)
  2. Single Loop or Mc Truth Efficiency: (No of Electrons that pass cuts and triggers and are true)/(No of Electrons that pass cuts and are true)


InsituEGammaPerformance package within athena framework (,

Some version issues:
"In general, what is in the release since 15.5 is safe (ie. you don't even need to check out anything!) If you want to have latest versions of the package, you will have to check out some packages. To avoid confusions, on this twiki:

there are some suggestions about what tags to use. For 15.5.X with InsituEGammaPerformance-00-02-15, you should not need to check out InsituRepresenation at all, what is in the release should work fine. You will need InsituTools.

If you want the very latest available version of the package (it has some more flexibility and it is easier to monitor the fits) you can use:
  • athena 15.5.X or 15.6.X
  • HEAD of InsituEGammaPerformance
  • check out the HEAD of InsituRepresentation (InsituRepresentation-00-01-11)
  • HEAD of InsituTools (InsituTools-00-01-08 )
  • egammaInterfaces-00-00-55 (only if you use 15.5.X, not needed for 15.6.X)
  • egammaUtils-00-04-29 (only if you use 15.5.X, not needed for 15.6.X"


1. Insitu (AODs)

  • Z->ee: mc08.106050.PythiaZee_1Lepton.recon.AOD.e347_s462_r635/ : this is the v.14 reco (has ~2.5 Mio events)
  • or reco v15: mc08.106050.PythiaZee_1Lepton.recon.AOD.e347_s462_s520_r808/ (5.3 Mio events) => try using this one => for first studies subset: mc08.106050.PythiaZee_1Lepton.recon.AOD.e347_s462_s520_r808_tid091523 (407000 events)
  • TopMixingSample (D3PDs):
  • Single top sample (D3PDs):

2. Top-D3PD study

  • TopMix: /rooms/living/ntuples/single_top/TopPhysDPDMaker/MC08_1451_t53_nooverlap/
  • directories 8175X and 8176X, , where X = 1-3 is electron and X = 4 is muon (see file /rooms/living/ntuples/ This also lists the original file/directory names from the grid)

Accessing the database

I am planning to do this in root, I managed to modify a root program to access the database outside athena (it is in the InsituExample root analysis package). Maybe I will then use the MSU single top package for my further analysis.
     ./APReader ElectronID_TP_GRIDSarah1.root ElectronAODCollection TrigEFwrtEgammaLooseTP ZeeTag-and-Probe O.Arnaez mc09Example Opt 

For tests, can also use ""

Important Options in Joboptions

Tag and Probe

  • Sarah1 :

Single Electron

  • in Performance: dumpMC= true
  • in Performance: algoEfficiencyPerformance.InputProbesStoregateName = "ElectronIDProbeSingleElectronVsTrueVarContainer"
  • useRecoVariables = true (otherwise it plots reco efficiencies over true pT etc)


1. Tag and Probe=> nice turnon-curve for ElectronTight

  • Tag: 25, Probe 15 GeV
  • mc08.106050.PythiaZee_1Lepton.recon.AOD.e347_s462_s520_r808_tid091523
  • Sarah1a-d (a without background fit, b with background fit, c, d other datasets)
  • SarahGrid1a (mc08.106050.PythiaZee_1Lepton.recon.AOD.e347_s462_s520_r808)
  • Cut study: Sarah$TagCut_$ProbeCut, to see if/how turn-on curve depends on cuts => does not really depend on Tag cut, above 25 though problems with statistics
  • turn on curve better for ElectronTight than for ElectronLoose (I guess because of QCD background)

  • good result: TrigEF_wrt_EgammaTight_TP_Pt_Efficiency in user09.SarahHeim.ZeeTP.Monitoring.Grid.s520_r808.root

  • GRID commands:
    pathena --inDS mc08.106050.PythiaZee_1Lepton.recon.AOD.e347_s462_s520_r808 --outDS user09.SarahHeim.mc08.106050.PythiaZeeTP.InsituDPD.GRIDSarah1a.pool.root
    pathena --inDS user09.SarahHeim.mc08.106050.PythiaZeeTP.InsituDPD.GRIDSarah10.pool.root --outDS user09.SarahHeim.ZeeTP.ElectronID_Zee_Monitoring_Output.GRIDSarah1a.root --extOutFile

2. Single Electron => also nice turn-on curve

  • Probe: 15 GeV
  • plotted over reco pT, but required truth matching

3.a) SingleTopRootAnalysis, MC Trigger Efficiency

  • Tight Electrons 10 Gev, Eta< 2.47
  • Jet cuts 30 for first two, then 15
  • Trigger efficiency EF_e20i_loose wrt Tight Electron
  • reconstructed electron - what about truth info? (like in Single Electron)
  • What is MC electron?

  • ./scripts/ 1551 topmix electron recon
  • in macros/trigger/turnon:
    bin/TurnOnBin.x config/v1551/general.1551.config config/v1551/electron.1.config
    => not so good (turn on means adding everything up above a certain threshold), better use:
  • macros/trigger/tagProbeEfficiency
    bin/efficiency.x config/kinematic/electron.general.1551.config

3.b) SingleTopRootAnalysis, Tag and Probe

  • have to weight events according to efficiency from (1.)
  • ./scripts/ 1551 topmix electron recon
  • for comparison plot: root, .L plotHistosSum.C, makePlots(). better: plotHistosRegional.C
  • root: root /rooms/living/ntuples/single_top/TopPhysDPDMaker/MC08_1551/

3 c) Single Top Root Analysis

what calls what?
  • script
    ./scripts/ 1551 topmix electron recon
  • bin/Trigger/TriggerTagProbeEfficiencyElectron.cpp (instantiates object of class AnalysisMain), calls
  • src/Cuts?Weights/TagProbeWeight.cpp
  • take text file (table with efficiencies) and plug into src/Cuts/Weights/TagProbeWeight.cpp, compile
  • run ./scripts/ 1551 topmix electron recon
  • run macros/trigger/tagProbeEfficiency
    bin/efficiency.x config/kinematic/electron.general.1551.config
    (plug in input file, which is outputy file from script above, choose output file names/directory (have to create it)

4. Closure Test

  • run TagProbe or use sarah10, run Insitu Performance to get efficiency matrix & distributions after trigger
  • run script (databasetext), which calls InsituAccessToolTester to get table of matrix
  • put table into Performance_ClosureTestUgly algo, COMPILE, run again to get weighted distribution
  • run macro for plotting/comparing weighted distribution and distribution after trigger (and normalized comparisons)
=> use good naming convention!!! (it must be clear which database comes from which input file to avoid confusion! also try to mark chosen options) => three to four joboptions... => need to use the same options in both Performance joboptions!!!

5. 3D matrix out of 2D and 1D

  • run TagProbe or use sarah10, run Insitu Performance to get efficiency matrix for 2D matrix
  • run Insitu Performance to get efficiency matrix for 1D matrix
  • run script (databasetextMultiply), which calls InsituAccessToolMultiply to get table of multiplied matrix (not scaled yet)
  • plug table into Insitu Performance_ClosureTestUgly , COMPILE, then run it to get monitoring plots with weighted distribution and after trigger
  • run script makeScaleFactorMultiplication.C to get Scalefactor, plug into table of multiplied matrix

  • should probably do closure test (Performance_ClosureTestUgly to get weighted distribution and after trigger, run macro for plotting/comparing weighted distribution and distribution after trigger (and normalized comparisons))


  • Think about bias!
  • overlap removal for D3PD? (some objects are identified both as electron and jet)
  • which bins for database, which triggers?
  • should I start with a pure single top sample before using topmix?
  • how would topmix work? -> background removal? channels separate or together?
  • How does Insitu calculate uncertainties on bins?
  • difference between MCParticles and other Particles in SingleTopRootAnalysis
  • What is TreeEventWeight in comparison to (Output)!EventWeight and GlobalEventWeight ?
  • is turnon curve shape important to be modelled right?
  • Isolated/Unisolated electrons in topmix sample does not really make a difference for higher pT (above turnon curve)

Adding new algorithm to InsituEgammaPerformance

Need to go to src/components/InsituEGammaPerformance_entries.cxx and add new algo three times ( in this case)

-- SarahHeim - 11 Nov 2009
Topic revision: r25 - 10 Mar 2010, SarahHeim
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback