00001
00002 #pragma once
00003 #include "PATInterfaces/SystematicVariation.h"
00004 #include <unordered_map>
00005
00006 namespace InDet {
00007
00008 enum TrackSystematic {
00009
00010 TRK_RES_D0_MEAS,
00011 TRK_RES_Z0_MEAS,
00012 TRK_RES_D0_MEAS_UP,
00013 TRK_RES_Z0_MEAS_UP,
00014 TRK_RES_D0_MEAS_DOWN,
00015 TRK_RES_Z0_MEAS_DOWN,
00016 TRK_RES_D0_DEAD,
00017 TRK_RES_Z0_DEAD,
00018
00019 TRK_BIAS_D0_WM,
00020 TRK_BIAS_Z0_WM,
00021 TRK_BIAS_QOVERP_SAGITTA_WM,
00022
00023 TRK_FAKE_RATE_LOOSE,
00024 TRK_FAKE_RATE_TIGHT,
00025
00026
00027 TRK_EFF_LOOSE_GLOBAL,
00028 TRK_EFF_LOOSE_IBL,
00029 TRK_EFF_LOOSE_PP0,
00030 TRK_EFF_LOOSE_PHYSMODEL,
00031 TRK_EFF_TIGHT_GLOBAL,
00032 TRK_EFF_TIGHT_IBL,
00033 TRK_EFF_TIGHT_PP0,
00034 TRK_EFF_TIGHT_PHYSMODEL,
00035
00036 TRK_EFF_LOOSE_TIDE
00037 };
00038
00039
00040
00041 static std::unordered_map< InDet::TrackSystematic, CP::SystematicVariation, std::hash<int> >
00042 TrackSystematicMap = {
00043 #define DEF_SYST( NAME ) {TRK_##NAME, CP::SystematicVariation("TRK_" #NAME )}
00044 DEF_SYST( RES_D0_MEAS ),
00045 DEF_SYST( RES_Z0_MEAS ),
00046 {TRK_RES_D0_MEAS_UP, CP::SystematicVariation("TRK_RES_D0_MEAS", 1)},
00047 {TRK_RES_Z0_MEAS_UP, CP::SystematicVariation("TRK_RES_Z0_MEAS", 1)},
00048 {TRK_RES_D0_MEAS_DOWN, CP::SystematicVariation("TRK_RES_D0_MEAS", -1)},
00049 {TRK_RES_Z0_MEAS_DOWN, CP::SystematicVariation("TRK_RES_Z0_MEAS", -1)},
00050 DEF_SYST( RES_D0_DEAD ),
00051 DEF_SYST( RES_Z0_DEAD ),
00052 DEF_SYST( BIAS_D0_WM ),
00053 DEF_SYST( BIAS_Z0_WM ),
00054 DEF_SYST( BIAS_QOVERP_SAGITTA_WM ),
00055 DEF_SYST( FAKE_RATE_LOOSE ),
00056 DEF_SYST( FAKE_RATE_TIGHT ),
00057 DEF_SYST( EFF_LOOSE_GLOBAL ),
00058 DEF_SYST( EFF_LOOSE_IBL ),
00059 DEF_SYST( EFF_LOOSE_PP0 ),
00060 DEF_SYST( EFF_LOOSE_PHYSMODEL ),
00061 DEF_SYST( EFF_TIGHT_GLOBAL ),
00062 DEF_SYST( EFF_TIGHT_IBL ),
00063 DEF_SYST( EFF_TIGHT_PP0 ),
00064 DEF_SYST( EFF_TIGHT_PHYSMODEL ),
00065 DEF_SYST( EFF_LOOSE_TIDE )
00066 #undef DEF_SYST
00067 };
00068
00069
00070 }
00071