NCFS-Pack
A generic (astro)particle physics analysis framework
 
Loading...
Searching...
No Matches
NcAstrolab.h
Go to the documentation of this file.
1#ifndef NcAstrolab_h
2#define NcAstrolab_h
3// Copyright(c) 2007 NCFS/IIHE, All Rights Reserved.
4// See cxx source for full Copyright notice.
5
6#include <math.h>
7
8#include "TROOT.h"
9#include "TTask.h"
10#include "TObjString.h"
11#include "TRotMatrix.h"
12#include "TObjArray.h"
13#include "TArrayI.h"
14#include "TCanvas.h"
15#include "TEllipse.h"
16#include "TLine.h"
17#include "TText.h"
18#include "TLatex.h"
19#include "TH2.h"
20#include "TMarker.h"
21#include "TF1.h"
22#include "TArrayD.h"
23#include "TStyle.h"
24#include "TFile.h"
25#include "TChain.h"
26#include "TLeaf.h"
27#include "TLeafC.h"
28
29#include "TApplication.h"
30#include "TGFrame.h"
31#include "TGComboBox.h"
32#include "TGNumberEntry.h"
33#include "TGButtonGroup.h"
34
35#include "NcTimestamp.h"
36#include "NcPosition.h"
37#include "NcSignal.h"
38#include "NcDevice.h"
39#include "NcRandom.h"
40#include "NcMath.h"
41#include "NcSample.h"
42#include "NcBlocks.h"
43
45
46class NcAstrolab : public TTask,public NcTimestamp
47{
48 public:
49 NcAstrolab(const char* name="User",const char* title="Virtual Lab for general use"); // Constructor
50 virtual ~NcAstrolab(); // Destructor
51 NcAstrolab(const NcAstrolab& t); // Copy constructor
52 virtual TObject* Clone(const char* name="") const; // Make a deep copy and provide its pointer
53 void Data(Int_t mode=1,TString u="deg",Bool_t utc=kTRUE); // Lab info in angular units u
54 void SetLabPosition(Nc3Vector& r); // Set lab position in terrestrial frame
55 void SetLabPosition(Double_t l,Double_t b,TString u="deg"); // Set lab terrestrial position
56 void SetExperiment(TString name,Int_t id=0); // Set position and local frame for the specified experiment
57 void SetLabTimeOffset(Double_t dt); // Set the lab time offset w.r.t. UT
58 NcPosition GetLabPosition() const; // Provide the lab terrestrial position
59 void GetLabPosition(Double_t& l,Double_t& b,TString u="deg") const; // Provide the lab terrestrial position
60 TString GetExperiment() const; // Provide the name of the experiment site
61 Int_t GetLabDetectorId() const; // Provide the detector system identifier
62 Double_t GetLabTimeOffset() const; // Provide the lab time offset w.r.t. UT
63 void SetRandomiser(Int_t iseed,Int_t cnt1=0,Int_t cnt2=0,NcTimestamp* ts=0); // (Re)initialise the internal NcRandom randomisation facility
64 NcRandom* GetRandomiser(Int_t& iseed,Int_t& cnt1,Int_t& cnt2) const; // Provide the current internal NcRandom randomiser parameters
66 Double_t GetLT(); // Provide Local Time (LT) in fractional hours
68 Double_t GetLMST(); // Provide Local Mean Sidereal Time (LMST) in fractional hours
70 Double_t GetLAST(); // Provide Local Apparent Sidereal Time (LAST) in fractional hours
72 void SetLT(Int_t y,Int_t m,Int_t d,Int_t hh,Int_t mm,Int_t ss,Int_t ns=0,Int_t ps=0); // Set specified Local Time
73 void SetLT(Int_t y,Int_t m,Int_t d,Int_t hh,Int_t mm,Double_t s); // Set specified Local Time
74 void SetLT(Int_t y,Int_t m,Int_t d,TString time); // Set specified Local Time
75 void SetLT(TString date,TString time,Int_t mode); // Set specified Local Time
76 void SetLT(Int_t y,Int_t d,Int_t s,Int_t ns=0,Int_t ps=0); // Set Local Time based on elapsed days, secs etc...
77 Double_t ConvertAngle(Double_t a,TString in,TString out) const; // Angular format conversions
78 void PrintAngle(Double_t a,TString in,TString out,Int_t ndig=1,Bool_t align=kFALSE) const;// Print angle in various formats
79 Double_t GetSolidAngle(Double_t thetamin,Double_t thetamax,TString tu,Double_t phimin,Double_t phimax,TString pu) const; // Provide solid angle between the specified boundaries
80 NcSignal* SetSignal(Double_t d,Double_t a,TString au,Double_t b,TString bu,TString frame,NcTimestamp* ts,Int_t jref,TString mode="T",TString name="",Int_t type=0); // Store generic signal
81 NcSignal* SetSignal(Double_t d,Double_t a,TString au,Double_t b,TString bu,TString frame,TString s,Double_t e,Int_t jref,TString mode,TString name="",Int_t type=0);// Store generic signal
82 Int_t GetNRefSignals(Int_t mode=0) const; // Provide the number of stored reference signals
83 Int_t GetNsignals(Int_t type,Int_t mode=0) const; // Provide the number of stored signals of type "type"
84 NcSignal* GetSignal(Double_t& d,Double_t& a,TString au,Double_t& b,TString bu,TString frame,NcTimestamp* ts,Int_t jref,TString mode="T",Int_t type=0); // Provide signal data
85 NcSignal* GetSignal(Double_t& d,Double_t& a,TString au,Double_t& b,TString bu,TString frame,NcTimestamp* ts,TString name,TString mode="T",Int_t type=0); // Provide signal data
86 NcSignal* GetSignal(Double_t& d,Double_t& a,TString au,Double_t& b,TString bu,TString frame,TString s,Double_t e,Int_t jref,TString mode,Int_t type=0); // Provide signal data
87 NcSignal* GetSignal(Double_t& d,Double_t& a,TString au,Double_t& b,TString bu,TString frame,TString s,Double_t e,TString name,TString mode,Int_t type=0);// Provide signal data
88 NcSignal* GetSignal(Int_t jref=0,Int_t type=0); // Provide pointer to a stored signal object
89 NcSignal* GetSignal(TString name,Int_t type=0,NcTimestamp* ts=0); // Provide pointer to a stored signal object
90 Int_t SetSourceAttributes(NcSignal* s,Double_t sigmapos,TString u,Double_t z=-999,Double_t T90=-999);
91 Double_t GetSourceAttributes(NcSignal* s,Float_t* z=0,Float_t* T90=0);
92 Int_t RemoveRefSignal(Int_t j,Int_t compress); // Remove a stored reference signal object
93 Int_t RemoveRefSignal(TString name,Int_t compress); // Remove a stored reference signal object
94 Int_t RemoveSignal(Int_t j,Int_t type,Int_t compress); // Remove the signal object stored at index j
95 Int_t RemoveSignal(TString name,Int_t type,Int_t compress); // Remove the signal object stored with the provided name
96 Int_t RemoveSignals(TString name,Int_t type,Int_t compress); // Remove all signal objects that match the provided name pattern
97 void PrintSignal(TString frame,TString mode,NcTimestamp* ts,Int_t ndig,Int_t jref=0,TString emode="T",Int_t type=0,Bool_t align=kFALSE); // Print stored signal data
98 void PrintSignal(TString frame,TString mode,NcTimestamp* ts,Int_t ndig,TString name,TString emode="T",Int_t type=0,Bool_t align=kFALSE); // Print stored signal data
99 void ListSignals(TString frame,TString mode,Int_t ndig=1,TString emode="T",Int_t nmax=10,Int_t j=-1,Int_t type=-1,NcTimestamp* ts=0,TString name="*"); // List stored signals
100 Int_t GetSignalIndex(TString name,Int_t type=0); // Provide storage index of the signal with the specified name
101 Int_t GetSignalIndex(NcSignal* s,Int_t type); // Provide storage index of the specified signal
102 Double_t GetHourAngle(TString mode,NcTimestamp* ts,Int_t jref=0,Int_t type=0);// Provide the Local Hour Angle in degrees
103
104 void GeoToHeliocentric(Double_t& R,Double_t& B,Double_t& L,NcTimestamp* ts,TString Bu="deg",TString Lu="deg"); // Convert Geocentric ecliptic coordinates into Heliocentric
105 void HelioToGeocentric(Double_t& R,Double_t& B,Double_t& L,NcTimestamp* ts,TString Bu="deg",TString Lu="deg"); // Convert Heliocentric ecliptic coordinates into Geocentric
106
107 void SetLocalFrame(Double_t t1,Double_t p1,Double_t t2,Double_t p2,Double_t t3,Double_t p3); // Define local coordinate frame
108 void GetLocalFrame(Float_t arr[6]); // Provide the axes orientations of the local coordinate frame
110 Double_t GetDifference(Int_t jref,TString au,Double_t& dt,TString tu,Int_t mode=1,Int_t* ia=0,Int_t* it=0); // Provide space and time difference
111 Double_t GetDifference(TString name,TString au,Double_t& dt,TString tu,Int_t mode=1);// Provide space and time difference
112 Double_t GetSeparation(TString name1,TString name2,TString au,Double_t* dt=0,TString tu="s",Int_t mode=1,Double_t* diftheta=0,Double_t* difphi=0); // Provide space and time separation
113 TArrayI* MatchRefSignal(Double_t da,TString au,Double_t dt,TString tu,Int_t mode=1); // Provide space and time matching reference signals
114 void MatchSignals(NcDevice& matches,Double_t da,TString au,Double_t dt,TString tu,Int_t mode=1,Int_t i1=1,Int_t i2=0,Int_t itype=0,Int_t j1=1,Int_t j2=0,Int_t jtype=1); // Provide space and time matching info of signals
115 void MatchSignals(NcDevice& matches,TString name,Double_t da,TString au,Double_t dt,TString tu,Int_t mode=1,Int_t itype=0,Int_t j1=1,Int_t j2=0,Int_t jtype=1); // Provide space and time matching info of signals
116 void SetTimeScramble(Int_t mode,Double_t tmin,Double_t tmax,TF1* frndm=0); // Set time scrambling parameters
117 Int_t GetTimeScramble(Double_t* tmin=0,Double_t* tmax=0,TF1* frndm=0); // Provide time scrambling parameters
118 void SetPositionScramble(Int_t mode,Double_t dmin,Double_t dmax,TF1* df=0,Double_t thmin=0,Double_t thmax=0,TF1* thf=0,Double_t phimin=0,Double_t phimax=0,TF1* phif=0); // Set position scrambling parameters
119 Int_t GetPositionScramble(Double_t* dmin=0,Double_t* dmax=0,TF1* df=0,Double_t* thmin=0,Double_t* thmax=0,TF1* thf=0,Double_t* phimin=0,Double_t* phimax=0,TF1* phif=0); // Get position scrambling parameters
120 void SetMaxDt(Double_t s); // Set maximum time difference (in sec) for GetSignal
121 Double_t GetMaxDt() const; // Provide maximum time difference (in sec) for GetSignal
122 void DisplaySignal(TString frame,TString mode,NcTimestamp* ts,Int_t j=-1,TString proj="ham",Int_t clr=0,TString name=""); // Display stored signal
123 void DisplaySignal(TString frame,TString mode,NcTimestamp* ts,TString name,TString proj="ham",Int_t clr=0,Int_t type=0); // Display stored signal
124 void DisplaySignals(TString frame,TString mode,NcTimestamp* ts,TString proj="ham",Int_t clr=0,Int_t nmax=-1,Int_t j=-1,Int_t type=-1,TString name="*"); // Display all stored signals
125 void SetMarkerSize(Float_t size,Int_t type); // Set size for the marker symbols of the skymaps and related histograms
126 void SetMarkerStyle(Int_t style,Int_t type); // Set style for the marker symbols of the skymaps and related histograms
127 void SetMarkerColor(Int_t color,Int_t type); // Set color for the marker symbols of the skymaps and related histograms
128 void SetCentralMeridian(Int_t mode=0,Double_t phi=0,TString u="deg"); // Set central meridian and orientation for the sky display
129 void SetPhysicalParameter(TString name,Double_t value); // Facility to modify physical parameter values
130 Double_t GetPhysicalParameter(TString name) const; // Provide the (modified) value of a physical parameter
131 Double_t GetPhysicalDistance(Double_t z,TString u="Mpc",Int_t t=1) const; // Provide physical distance of an object with redshift z in a flat universe
132 Double_t GetProperDistance(Double_t z,TString u="Mpc",Int_t t=1) const; // Provide proper distance of an object with redshift z in a flat universe
133 Double_t GetComovingDistance(Double_t z,TString u="Mpc") const; // Provide comoving coordinate distance of an object with redshift z in a flat universe
134 Double_t GetLuminosityDistance(Double_t z,TString u="Mpc") const; // Provide luminosity distance of an object with redshift z in a flat universe
135 Double_t GetLightTravelDistance(Double_t z,TString u="Mpc") const; // Provide light-travel distance of an object with redshift z in a flat universe
136 Double_t GetLightTravelTime(Double_t z) const; // Provide light-travel time of an object with redshift z in a flat universe
137 Double_t GetHubbleParameter(Double_t z,TString u="Mpc") const; // Provide the Hubble parameter for a certain redshift z in a flat universe
138 Double_t GetNuclearMass(Int_t Z,Int_t N,Int_t mode=1) const; // Provide the nuclear mass or binding energy for a nucleus (Z,N)
139 Double_t GetRadiationLength(Double_t Z,Double_t A,Double_t rho=-1) const; // Provide the radiation length for a medium consisting of (averaged) nuclei (Z,A)
140 Double_t GetMeanFreePath(Double_t sigma,Double_t rho,Int_t mode) const; // Provide the mean free path of a high-energy particle passing through a certain medium
141 Double_t GetInteractionProbability(Double_t x,Double_t lambda) const; // Provide the interaction probability of a high-energy particle traveling a distance x in a certain medium
142 Double_t GetInteractionProbability(Double_t x,Double_t sigma,Double_t rho,Int_t mode) const; // Provide the interaction probability of a high-energy particle traveling a distance x in a certain medium
143 Double_t GetSurvivalProbability(Double_t x,Double_t lambda) const; // Provide the survival probability of a high-energy particle traveling a distance x in a certain medium
144 Double_t GetSurvivalProbability(Double_t x,Double_t sigma,Double_t rho,Int_t mode) const; // Provide the survival probability of a high-energy particle traveling a distance x in a certain medium
145 Double_t GetShieldingThickness(Double_t prob,Double_t lambda) const; // Provide the shielding thickness to obtain the specified survival probability for a high-energy particle
146 Double_t GetShieldingThickness(Double_t prob,Double_t sigma,Double_t rho,Int_t mode) const; // Provide the shielding thickness to obtain the specified survival probability for a high-energy particle
147 Double_t GetTargetThickness(Double_t prob,Double_t lambda) const; // Provide the target thickness to obtain the specified interaction probability for a high-energy particle
148 Double_t GetTargetThickness(Double_t prob,Double_t sigma,Double_t rho,Int_t mode) const; // Provide the target thickness to obtain the specified interaction probability for a high-energy particle
149
150 Double_t GetNeutrinoXsection(Int_t mode,Int_t type,Double_t egev,Double_t xscale=1,Double_t* eprimgev=0,Double_t* alpha=0) const; // Provide neutrino cross section
151 Double_t GetNeutrinoAngle(Double_t E,TString u,Int_t mode,TF1* f=0); // Provide the kinematic opening angle between a neutrino and the CC produced corresponding lepton
152 void RandomPosition(Nc3Vector& v,Double_t thetamin,Double_t thetamax,Double_t phimin,Double_t phimax); // Random angular position according to an isotropic solid angle distribution
153 void SmearPosition(Nc3Vector& v,Double_t sigma); // Smear angular position according to the specified angular accuracy
154 void ShiftPosition(Nc3Vector& v,Double_t angle); // Shift the position with the specified angular offset to a random location on a cone around the original position
155 TH1F GetDxHistogram(TH1* hx,Int_t nc,Double_t dxbin=-1,Double_t dxmin=-1,Double_t dxmax=-1,Int_t mode=1,Double_t fact=1); // Provide dx distribution of histogram entries
156 TH1F GetDifHistogram(TH1* hin,Int_t mode,TString s="",TF1* f=0) const; // Construct the differential dy/dx vs. x histogram from a 1D y vs. x histogram
157 TH1F GetCountsHistogram(TF1& spec,Int_t nbins,Double_t xmin, Double_t xmax,Int_t mode,TString s="") const; // Construct the counts (N) vs. x histogram from a 1D differential spectrum dN/dx
158 TH1F GetCountsHistogram(TH1& hin,Int_t mode,TString s="",TF1* fscale=0) const; // Construct the counts (N) vs. x histogram from a 1D differential distribution dN/dx
159 TH1F GetLogHistogram(TH1* hin,Int_t mode,TString s="") const; // Construct the Log10(y) or Ln(y) vs. x histogram from a 1D y vs. x histogram
160 TF1 GetBackgroundRatePDF(Double_t Noff,Double_t Toff,Double_t bmax=-1,Double_t prec=709); // Posterior Bayesian PDF for a background rate
161 TF1 GetSignalRatePDF(Double_t Non,Double_t Ton,Double_t Noff,Double_t Toff,Double_t Ra=1,Double_t Re=1,Double_t smax=-1,Double_t bmax=-1,Double_t prec=709); // Posterior Bayesian PDF for a source signal rate
162 Double_t GetUpperLimit(TF1 pdf,Double_t p); // Provide the "p%" upper limit for the specified PDF
163 Double_t GetUpperLimit(TH1* pdf,Double_t p); // Provide the "p%" upper limit for the specified histogram
164 Double_t GetCredibleInterval(TF1 pdf,Double_t p,Double_t& xlow,Double_t& xup,Int_t n=1000); // Provide the "p%" credible interval for the specified PDF
165 Double_t GetCredibleInterval(TF1 pdf,Double_t p,Float_t& xlow,Float_t& xup,Int_t n=1000); // Provide the "p%" credible interval for the specified PDF
166 Double_t GetCredibleInterval(TH1* his,Double_t p,Double_t& xlow,Double_t& xup); // Provide the "p%" credible interval for the specified histogram
167 Double_t GetCredibleInterval(TH1* his,Double_t p,Float_t& xlow,Float_t& xup); // Provide the "p%" credible interval for the specified histogram
168 Double_t KolmogorovTest(TString mode,TH1* h1,TH1* h2=0,TF1* pdf=0,Double_t nr=1000,TH1F* ksh=0,Int_t ncut=0,Double_t* nrx=0,Int_t mark=1); // Perform a K-S test
169 TH1F GetCumulHistogram(TH1* h,TString name,TString mode="F") const; // Provide the Cumulative Distribution Histogram from an input histogram
170 TH1F GetCumulHistogram(TF1* f,TString name,Int_t nbins,Double_t xmin,Double_t xmax,TString mode="F") const; // Provide the Cumulative Distribution Histogram from an input function
171 void InitDataNames(Int_t dir,TString frame,TString mode="J"); // Initialisation of the input data variable names correspondence table
172 void SetDataNames(TString obsname,TString varname,TString units="1",TString func="none"); // Specification of the input data variable names correspondence table
173 void ListDataNames(); // Listing of the input data variable names correspondence table
174
175 // Facilities for transient burst investigation
176 void SetBurstParameter(TString name,Double_t value); // Specification of a certain transient burst parameter setting
177 NcDevice* GetBurstParameters(); // Provide the device containing all the burst parameter settings
178 void ListBurstParameters() const; // Listing of all the burst parameter settings
179 void LoadInputData(Bool_t src,TString file,TString tree,Int_t date1=0,Int_t date2=0,Int_t nmax=-1,TString type="-"); // Load source (c.q. burst) or observed event data
180 void GenBurstGCNdata(Int_t n,TString name="GRB",Bool_t scale=kFALSE); // Generate fictative burst GCN data
181 void GenBurstSignals(); // Generate detector signals from the stored transient bursts
182 void MatchBurstData(NcDevice& matches,Int_t i1=1,Int_t i2=0,Int_t itype=0,Int_t j1=1,Int_t j2=0,Int_t jtype=1); // Provide Burst and Event data space and time matching info
183 void MatchBurstData(NcDevice& matches,TString name,Int_t itype=0,Int_t j1=1,Int_t j2=0,Int_t jtype=1); // Provide Burst and Event data space and time matching info
184 void ListBurstHistograms() const; // Provide a list of all the stored transient burst histograms
185 void WriteBurstHistograms(TString filename); // Write all stored transient burst histograms to a ROOT output file
186 void MakeBurstZdist(TString file,TString tree,TString name,Int_t nb=200,Float_t zmin=0,Float_t zmax=20); // Make transient burst observed redshift distribution
187 void MakeBurstT90dist(TString file,TString tree,TString name,Int_t nb=50,Float_t xmin=-5,Float_t xmax=5); // Make transient burst observed T90 distribution
188 void MakeBurstSigmaPosdist(TString file,TString tree,TString name,TString u,Int_t nb=900,Float_t xmin=0,Float_t xmax=90); // Make burst observed position uncertainty dist.
189 void MakeBurstEnergydist(Int_t mode,TString file,TString tree,TString name1,TString name2,TString u,Double_t Emin,Double_t Emax,Int_t nb=1000);
190 void MakeBurstEnergydist(Int_t mode,TF1& spec,Double_t Emin,Double_t Emax,Int_t nbins=1000);
191 void MakeBurstEnergydist(Int_t mode,Double_t alpha,Double_t Emin,Double_t Emax,Int_t nbins=1000);
192 void MakeBurstRecoAngresdist(TString file,TString tree,TString name1,TString name2,TString ua,TString name3,TString ud,Double_t Emin,Double_t Emax,Int_t nbe=100,Int_t nba=1000);
193 Double_t GetBurstSignalEnergy(Double_t Emin=-1,Double_t Emax=-1) const;
194 Double_t GetBurstBackgroundEnergy(Double_t Emin=-1,Double_t Emax=-1) const;
195 Double_t GetBurstRecoAngres(Double_t Emin=-1,Double_t Emax=-1,Double_t Amin=0,Double_t Amax=999) const;
196 TH1* GetBurstBayesianSignalRate(Double_t p,Double_t& rlow,Double_t& rup,Int_t n=1000); // Provide transient burst Bayesian signal rate and credible interval
197 Double_t GetBurstLiMaSignificance() const; // Provide the transient burst Li-Ma signal significance
198 void GetBurstBayesianPsiStatistics(TString type,Double_t nr=-1,Int_t ncut=10,Int_t ndt=2,Bool_t zcor=kFALSE,Int_t freq=0); // Provide transient burst Bayesian Psi statistics
199 void GetBurstChi2Statistics(TString type,Int_t ndt=2,Bool_t zcor=kFALSE); // Provide the transient burst Chi-squared statistics
200
201 // Facilities for the SkyMapPanel GUI
202 virtual void SkyMapPanel();
203 void MapLocl(const char* text);
204 void MapLocb(const char* text);
205 void MapUloc(Int_t i);
206 void MapExperiment(Int_t i);
207 void MapLocId(const char* text);
208 void MapLocEnter();
209 void MapDateTime(const char* text);
210 void MapTimeType(Int_t i);
211 void MapLabTS();
212 void MapLabLframeEnter();
213 void MapCinfo(Int_t);
214 void MapTinfo(Int_t);
215 void MapUinfo(Int_t);
216 void MapIname(const char* text);
217 void MapInfo();
218 void MapEa(const char* text);
219 void MapUa(Int_t i);
220 void MapEb(const char* text);
221 void MapUb(Int_t i);
222 void MapEcoord(Int_t i);
223 void MapEtype(Int_t i);
224 void MapEname(const char* text);
225 void MapEnter();
226 void MapRemove();
227 void MapDcoord(Int_t i);
228 void MapProj(Int_t i);
229 void MapMerMode(Int_t i);
230 void MapMerC(const char* text);
231 void MapMerUc(Int_t i);
232 void MapDoptions(Int_t i);
233 void MapNmax(const char* text);
234 void MapNdigs(const char* text);
235 void MapDname(const char* text);
236 void MapMarkSize(const char* text);
237 void MapMarkStyle(Int_t i);
238 void MapMarkColor(Int_t i);
239 void MapMarkType(Int_t i);
240 void MapSolar(Int_t i);
241 void MapEnterSolar();
242 void MapRemoveSolar();
243 void MapList();
244 void MapDraw();
245 void MapClose();
246 void MapExit();
247
248 protected:
249 NcPosition fLabPos; // Position of the lab in the terrestrial longitude-latitude frame
250 TString fExperiment; // The name of the experimental site
251 Int_t fLabId; // The identifier of the detector element
252 Double_t fToffset; // Lab time offset in fractional hours w.r.t. UT
253 Double_t fAxes[6]; // Orientation angles of the local reference frame axes w.r.t. the MRS reference frame
254 TObjArray* fRefs; // Array holding the reference signals
255 TObjArray* fSigs; // Array holding the measured signals
256 ULong64_t fNen[2]; // Counters to record every storage of an unnamed reference c.q. measurement signal
257 TRotMatrix fB;
258 Int_t fBias;
259 TRotMatrix fP;
260 TRotMatrix fN;
261 TRotMatrix fG;
262 Int_t fGal;
263 TRotMatrix fE;
264 TRotMatrix fH;
265 TRotMatrix fL; // Matrix for conversion of horizontal to local-frame coordinates
266 TArrayI* fIndices;
267 Int_t fTscmode; // Time scrambling mode
268 Double_t fTscmin; // Minimal value (in sec.) for time scrambling
269 Double_t fTscmax; // Maximal value (in sec.) for time scrambling
270 TF1* fTscfunc; // Randomisation function for time scrambling
271 Int_t fRscmode; // Position scrambling mode
272 Double_t fDscmin; // Minimal value for scrambling angular difference (in degrees) or vector length
273 Double_t fDscmax; // Maximal value for scrambling angular difference (in degrees) or vector length
274 TF1* fDscfunc; // Randomisation function for angular difference (or vector length) scrambling
275 Double_t fThetascmin; // Minimal value (in degrees) for scrambling local theta coordinate
276 Double_t fThetascmax; // Maximal value (in degrees) for scrambling local theta coordinate
277 TF1* fThetascfunc; // Randomisation function for local theta coordinate scrambling
278 Double_t fPhiscmin; // Minimal value (in degrees) for scrambling local phi coordinate
279 Double_t fPhiscmax; // Maximal value (in degrees) for scrambling local phi coordinate
280 TF1* fPhiscfunc; // Randomisation function for local phi coordinate scrambling
281 NcRandom* fRan; // The randomising facility
282 Double_t fMaxDt; // Maximum time difference (in sec) for GetSignal
283 NcSignal* SetSignal(Nc3Vector* r,TString frame,TString mode,NcTimestamp* ts,Int_t jref,TString name,Int_t type); // Generic signal storage
284 NcSignal* GetSignal(Nc3Vector& r,TString frame,TString mode,NcTimestamp* ts,Int_t jref,Int_t type); // Provide stored signal data
285 Int_t SetSolarSystem(TString name,NcTimestamp* ts,Int_t type=0); // Set c.q. update coordinates for solar system objects
286 void SetBmatrix(); // Set the frame bias matrix
287 void SetPmatrix(NcTimestamp* ts); // Set precession matrix for Julian date jd w.r.t. J2000.
288 void SetNmatrix(NcTimestamp* ts); // Set nutation matrix for Julian date jd w.r.t. J2000.
289 void SetGmatrix(TString mode); // Set the equatorial to galactic conversion matrix
290 void SetEmatrix(NcTimestamp* ts); // Set the equatorial to ecliptic conversion matrix
291 void SetHmatrix(NcTimestamp* ts); // Set the equatorial to horizontal conversion matrix
292 void Precess(Nc3Vector& r,NcTimestamp* ts1,NcTimestamp* ts2); // Correct RA and decl. for earth's precession
293 void Nutate(Nc3Vector& r,NcTimestamp* ts); // Correct RA and decl. for earth's nutation
294
295 // Internal facility for reference signal and/or measurement matching
296 Int_t fSolUpdate; // Flag to update the position of Solar system objects for signal matching
297 Double_t GetSeparation(Int_t i,Int_t j,TString au,Double_t& dt,TString tu,Int_t mode,Int_t bkgpatch,Double_t* diftheta=0,Double_t* difphi=0); // Provide space and time separation
298
299 // The skymap display facilities
300 Int_t fUsMeridian; // Flag to denote the (user) selection of the central meridian and display mode
301 Double_t fMeridian;
302 TString fProj;
303 TCanvas* fCanvas;
304 TH2* fHist[2];
305 TObjArray* fMarkers;
306 Float_t fMarkerSize[4]; // Size of the marker symbols for the skymaps and related histograms
307 Int_t fMarkerStyle[4]; // Style of the marker symbols for the skymaps and related histograms
308 Int_t fMarkerColor[4]; // Color of the marker symbols for the skymaps and related histograms
309 void Project(Double_t l,Double_t b,TString proj,Double_t& x,Double_t& y);// Projection of (l,b) pair
310 void ProjectCylindrical(Double_t l,Double_t b,Double_t& x,Double_t& y); // Cylindrical projection of (l,b) pair
311 void ProjectHammer(Double_t l,Double_t b,Double_t& x,Double_t& y); // Hammer-Aitoff projection of (l,b) pair
312 void ProjectAitoff(Double_t l,Double_t b,Double_t& x,Double_t& y); // Aitoff projection of (l,b) pair
313 void ProjectMercator(Double_t l,Double_t b,Double_t& x,Double_t& y); // Mercator projection of (l,b) pair
314
315 // The variables for the various SkyMapPanel GUI facilities
316 TGMainFrame* fSkyMapPanel;
317 TGNumberEntryField* fMapLabLBI[3];
318 TGComboBox* fMapLabU;
319 TGComboBox* fMapLabE;
320 Double_t fMapLabLocL;
321 Double_t fMapLabLocB;
322 TString fMapLabLocU;
324 Int_t fMapLabId;
325 TGTextEntry* fMapTSdatetime;
326 TGComboBox* fMapTStimetype;
327 TString fMapDate;
328 TString fMapTime;
329 TString fMapTimeType;
330 TString fMapDateTime;
332 Bool_t fMapLabTS;
333 TGNumberEntryField* fMapLabLframe[6];
334 TString fMapCinfo;
335 Int_t fMapTinfo;
336 TString fMapUinfo;
337 TString fMapIname;
338 Double_t fMapEa;
339 TString fMapEua;
340 Double_t fMapEb;
341 TString fMapEub;
342 Int_t fMapEtype;
343 TString fMapEcoord;
344 TString fMapEmode;
345 TString fMapEname;
346 TString fMapDcoord;
347 TString fMapProj;
348 TString fMapDmode;
349 Bool_t fMapDoptions[5];
350 Int_t fMapNmax;
351 Int_t fMapNdigs;
352 TString fMapDname;
353 Bool_t fMapSolar[10];
355 Double_t fMapMerC;
356 TString fMapMerUc;
357 Double_t fMapMarkSize;
361
362 // Some (astro)physical parameters
363 Double_t fSpeedC; // Speed of light in vacuum in m/s
364 Double_t fQe; // Electron charge in C
365 Double_t fMe; // Electron mass in MeV/c^2
366 Double_t fMmu; // Muon mass in MeV/c^2
367 Double_t fMtau; // Tau mass in MeV/c^2
368 Double_t fAmu; // The unified atomic mass unit in MeV/c^2
369 Double_t fMp; // Proton mass in MeV/c^2
370 Double_t fMn; // Neutron mass in MeV/c^2
371 Double_t fMW; // W mass in GeV/c^2
372 Double_t fGammaW; // Full width of W in GeV
373 Double_t fMZ; // Z mass in GeV/c^2
374 Double_t fGammaZ; // Full width of Z in GeV
375 Double_t fAlphaEM; // The electromagnetic fine-structure constant
376 Double_t fFermi; // Fermi coupling constant GF/(hbar*c)^3 in GeV^-2
377 Double_t fPlanck; // The value of the Planck constant (h) in J s
378 Double_t fBoltz; // The value of the Boltzmann constant (k) in J K^-1
379 Double_t fNewton; // The value of the Newton gravitational constant in m^3 kg^-1 s^-2
380 Double_t fGn; // The nominal value of the gravitational acceleration at the Earth surface in m s^-2
381 Double_t fAu; // The Astronomical Unit in m
382 Double_t fPc; // The Parsec in m
383 Double_t fHubble; // The value of the Hubble parameter in km s^-1 Mpc^-1
384 Double_t fOmegaM; // The value of the fractional mass energy density
385 Double_t fOmegaR; // The value of the fractional radiation energy density
386 Double_t fOmegaL; // The value of the fractional vacuum energy density
387 Double_t fOmegaB; // The value of the fractional baryon energy density
388 Double_t fOmegaC; // The value of the fractional cold dark matter energy density
389
390 // Some derived (astro)physical parameters c.q. conversion constants
391 Double_t fHbar; // The value of hbar in MeV s
392 Double_t fHbarc; // The value of the conversion constant hbar*c in MeV fm
393 Double_t fHbarc2; // The value of the conversion constant (hbar*c)^2 in GeV^2 barn
394
395 // Function to parametrize the Neutrino-Lepton kinematic opening angle
397
398 // Actual calculation of the posterior Bayesian probability for background c.q. source signal rates
399 Double_t GetBackgroundRateProb(Double_t* vars,Double_t* pars); // Posterior Bayesian probability for a background rate "b"
400 Double_t GetSignalRateProb(Double_t* vars,Double_t* pars); // Posterior Bayesian probability for a source signal rate "s"
401
402 // Specifications of the data from a ROOT input Tree
403 Int_t fDataDir; // Indicator for arrival (1) or moving (-1) directions
404 TString fDataFrame; // The frame in which coordinates are provided
405 TString fDataMode; // Indicator for equatorial coordinates mode (Mean, True, B1950 or J2000)
406 NcObjMatrix fDataNames; // The correspondence table between physical observables and variable names
407
408 // Storage for transient burst investigations
409 NcDevice* fBurstParameters; // Various parameters describing the transient burst
410 TObjArray fBurstHistos; // Storage of all the produced transient burst histograms
411 NcSample fBurstOnReco; // The On-source reconstructed track data
412 NcSample fBurstOnMatch; // The On-source matching data
413 NcSample fBurstSigReco; // The simulated signal reconstructed track data
414 NcSample fBurstSignal; // The simulated signal events
415 NcSample fBurstOffReco; // The Off-source reconstructed track data
416 NcSample fBurstOffMatch; // The Off-source matching data
417
418 // Internal functions for transient burst investigations
419 void BurstCompensate(Int_t& nmugrb);
420 void InitBurstHistograms(Int_t mode);
421 TH1* GetBurstZdist(TString name,TString type);
422 TH1* GetBurstT90dist(TString name,TString type);
423 TH1* GetBurstSigmaPosdist(TString name,TString type);
424 void MakeBurstDataStats(Int_t mode,Int_t nmugrb=0);
425 void GetBurstDtDistributions(Int_t ndt,TH1F& hisdtOn,TF1& pdfdtOn,TH1F& hisdtOff,TF1& pdfdtOff,Bool_t zcor);
426
427 // Internal functions for the composition of the various sub-panels of the SkyMapPanel GUI
428 virtual void LabLocationPanel(TGCompositeFrame* frame);
429 virtual void TimestampPanel(TGCompositeFrame* frame);
430 virtual void LabLocalFramePanel(TGCompositeFrame* frame);
431 virtual void InfoPanel(TGCompositeFrame* frame);
432 virtual void EntriesPanel(TGCompositeFrame* frame);
433 virtual void MapListOptionsPanel(TGCompositeFrame* frame);
434 virtual void CommandPanel(TGCompositeFrame* frame);
435 void SetMapTS();
436
437 ClassDef(NcAstrolab,43) // Virtual lab to provide (astro)physical parameters, treat data and relate observations with astrophysical phenomena
438};
439#endif
Handling of 3-vectors in various reference frames.
Definition Nc3Vector.h:15
Double_t fMW
Definition NcAstrolab.h:371
void MapMerUc(Int_t i)
void Precess(Nc3Vector &r, NcTimestamp *ts1, NcTimestamp *ts2)
void MapEname(const char *text)
void Nutate(Nc3Vector &r, NcTimestamp *ts)
void MakeBurstRecoAngresdist(TString file, TString tree, TString name1, TString name2, TString ua, TString name3, TString ud, Double_t Emin, Double_t Emax, Int_t nbe=100, Int_t nba=1000)
Double_t fMapMerC
! The GUI entered central meridian location for the Map
Definition NcAstrolab.h:355
void ProjectMercator(Double_t l, Double_t b, Double_t &x, Double_t &y)
Double_t fMeridian
! Central meridian (in rad) for the sky display
Definition NcAstrolab.h:301
Double_t GetTargetThickness(Double_t prob, Double_t lambda) const
Double_t fMp
Definition NcAstrolab.h:369
TRotMatrix fL
Definition NcAstrolab.h:265
virtual void LabLocationPanel(TGCompositeFrame *frame)
void GetBurstBayesianPsiStatistics(TString type, Double_t nr=-1, Int_t ncut=10, Int_t ndt=2, Bool_t zcor=kFALSE, Int_t freq=0)
void MapEnterSolar()
Double_t GetCredibleInterval(TF1 pdf, Double_t p, Double_t &xlow, Double_t &xup, Int_t n=1000)
void SetRandomiser(Int_t iseed, Int_t cnt1=0, Int_t cnt2=0, NcTimestamp *ts=0)
Double_t GetLT()
Double_t GetUpperLimit(TF1 pdf, Double_t p)
Double_t fGammaW
Definition NcAstrolab.h:372
Double_t fSpeedC
Definition NcAstrolab.h:363
TH1F GetDxHistogram(TH1 *hx, Int_t nc, Double_t dxbin=-1, Double_t dxmin=-1, Double_t dxmax=-1, Int_t mode=1, Double_t fact=1)
TString fDataFrame
Definition NcAstrolab.h:404
ULong64_t fNen[2]
Definition NcAstrolab.h:256
Double_t fMapMarkSize
! The GUI entered marker size for the Map
Definition NcAstrolab.h:357
TF1 * fPhiscfunc
Definition NcAstrolab.h:280
void HelioToGeocentric(Double_t &R, Double_t &B, Double_t &L, NcTimestamp *ts, TString Bu="deg", TString Lu="deg")
void MapMarkType(Int_t i)
Int_t GetTimeScramble(Double_t *tmin=0, Double_t *tmax=0, TF1 *frndm=0)
TRotMatrix fP
! Matrix for precession correction
Definition NcAstrolab.h:259
Double_t fHbarc2
Definition NcAstrolab.h:393
Double_t fTscmin
Definition NcAstrolab.h:268
void MapCinfo(Int_t)
void MapEb(const char *text)
Double_t fAlphaEM
Definition NcAstrolab.h:375
void MatchSignals(NcDevice &matches, Double_t da, TString au, Double_t dt, TString tu, Int_t mode=1, Int_t i1=1, Int_t i2=0, Int_t itype=0, Int_t j1=1, Int_t j2=0, Int_t jtype=1)
TString fMapEcoord
! The GUI entered coordinate system of the entry
Definition NcAstrolab.h:343
Int_t SetSolarSystem(TString name, NcTimestamp *ts, Int_t type=0)
Double_t GetLightTravelDistance(Double_t z, TString u="Mpc") const
Double_t fMapLabLocB
! The GUI entered Lab latitude
Definition NcAstrolab.h:321
Double_t fToffset
Definition NcAstrolab.h:252
TString fMapEua
! The GUI entered angular units of a
Definition NcAstrolab.h:339
Double_t fOmegaR
Definition NcAstrolab.h:385
Double_t fThetascmin
Definition NcAstrolab.h:275
Double_t fAmu
Definition NcAstrolab.h:368
Int_t fSolUpdate
Definition NcAstrolab.h:296
void SetBurstParameter(TString name, Double_t value)
void MapProj(Int_t i)
TObjArray * fSigs
Definition NcAstrolab.h:255
Double_t fDscmin
Definition NcAstrolab.h:272
NcObjMatrix fDataNames
Definition NcAstrolab.h:406
void SmearPosition(Nc3Vector &v, Double_t sigma)
Double_t GetLightTravelTime(Double_t z) const
Int_t GetPositionScramble(Double_t *dmin=0, Double_t *dmax=0, TF1 *df=0, Double_t *thmin=0, Double_t *thmax=0, TF1 *thf=0, Double_t *phimin=0, Double_t *phimax=0, TF1 *phif=0)
void ProjectCylindrical(Double_t l, Double_t b, Double_t &x, Double_t &y)
void MapExperiment(Int_t i)
void MapMarkSize(const char *text)
TRotMatrix fG
! Matrix for conversion of equatorial to galactic coordinates
Definition NcAstrolab.h:261
Float_t fMarkerSize[4]
Definition NcAstrolab.h:306
TString fMapTime
! The GUI entered time
Definition NcAstrolab.h:328
Double_t GetBurstRecoAngres(Double_t Emin=-1, Double_t Emax=-1, Double_t Amin=0, Double_t Amax=999) const
TString fExperiment
Definition NcAstrolab.h:250
TRotMatrix fB
! The frame bias matrix for conversion of ICRS to J2000 coordinates
Definition NcAstrolab.h:257
virtual void EntriesPanel(TGCompositeFrame *frame)
TH1 * GetBurstBayesianSignalRate(Double_t p, Double_t &rlow, Double_t &rup, Int_t n=1000)
Double_t ConvertAngle(Double_t a, TString in, TString out) const
TObjArray fBurstHistos
Definition NcAstrolab.h:410
void SetNmatrix(NcTimestamp *ts)
Double_t fGn
Definition NcAstrolab.h:380
Double_t fOmegaC
Definition NcAstrolab.h:388
Double_t fHbar
Definition NcAstrolab.h:391
void ProjectHammer(Double_t l, Double_t b, Double_t &x, Double_t &y)
Double_t GetDifference(Int_t jref, TString au, Double_t &dt, TString tu, Int_t mode=1, Int_t *ia=0, Int_t *it=0)
void ListSignals(TString frame, TString mode, Int_t ndig=1, TString emode="T", Int_t nmax=10, Int_t j=-1, Int_t type=-1, NcTimestamp *ts=0, TString name="*")
Double_t GetSourceAttributes(NcSignal *s, Float_t *z=0, Float_t *T90=0)
NcPosition fLabPos
Definition NcAstrolab.h:249
TString fProj
! Projection which is currently in use
Definition NcAstrolab.h:302
Double_t GetLuminosityDistance(Double_t z, TString u="Mpc") const
NcDevice * fBurstParameters
Definition NcAstrolab.h:409
TRotMatrix fH
! Matrix for conversion of equatorial to horizontal coordinates
Definition NcAstrolab.h:264
Int_t RemoveSignal(Int_t j, Int_t type, Int_t compress)
Double_t GetBurstBackgroundEnergy(Double_t Emin=-1, Double_t Emax=-1) const
void SetLabPosition(Nc3Vector &r)
void MapLabLframeEnter()
TString fMapTimeType
! The GUI entered time type
Definition NcAstrolab.h:329
TString GetExperiment() const
void MapDoptions(Int_t i)
Double_t GetLabTimeOffset() const
void GenBurstGCNdata(Int_t n, TString name="GRB", Bool_t scale=kFALSE)
Double_t GetComovingDistance(Double_t z, TString u="Mpc") const
Double_t fNewton
Definition NcAstrolab.h:379
TH2 * fHist[2]
! Temp. histograms for the sky display
Definition NcAstrolab.h:304
TGComboBox * fMapTStimetype
! The GUI TS time type selection box
Definition NcAstrolab.h:326
TString fMapCinfo
! The GUI selected info category
Definition NcAstrolab.h:334
Double_t fTscmax
Definition NcAstrolab.h:269
void MapMerMode(Int_t i)
TArrayI * fIndices
! Storage indices of the matching reference signals
Definition NcAstrolab.h:266
TH1 * GetBurstSigmaPosdist(TString name, TString type)
TString fMapProj
! The GUI selected projection for the Map
Definition NcAstrolab.h:347
Bool_t fMapLabTS
! The GUI selection to use the Lab timestamp for the List/Map
Definition NcAstrolab.h:332
void MapEcoord(Int_t i)
void GetLocalFrame(Float_t arr[6])
void LoadInputData(Bool_t src, TString file, TString tree, Int_t date1=0, Int_t date2=0, Int_t nmax=-1, TString type="-")
NcSample fBurstSigReco
Definition NcAstrolab.h:413
Double_t fGammaZ
Definition NcAstrolab.h:374
NcSample fBurstOnReco
Definition NcAstrolab.h:411
void InitBurstHistograms(Int_t mode)
TF1 * fThetascfunc
Definition NcAstrolab.h:277
TString fMapLabLocU
! The GUI entered Lab location angular units
Definition NcAstrolab.h:322
TCanvas * fCanvas
! The canvas for the skymap
Definition NcAstrolab.h:303
Double_t fOmegaM
Definition NcAstrolab.h:384
void MapDname(const char *text)
void MapIname(const char *text)
NcAstrolab(const char *name="User", const char *title="Virtual Lab for general use")
Double_t GetBurstLiMaSignificance() const
virtual void SkyMapPanel()
Int_t GetSignalIndex(TString name, Int_t type=0)
TGTextEntry * fMapTSdatetime
! The GUI TS date/time specification
Definition NcAstrolab.h:325
void MapLocb(const char *text)
TRotMatrix fN
! Matrix for nutation correction
Definition NcAstrolab.h:260
void ListBurstParameters() const
TGNumberEntryField * fMapLabLBI[3]
! The GUI number entries for the Lab location specification
Definition NcAstrolab.h:317
void MapTinfo(Int_t)
void MapEa(const char *text)
Double_t GetMeanFreePath(Double_t sigma, Double_t rho, Int_t mode) const
NcPosition GetLabPosition() const
void SetPositionScramble(Int_t mode, Double_t dmin, Double_t dmax, TF1 *df=0, Double_t thmin=0, Double_t thmax=0, TF1 *thf=0, Double_t phimin=0, Double_t phimax=0, TF1 *phif=0)
void InitDataNames(Int_t dir, TString frame, TString mode="J")
Double_t GetHubbleParameter(Double_t z, TString u="Mpc") const
void MapEtype(Int_t i)
Int_t fMapMarkStyle
! The GUI selected marker style for the Map
Definition NcAstrolab.h:358
Int_t SetSourceAttributes(NcSignal *s, Double_t sigmapos, TString u, Double_t z=-999, Double_t T90=-999)
void MapUa(Int_t i)
Double_t GetMaxDt() const
void SetTimeScramble(Int_t mode, Double_t tmin, Double_t tmax, TF1 *frndm=0)
TString fMapDcoord
! The GUI selected coordinate system for the Map/List
Definition NcAstrolab.h:346
void MapUinfo(Int_t)
void MapDcoord(Int_t i)
Double_t fPhiscmin
Definition NcAstrolab.h:278
Double_t fPhiscmax
Definition NcAstrolab.h:279
void SetPmatrix(NcTimestamp *ts)
Double_t GetLAST()
Double_t fMapEb
! The GUI entered b coordinate of an entry
Definition NcAstrolab.h:340
TString fMapDate
! The GUI entered date
Definition NcAstrolab.h:327
TF1 GetSignalRatePDF(Double_t Non, Double_t Ton, Double_t Noff, Double_t Toff, Double_t Ra=1, Double_t Re=1, Double_t smax=-1, Double_t bmax=-1, Double_t prec=709)
Double_t fDscmax
Definition NcAstrolab.h:273
Double_t fMapLabLocL
! The GUI entered Lab longitude
Definition NcAstrolab.h:320
Int_t fMapMarkType
! The GUI selected entry type to apply the marker attributes on
Definition NcAstrolab.h:360
void MapMarkStyle(Int_t i)
Double_t fPc
Definition NcAstrolab.h:382
Double_t fMn
Definition NcAstrolab.h:370
void Project(Double_t l, Double_t b, TString proj, Double_t &x, Double_t &y)
Double_t fQe
Definition NcAstrolab.h:364
void MapUloc(Int_t i)
void SetBmatrix()
NcRandom * fRan
Definition NcAstrolab.h:281
void MapDateTime(const char *text)
Double_t fThetascmax
Definition NcAstrolab.h:276
TString fMapDmode
! The GUI selected coordinate system mode for the Map/List
Definition NcAstrolab.h:348
Double_t GetShieldingThickness(Double_t prob, Double_t lambda) const
TString fMapEub
! The GUI entered angular units of b
Definition NcAstrolab.h:341
void MapMarkColor(Int_t i)
Double_t GetBackgroundRateProb(Double_t *vars, Double_t *pars)
Double_t GetInteractionProbability(Double_t x, Double_t lambda) const
void MakeBurstSigmaPosdist(TString file, TString tree, TString name, TString u, Int_t nb=900, Float_t xmin=0, Float_t xmax=90)
void MapNdigs(const char *text)
Int_t GetNRefSignals(Int_t mode=0) const
TH1F GetDifHistogram(TH1 *hin, Int_t mode, TString s="", TF1 *f=0) const
Int_t fMapEtype
! The GUI entered entry type
Definition NcAstrolab.h:342
TGComboBox * fMapLabU
! The GUI Lab location angular unit selection box
Definition NcAstrolab.h:318
Double_t fAu
Definition NcAstrolab.h:381
NcSample fBurstOffMatch
Definition NcAstrolab.h:416
void MapLocEnter()
void SetDataNames(TString obsname, TString varname, TString units="1", TString func="none")
TString fMapDname
! The GUI entered name pattern for entries to be shown in the Map/List
Definition NcAstrolab.h:352
TGNumberEntryField * fMapLabLframe[6]
! The GUI number entries for the local frame specification
Definition NcAstrolab.h:333
Double_t fOmegaL
Definition NcAstrolab.h:386
void GenBurstSignals()
void SetGmatrix(TString mode)
Double_t GetNeutrinoXsection(Int_t mode, Int_t type, Double_t egev, Double_t xscale=1, Double_t *eprimgev=0, Double_t *alpha=0) const
TH1 * GetBurstT90dist(TString name, TString type)
Double_t fMe
Definition NcAstrolab.h:365
NcDevice * GetBurstParameters()
void ListBurstHistograms() const
void SetLT(Int_t y, Int_t m, Int_t d, Int_t hh, Int_t mm, Int_t ss, Int_t ns=0, Int_t ps=0)
void MapSolar(Int_t i)
void MapLocl(const char *text)
Int_t fLabId
Definition NcAstrolab.h:251
void MakeBurstDataStats(Int_t mode, Int_t nmugrb=0)
void SetCentralMeridian(Int_t mode=0, Double_t phi=0, TString u="deg")
Int_t fGal
! Type indicator for fG values (0=uninitialised 1=B1950 2=J2000)
Definition NcAstrolab.h:262
NcSample fBurstSignal
Definition NcAstrolab.h:414
Int_t fMapLabId
! The GUI entered Lab detector Id
Definition NcAstrolab.h:324
void SetEmatrix(NcTimestamp *ts)
Int_t RemoveRefSignal(Int_t j, Int_t compress)
Int_t fMapMarkColor
! The GUI selected marker color for the Map
Definition NcAstrolab.h:359
void MakeBurstT90dist(TString file, TString tree, TString name, Int_t nb=50, Float_t xmin=-5, Float_t xmax=5)
void MapRemoveSolar()
void MapUb(Int_t i)
void DisplaySignal(TString frame, TString mode, NcTimestamp *ts, Int_t j=-1, TString proj="ham", Int_t clr=0, TString name="")
virtual void TimestampPanel(TGCompositeFrame *frame)
void SetHmatrix(NcTimestamp *ts)
void PrintSignal(TString frame, TString mode, NcTimestamp *ts, Int_t ndig, Int_t jref=0, TString emode="T", Int_t type=0, Bool_t align=kFALSE)
void SetLabTimeOffset(Double_t dt)
TH1F GetCumulHistogram(TH1 *h, TString name, TString mode="F") const
virtual void MapListOptionsPanel(TGCompositeFrame *frame)
TObjArray * fMarkers
! Temp. array to hold the markers for the signal display
Definition NcAstrolab.h:305
TString fMapDateTime
! The GUI entered datetime
Definition NcAstrolab.h:330
Double_t GetSolidAngle(Double_t thetamin, Double_t thetamax, TString tu, Double_t phimin, Double_t phimax, TString pu) const
void SetMarkerColor(Int_t color, Int_t type)
Int_t fMapNdigs
! The GUI selected number of digits for the List output
Definition NcAstrolab.h:351
TRotMatrix fE
! Matrix for conversion of equatorial to ecliptic coordinates
Definition NcAstrolab.h:263
Double_t GetProperDistance(Double_t z, TString u="Mpc", Int_t t=1) const
TString fMapIname
! The GUI selected entry name for the info
Definition NcAstrolab.h:337
Double_t fMapEa
! The GUI entered a coordinate of an entry
Definition NcAstrolab.h:338
Double_t fFermi
Definition NcAstrolab.h:376
Double_t fAxes[6]
Definition NcAstrolab.h:253
Bool_t fMapSolar[10]
! The GUI selection of solar system objects
Definition NcAstrolab.h:353
TF1 * fTscfunc
Definition NcAstrolab.h:270
void GetBurstChi2Statistics(TString type, Int_t ndt=2, Bool_t zcor=kFALSE)
Double_t GetBurstSignalEnergy(Double_t Emin=-1, Double_t Emax=-1) const
void MapLocId(const char *text)
Bool_t fMapDoptions[5]
! The GUI Map/List options (histo, clr, ref, meas, refTS)
Definition NcAstrolab.h:349
Int_t fRscmode
Definition NcAstrolab.h:271
Int_t RemoveSignals(TString name, Int_t type, Int_t compress)
void SetPhysicalParameter(TString name, Double_t value)
Double_t fHubble
Definition NcAstrolab.h:383
Double_t fMmu
Definition NcAstrolab.h:366
void MatchBurstData(NcDevice &matches, Int_t i1=1, Int_t i2=0, Int_t itype=0, Int_t j1=1, Int_t j2=0, Int_t jtype=1)
void ShiftPosition(Nc3Vector &v, Double_t angle)
void MakeBurstZdist(TString file, TString tree, TString name, Int_t nb=200, Float_t zmin=0, Float_t zmax=20)
TString fDataMode
Definition NcAstrolab.h:405
TArrayI * MatchRefSignal(Double_t da, TString au, Double_t dt, TString tu, Int_t mode=1)
void WriteBurstHistograms(TString filename)
void GeoToHeliocentric(Double_t &R, Double_t &B, Double_t &L, NcTimestamp *ts, TString Bu="deg", TString Lu="deg")
Double_t GetSignalRateProb(Double_t *vars, Double_t *pars)
Double_t GetNuclearMass(Int_t Z, Int_t N, Int_t mode=1) const
Int_t fTscmode
Definition NcAstrolab.h:267
virtual void InfoPanel(TGCompositeFrame *frame)
void BurstCompensate(Int_t &nmugrb)
void SetLocalFrame(Double_t t1, Double_t p1, Double_t t2, Double_t p2, Double_t t3, Double_t p3)
void Data(Int_t mode=1, TString u="deg", Bool_t utc=kTRUE)
void ProjectAitoff(Double_t l, Double_t b, Double_t &x, Double_t &y)
void SetMarkerSize(Float_t size, Int_t type)
TF1 * fDscfunc
Definition NcAstrolab.h:274
void DisplaySignals(TString frame, TString mode, NcTimestamp *ts, TString proj="ham", Int_t clr=0, Int_t nmax=-1, Int_t j=-1, Int_t type=-1, TString name="*")
NcSignal * GetSignal(Double_t &d, Double_t &a, TString au, Double_t &b, TString bu, TString frame, NcTimestamp *ts, Int_t jref, TString mode="T", Int_t type=0)
void ListDataNames()
virtual void LabLocalFramePanel(TGCompositeFrame *frame)
TString fMapMerUc
! The GUI selected angular units for the central meridian location
Definition NcAstrolab.h:356
NcSample fBurstOffReco
Definition NcAstrolab.h:415
TF1 * fNuAngle
Definition NcAstrolab.h:396
Int_t fMarkerStyle[4]
Definition NcAstrolab.h:307
Int_t fUsMeridian
Definition NcAstrolab.h:300
void SetExperiment(TString name, Int_t id=0)
TH1 * GetBurstZdist(TString name, TString type)
TString fMapUinfo
! The GUI selected angular units for the Lab info
Definition NcAstrolab.h:336
Double_t fMaxDt
Definition NcAstrolab.h:282
TString fMapEname
! The GUI entered name of the entry
Definition NcAstrolab.h:345
Int_t GetLabDetectorId() const
Double_t fMtau
Definition NcAstrolab.h:367
Double_t GetPhysicalParameter(TString name) const
virtual TObject * Clone(const char *name="") const
Double_t GetNeutrinoAngle(Double_t E, TString u, Int_t mode, TF1 *f=0)
Double_t fOmegaB
Definition NcAstrolab.h:387
TGMainFrame * fSkyMapPanel
! The main frame for the SkyMapPanel GUI
Definition NcAstrolab.h:316
Int_t GetNsignals(Int_t type, Int_t mode=0) const
Double_t fPlanck
Definition NcAstrolab.h:377
Double_t fBoltz
Definition NcAstrolab.h:378
void SetMarkerStyle(Int_t style, Int_t type)
NcSignal * SetSignal(Double_t d, Double_t a, TString au, Double_t b, TString bu, TString frame, NcTimestamp *ts, Int_t jref, TString mode="T", TString name="", Int_t type=0)
Int_t fDataDir
Definition NcAstrolab.h:403
Double_t GetLMST()
Int_t fMapMerMode
! The GUI selected meridian orientation for the Map
Definition NcAstrolab.h:354
void PrintAngle(Double_t a, TString in, TString out, Int_t ndig=1, Bool_t align=kFALSE) const
Int_t fMarkerColor[4]
Definition NcAstrolab.h:308
void MapMerC(const char *text)
Int_t fMapTinfo
! The GUI selected mode for the timestamp info
Definition NcAstrolab.h:335
void SetMaxDt(Double_t s)
TH1F GetLogHistogram(TH1 *hin, Int_t mode, TString s="") const
NcTimestamp fMapTS
! The GUI entered timestamp to be used for the List/Map
Definition NcAstrolab.h:331
Double_t GetPhysicalDistance(Double_t z, TString u="Mpc", Int_t t=1) const
void MapTimeType(Int_t i)
Double_t KolmogorovTest(TString mode, TH1 *h1, TH1 *h2=0, TF1 *pdf=0, Double_t nr=1000, TH1F *ksh=0, Int_t ncut=0, Double_t *nrx=0, Int_t mark=1)
TGComboBox * fMapLabE
! The GUI Lab experiment site selection box
Definition NcAstrolab.h:319
virtual void CommandPanel(TGCompositeFrame *frame)
Double_t GetSurvivalProbability(Double_t x, Double_t lambda) const
Double_t GetHourAngle(TString mode, NcTimestamp *ts, Int_t jref=0, Int_t type=0)
Double_t GetRadiationLength(Double_t Z, Double_t A, Double_t rho=-1) const
void MakeBurstEnergydist(Int_t mode, TString file, TString tree, TString name1, TString name2, TString u, Double_t Emin, Double_t Emax, Int_t nb=1000)
Int_t fMapNmax
! The GUI selected max. number of signals of each type to Map/List
Definition NcAstrolab.h:350
Int_t fBias
! Initialisation flag for fB values (0=uninitialised 1=initialised)
Definition NcAstrolab.h:258
void RandomPosition(Nc3Vector &v, Double_t thetamin, Double_t thetamax, Double_t phimin, Double_t phimax)
TObjArray * fRefs
Definition NcAstrolab.h:254
TString fMapLabExpName
! The GUI entered Lab experimental site
Definition NcAstrolab.h:323
TF1 GetBackgroundRatePDF(Double_t Noff, Double_t Toff, Double_t bmax=-1, Double_t prec=709)
TString fMapEmode
! The GUI entered coordinate system mode of the entry
Definition NcAstrolab.h:344
NcRandom * GetRandomiser(Int_t &iseed, Int_t &cnt1, Int_t &cnt2) const
void GetBurstDtDistributions(Int_t ndt, TH1F &hisdtOn, TF1 &pdfdtOn, TH1F &hisdtOff, TF1 &pdfdtOff, Bool_t zcor)
void MapNmax(const char *text)
Double_t fMZ
Definition NcAstrolab.h:373
TH1F GetCountsHistogram(TF1 &spec, Int_t nbins, Double_t xmin, Double_t xmax, Int_t mode, TString s="") const
virtual ~NcAstrolab()
NcSample fBurstOnMatch
Definition NcAstrolab.h:412
Double_t fHbarc
Definition NcAstrolab.h:392
Double_t GetSeparation(TString name1, TString name2, TString au, Double_t *dt=0, TString tu="s", Int_t mode=1, Double_t *diftheta=0, Double_t *difphi=0)
Signal (Hit) handling of a generic device.
Definition NcDevice.h:14
Handling of a matrix structure of objects.
Definition NcObjMatrix.h:13
Handling of positions (with timestamps) in various reference frames.
Definition NcPosition.h:18
Generate universal random numbers and sequences on all common machines.
Definition NcRandom.h:16
Sampling and statistics tools for various multi-dimensional data samples.
Definition NcSample.h:28
Generic handling of (extrapolated) detector signals.
Definition NcSignal.h:23
void SetLT(Double_t dt, Int_t y, Int_t m, Int_t d, Int_t hh, Int_t mm, Int_t ss, Int_t ns=0, Int_t ps=0, TString utc="A", Int_t leap=0, Double_t dut=0)
Double_t GetLMST(Double_t offset)
Double_t GetLT(Double_t offset)
Double_t GetLAST(Double_t offset)
Int_t GetDifference(NcTimestamp *t, Int_t &days, Int_t &sec, Int_t &ns, Int_t &ps, TString type="UT")