00001 #ifndef QUICK_ANA__OPTIMIZER_OBJECTS_H
00002 #define QUICK_ANA__OPTIMIZER_OBJECTS_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include <QuickAna/Global.h>
00021
00022 #include <QuickAna/Global.h>
00023
00024 #include <PATInterfaces/SystematicSet.h>
00025 #include <QuickAna/IEventObjects.h>
00026
00027 namespace ana
00028 {
00029
00035 class OptimizedObjects : public IEventObjects
00036 {
00037
00038
00039
00040
00044 public:
00045 void testInvariant () const;
00046
00047
00053 public:
00054 OptimizedObjects (OptimizedStore *val_master,
00055 const CP::SystematicSet& val_systematics);
00056
00057
00064 public:
00065 StatusCode prepare () const;
00066
00067
00073 public:
00074 bool passSelection () const;
00075
00076
00077
00078
00079
00080
00081
00089 public:
00090 virtual void *getVoid (ObjectType type) const override;
00091
00092
00101 public:
00102 virtual StatusCode addCopy (ObjectType type, const std::string& name) override;
00103
00104
00111 public:
00112 virtual StatusCode addNew (ObjectType type) override;
00113
00114
00119 public:
00120 virtual float eventWeight () const override;
00121
00122
00126 public:
00127 const CP::SystematicSet& systematics () const;
00128
00129
00136 public:
00137 void fillEventData (const CP::SystematicSet& sys,
00138 EventData& eventData) const;
00139
00140
00141
00142
00143
00144
00145
00147 private:
00148 OptimizedStore *m_master;
00149
00151 private:
00152 std::size_t m_index [ObjectTypeInfo::numTypes];
00153
00155 private:
00156 std::size_t m_inputIndex [ObjectTypeInfo::numTypes];
00157
00159 private:
00160 CP::SystematicSet m_systematics;
00161
00162 friend class OptimizedStore;
00163 };
00164 }
00165
00166 #endif