00001
00002
00004 #ifndef __InjGen__
00005 #define __InjGen__
00006
00007 #include "TRandom3.h"
00008 #include "Segments.h"
00009 #include "InjTre.h"
00010 #include "TMath.h"
00011
00012 using namespace std;
00013
00014 class InjGen : public InjTre{
00015
00016 public:
00017
00018 InjGen(Segments *aInSegments, const int aInjType, const double aInjSpacing, const int aVerbose=0);
00019 virtual ~InjGen();
00020
00021
00022 int GenerateInjections(void);
00023
00024
00025 bool SetAmplitudeMode(const string aMode="LOG");
00026 bool SetAmplitudeRange(const double aMin=1e-24, const double aMax=1e-18);
00027 bool SetSigmaMode(const string aMode="UNIFORM");
00028 bool SetSigmaRange(const double aMin=0.01, const double aMax=0.02);
00029 bool SetFrequencyMode(const string aMode="LOG");
00030 bool SetFrequencyRange(const double aMin=30, const double aMax=2048);
00031 bool SetEccentricityMode(const string aMode="UNIFORM");
00032 bool SetEccentricityRange(const double aMin=0, const double aMax=1);
00033 bool SetPolarizationMode(const string aMode="UNIFORM");
00034 bool SetPolarizationRange(const double aMin=0, const double aMax=2*TMath::Pi());
00035
00036 protected:
00037
00038
00039 Segments *InSegments;
00040 double InjSpacing;
00041
00042
00043 TRandom3 *rand;
00044
00045
00046 double LiveTime;
00047
00048
00049 double GetAmplitude(void);
00050 double ampMin, ampMax;
00051 int ampMode;
00052
00053
00054 double GetSigma(void);
00055 double sigmaMin, sigmaMax;
00056 int sigmaMode;
00057
00058
00059 double GetFrequency(void);
00060 double f0Min, f0Max;
00061 int f0Mode;
00062
00063
00064 double GetEccentricity(void);
00065 double eccMin, eccMax;
00066 int eccMode;
00067
00068
00069 double GetPolarization(void);
00070 double psiMin, psiMax;
00071 int psiMode;
00072
00073 ClassDef(InjGen,0)
00074 };
00075
00076 #endif
00077
00078