Introduction
I've gone back to Eric's old page with the hope of picking up where he left off. Of course, this leads to the always enjoyable task of replicating the work that he has already done. The working directory for the previous analysis is:
/afs/slac/u/ek/echarles/vol2/glast_workdirs/GR_v15r50p3
From there, I have been able to more or less reconstruct the analysis that Eric was performing. Building my own version of GR v15r50p3, I used the runme.csh and runme_ag.csh scripts (with minor modifications) in order to generate a set of background and allGamma MC. Key points about these MC simulations:
- The bkg sims are on orbit using a mix of particle types...
- Other ???
Looking in gamma_ana.txt, I found the exact cuts that Eric was using. Namely, the prefilters that were being applied before the cut efficiencies were evaluated. I've listed them here for completeness. One slightly troubling detail is the dependence on CTBCore > 0.1 (which has not yet been defined in the Pass8 analysis). Another is that the irreducible background filter does not seem to cut out the Earth10 photons which come standard in the background mix.
nSig |
nBkg |
---|---|
~9x10^5 |
~4x10^6 |
Name |
Purpose |
Gamma Efficiency |
Bkg Efficiency |
Cut |
---|---|---|---|---|
IrrFilter |
Remove irreducible bkg events |
0% |
13% |
((McZDir < -.2 && McId < 20) | (McZDir < .1 & McId > 20)) && McAcdZEnter > 100 && McCharge !=0 && McTHPosHitOthers < 6 |
TkrCalCore |
Take only "good" events |
6.2% |
2.2% |
TkrNumTracks>0 && CalEnergyRaw > 5 && CalCsIRLn>4 && CTBCORE>0.1 |
AcdEngFilter |
Only events with moderate signal in the ACD |
0% |
47% |
(AcdTotalEnergy+AcdRibbonEnergy<0.05) && McZDir > 0 |
Prefilter |
Only select relevant events |
6.2% |
1.2% |
(TkrCalCore && !(IrrFilter) && !(AcdEngFilter) |
|
nSig |
nBkg |
---|---|---|
Before Prefilters |
~9x10^5 |
~4x10^6 |
After Prefilters |
55015 |
48614 |
Pass 6 Performance
After applying the prefilters (which cut out a large portion of un-reconstructable events), I apply the ACD background rejection cuts, omitting the CT analysis to the files that I generated with Eric's scripts. I've also listed, in parentheses, the background efficiency removing the Earth10 photon contamination.
Name |
Purpose |
Gamma Efficiency |
Bkg Efficiency |
Cut |
---|---|---|---|---|
BasicTileCut |
Reject events with track pointing at struck tile. |
95.2% |
7.85 (7.37)% |
(Tkr1SSDVeto == 0 && AcdTkr1ActiveDist > -16 && AcdTkr1ActDistTileEnergy > .4) |
RibbonCut |
Reject events with track pointing at struck ribbon. |
94.9% |
7.43 (6.95)% |
(AcdRibbonActDist > -(2 +350/sqrt(max(20,CTBBestEnergy))) && Tkr1SSDVeto < 3 && AcdRibbonEnergy > .05 ) |
TotalTileEnergyCut |
Reject events with excess ACD total energy. |
89.3% |
1.17 (1.04)% |
(AcdTotalTileEventEnergyRatio > .8 || (AcdTkr1ActiveDistENorm > -300 && AcdTotalTileEventEnergyRatio > max(.005, .1 - .0001*AcdTkr1ActiveDistENorm))) |
CornerCut |
Reject events in the corner gap of the ACD. |
88.4% |
1.15 (1.03)% |
((Tkr1LATEdge/1.5) ^ 2 + (AcdCornerDocaENorm - 10)^ 2 < 3800 || (Tkr1LATEdge < 80 && abs(AcdCornerDocaENorm-2) < 4)) && Tkr1SSDVeto < 3 |
TileEdgeCut |
Reject events at tile edges with decreased signal. |
88.3% |
1.15 (1.03)% |
(abs(AcdTkr1ActiveDistENorm) < 15 && AcdTotalTileEventEnergyRatio > .005) |
These numbers seem to agree well with Eric's results. However, it naively seems like there are still some photons sneaking into the bkg sample. This is because selecting !(IrrFilter) will return True if McCharge == 0 (leaving about ~50 gamma events out of ~550). Putting a cut on McCharge, we now get a background rejection of 1.03%.
Pass 7 Performance
Moving on to Pass7, the ACD analysis has be modified a fair amount. I rebuilt GR v17r35p10 and generated roughly the same number of signal and background events (again using Eric allGamma.txt and background.txt scripts). Since Pass7 was just a re-design of the worksheet, the prefilters should have the same efficiency (Irreducible 13%, AcdEngCut 47%) with a slight change in CalTkrCore since it depends on CTBCore (2.2% for bkg and 6.4% for sig) leaving a total of 1.3% of the bkg and 6.4% of the gamma-ray events.
Name |
Purpose |
Gamma Efficiency |
Bkg Efficiency |
Cut |
---|---|---|---|---|
BasicTileCut |
Reject events with track pointing at struck tile. |
94.2% |
6.18% |
Tkr1SSDVeto< 5 && AcdTkr1ActDistTileEnergy > .7 && AcdTkr1ActiveDistENorm> -350 |
RibbonCut |
Reject events with track pointing at struck ribbon. |
93% |
5.85% |
(AcdTkr1RibbonActDistENorm > -40 && Tkr1SSDVeto < 3 && AcdTkr1RibbonActDistMaxTileEnergy > .04) || (AcdTkr1RibbonDist > -1/(CTBBestEnergy/100) && Tkr1SSDVeto < 2) |
TotalTileEnergyCut |
Reject events with excess ACD total energy. |
88.1% |
2.08% |
AcdTotalTileEventEnergyRatio > .8 || AcdTkr1ActiveDistENorm > -200 && AcdTotalTileEventEnergyRatio > max(.005, .1 - .0001*AcdTkr1ActiveDistENorm) * max(1., CTBBestLogEnergy/2.5) |
CornerCut |
Reject events in the corner gap of the ACD. |
86.9% |
2.06% |
((Tkr1LATEdge/1.5)^2 + (AcdCornerDocaENorm - 10)^2 < 6400 && Tkr1SSDVeto < 3) || (Tkr1LATEdge < 300 && abs(AcdCornerDocaENorm-2) < 4) |
TileEdgeCut |
Reject events at tile edges with decreased signal. |
86.9% |
2.06% |
Tkr1SSDVeto == 0 & abs(AcdTkr1ActiveDistENorm) < 10 & AcdTkr1ActDistTileEnergy > .025 |
VetoTileCut |
Reject events with ... |
86.6% |
1.71% |
(AcdTkrVActiveDistENorm > -100 && AcdActDistTileEnergy / sqrt(max(1., CTBBestLogEnergy-3.5)) > .9 +.15* TkrVSSDVeto) || (abs(AcdTkrVActiveDistENorm) < 15 && AcdActDistTileEnergy > .25 && TkrVSSDVeto < 2) |
Pass 8 Performance
Generating merit files off of the GlastRelease-HEAD1.1365 version (which came shortly after GlastRelease-v19r3p4), I started by looking at the effect of the Pass7 ACD cuts. Here the prefilters could have changed (since track finding etc. has changed). Using the same cut definitions, I find fairly similar results with slightly worse background rejection.
Prefilter |
Gamma Efficiency |
Bkg Efficiency |
---|---|---|
IrrFilter |
0% |
12% |
TkrCalCore |
6% |
48% |
AcdEngFilter |
0% |
2.4% |
Total |
6% |
1.6% |
Name |
Gamma Efficiency |
Bkg Efficiency |
---|---|---|
BasicTileCut |
94.2% |
11% |
RibbonCut |
93.3% |
10.6% |
TotalTileEnergyCut |
87.1% |
|
CornerCut |
86.1% |
2.47% |
TileEdgeCut |
86.1% |
2.46% |
VetoTileCut |
85.7% |
2.01% |
Next, I look at implementing the AcdReconV2 cuts that Eric originally suggested. First defining some new AcdReconV2 variables:
"Acd2VetoHit" : "sqrt(Acd2TkrVetoSigmaHit*Acd2TkrVetoSigmaHit + 1.5*Tkr1SSDVeto*Tkr1SSDVeto)", "Acd2VetoHit1" : "sqrt(Acd2Tkr1VetoSigmaHit*Acd2Tkr1VetoSigmaHit + 1.5*Tkr1SSDVeto*Tkr1SSDVeto)", "Acd2VetoGap1" : "sqrt(Acd2Tkr1VetoSigmaGap*Acd2Tkr1VetoSigmaGap + 1.5*Tkr1SSDVeto*Tkr1SSDVeto)",
Applying the same prefilters, here are the cuts and their efficiencies.
Name |
Purpose |
Gamma Efficiency |
Bkg Efficiency |
Cut |
---|---|---|---|---|
VetoHit1Cut |
|
|
|
Acd2VetoHit1 < 5. |
TotalTileEnergyCut |
|
|
|
(Acd2TotalTileEventEnergyRatio > .8 || (Acd2Tkr1ActiveDistENorm > -300 && Acd2TotalTileEventEnergyRatio > max(.005, .1 - .0001*Acd2Tkr1ActiveDistENorm))) |
VetoGap1Cut |
|
|
|
Acd2VetoGap1 < 2. |
VetoHitCut |
|
|
|
Acd2VetoHit < 2. |