00001
00002
00003
00004
00005
00006
00007
00008 #ifndef DEMOMCFILTER
00009 #define DEMOMCFILTER
00010
00011 #include "JobControl/JobCModule.h"
00012 class REROOT_NeuKin;
00013
00014 class DemoMCFilter : public JobCModule
00015 {
00016 public:
00017 DemoMCFilter();
00018
00019 const Registry& DefaultConfig() const;
00020
00021 JobCResult Ana(const MomNavigator* mom);
00022 void Config(const Registry& r);
00023 void Report();
00024
00025
00026 void HandleCommand(JobCommand* cmd);
00027 void Help();
00028
00029
00030
00031 enum ENeuInt {
00032 kCCnue = 0x0001,
00033 kCCnuebar = 0x0002,
00034 kCCnumu = 0x0004,
00035 kCCnumubar = 0x0008,
00036 kCCnutau = 0x0010,
00037 kCCnutaubar = 0x0020,
00038 kNC = 0x0040,
00039 kAllNuInt = 0xFFFF
00040 };
00041 typedef int NuInt_t;
00042
00043
00044 enum Emode {
00045 kElastic = 0x0001,
00046 kResonant = 0x0002,
00047 kDIS = 0x0003,
00048 kAllMode = 0xFFFF
00049 };
00050 typedef int Mode_t;
00051
00052 void SetNuInt(NuInt_t i);
00053 void SetNuMode(Mode_t i);
00054
00055 void SetEnuMin(double e);
00056 void SetEnuMax(double e);
00057
00058 void SetYmin(double y);
00059 void SetYmax(double y);
00060
00061 void SetPrint(bool doPrint=true);
00062
00063 private:
00064 NuInt_t GetNuInt(const REROOT_NeuKin* nukin);
00065 Mode_t GetMode(const REROOT_NeuKin* nukin);
00066 double GetEnu(const REROOT_NeuKin* nukin);
00067 double GetY(const REROOT_NeuKin* nukin);
00068 void Print(const REROOT_NeuKin* nukin);
00069
00070 private:
00071 double fEnuMin;
00072 double fEnuMax;
00073 double fYmin;
00074 double fYmax;
00075 int fNuIntSelect;
00076 int fModeSelect;
00077 bool fDoPrint;
00078 };
00079
00080 #endif // DEMOMCFILTER
00081