source: trunk/Mars/mhistmc/MHMcRate.h@ 15125

Last change on this file since 15125 was 2015, checked in by tbretz, 21 years ago
*** empty log message ***
File size: 3.4 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 [TeV]
15 Float_t fEnergyMin; // Minimum Energy [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 are distributed [sr]
23
24 Float_t fImpactMax; //[cm] Maximum impact parameter [cm]
25 Float_t fImpactMin; //[cm] Minimum impact parameter [cm]
26
27 Float_t fBackTrig; // Number of triggers from background
28 Float_t fBackSim; // Number of simulated showers for the background
29
30 Float_t fSpecIndex; // dn/dE = k * e^{- fSpecIndex}
31 Float_t fFlux0; // dn/dE = fFlux0 * E^{-a}
32
33 Float_t fShowerRate; // Showers rate in Hz
34 Float_t fShowerRateError; // Estimated error of shower rate in Hz
35
36 Float_t fTriggerRate; // Trigger rate in Hz
37 Float_t fTriggerRateError; // Estimated error for the trigger rate in Hz
38
39 Float_t fMeanThreshold; // Mean discriminator threshold of trigger pixels [mV]
40
41 Short_t fMultiplicity; // L1 trigger multiplicity.
42
43 Short_t fTriggerCondNum; // Trigger condition number, for the case of running over camra files containing several.
44
45 void Init(const char *name, const char *title);
46
47public:
48
49 MHMcRate(const char *name=NULL, const char *title=NULL);
50 MHMcRate(Float_t showrate,
51 const char *name=NULL, const char *title=NULL);
52 MHMcRate(Float_t specindex, Float_t flux0,
53 const char *name=NULL, const char *title=NULL);
54
55 void SetParticle(UShort_t part);
56 void SetBackground(Float_t showers, Float_t triggers);
57 void SetFlux(Float_t flux0, Float_t specindx);
58 void SetIncidentRate(Float_t showerrate);
59
60 void SetImpactMax(Float_t Impact) {fImpactMax=Impact;}
61 void SetImpactMin(Float_t Impact) {fImpactMin=Impact;}
62
63 void SetThetaMax(Float_t Theta) {fThetaMax=Theta;}
64 void SetThetaMin(Float_t Theta) {fThetaMin=Theta;}
65 void SetPhiMax(Float_t Phi) {fPhiMax=Phi;}
66 void SetPhiMin(Float_t Phi) {fPhiMin=Phi;}
67
68 void SetSolidAngle(Float_t Solid) {fSolidAngle=Solid;}
69 void SetEnergyMax(Float_t Energy) {fEnergyMax=Energy;}
70 void SetEnergyMin(Float_t Energy) {fEnergyMin=Energy;}
71
72 void SetMultiplicity(Short_t nMul) {fMultiplicity = nMul;}
73 void SetMeanThreshold(Float_t thresh) {fMeanThreshold = thresh;}
74
75 void SetTriggerCondNum(Short_t num) {fTriggerCondNum = num;}
76
77 void UpdateBoundaries(Float_t energy, Float_t theta, Float_t phi, Float_t impact);
78
79 Float_t GetTriggerRate() {return fTriggerRate;}
80 Float_t GetTriggerRateError() {return fTriggerRateError;}
81
82 Short_t GetMultiplicity() {return fMultiplicity;}
83 Float_t GetMeanThreshold() {return fMeanThreshold;}
84 Short_t GetTriggerCondNum() {return fTriggerCondNum;}
85
86
87 void CalcRate(Float_t trig, Float_t anal, Float_t simu);
88
89 void Print(Option_t *o=NULL) const;
90
91 void Draw(Option_t *o=NULL);
92
93 ClassDef(MHMcRate, 1) // Data Container to calculate trigger rate
94};
95
96#endif
97
98
99
Note: See TracBrowser for help on using the repository browser.