After a first look at the AcdV2 cuts applied to Pass8 data, it seems like some cut optimization is in order. Additionally, from discussions with Bill it became obvious that the data sets and prefilters used in that analysis were not optimal. The goal here is to create a framework for designing the 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. Additionally, we would like to show that we can reproduce the ACD cut efficiency found in Pass7
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!
Prefilters are defined in more detail here.
To compare with Bill's Pass7 results, I collected the root files that he was using. I believe that they correspond to the following data sets in the data catalog:
#All Gamma root://glast-rdr//glast/mc/ServiceChallenge/allGamma-GR-v17r31p14-OVL/merit/allGamma-*.root #Background root://glast-rdr//glast/mc/ServiceChallenge/background-GR-v17r31p14-OVL/merit/background-*.root |
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. The results seem very comparable. One possible difference is that IM truncates it's floating point precision.
BILL PASS7 |
SIG |
BKG |
---|---|---|
RibbonCut_p7 |
99.66% (99.66%) |
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%) |
PASS7 |
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 |
These are actually not the final version of the Pass7 ACD cuts. The RibbonCut_p7 and the VetoTileCut_p7 were both expanded slightly...
"RibbonCut_p7":"(AcdTkr1RibbonActDistENorm > -40 && Tkr1SSDVeto < 3 && AcdTkr1RibbonActDistMaxTileEnergy > .04) || (AcdTkr1RibbonDist > -1/(CTBBestEnergy/100) && Tkr1SSDVeto < 2)", "VetoTileCut_p7":"(AcdTkrVActiveDistENorm > -100 && AcdActDistTileEnergy /sqrt(max(1., CTBBestLogEnergy-3.5)) > .9 +.15* TkrVSSDVeto) || (abs(AcdTkrVActiveDistENorm) < 15 && AcdActDistTileEnergy > .25 && TkrVSSDVeto < 2)", |
The net effect on the signal and background efficiency is small...
CUT |
SIG |
BKG |
---|---|---|
TileEdgeCut_p7 |
83.96% (99.96%) – 102135 |
4.755% (99.93%) – 8522 |
and I will use these final Pass 7 cuts in subsequent comparisons with Pass 8 data.
Name |
Individual Selection |
Selection with Respect to Complement |
---|---|---|
RibbonVeto |
|
|
CornerVeto |
|
|
BasicTileVeto |
|
|
TotalTileEnergyVeto |
|
|
TkrVTileVeto |
|
|
TileEdgeVeto |
|
|
Sequential Cuts (Sig) |
Sequential Cuts (Bkg) |
---|---|
|
|
The Pass8 event samples I use come from the standard Pass8 MC data sets with overlays corresponding to GR-v19r4p1gr13.
#All Gamma root://glast-rdr//glast/mc/ServiceChallenge/AG-GR-v19r4p1gr13-FAKEOVL/merit/AG-GR-v19r4p1gr13-OVL-*-merit.root #Background root://glast-rdr//glast/mc/ServiceChallenge/BKG-GR-v19r4p1gr13-OVL/merit/BKG-GR-v19r4p1gr13-OVL-*-merit.root |
We apply the same pass7 cuts to the Pass8 data. As expected, the cuts do not perform as well. Specifically, the BasicTileCut_p7 has lost background rejection power and the TotalTileEnergyCut_p7 has decreased efficiency for signal.
PASS7 |
SIG |
BKG |
---|---|---|
RibbonCut_p7 |
99.01% (99.01%) – 60482 |
89.9% (89.9%) – 50790 |
CornerCut_p7 |
97.99% (98.96%) – 59856 |
86.69% (96.43%) – 48978 |
BasicTileCut_p7 |
92.92% (94.83%) – 56762 |
22.79% (26.29%) – 12875 |
TotalTileEnergyCut_p7 |
82.87% (89.18%) – 50623 |
11.72% (51.42%) – 6620 |
VetoTileCut_p7 |
79.49% (95.91%) – 48555 |
8.284% (70.69%) – 4680 |
TileEdgeCut_p7 |
79.45% (99.95%) – 48533 |
8.273% (99.87%) – 4674 |
Translating the Pass7 cuts to the new Acd2 variable equivalents, we find comparable results. This means that from the ACD precut point of view, we can turn off the old AcdReconAlg without any significant loss of efficiency. As a note, this study uses roughly 15% of the allGamma events and 25% of the background sample.
PASS7 ACD2 |
SIG |
BKG |
---|---|---|
RibbonCut2_p7 |
99.01% (99.01%) – 60482 |
89.9% (89.9%) – 50790 |
CornerCut2_p7 |
97.99% (98.96%) – 59856 |
86.69% (96.43%) – 48978 |
BasicTileCut2_p7 |
92.92% (94.83%) – 56760 |
22.73% (26.22%) – 12843 |
TotalTileEnergyCut2_p7 |
83.05% (89.38%) – 50732 |
11.96% (52.63%) – 6759 |
VetoTileCut2_p7 |
79.64% (95.89%) – 48649 |
8.443% (70.57%) – 4770 |
TileEdgeCut2_p7 |
79.61% (99.95%) – 48627 |
8.433% (99.87%) – 4764 |
Correcting the gamma efficiency of TotalTileEnergy Cut and appending the Cal1ConeCut_p8 at the end. It can be seen that without the Cal1ConeCut, nearly twice as much background sneaks through. The power of the Cal1ConeCut is quite impressive.
PASS7 ACD2 |
SIG |
BKG |
---|---|---|
RibbonCut2_p7 |
99.01% (99.01%) – 60482 |
89.9% (89.9%) – 50790 |
CornerCut2_p7 |
97.99% (98.96%) – 59856 |
86.69% (96.43%) – 48978 |
BasicTileCut2_p7 |
92.92% (94.83%) – 56760 |
22.73% (26.22%) – 12843 |
TotalTileEnergyCut2_p7 |
86.05% (92.61%) – 52566 |
13.42% (59.03%) – 7581 |
VetoTileCut2_p7 |
82.59% (95.98%) – 50452 |
9.709% (72.35%) – 5485 |
TileEdgeCut2_p7 |
82.54% (99.94%) – 50421 |
9.693% (99.84%) – 5476 |
Cal1ConeCut_p8 |
80.34% (97.33%) – 49073 |
4.461% (46.02%) – 2520 |
PASS8 |
SIG |
BKG |
---|---|---|
RibbonVeto_p8 |
99.5% (99.5%) |
89.9% (89.9%) |
CornerVeto_p8 |
98.6% (99.1%) |
86.9% (96.6%) |
Tkr1SigmaVeto_p8 |
93.3% (94.7%) |
22.5% (25.9%) |
TkrSigmaHitVeto_p8 |
88.7% (95%) |
16.6% (73.7%) |
Tkr1ConeVeto_p8 |
83.7% (94.3%) |
10.5% (63.6%) |
Cal1ConeVeto_p8 |
81.7% (97.6%) |
4.96% (47.1%) |
{htmlcomment:hidden} || OLD PASS8 || SIG || BKG || | VetoHit1Cut_p8 | 95.12% (95.12%) -- 58105 | 26.2% (26.2%) -- 14802 | | TotalTileEnergyCut_p8 | 86.53% (90.96%) -- 52855 | 12.83% (48.99%) -- 7251 | | VetoGap1Cut_p8 | 86.36% (99.8%) -- 52750 | 12.65% (98.52%) -- 7144 | | VetoHitCut_p8 | 85.53% (99.05%) -- 52247 | 12.06% (95.34%) -- 6811 | | Cal1ConeCut_p8 | 82.85% (96.86%) -- 50609 | 5.245% (43.5%) -- 2963 | {htmlcomment} |
The power of the Cal1ConeCut comes from the fact that the majority of the residual background is sneaking through the bottom of the TKR. The direction of these events is poorly reconstructed since, especially at high energy, the longest straightest track will often come from back-splash. On the other hand, the CAL axis will point along the direction of the incident particle causing the ACD to query the proper tiles.
P7 Residual BKG |
P8 Residual BKG (P7 CUTS) |
P8 Residual BKG w/CAL (P7 CUTS) |
P8 CAL CUT |
---|---|---|---|
|
|
|
Name |
Individual Selection |
Selection with Respect to Complement |
---|---|---|
RibbonVeto |
|
|
CornerVeto |
|
|
Tkr1SigmaVeto |
|
|
TkrSigmaHitVeto |
|
|
Tkr1ConeVeto |
|
|
Cal1ConeVeto |
|
|
Sequential Selections (Sig) |
Sequential Selections (Bkg) |
---|---|
|
|