00001
00002
00003
00004
00005
00006
00008 #ifndef FILLPIDFROMTEXT_H
00009 #define FILLPIDFROMTEXT_H
00010 #ifndef JOBCMODULE_H
00011 #include "JobControl/JobCModule.h"
00012 #endif
00013 #include <set>
00014 #include "NueAna/NuePIDHeader.h"
00015
00016 class TxtEntry;
00017
00018
00019 class FillPIDFromText : public JobCModule
00020 {
00021 public:
00022 FillPIDFromText();
00023 ~FillPIDFromText();
00024
00025 public:
00026
00027 JobCResult Reco(MomNavigator* mom);
00028 virtual void BeginJob();
00029 void ReadTextFile();
00030
00031
00032 const Registry& DefaultConfig() const;
00033 void Config(const Registry& r);
00034
00035
00036 private:
00037 int counter;
00038 string fTextFile;
00039 NuePIDHeader::Decider_t fDecider;
00040 std::set<TxtEntry> elist;
00041
00042 int kSelRes;
00043 int kSelFlav;
00044
00045
00046
00047 };
00048
00049 class TxtEntry
00050 {
00051 public:
00052 TxtEntry();
00053 TxtEntry(int r, int sbr, int s, int e);
00054 TxtEntry(int r, int sbr, int s, int e, int f, int rsn);
00055 TxtEntry(int r, int sbr, int s, int e, float l);
00056 ~TxtEntry();
00057
00058 bool operator < (const TxtEntry &e2) const {
00059 if(run<e2.run) return true;
00060 if(run>e2.run) return false;
00061 if(subrun<e2.subrun) return true;
00062 if(subrun>e2.subrun) return false;
00063 if(snarl<e2.snarl) return true;
00064 if(snarl>e2.snarl) return false;
00065 if(event<e2.event) return true;
00066 if(event>e2.event) return false;
00067 return false;
00068 }
00069
00070 bool operator == (const TxtEntry &e2) const {
00071 if(run==e2.run&&subrun==e2.subrun&&snarl==e2.snarl&&event==e2.event) return true;
00072 return false;
00073 }
00074
00075 int run;
00076 int subrun;
00077 int snarl;
00078 int event;
00079
00080 int flav;
00081 int res;
00082 float like;
00083 };
00084
00085 #endif // FILLPIDFROMTEXT_H