PandaRoot
BSEmcPlotProcess.h
Go to the documentation of this file.
1 #ifndef BSEMCPLOTPROCESS_HH
2 #define BSEMCPLOTPROCESS_HH
3 
4 #include <string>
5 #include <vector>
6 
7 #include "Rtypes.h"
8 #include "RtypesCore.h"
9 #include "TString.h"
10 #include "TVector3.h"
11 
12 #include "PndContainerI.h"
13 #include "PndProcess.h"
14 
17 #include "BSEmcHistogrammer.h"
18 
19 class PndMCTrack;
20 class BSEmcMCPoint;
21 class BSEmcMCDeposit;
22 class BSEmcMultiWaveform;
23 class BSEmcDigi;
24 class BSEmcCluster;
25 class BSEmcSubCluster;
26 class BSEmcRecoHit;
29 class BSEmcHistogrammer;
31 class TBuffer;
32 class TClass;
33 class TMemberInspector;
34 struct BSEmcPlotData;
35 template <class T>
36 class PndContainerI;
37 
46 class BSEmcPlotProcess : public PndProcess {
47  public:
49  BSEmcPlotProcess(const std::string &t_processname);
50  virtual ~BSEmcPlotProcess();
51 
52  virtual void SetDetectorName(const std::string &t_detectorName);
53  virtual void RequestDataContainer(PndContainerRegister * /*t_register*/) /*override*/ {};
54  virtual void GetDataContainer(PndContainerRegister * /*t_register*/) /*override*/ {};
55  virtual void SetupParameters(const PndParameterRegister * /*t_parameterRegister*/) /*override*/;
56  void SetFolderPrefix(TString t_prefix) { fFolderprefix = t_prefix; }
57  void SetHistogrammer(BSEmcHistogrammer *t_histogrammer) { fHistogrammer = t_histogrammer; }
58  virtual void InitHistos(const TString &t_folderprefix) = 0;
59  virtual void Process() /*override*/ = 0;
60 
61  protected:
62  Double_t GetPhiOfInDeg(const TVector3 &t_pos) const;
63  Double_t GetThetaOfInDeg(const TVector3 &t_pos) const;
64 
65  std::string fPositionParName;
75 
79  TString fFolderprefix{""};
80 
81  private:
82  ClassDef(BSEmcPlotProcess, 1);
83 };
84 
85 #endif /*BSEMCPLOTPROCESS_HH*/
virtual void InitHistos(const TString &t_folderprefix)=0
Base Process class.
Definition: PndProcess.h:24
Resembles/Contains all information a particle hitting the EMC can provide for later use in the PID st...
Definition: BSEmcRecoHit.h:31
Base Processclass for plotting.
PndContainerI< BSEmcCluster > * fClusterArray
std::string fNeighbouringRelationParName
virtual void GetDataContainer(PndContainerRegister *)
Pass the container register to the process, and set the processes container requirements.
PndContainerI< BSEmcDigi > * fDigiArray
represents the deposited energy of one emc crystal from simulation
PndContainerI< BSEmcMultiWaveform > * fWaveformArray
PndContainerI< BSEmcRecoHit > * fRecoHitArray
BSEmcGeoNeighbouringRelationPar * fNeighbouringRelationPar
PndContainerI< PndMCTrack > * fMCTrackArray
BSEmcHistogrammer * fHistogrammer
void SetHistogrammer(BSEmcHistogrammer *t_histogrammer)
a cluster (group of neighboring crystals) of hit emc crystals
Definition: BSEmcCluster.h:54
Parameter for crystal positions.
Double_t GetPhiOfInDeg(const TVector3 &t_pos) const
virtual void SetDetectorName(const std::string &t_detectorName)
Set the Detector name. Important, as most EmcParameter need to know for which detector they need to b...
Simple wrapper around std::map<TString (histname), TH1*> to help with histogram creation and writting...
represents a mc hit in an emc crystal
Definition: BSEmcMCPoint.h:28
void SetFolderPrefix(TString t_prefix)
virtual void RequestDataContainer(PndContainerRegister *)
Pass the container register to the process, and get the processes container requirements.
Double_t GetThetaOfInDeg(const TVector3 &t_pos) const
represents the reconstructed hit of one emc crystal
Definition: BSEmcDigi.h:47
PndContainerI< BSEmcMCPoint > * fMCPointArray
Interface to a datacontainer to be used in PandaROOT.
BSEmcCrystalPositionPar * fPositionPar
virtual void SetupParameters(const PndParameterRegister *)
Fetch all parameters from the PndParameterRegister.
PndContainerI< BSEmcSubCluster > * fSubClusterArray
Helper class to indirect the Parameter fetching via the FairRuntimeDb.
Class to hold multiple waveforms from one Emc Hit / ADC readout.
Neigbouring Relations based on a list of detectorIds.
represents a reconstructed (splitted) emc cluster
std::string fPositionParName
virtual void Process()=0
The actual data transformation (digitizing, clustering, etc.) should be defined here.
PndContainerI< BSEmcMCDeposit > * fMCDepositArray
virtual ~BSEmcPlotProcess()