Logo Coherent WaveBurst  
Reference Guide
Logo
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
cwb_draw_antpat.C
Go to the documentation of this file.
1 // draw the network antenna pattern (read config from the user_parameters.C file) : used with the cwb_draw_antpat
2 {
3 
4  #define RESOLUTION 2
5  #define COORDINATES "Geographic"
6  #define WORLD_MAP_DIR "$CWB_GWAT/data/"
7 
8  // polarization=0 -> |Fx| DPF
9  // polarization=1 -> |F+| DPF
10  // polarization=2 -> |Fx|/|F+| DPF
11  // polarization=3 -> sqrt((|F+|^2+|Fx|^2)/nIFO) DPF
12  // polarization=4 -> |Fx|^2 DPF
13  // polarization=5 -> |F+|^2 DPF
14  // polarization=6 -> Fx only with 1 detector
15  // polarization=7 -> F+ only with 1 detector
16  // polarization=8 -> F1x/F2x only with 2 detectors
17  // polarization=9 -> F1+/F2+ only with 2 detectors
18  // polarization=10 -> sqrt(|F1+|^2+|F1x|^2)/sqrt(|F2+|^2+|F2x|^2) only with 2 detectors
19  // polarization=11 -> The same as (10) but averaged over psi only with 2 detectors
20 
21 
22  bool save_plot=false;
23  int polarization=3;
24  if(gSystem->Getenv("CWB_ANTPAT_POLARIZATION")!=NULL) {
25  TString cwb_antpat_polarization=TString(gSystem->Getenv("CWB_ANTPAT_POLARIZATION"));
26  if(cwb_antpat_polarization.CompareTo("")!=0) {
27  if(!cwb_antpat_polarization.IsFloat()) {cout<< "Error : CWB_ANTPAT_POLARIZATION is not a number" << endl;exit(1);}
28  polarization=cwb_antpat_polarization.Atoi();
29  }
30  }
31  if(gSystem->Getenv("CWB_ANTPAT_SAVE_PLOT")!=NULL) {
32  TString cwb_save_plot=TString(gSystem->Getenv("CWB_ANTPAT_SAVE_PLOT"));
33  if(cwb_save_plot.CompareTo("")!=0) {
34  if(!cwb_save_plot.IsFloat()) {cout<< "Error : CWB_ANTPAT_SAVE_PLOT is not a number" << endl;exit(1);}
35  if((cwb_save_plot.Atoi()==0)||(cwb_save_plot.Atoi()==1)) save_plot=cwb_save_plot.Atoi();
36  }
37  }
39  if(gSystem->Getenv("CWB_ANTPAT_PROJECTION")!=NULL) {
40  cwb_antpat_projection=TString(gSystem->Getenv("CWB_ANTPAT_PROJECTION"));
41  if(cwb_antpat_projection.Contains("rect")) cwb_antpat_projection="";
42  }
43 
44  double rad2deg = 180./TMath::Pi();
45  double deg2rad = TMath::Pi()/180.;
46 
48 
49  gskymap* gSM = gNET->GetGskymap();
50  gSM->SetOptions(cwb_antpat_projection,COORDINATES,RESOLUTION/2);
51 
53  for(int n=0; n<nIFO; n++) ifos[n]=ifo[n];
54  char ifostr[64]="";
55  for(int n=0; n<nIFO; n++) sprintf(ifostr,"%s %s",ifostr,ifo[n]);
56  cout << "Network : " << ifostr << endl;
57 
58  TString world_map = gSystem->ExpandPathName(WORLD_MAP_DIR);
59  gSM->SetWorldMapPath(world_map.Data());
60  gSM->SetWorldMap();
61 
62  TH2D* h2 = (TH2D*)gSM->GetHistogram();
63  h2->GetXaxis()->SetTitleSize(0.05);
64  h2->GetXaxis()->SetLabelSize(0.05);
65  h2->GetYaxis()->SetTitleSize(0.05);
66  h2->GetYaxis()->SetLabelSize(0.05);
67  h2->GetYaxis()->SetLabelFont(42);
68  h2->GetYaxis()->SetLabelFont(42);
69  h2->GetXaxis()->SetTitleFont(42);
70  h2->GetYaxis()->SetTitleFont(42);
71 
72  if(nIFO>1) h2->GetZaxis()->SetRangeUser(0,1.0);
73  else h2->GetZaxis()->SetRangeUser(0,1.0);
74 
75  if(polarization==2) h2->GetZaxis()->SetRangeUser(0,1.0);
76 
77  detector* pD[3];
78  for(int i=0; i<nIFO; i++) pD[i] = new detector(ifo[i]); // built in detector
79  for(int i=0; i<nIFO; i++) gNET->add(pD[i]);
80 
81  int palette = 0;
82  bool btitle = true;
83  gNET->DrawAntennaPattern(polarization,palette,btitle);
84  gNET->DrawSites(kBlack,2.0);
85  gNET->DrawSitesArms(1000000,kWhite,3.0);
86  gNET->DrawSitesShortLabel(kBlack);
87 
88  if(save_plot) {
89  char ofName[256];
90  sprintf(ofName,"%s/AntPat_%s",dump_dir,data_label);
91 
92  if(polarization==0) sprintf(ofName,"%s%s.png",ofName,"_Fc");
93  if(polarization==1) sprintf(ofName,"%s%s.png",ofName,"_Fp");
94  if(polarization==2) sprintf(ofName,"%s%s.png",ofName,"_Fc_over_Fp");
95  if(polarization==3) sprintf(ofName,"%s%s.png",ofName,"_Sqrt_Fp2_plus_Fc2");
96 
97  cout << "Write : " << ofName << endl;
98  gSM->Print(ofName);
99  exit(0);
100  }
101 }
102 
TH2D * GetHistogram()
Definition: gskymap.hh:120
gskymap * gSM
TString ofName
gnetwork * gNET
size_t add(detector *)
param: detector structure return number of detectors in the network
Definition: network.cc:2528
void DrawSitesArms(double mlength=600000., Color_t lcolor=kBlack, Size_t lwidth=1.0, Style_t lstyle=1)
Definition: gnetwork.cc:295
void DrawAntennaPattern(int polarization=-1, int dpaletteId=0, bool btitle=true, int order=6)
Definition: gnetwork.cc:655
int n
Definition: cwb_net.C:10
#define COORDINATES
TString("c")
int palette
Definition: DrawGnetwork2.C:17
char ifostr[64]
int polarization
i drho i
char ifo[NIFO_MAX][8]
#define nIFO
TString world_map
Definition: DrawGNET.C:16
char data_label[512]
Definition: test_config1.C:160
void DrawSitesShortLabel(Color_t tcolor=kBlack, Size_t tsize=0.052, Font_t tfont=32)
Definition: gnetwork.cc:407
#define RESOLUTION
double deg2rad
double Pi
void DrawSites(Color_t mcolor=kBlack, Size_t msize=2.0, Style_t mstyle=20)
Definition: gnetwork.cc:238
void SetWorldMapPath(TString worldMapPath)
Definition: gskymap.hh:138
TString cwb_antpat_projection
#define WORLD_MAP_DIR
double rad2deg
gskymap * GetGskymap()
Definition: gnetwork.hh:26
void SetWorldMap(bool drawWorldMap=true)
Definition: gskymap.hh:136
char dump_dir[512]
Definition: test_config1.C:156
sprintf(tfres,"(1/%g)x(%g) (sec)x(Hz)", 2 *df, df)
bool btitle
Definition: DrawGnetwork2.C:16
void Print(TString pname)
Definition: gskymap.cc:1104
void SetOptions(TString projection="hammer", TString coordinate="Geographic", double resolution=1, bool goff=false)
Definition: gskymap.cc:66
detector ** pD
TString ifos[60]
exit(0)