1 | // $Id: PhotoElectron.hh 2766 2006-11-15 15:49:03Z moreggia $ |
---|
2 | // Author: Sylvain Moreggia 2006/03/16 |
---|
3 | |
---|
4 | /***************************************************************************** |
---|
5 | * ESAF: Euso Simulation and Analysis Framework * |
---|
6 | * * |
---|
7 | * Id: PhotoElectron * |
---|
8 | * Package: electronics * |
---|
9 | * Coordinator: Marco.Pallavicini * |
---|
10 | * * |
---|
11 | *****************************************************************************/ |
---|
12 | |
---|
13 | #ifndef __PHOTOELECTRON_HH__ |
---|
14 | #define __PHOTOELECTRON_HH__ |
---|
15 | |
---|
16 | #include "euso.hh" |
---|
17 | #include "EsafMsgSource.hh" |
---|
18 | #include "EarthVector.hh" |
---|
19 | |
---|
20 | class Photon; |
---|
21 | |
---|
22 | |
---|
23 | //////////////////////////////////////////////////////////////////////////////// |
---|
24 | // // |
---|
25 | // PhotoElectron // |
---|
26 | // // |
---|
27 | // <brief class description> // |
---|
28 | // // |
---|
29 | //////////////////////////////////////////////////////////////////////////////// |
---|
30 | |
---|
31 | enum PEType {FluoPE=0, CkovPE=1, BckgndPE=2}; |
---|
32 | |
---|
33 | |
---|
34 | |
---|
35 | class PhotoElectron : public EsafMsgSource { |
---|
36 | public: |
---|
37 | |
---|
38 | // ctor |
---|
39 | PhotoElectron(); |
---|
40 | |
---|
41 | // ctor |
---|
42 | PhotoElectron(const Photon&); |
---|
43 | |
---|
44 | // dtor |
---|
45 | virtual ~PhotoElectron(); |
---|
46 | |
---|
47 | // getters |
---|
48 | inline Double_t Time() const {return fTime;} |
---|
49 | inline PEType Type() const {return fType;} |
---|
50 | inline EarthVector AtmoPos() const {return fAtmoPos;} |
---|
51 | inline UInt_t PixelID() const {return fPixelID;} |
---|
52 | inline UInt_t Dist2ShiftToShowPt() const {return fDist2ShiftToShowPt;} |
---|
53 | inline Double_t SNR() const {return fSNR;} |
---|
54 | inline Bool_t IsTriggered() const {return fTriggered;} |
---|
55 | inline Double_t Wl() const {return fWl;} |
---|
56 | inline Double_t ShowerAge() const {return fShowerAge;} |
---|
57 | inline Int_t AtmoHistory() const {return fAtmoHistory;} |
---|
58 | inline Int_t AtmoNbinter() const {return fAtmoNbinter;} |
---|
59 | |
---|
60 | // setters |
---|
61 | inline void SetPixelID(UInt_t id) {fPixelID = id;} |
---|
62 | inline void SeDist2ShiftToShowPt(UInt_t dist2shift) {fDist2ShiftToShowPt = dist2shift;} |
---|
63 | inline void SetTime(Double_t t) {fTime = t;} |
---|
64 | inline void SetSNR(Double_t snr) {fSNR = snr;} |
---|
65 | inline void Triggered(Bool_t trig = kTRUE) {fTriggered = trig;} |
---|
66 | |
---|
67 | private: |
---|
68 | |
---|
69 | PEType fType; |
---|
70 | UInt_t fPixelID; |
---|
71 | UInt_t fDist2ShiftToShowPt; |
---|
72 | Double_t fTime; |
---|
73 | Double_t fSNR; |
---|
74 | Bool_t fTriggered; |
---|
75 | |
---|
76 | // parent photon related infos |
---|
77 | Double_t fWl; |
---|
78 | Double_t fShowerAge; |
---|
79 | EarthVector fAtmoPos; |
---|
80 | Int_t fAtmoHistory; // last interaction in atmosphere (0: direct, 1: reflected, 2: rayleigh, 3: cloud, 4: aerosol) |
---|
81 | Int_t fAtmoNbinter; // nb of interaction in atmosphere |
---|
82 | |
---|
83 | |
---|
84 | |
---|
85 | ClassDef(PhotoElectron,0) |
---|
86 | }; |
---|
87 | |
---|
88 | #endif /* __PHOTOELECTRON_HH__ */ |
---|
89 | |
---|