source: Sophya/trunk/Cosmo/RadioBeam/brsrc.h@ 3936

Last change on this file since 3936 was 3192, checked in by legoff, 19 years ago

input file read with DVcards by treccyl.cc

and by multiCylinders(char* filename)

using real units (meter and GHz)
using _ for member variables (e.g. x_)

File size: 2.0 KB
Line 
1#ifndef BRSOURCE_H
2#define BRSOURCE_H
3
4#include "machdefs.h"
5#include "sopnamsp.h"
6#include "tvector.h"
7#include "ntuple.h"
8
9/*
10 Projet BAORadio / HSHS
11 Programme de simulation pour reconstruction de lobe radio.
12 Reconstruction de lobe a partir de plusieurs cylindres
13
14 R. Ansari - LAL Sep 2006
15
16*/
17
18//--------------------------------
19// Classe auxiliaire pour generer une liste de sources
20class BRSourceGen {
21public:
22 // Pour fabriquer une liste de ns=3*9*5=135 sources, repartis en 3 frequences (0.1,0.25,0.4)
23 // regulierement repartis en angle X : 9 angX en +/- pas de Pi/12
24 // angle Y : 5 angY en +/- pas de Pi/3000
25 BRSourceGen(); // fabrique un pattern fixe de 20 sources
26
27 // Generation d'une liste de source aleatoirement reparties en freq,angX,angY
28 // @ lambda ~ 0.5 m et D = 50 m , limite de diffraction ~ pi/300
29 BRSourceGen(int ns, double maxangXrad=M_PI/3., double maxangYrad=M_PI/60.,
30 double minfreq=0.05, double minamp=0.3, double maxamp=1.5);
31
32 // Generation de nsf sources pour chaque frequence f[k], reparties aleatoirement en angX,Y
33 BRSourceGen(vector<double> f, int nsf,
34 double maxangXrad=M_PI/3., double maxangYrad=M_PI/500.,
35 double minfreq=0.05, double minamp=0.3, double maxamp=1.5);
36
37 // Pour relire les sources depuis un fichier
38 BRSourceGen(string ppfname);
39
40 inline int NbSources() { return freq.Size(); }
41
42 void WritePPF(string ppfname);
43 void ReadPPF(string ppfname);
44
45 void Print(ostream& os);
46
47 // Retourne la liste des sources sous forme de NTuple
48 // freq0= frequence de base qui s'ajoute aux freq[k]
49 NTuple Convert2Table(double freq0=0.);
50
51//private:
52 //-------- Variables / objets membres
53 Vector freq; // frequence des sources
54 Vector amp; // amplitude des sources
55 Vector angX; // direction des sources en radian, selon l'axe X=N-S : kx=sin(ang)
56 Vector angY; // direction des sources selon Y=E-O : ky=sin(angY)
57
58 Vector phase; // Phase des sources (choisi aleatoirement pour le moment)
59};
60
61
62
63#endif
Note: See TracBrowser for help on using the repository browser.