#include "SimpleDetector.hh" |
SimpleDetector
class description - header file - source file - inheritance tree (.pdf)
public:
SimpleDetector()
virtual ~SimpleDetector()
Int_t AddBackground()
Int_t ApplyDQE(const Photon& ph) const
Int_t ApplyOpticsFilter(const Photon& ph) const
Int_t ApplyTrigger()
static TClass* Class()
virtual const char* ClassName() const
virtual const char* ClassType() const
virtual Bool_t ClearMemory()
Bool_t FindPixelID(const EarthVector&, UInt_t&) const
virtual Telemetry* Get(PhotonsOnPupil*)
UInt_t GetNbPhotoElectrons() const
void InitDetector()
Double_t InterpolateBG3(Double_t) const
Double_t InterpolateQE(Double_t) const
virtual TClass* IsA() const
Double_t MeanBgndPerPixelPerGTU(Double_t)
Bool_t Pos2D_Z0plane(UInt_t, EarthVector&) const
virtual void Reset()
virtual void ShowMembers(TMemberInspector& insp, char* parent)
void SpaceTimePEinfos(const vector<PhotoElectron*>&)
virtual void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
private:
Double_t fReducedSurf factor of reduction of collecting surface
Double_t fBG3filter[400] tabulated value for BG3 filter
Double_t fPMQE[51] tabulated values for PM Quantum Efficiency
Double_t fGTUlength GTU length
Double_t fPixelSideLength pixel side length projected on the MES plane Z=0
Double_t fFirstPixelX pixel high left corner X-position projected on the MES plane Z=0
Double_t fFirstPixelY pixel high left corner Y-position projected on the MES plane Z=0
UInt_t fNbPixelOnSide nb of pixels on a side of the square FS
Double_t fMeanBgnd value in ph-on-pupil/m2/ns/sr
Double_t fSNRtrigg nb of background sigma considered for SNR treatment
UInt_t fNpersTrigg persistency = nb of GTU with adjacents hitted pixels
string fBgndWl RedBook (within 300-400nm) or Extended (extrapolation within 200-600nm)
string fBgndMode standard (added all along track, all GTU), minimized (around fluo pixel only, at one GTU)
string fBG3type BG3 (long tail above 400nm), or BG3_coated (RedBook config, sharp cut above 400nm)
UInt_t fNbMaxLateralPixels define maximum area around track to be considered in the simulation
UInt_t fMaxLateralDist2 = fNbMaxLateralPixels * fNbMaxLateralPixels
Bool_t fCloudStatus false : photon absorbed by cloud are kept for simu
map<UInt_t,vector<PhotoElectron*>*> fPhotoElectrons list of photoelectrons, stored per GTU (index=0 <--> GTUnb=0)
Bool_t fEvIsTriggered tells if event is triggered
UInt_t fNbGTUs nb of GTUs containing pe- (GTU id within [0,fNbGTUs-1])
UInt_t fNbSignalPE nb of pe- coming from signal photons
Double_t fFirstGTUTime time of first GTU (raising time)
Double_t fFirstPETime time of first pe-
Double_t fLastPETime time of last pe-
EarthVector fStartPosShowPt MES 3D position of shower point at fFirstGTUTime
EarthVector fEndPosShowPt MES 3D position of shower point at end of track (earth impact or Fov bounds)
EarthVector fDirShowPt shower track 3D direction in MES
UInt_t fStartPixelID define first corner of covered rectangular area (bgnd generation)
UInt_t fEndPixelID define second corner of covered rectangular area (bgnd generation)
_____________________________________________________________________________
SimpleDetector
<extensive class description>
******* WARNING ********
Data members of Photon and ParentPhoton have not the std meaning
- ParentPhoton.fType = type of photon
1: fluo
2: ckov
- Photon.history = their history IN ATMOSPHERE
-1: none
0: direct
1: reflected
2: rayleigh scat
3: clouds scat
4: aerosols scat
- Photon.fate = their history IN DETECTOR
-1: outFoV
0: alive
1: absorbed by optics
2: absorbed by BG3
3: absorbed by DQE
- Photon.iterations = NB of INTERACTIONS in atmosphere (not in detector)
NB : within detector, distance on "focal surface" is in (nb pixels)² unit
void Reset()
get ready for next event
Int_t ApplyDQE(const Photon& ph)
Detection Quantum Efficiency rules the creation of photoelectrons from incident photons
return photon's fate value
void SpaceTimePEinfos(const vector<PhotoElectron*>& templist)
- orders pe- chronologically
then find the time of first GTU and ranges them in the map using GTU info
- set pixel ID
- find pixels rectangular area involved in the event
Bool_t FindPixelID(const EarthVector& atmopos, UInt_t& rtn)
find pixel according to position in atmosphere
- pixel nb 0 is at left-up corner (X<0 and Y>0)
- using sqrt(x*x + y*y) value in the MES Z=0 plane
- i,j in [0..n-1] (i<-->row j<-->column)
- pixelID = N --> i,j coordinates found back using N / n = i and N % n = j
return kFALSE if position is out of FoV
Double_t MeanBgndPerPixelPerGTU(Double_t bckgnd_photon)
input : bckgnd_photon is in ph / m2 / ns / sr
Calculate mean (over wl) background in pe/pixel/GTU (at Nadir)
Background wl spectrum is assumed FLAT
NB : for a detector of 2.5m diameter
500 ph/ns/sr/m2 within 300-400nm --> ~1.7 pe/pixel/GTU
500 ph/ns/sr/m2 EXTENDED within 200-600nm --> ~2.8 pe/pixel/GTU (BG3) ~2.35 (coated BG3)
Int_t AddBackground()
At every GTU, add background around showerPOINT (not all around shower track)
For every pe-, set the spatial shift w.r.t. shower point of all pe- (signal and bgnd)
NB : looking at shower point at GTU start and GTU end could miss an intermediate pixel
not so important if the intermediate pixel is considered in simu analysis or reconstruction
Int_t ApplyTrigger()
trigger simulation :
==================
1. pixels with SNR > fSNRtrig are considered hitted, SNR = (S + B - <B>) / sqrt(<B>)
2. persistency = from one GTU to the next one, if adjacent hitted pixels exist, Npers is incremented
when Npers = fNpersTrigg --> event is triggered
NB : pe- hold in pixels without bgnd have been set to SNR = -1000, thus not considered for trigger simu
NB : pe- in pixels with SNR > fSNRtrig are tagged "triggered"
Bool_t ClearMemory()
physically release the memory allocated by the arrays of this object
Author: Sylvain Moreggia 2006/03/16
Last update: Mon Nov 27 14:57:05 2006
ROOT page - Class index - Class Hierarchy - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.