00001
00002
00003
00004
00005
00006
00007
00009 #ifndef PHOTONTRANSPORTER_H
00010 #define PHOTONTRANSPORTER_H
00011
00012
00013 #include "Config/Config.h"
00014 #include "Config/Param.h"
00015 #include "EventDataModel/EventHandle.h"
00016
00017 #include <TRandom3.h>
00018
00019 namespace photrans {
00020 class PhotonTransporter
00021 {
00022 public:
00023 PhotonTransporter();
00024 virtual ~PhotonTransporter();
00025
00026 virtual bool SeedOnEvent(const edm::EventHandle& evt);
00027 void SetSeed(unsigned int i){ pRandom->SetSeed(i); }
00028
00029 protected:
00030 unsigned int GeneratePoisson(const double r) const {
00031 return pRandom->Poisson(r); }
00032 unsigned int GenerateFlat(const unsigned int max_value) const {
00033 return pRandom->Integer(max_value); }
00034
00035 TRandom* pRandom;
00036
00037 };
00038 }
00039
00040 #endif // PHOTONTRANSPORTER_H
00041