You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

Introduction

From a first look at the AcdV2 cuts applied to Pass8 data, it appears that the selection is not optimized. The goal here is to create a framework for designing an AcdV2 selection. Since it is likely that some of the Pass8 foundation will change along the way, the emphasis here is to develop tools and a methodology for creating this type of analysis.

Background

  • At Eric's suggestion, I looked into some of the Markus' work on Pass7 event classes. Specifically, the plot on slide 3 seem very useful, and I have started to replicate them with ACD variables.
  • To do an energy dependent selection, we must have an energy measure. Carmelo has done some work to create simple energy selection for Pass8. Additionally, Carmelo has shown that for right now, CTBBestEnergy should serve adequately for this purpose.

Code Base

I've started to collect some of the code I've been developing in CVS:

users/kadrlica/eventSelect/python/

However, the code is rough and should be used at your own risk!

Event Samples

Monte Carlo

The basic event samples I've been using come from the standard Pass8 MC data sets with overlays corresponding to GR-v19r4p1gr13.

#All Gamma
root://glast-rdr//glast/mc/ServiceChallenge/AG-GR-v19r3p9-FAKEOVL/merit/AG-GR-v19r3p9-FAKEOVL-*-merit.root
#Background
root://glast-rdr//glast/mc/ServiceChallenge/BKG-GR-v19r3p9-OVL/merit/BKG-GR-v19r3p9-OVL-*-merit.root

Data

Marco Tinivella should be able to help with this and has some code that depends on Luca's MeritUtils:

 /users/lbaldini/MeritUtils/ 

Prefilter Definition

# Irreducible Background Cut
# Cut (returns 0 if event cut, 1 if event accepted)
# Filter (returns 0 if event accepted, 1 if event cut)
PrefilterAliasDict = {
# Event triggers (really should be done in MC)
"TriggerFilter":"( (GltEnginePrescale==0) && ((GltWord&34==2)||(GltWord&12>0))  && ((GltGemSummary&224)==0) )",
# Passes flight software gamma filter
"FswGamFilter":"(FswGamState == 0) ",
# Take electrons and positrons in field-of-view; protons not from the back
"FoVFilter":"( ((McZDir < -.2 && McId < 20)||(McZDir < .1 & McId > 20)) && McAcdZEnter > 100 )",
# No neutral particles
"ChargeFilter":"McCharge !=0",
"McTHPosHitCut":"McTHPosHitOthers < 6",
# No events that enter tiles but don't deposit energy
"TileEnterCut":"McAcdActDistTileEnergy < .2 && !(((abs(McAcdXEnter)< 519 && abs(McAcdXEnter) > 485 ) || (abs(McAcdXEnter)< 181 && abs(McAcdXEnter) > 155 ))|| ((abs(McAcdYEnter)< 519 && abs(McAcdYEnter) > 485 ) ||  (abs(McAcdYEnter)< 181 && abs(McAcdYEnter) > 155 )) ||  (abs(McAcdXEnter)> 820 && abs(McAcdYEnter) > 820 ))",
# Remove upward going particles that don't deposit energy in the ACD (not used)
"AcdEngCut":"(AcdTotalEnergy+AcdRibbonEnergy<0.05) && McZDir > 0", 
# Combine to eliminate irreducible background...
"IrrBkgFilter":"FoVFilter && ChargeFilter && !(McTHPosHitCut) && !(TileEnterCut)",
#"TkrCalCore":"TkrNumTracks>0 && CalEnergyRaw > 5 && CalCsIRLn>4 && CTBCORE>0.1 && (GltGemSummary & 224) == 0",
"TkrFilter":"(TkrNumTracks>0)",
# Event enters CAL and deposits some energy
"CalFilter":"(CalEnergyRaw > 5 && CalCsIRLn > 4)",
# Track direction is well reconstructed
"CoreFilter":"( ( CalTrackAngle < 0.35 / min(1., sqrt(CTBBestEnergy/20000))) || CalNumXtals < 3) && (CalTrackDoca < sqrt(100. + (15000000/max(CTBBestEnergy,10.))))",
# Combine core cuts...
"TkrCalCore":"(TkrFilter) && (CalFilter) && (CoreFilter)",
# Events that the moments analysis failed for
"Cal1MomFilter" : "(Cal1MomNumIterations > 0)", 

"bkg_base" : "(FswGamFilter) && (IrrBkgFilter) && (TkrFilter) && (CalFilter)", # bkg base
"sig_base" : "(FswGamFilter) && (TkrFilter) && (CalFilter)", # Gamma base
"cal_bkg_base" : "(FswGamFilter) && (IrrBkgFilter) && (CalFilter) && (Cal1NumXtals > 3) && (Cal1MomFilter)", #&& (CalEnergyRaw > 1000) 
"cal_sig_base" : "(FswGamFilter) && (CalFilter) && (Cal1NumXtals > 3) && (Cal1MomFilter)", #&& (CalEnergyRaw > 1000) 

"bkg_sample" : "bkg_base",
"sig_sample" : "sig_base",
"cal_sig_sample" : "cal_sig_base",
"cal_sig_sample" : "cal_bkg_base",
}

Pass 7 Event Selection

Pass7_AcdAliasDict = {
    # Pass7 Acd Variables
    "AcdCornerDocaENorm" : "AcdCornerDoca*(min(1000, max(30, CTBBestEnergy)))^.5/10." ,
    "AcdTkr1RibbonActDistENorm":"AcdTkr1RibbonActDist * sqrt(min(3000., max(10, CTBBestEnergy)))/10.",
    "AcdTkr1ActiveDistENorm":"AcdTkr1ActiveDist * sqrt(min(3000., max(10, CTBBestEnergy)))/10." ,
    "AcdTileEventEnergyRatio":"100*AcdTkr1ActDistTileEnergy/max(10., CTBBestEnergy)" ,
    "AcdTotalTileEventEnergyRatio":"100.*AcdTotalEnergy/max(10., CTBBestEnergy)" ,
    "AcdTkrVActiveDistENorm":"AcdActiveDist3D  * sqrt(min(3000., max(10, CTBBestEnergy)))/10." ,
    # Why this 1* is necessary, we may never know...
    "AcdTkr1RibbonActDistMaxTileEnergy":"1*max(AcdTkr1RibbonActEnergyPmtA, AcdTkr1RibbonActEnergyPmtB)",
     
    # Pass7 Acd Cuts
    "RibbonCut_p7":"(AcdTkr1RibbonActDistENorm > -40  && Tkr1SSDVeto < 3 &&  AcdTkr1RibbonActDistMaxTileEnergy  > .04)",
    "CornerCut_p7":"((Tkr1LATEdge/1.5)^2 + (AcdCornerDocaENorm - 10)^2 < 6400  && Tkr1SSDVeto < 3) || (Tkr1LATEdge < 300 && abs(AcdCornerDocaENorm-2) < 4)",
    "BasicTileCut_p7":"Tkr1SSDVeto< 5 && AcdTkr1ActDistTileEnergy > .7 && AcdTkr1ActiveDistENorm> -350",
    "TotalTileEnergyCut_p7":"AcdTotalTileEventEnergyRatio > .8 || AcdTkr1ActiveDistENorm > -200 && AcdTotalTileEventEnergyRatio > max(.005, .1 -  .0001*AcdTkr1ActiveDistENorm) * max(1., CTBBestLogEnergy/2.5)",
    "VetoTileCut_p7":"(AcdTkrVActiveDistENorm > -60 && AcdActDistTileEnergy /sqrt(max(1., CTBBestLogEnergy-3.5)) > .9 +.15* TkrVSSDVeto)",
    "TileEdgeCut_p7":"Tkr1SSDVeto == 0 & abs(AcdTkr1ActiveDistENorm) < 10 & AcdTkr1ActDistTileEnergy > .025",
    "BasicAcdFilter_p7":"!(RibbonCut) && !(CornerCut) && !(BasicTileCut) && !(TotalTileEnergyCut) && !(VetoTileCut) && !(TileEdgeCut)",

The first step is to compare against the event selection that Bill does:

BILL

SIG

BKG

RibbonCut_p7

99.66% (99.6%)

88.38% (88.38%)

CornerCut_p7

98.25% (98.59%)

83.70% (94.70%)

BasicTileCut_p7

90.19% (91.79%)

16.04% (19.16%)

TotalTileEnergyCut_p7

85.42% (94.71%)

6.269% (39.09%)

VetoTileCut_p7

84.37% (98.77%)

4.384% (69.94%)

TileEdgeCut_p7

84.29% (99.91%)

4.312% (98.35%)

ALEX

SIG

BKG

RibbonCut_p7

99.6% (99.6%) – 121159

89.25% (89.25%) – 159950

CornerCut_p7

98.29% (98.68%) – 119564

85.81% (96.15%) – 153790

BasicTileCut_p7

92.64% (94.25%) – 112691

13.95% (16.26%) – 25009

TotalTileEnergyCut_p7

86.39% (93.25%) – 105089

7.007% (50.21%) – 12558

VetoTileCut_p7

84.8% (98.16%) – 103159

4.951% (70.66%) – 8873

TileEdgeCut_p7

84.74% (99.93%) – 103084

4.884% (98.65%) – 8753

  • No labels