Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 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. Implementing this energy selection should be sufficient for the first stepAdditionally, 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:

...

The basic event samples I've been using come from the calibration data sets that Johan has produced. For right now this isstandard Pass8 MC data sets with overlays corresponding to GR-v19r4p1gr13.

Code Block
#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

...

Code Block
 /users/lbaldini/MeritUtils/ 

Prefilter Definition

Code Block

# 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

Code Block

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)",
    #"RibbonCut_p7":"(AcdTkr1RibbonActDistENorm > -40  && Tkr1SSDVeto < 3 &&  AcdTkr1RibbonActDistMaxTileEnergy  > .04) || (AcdTkr1RibbonDist > -1/(CTBBestEnergy/100)  && Tkr1SSDVeto < 2)",
    "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)",
    #"VetoTileCut_p7":"(AcdTkrVActiveDistENorm > -100 && AcdActDistTileEnergy /sqrt(max(1., CTBBestLogEnergy-3.5)) > .9 +.15* TkrVSSDVeto) || (abs(AcdTkrVActiveDistENorm) < 15 && AcdActDistTileEnergy > .25 && TkrVSSDVeto < 2)",
    "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:

Cut

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