source: trunk/MagicSoft/Mars/mhist/MHMcRate.h@ 1783

Last change on this file since 1783 was 1783, checked in by moralejo, 22 years ago
*** empty log message ***
File size: 2.7 KB
Line 
1#ifndef MARS_MHMcRate
2#define MARS_MHMcRate
3
4#ifndef MARS_MParContainer
5#include "MParContainer.h"
6#endif
7
8class MHMcRate : public MParContainer
9{
10
11private:
12 UShort_t fPartId; // Type of particle
13
14 Float_t fEnergyMax; // Maximum Energy in TeV
15 Float_t fEnergyMin; // Minimum Energy in TeV
16
17 Float_t fThetaMax; // Maximum theta angle of run
18 Float_t fThetaMin; // Minimum theta angle of run
19 Float_t fPhiMax; // Maximum phi angle of run
20 Float_t fPhiMin; // Minimum phi angle of run
21
22 Float_t fSolidAngle; // Solid angle within which incident directions
23 // are distributed (sr)
24
25 Float_t fImpactMax; // Maximum impact parameter (cm)
26 Float_t fImpactMin; // Minimum impact parameter (cm)
27
28 Float_t fBackTrig; // Number of triggers from background
29 Float_t fBackSim; // Number of simulated showers for the background
30
31 Float_t fSpecIndex; // dn/dE = k * e^{- fSpecIndex}
32 Float_t fFlux0; // dn/dE = fFlux0 * E^{-a}
33
34 Float_t fShowerRate; // Showers rate in Hz
35 Float_t fShowerRateError; // Estimated error of shower rate in Hz
36
37 Float_t fTriggerRate; // Trigger rate in Hz
38 Float_t fTriggerRateError; // Estimated error for the trigger rate in Hz
39
40 void Init(const char *name, const char *title);
41
42public:
43
44 MHMcRate(const char *name=NULL, const char *title=NULL);
45 MHMcRate(Float_t showrate,
46 const char *name=NULL, const char *title=NULL);
47 MHMcRate(Float_t specindex, Float_t flux0,
48 const char *name=NULL, const char *title=NULL);
49
50 void SetParticle(UShort_t part);
51 void SetBackground(Float_t showers, Float_t triggers);
52 void SetFlux(Float_t flux0, Float_t specindx);
53 void SetIncidentRate(Float_t showerrate);
54
55 void SetImpactMax(Float_t Impact) {fImpactMax=Impact;}
56 void SetImpactMin(Float_t Impact) {fImpactMin=Impact;}
57
58 void SetThetaMax(Float_t Theta) {fThetaMax=Theta;}
59 void SetThetaMin(Float_t Theta) {fThetaMin=Theta;}
60 void SetPhiMax(Float_t Phi) {fPhiMax=Phi;}
61 void SetPhiMin(Float_t Phi) {fPhiMin=Phi;}
62
63 void SetSolidAngle(Float_t Solid) {fSolidAngle=Solid;}
64 void SetEnergyMax(Float_t Energy) {fEnergyMax=Energy;}
65 void SetEnergyMin(Float_t Energy) {fEnergyMin=Energy;}
66
67 void UpdateBoundaries(Float_t energy, Float_t theta, Float_t phi, Float_t impact);
68
69 void CalcRate(Float_t trig, Float_t anal, Float_t simu);
70
71 void Print(Option_t *o=NULL) const;
72
73 void Draw(Option_t *o=NULL);
74 TObject *DrawClone(Option_t *o=NULL) const;
75
76 ClassDef(MHMcRate, 1) // Data Container to calculate trigger rate
77};
78
79#endif
Note: See TracBrowser for help on using the repository browser.