00001 #ifndef I3NUGENWEIGHTINGMODULE 00002 #define I3NUGENWEIGHTINGMODULE 00003 00004 #include <icetray/I3Module.h> 00005 #include <neutrinoflux/NeutrinoFlux.h> 00006 #include <dataclasses/I3Map.h> 00007 00022 class I3NuGenWeightingModule : public I3Module 00023 { 00024 public: 00028 I3NuGenWeightingModule(const I3Context& context); 00029 00033 void Configure(); 00034 00038 void Physics(I3FramePtr frame); 00039 00043 void Finish(); 00044 00045 private: 00046 00048 std::vector<std::string> neutrino_flux_services_; 00049 00051 string weight_map_name_; 00053 string mc_tree_name_; 00054 00056 vector< shared_ptr<NeutrinoFlux> > model_list_; 00057 00059 double events_so_far_; 00061 I3MapStringDouble weight_sum_; 00062 }; 00063 00064 #endif