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 #include "BSEmcPlotData.h"
19 
20 class PndMCTrack;
21 class BSEmcMCPoint;
22 class BSEmcMCHit;
23 class BSEmcMultiWaveform;
24 class BSEmcDigi;
25 class BSEmcCluster;
26 class BSEmcSubCluster;
27 class BSEmcRecoHit;
30 class BSEmcHistogrammer;
32 class TBuffer;
33 class TClass;
34 class TMemberInspector;
35 struct BSEmcPlotData;
36 template <class T>
37 class PndContainerI;
38 
47 class BSEmcPlotProcess : public PndProcess<BSEmcPlotData> {
48  public:
50  BSEmcPlotProcess(const std::string &t_processname);
51  virtual ~BSEmcPlotProcess();
52 
53  virtual void SetDetectorName(const std::string &t_detectorName);
54  virtual void SetData(BSEmcPlotData *t_data) /*override*/;
55  virtual void SetupParameters(const PndParameterRegister *t_parameterRegister) /*override*/;
56  void SetFolderPrefix(TString t_prefix) { fFolderprefix = t_prefix; }
57  virtual void InitHistos(const TString &t_folderprefix) = 0;
58  virtual void Process() /*override*/ = 0;
59 
60  protected:
61  Double_t GetPhiOfInDeg(const TVector3 &t_pos) const;
62  Double_t GetThetaOfInDeg(const TVector3 &t_pos) const;
63 
64  std::string fPositionParName;
74 
78  TString fFolderprefix{""};
79 
80  private:
81  ClassDef(BSEmcPlotProcess, 1);
82 };
83 
84 #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
Structure containing addresses to Data Container.
Definition: BSEmcPlotData.h:27
std::string fNeighbouringRelationParName
PndContainerI< BSEmcDigi > * fDigiArray
PndContainerI< BSEmcMultiWaveform > * fWaveformArray
PndContainerI< BSEmcRecoHit > * fRecoHitArray
BSEmcGeoNeighbouringRelationPar * fNeighbouringRelationPar
PndContainerI< PndMCTrack > * fMCTrackArray
BSEmcHistogrammer * fHistogrammer
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 SetData(BSEmcPlotData *t_data)
Pass the data container ptrs to the process, and store pointers in class members. ...
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)
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
PndContainerI< BSEmcSubCluster > * fSubClusterArray
virtual void SetupParameters(const PndParameterRegister *t_parameterRegister)
Fetch all parameters from the PndParameterRegister.
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.
PndContainerI< BSEmcMCHit > * fMCHitArray
represents a reconstructed (splitted) emc cluster
represents the deposited energy of one emc crystal from simulation
Definition: BSEmcMCHit.h:32
std::string fPositionParName
virtual void Process()=0
The actual data transformation (digitizing, clustering, etc.) should be defined here.
virtual ~BSEmcPlotProcess()