...
- 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 |