The Atwood post-Rome background rejection cuts

The following are extracted from the nodes with the red horizontal bars in Bill's worksheet "BKG_Rejection_DC1"

Inital selection:

This is actually done in a special cut node prceding the above.

AcdActiveDist < -10 &
AcdRibbonActDist < -10

Subsequent rejection according to category

Category additional rejection
Vertex High Cal Tkr1ToTFirst > 200 |
EvtCalETrackDoca > 3.25 |
Tkr1ToTTrAve > 93 |
(AcdDoca < 100 & Tkr1SSDVeto == 0)
Med Cal Tkr1ToTFirst > 200 |
EvtCalETrackDoca > 3.25 |
Tkr1ToTTrAve > 93 |
(AcdDoca < 100 & Tkr1SSDVeto == 0)
Low Cal Tkr1ToTFirst > 4.5 |
Tkr1ToTAve > 3.5 |
AcdTotalEnergy > .25 |
VtxAngle > .4
1 track High Cal
CalLRmsRatio > 5
 
Med Cal Tkr1ToTAve > 3 |
AcdTotalEnergy > 5 |
EvtTkrComptonRatio < 1.
Low Cal Tkr1ToTAve > 3 |
AcdTileCount > 0. |
AcdRibbonActDist > -300 |
EvtTkrComptonRatio < 1.05 |
FilterStatus_HI > 3
 

The definitions of the calorimeter categories are from the post-Rome PSF, defined by the IM string:
    ifelse((CalEnergySum< 3500. | CalTotRLn < 2), ifelse((CalTotRLn < 2 | CalEnergySum < 350),ifelse((CalTotRLn < 2 | CalEnergySum < 5), "NoCal", "LowCal"),"MedCal"),"HighCal")
 

Category Acceptance expression (IM) (equivalent C)
High Cal not[CalEnergySum< 3500. | CalTotRLn < 2] CalEnergySum>= 3500. && CalTotRLn >= 2
Med Cal not[ CalTotRLn < 2 | CalEnergySum < 350 ] CalEnergySum>= 350. && CalTotRLn >= 2
Low Cal not[CalTotRLn < 2 | CalEnergySum < 5] CalEnergySum>= 5. && CalTotRLn >= 2

NOCAL

CalEnergySum < 5 CalEnergySum < 5 || CalTotRLn <2

The VTX/1TKR split is defined by the expression VtxAngle>0


For DC1 only, we are able to avoid evaluating the CT's, since there is little further rejection for photons.

This the above has been implemented in C++ by Luis Reyes, the following code from irfAnalysis/src/PSF.cxx 1.13.(tag v5)

           // background veto calculation, from Luis Reyes
            veto=1.0;
            if(TkrNumTracks>0.0&&GltWord>3.0&&IMcoreProb>0.2){
                if(VtxAngle>0.0){
                  if(EvtEnergySumOpt>3500.0)
                        veto=0.0;
                  if(EvtEnergySumOpt>350.0&&EvtEnergySumOpt<=3500.0)
                        veto=0.0;
                  if(EvtEnergySumOpt<=350.0)
                       if(Tkr1ToTFirst>4.5||Tkr1ToTAve>3.5||AcdTotalEnergy>0.25||VtxAngle>0.4)
                            veto=1.0;
                            else
                               veto=0.0;
                  }
                else{
                    if(EvtEnergySumOpt>3500.0)
                         veto=0.0;
                    if(EvtEnergySumOpt>350.0&&EvtEnergySumOpt<=3500.0)
                         if(Tkr1ToTAve>3.0||AcdTotalEnergy>5.0||EvtTkrComptonRatio<1.0)
                             veto=1.0;
                             else
                               veto=0.0;
                    if(EvtEnergySumOpt<=350.0)
                       if(Tkr1ToTAve>3.0||AcdTileCount>0.0||AcdRibbonActDist>-300.0||EvtTkrComptonRatio<1.05||FilterStatus_HI>3.0)
                            veto=1.0;
                            else
                               veto=0.0;
                  }
            }
   

And finally, code in merit/ClassificationTree that sets IMgammaProb in the merit tuple:

        bool veto=false; // default no veto

        if(VtxAngle>0.0){
            // VERTEX 
            if(EvtEnergySumOpt<=350.0) {
                // LOCAL
                veto= Tkr1ToTFirst > 4.5 
                    || Tkr1ToTAve > 3.5
                    || AcdTotalEnergy > 0.25
                    || VtxAngle>0.4 ;
            }
            // MEDCAL, HICAL: pass
        }
        else{
            // 1 TRACK
            if(EvtEnergySumOpt <= 350.0) {
                // LOCAL
                veto = Tkr1ToTAve > 3.0
                    || AcdTileCount > 0.0
                    || AcdRibbonActDist >-300.0
                    || EvtTkrComptonRatio <1.05
                    || FilterStatus_HI >3.0 ;
            }else if( EvtEnergySumOpt <= 3500.0){
                // MEDCAL
                veto = Tkr1ToTAve >3.0
                    || AcdTotalEnergy >5.0
                    || EvtTkrComptonRatio <1.0 ;
            }
            // HICAL: pass
        }
        return veto;