Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

DemoMCFilter.h

Go to the documentation of this file.
00001 /***********************************************************************
00002   $Id: DemoMCFilter.h,v 1.2 2002/02/17 22:50:21 messier Exp $
00003 
00004   A job module to select certain events based on the MC information
00005 
00006   messier@huhepl.harvard.edu
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   // These are obsolete and will eventually go away
00026   void HandleCommand(JobCommand* cmd);
00027   void Help();
00028 
00029 
00030   // Categories of neutrino interactions modes - selected by flavor
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   // Categories of neutrino interaction modes - selected by cross-section type
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;       // Lower limit on neutrino energies
00072   double fEnuMax;       // Upper limit on neutrino energies
00073   double fYmin;         // Minimum y value to allow
00074   double fYmax;         // Maximum y value to allow
00075   int    fNuIntSelect;  // Which neutrino interactions to select
00076   int    fModeSelect;   // Which interaction modes to select
00077   bool   fDoPrint;      // Print stuff out for each event?
00078 };
00079 
00080 #endif // DEMOMCFILTER
00081 

Generated on Mon Feb 15 11:06:36 2010 for loon by  doxygen 1.3.9.1