Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members  

GRBpulse.h

00001 
00012 #ifndef GRB_PULSE_H
00013 #define GRB_PULSE_H
00014 
00015 #include <vector>
00016 
00017 class HepRandomEngine;
00018 
00019 
00020 
00021 class GRBpulse
00022 {
00023 public:
00024     
00028     GRBpulse();
00029     
00033     ~GRBpulse();
00034 
00035     
00036 
00037     // Accessors
00038     const std::vector<double> &tmax()  const            { return m_tmax; }
00039     const std::vector< std::vector<double> > &pulse()   { return m_pulse; }
00040     const std::vector<long>   &nphotpul() const         { return m_nphotpul; }
00041     double univFWHM() const                             { return m_univFWHM; }
00042     
00043 
00044 
00048     long data(HepRandomEngine *engine, const double ethres, const long nphoton, 
00049         const int npuls, const double duration);
00050     
00051 private:
00052     
00053     // Accessors
00054     const std::vector<double> &amplitude() const        { return m_amplitude; }
00055     const std::vector<double> &tdiff() const            { return m_tdiff; }
00056     const std::vector<double> &sigma()  const           { return m_sigma; }
00057 
00058     
00073     long createSigmaTdiff(HepRandomEngine *engine);
00074     
00078     void fillVector(std::vector<long> &ngtwid) const;
00079     
00083     double getAlpha(const double value) const;
00084     
00090     void getAmplitude(HepRandomEngine *engine, const int npuls);
00091     
00095     void getNphotpul(const long nphoton, const int npuls);
00096     
00100     void getPulse(const int npuls);
00101     
00105     void getTmax(HepRandomEngine *engine, const int npuls, const double duration);
00106     
00110     long index(HepRandomEngine *engine, const long diff, const long minval, 
00111         const std::vector<long> &in) const;
00112     
00116     void pickWidth(HepRandomEngine *engine, const double ethres, 
00117         const double duration);
00118     
00131     void universalWidth(HepRandomEngine *engine, const double ethres, 
00132         const double duration, const long diff, const long minval, 
00133         const std::vector<long> &in, const std::vector<double> &v);
00134     
00135     
00136     // Data Members
00137     std::vector<double>                 m_amplitude;
00138     std::vector<double>                 m_tdiff;
00139     std::vector<double>                 m_tmax;
00140     std::vector<double>                 m_sigma;
00141     std::vector< std::vector<double> >  m_pulse;
00142     std::vector<long>                   m_nphotpul;
00143     double                              m_univFWHM;
00144 };
00145 
00146 #endif // GRB_PULSE_H

Generated on Mon Jan 27 11:43:32 2003 by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001