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

Last change on this file since 1956 was 1800, checked in by moralejo, 22 years ago
*** empty log message ***
File size: 3.5 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 Float_t fMeanThreshold; // Mean discriminator threshold (mV) of trigger
41 // pixels.
42
43 Short_t fMultiplicity; // L1 trigger multiplicity.
44
45 Short_t fTriggerCondNum; // Trigger condition number, for the case of
46 // running over camra files containing several.
47
48 void Init(const char *name, const char *title);
49
50public:
51
52 MHMcRate(const char *name=NULL, const char *title=NULL);
53 MHMcRate(Float_t showrate,
54 const char *name=NULL, const char *title=NULL);
55 MHMcRate(Float_t specindex, Float_t flux0,
56 const char *name=NULL, const char *title=NULL);
57
58 void SetParticle(UShort_t part);
59 void SetBackground(Float_t showers, Float_t triggers);
60 void SetFlux(Float_t flux0, Float_t specindx);
61 void SetIncidentRate(Float_t showerrate);
62
63 void SetImpactMax(Float_t Impact) {fImpactMax=Impact;}
64 void SetImpactMin(Float_t Impact) {fImpactMin=Impact;}
65
66 void SetThetaMax(Float_t Theta) {fThetaMax=Theta;}
67 void SetThetaMin(Float_t Theta) {fThetaMin=Theta;}
68 void SetPhiMax(Float_t Phi) {fPhiMax=Phi;}
69 void SetPhiMin(Float_t Phi) {fPhiMin=Phi;}
70
71 void SetSolidAngle(Float_t Solid) {fSolidAngle=Solid;}
72 void SetEnergyMax(Float_t Energy) {fEnergyMax=Energy;}
73 void SetEnergyMin(Float_t Energy) {fEnergyMin=Energy;}
74
75 void SetMultiplicity(Short_t nMul) {fMultiplicity = nMul;}
76 void SetMeanThreshold(Float_t thresh) {fMeanThreshold = thresh;}
77
78 void SetTriggerCondNum(Short_t num) {fTriggerCondNum = num;}
79
80 void UpdateBoundaries(Float_t energy, Float_t theta, Float_t phi, Float_t impact);
81
82 Float_t GetTriggerRate() {return fTriggerRate;}
83 Float_t GetTriggerRateError() {return fTriggerRateError;}
84
85 Short_t GetMultiplicity() {return fMultiplicity;}
86 Float_t GetMeanThreshold() {return fMeanThreshold;}
87 Short_t GetTriggerCondNum() {return fTriggerCondNum;}
88
89
90 void CalcRate(Float_t trig, Float_t anal, Float_t simu);
91
92 void Print(Option_t *o=NULL) const;
93
94 void Draw(Option_t *o=NULL);
95 TObject *DrawClone(Option_t *o=NULL) const;
96
97 ClassDef(MHMcRate, 1) // Data Container to calculate trigger rate
98};
99
100#endif
101
102
103
Note: See TracBrowser for help on using the repository browser.