00001 #ifndef QUICK_ANA__GLOBAL_H
00002 #define QUICK_ANA__GLOBAL_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 class StatusCode;
00016
00017 #ifndef ROOTCORE
00018 class StoreGateSvc;
00019 #endif
00020
00021 namespace asg
00022 {
00023 #ifdef ROOTCORE
00024 class SgTEvent;
00025 #endif
00026 }
00027
00028 namespace xAOD
00029 {
00030 #ifdef ROOTCORE
00031 class TEvent;
00032 class TStore;
00033 #endif
00034 }
00035
00036 namespace CP
00037 {
00038 class SystematicSet;
00039 }
00040
00041 namespace ana
00042 {
00043 template<class T> struct EnumSize;
00044
00045
00048 enum AnalysisStep
00049 {
00051 STEP_RETRIEVE,
00052
00054 STEP_SELECT_INIT,
00055
00057 STEP_PILEUP_REWEIGHT,
00058
00060
00061 STEP_PRECORRECT,
00062
00064 STEP_CORRECT,
00065
00068 STEP_SPLIT_SELECT,
00069
00071 STEP_KINSELECT,
00072
00074 STEP_SELECT,
00075
00078 STEP_SUPER_SELECT,
00079
00081 STEP_OVERLAP_REMOVAL,
00082
00084 STEP_TRIGGER,
00085
00088 STEP_SPREAD_SELECT,
00089
00091 STEP_MET,
00092
00095 STEP_WEIGHT,
00096
00098 STEP_ANALYSIS
00099 };
00100
00102 enum ObjectType
00103 {
00104 OBJECT_EVENTINFO,
00105 OBJECT_EVENT_SELECT,
00106 OBJECT_JET,
00107 OBJECT_FAT_JET,
00108 OBJECT_ELECTRON,
00109 OBJECT_PHOTON,
00110 OBJECT_MUON,
00111 OBJECT_TAU,
00112 OBJECT_MET,
00113 OBJECT_MET2,
00114 OBJECT_OVERLAP_REMOVAL,
00115 OBJECT_TRIGGER,
00116 OBJECT_NONE
00117 };
00118
00119 template<> struct EnumSize<ObjectType>
00120 {
00121 static const unsigned size = unsigned (OBJECT_NONE) + 1;
00122
00125 static const unsigned dataSize = unsigned (OBJECT_OVERLAP_REMOVAL);
00126 };
00127
00129 typedef char SelectType;
00130
00131 class AnaTool;
00132 template<class XAODContainer> class AnaToolCorrect;
00133 class AnaToolRetrieve;
00134 template<class XAODContainer> class AnaToolSelect;
00135 class AnaToolSelectAll;
00136 class AnaToolSelectCombine;
00137 class AnaToolSelectSpread;
00138 class AnaToolSequence;
00139 template<class XAODContainer> class AnaToolWeight;
00140 struct Configuration;
00141 class DefinitionArgs;
00142 struct DefinitionConf;
00143 class DefinitionMaker;
00144 class EventData;
00145 class EventObjects;
00146 class IAnaTool;
00147 class IEventObjects;
00148 class IQuickAna;
00149 class IToolScheduler;
00150 class InternalConfiguration;
00151 class IsolationBase;
00152 class KinObjectSelect;
00153 class KinSelectTool;
00154 struct ObjectTypeInfo;
00155 class OptimizedObjects;
00156 class OptimizedScheduler;
00157 class OptimizedStore;
00158 class OptimizedTool;
00159 class QuickAna;
00160 enum class SelectionChoice;
00161 class SelectionCut;
00162 class SelectionData;
00163 enum class SelectionStep;
00164 class ToolScheduler;
00165
00167 #ifdef ROOTCORE
00168 typedef asg::SgTEvent StoreType;
00169 #else
00170 typedef StoreGateSvc StoreType;
00171 #endif
00172
00173 #ifdef ROOTCORE
00174 class ELExample;
00175 class ValidationEL;
00176 class ValidationHists;
00177 #endif
00178 }
00179
00180 #define QUICK_ANA_JOIN_STR(a,b) QUICK_ANA_JOIN_STR_HIDDEN(a,b)
00181 #define QUICK_ANA_JOIN_STR_HIDDEN(a,b) a ## b
00182
00183
00184 #endif