UserModule.h
Go to the documentation of this file.
1 #ifndef _UserModule_h
2 #define _UserModule_h
3 
4 #include <fwk/VModule.h>
5 #include <TObjArray.h>
6 
7 
8 class TFile;
9 class TObjArray;
10 class TCanvas;
11 class TTree;
12 class TString;
13 
14 namespace utl{
15  class TabulatedFunction;
17  class RandomEngine;
18 }
19 
20 namespace evt{
21  class Event;
22  class ShowerSimData;
23 }
24 
25 namespace fevt{
26 
27  class FEvent;
28  class Eye;
29  class TelescopeSimData;
30  class Telescope;
31 }
32 
45 class UserModule : public fwk::VModule {
46 
47 public:
48  UserModule();
49  virtual ~UserModule();
50 
53  fwk::VModule::ResultFlag Finish();
54 
55 
56 private:
57  TFile* fOutputFile;
58  TTree* fTree;
62  TCanvas* fCherBeamCanvas;
63  TCanvas* fLightFluxCanvas;
64  TCanvas* fFluorFluxCanvas;
65  TCanvas* fCherMieFluxCanvas;
70  TCanvas* fCameraCanvas;
71  TObjArray* fPhotonGraphs;
72  TObjArray* fFADCGraphs;
73  TString* fEventId;
74  unsigned int fEye;
75  unsigned int fTelescope;
76 
78 
79  void AnalyzeShower(const evt::ShowerSimData& shower);
80  void PlotTotalFluorLight(const evt::ShowerSimData& shower);
81  void PlotLongitudinalProfile(const evt::ShowerSimData& shower);
82  void PlotEnergyDeposit(const evt::ShowerSimData& shower);
83  void PlotTotalCherBeam(const evt::ShowerSimData& shower);
84  void AnalyzeLightAtDiaphragm(const fevt::FEvent& fevent);
85  void PlotLightFlux(const fevt::TelescopeSimData& sim);
86  void PlotFluorFlux(const fevt::TelescopeSimData& sim);
87  void PlotCherMieFlux(const fevt::TelescopeSimData& sim);
89  void PlotCherDirFlux(const fevt::TelescopeSimData& sim);
90 
91  void AnalyzeCamera(const fevt::FEvent& fevent);
92  void PlotLightOnCamera(const fevt::Telescope& tel);
93  void PlotLightAtDia(const fevt::Telescope& tel);
94  void PlotCamera(const fevt::Telescope& tel);
95  void PlotPhotonTraces(const fevt::Telescope& tel);
96  void PlotFADCTraces(const fevt::Telescope& tel);
97 
98  void ClearAllPlots();
99 
100 
101  REGISTER_MODULE("UserModule", UserModule);
102 };
103 
104 
105 #endif
TString * fEventId
Definition: UserModule.h:73
void PlotEnergyDeposit(const evt::ShowerSimData &shower)
Plot the shower energy deposit.
Definition: UserModule.cc:284
TCanvas * fCherRaylFluxCanvas
Definition: UserModule.h:66
void PlotLightOnCamera(const fevt::Telescope &tel)
Plot light on the camera.
Definition: UserModule.cc:844
TFile * fOutputFile
Definition: UserModule.h:57
unsigned int fTelescope
Definition: UserModule.h:75
Fluorescence Detector Eye Event.
Definition: FEvent/Eye.h:29
void PlotCamera(const fevt::Telescope &tel)
Plot the camera.
Definition: UserModule.cc:911
void PlotLightAtDia(const fevt::Telescope &tel)
Plot light at diaphragm.
Definition: UserModule.cc:754
utl::RandomEngine * fRand
Definition: UserModule.h:77
Class to hold collection (x,y) points and provide interpolation between them.
TObjArray * fPhotonGraphs
Definition: UserModule.h:71
void PlotTotalCherBeam(const evt::ShowerSimData &shower)
Plot total Cerenkov light generated along the shower axis.
Definition: UserModule.cc:369
void PlotLightFlux(const fevt::TelescopeSimData &sim)
Plot the light flux at the diaphragm.
Definition: UserModule.cc:438
void Init()
Initialise the registry.
void AnalyzeCamera(const fevt::FEvent &fevent)
Definition: UserModule.cc:735
Interface class to access Shower Simulated parameters.
Definition: ShowerSimData.h:49
Description of simulated data for one Telescope.
TCanvas * fLightFluxCanvas
Definition: UserModule.h:63
TTree * fTree
Definition: UserModule.h:58
void PlotFADCTraces(const fevt::Telescope &tel)
create graphs with the traces
Definition: UserModule.cc:1152
Wraps the random number engine used to generate distributions.
Definition: RandomEngine.h:27
TCanvas * fCherDirFluxCanvas
Definition: UserModule.h:67
void PlotTotalFluorLight(const evt::ShowerSimData &shower)
Plot the total fluorecence light generated along the shower axis.
Definition: UserModule.cc:322
void PlotCherRaylFlux(const fevt::TelescopeSimData &sim)
Plot the Rayleigh-scattered Cherenkov light flux at the diaphragm.
Definition: UserModule.cc:634
void ClearAllPlots()
Definition: UserModule.cc:206
void PlotCherMieFlux(const fevt::TelescopeSimData &sim)
Plot the Mie-scattered Cherenkov light flux at the diaphragm.
Definition: UserModule.cc:582
TCanvas * fCameraCanvas
Definition: UserModule.h:70
unsigned int fEye
Definition: UserModule.h:74
void AnalyzeShower(const evt::ShowerSimData &shower)
Definition: UserModule.cc:224
Top of Fluorescence Detector event hierarchy.
Definition: FEvent.h:33
Module interface.
Definition: VModule.h:53
TObjArray * fFADCGraphs
Definition: UserModule.h:72
#define REGISTER_MODULE(_moduleName_, _ModuleType_)
Definition: VModule.h:145
First example module for the FD simulation chain.
Definition: UserModule.h:45
void PlotLongitudinalProfile(const evt::ShowerSimData &shower)
Plot the shower longitudinal charge profile.
Definition: UserModule.cc:251
TCanvas * fLightAtDiaCanvas
Definition: UserModule.h:69
TCanvas * fEnergyDepositCanvas
Definition: UserModule.h:60
ResultFlag
Flag returned by module methods to the RunController.
Definition: VModule.h:60
TCanvas * fCherMieFluxCanvas
Definition: UserModule.h:65
void PlotPhotonTraces(const fevt::Telescope &tel)
create graphs with the traces
Definition: UserModule.cc:1102
TCanvas * fFluorLightCanvas
Definition: UserModule.h:61
A collection of TabulatedFunction.
void AnalyzeLightAtDiaphragm(const fevt::FEvent &fevent)
Definition: UserModule.cc:418
Fluorescence Detector Telescope Event.
TCanvas * fLongitudinalProfileCanvas
Definition: UserModule.h:59
void PlotCherDirFlux(const fevt::TelescopeSimData &sim)
Plot the Direct Cherenkov light flux at the diaphragm.
Definition: UserModule.cc:686
TCanvas * fCherBeamCanvas
Definition: UserModule.h:62
TCanvas * fFluorFluxCanvas
Definition: UserModule.h:64
void PlotFluorFlux(const fevt::TelescopeSimData &sim)
Plot the fluorescence light flux at the diaphragm.
Definition: UserModule.cc:530
TCanvas * fLightOnCameraCanvas
Definition: UserModule.h:68

, generated on Tue Sep 26 2023.