00001 #ifndef QUICK_ANA__DEFINITION_CONF_H
00002 #define QUICK_ANA__DEFINITION_CONF_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #include <QuickAna/Global.h>
00015
00016 #include <string>
00017 #include <vector>
00018
00019 namespace ana
00020 {
00026
00027 struct DefinitionConf
00028 {
00029
00030
00031
00032
00038 public:
00039 StatusCode makeTools (const DefinitionArgs& args,
00040 AnaToolSequence& sequence);
00041
00042
00046 public:
00047 ObjectType defType () const;
00048
00052 public:
00053 void setDefType (ObjectType val_defType);
00054
00055
00060 public:
00061 const std::string& defName () const;
00062
00068 public:
00069 void setDefName (const std::string& val_defName);
00070
00071
00084 public:
00085 std::string wpName () const;
00086
00087
00092 public:
00093 bool firstWP () const;
00094
00098 public:
00099 void setFirstWP (bool val_firstWP);
00100
00101
00106 public:
00107 bool multiWP () const;
00108
00112 public:
00113 void setMultiWP (bool val_multiWP);
00114
00115
00121 public:
00122 static DefinitionConf
00123 makeObjectDefinitionConf (ObjectType type, const std::string& name);
00124
00125
00131 public:
00132 static DefinitionConf
00133 makeIParticleCommonConf (ObjectType type,
00134 const std::vector<std::string>& workingPoints);
00135
00136
00142 public:
00143 static DefinitionConf
00144 makeKinSelectConf (ObjectType type, const std::string& kinSelect);
00145
00146
00152 public:
00153 static DefinitionConf
00154 makeEventSelectBaseConf ();
00155
00156
00162 public:
00163 static DefinitionConf
00164 makeIsDataConf ();
00165
00166
00173 public:
00174 static DefinitionConf
00175 makePileupConf (const std::vector<std::string>& muDataFiles,
00176 const std::vector<std::string>& muMcFiles);
00177
00178
00185 public:
00186 static StatusCode
00187 makeConfigList (std::vector<DefinitionConf>& confList,
00188 const Configuration& config);
00189
00190
00191
00192
00193
00194
00195
00197 private:
00198 ObjectType m_defType = OBJECT_JET;
00199
00201 private:
00202 std::string m_defName;
00203
00205 private:
00206 bool m_firstWP = true;
00207
00209 private:
00210 bool m_multiWP = true;
00211
00212
00223 private:
00224 enum class Mode
00225 {
00227 OBJECT_DEFINITION,
00228
00230 IPARTICLE_COMMON,
00231
00233 KINSELECT,
00234
00236 ISDATA,
00237
00239 EVENTSELECTBASE,
00240
00242 PILEUP
00243 };
00244
00246 private:
00247 Mode m_mode = Mode::OBJECT_DEFINITION;
00248
00251 private:
00252 std::vector<std::string> m_wpNameList;
00253
00255 private:
00256 std::string m_kinSelect;
00257
00259 private:
00260 std::vector<std::string> m_muDataFiles;
00261
00263 private:
00264 std::vector<std::string> m_muMcFiles;
00265
00267 private:
00268 StatusCode makeIParticleCommonTools (DefinitionArgs& args);
00269
00271 private:
00272 StatusCode makeKinSelectTool (DefinitionArgs& args);
00273
00275 private:
00276 StatusCode makeIsDataTool (DefinitionArgs& args);
00277
00279 private:
00280 StatusCode makeEventSelectBaseTool (DefinitionArgs& args);
00281
00283 private:
00284 StatusCode makePileupTool (DefinitionArgs& args);
00285 };
00286 }
00287
00288 #endif