PandaRoot
BSEmcPlotProcess.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 #ifndef BSEMCPLOTPROCESS_HH
14 #define BSEMCPLOTPROCESS_HH
15 
16 #include <string>
17 #include <vector>
18 
19 #include "Rtypes.h"
20 #include "RtypesCore.h"
21 #include "TString.h"
22 #include "TVector3.h"
23 
24 #include "PndContainerI.h"
25 #include "PndProcess.h"
26 
29 #include "BSEmcHistogrammer.h"
30 
31 class PndMCTrack;
32 class BSEmcMCPoint;
33 class BSEmcMCDeposit;
34 class BSEmcMultiWaveform;
35 class BSEmcDigi;
36 class BSEmcCluster;
37 class BSEmcSubCluster;
38 class BSEmcRecoHit;
41 class BSEmcHistogrammer;
43 class TBuffer;
44 class TClass;
45 class TMemberInspector;
46 struct BSEmcPlotData;
47 template <class T>
48 class PndContainerI;
49 
58 class BSEmcPlotProcess : public PndProcess {
59  public:
61  BSEmcPlotProcess(const std::string &t_processname);
62  virtual ~BSEmcPlotProcess();
63 
64  virtual void SetDetectorName(const std::string &t_detectorName);
65  virtual void RequestDataContainer(PndContainerRegister * /*t_register*/) /*override*/ {};
66  virtual void GetDataContainer(PndContainerRegister * /*t_register*/) /*override*/ {};
67  virtual void SetupParameters(const PndParameterRegister * /*t_parameterRegister*/) /*override*/;
68  void SetFolderPrefix(TString t_prefix) { fFolderprefix = t_prefix; }
69  void SetHistogrammer(BSEmcHistogrammer *t_histogrammer) { fHistogrammer = t_histogrammer; }
70  virtual void InitHistos(const TString &t_folderprefix) = 0;
71  virtual void Process() /*override*/ = 0;
72 
73  protected:
74  Double_t GetPhiOfInDeg(const TVector3 &t_pos) const;
75  Double_t GetThetaOfInDeg(const TVector3 &t_pos) const;
76 
77  std::string fPositionParName;
87 
91  TString fFolderprefix{""};
92 
93  private:
94  ClassDef(BSEmcPlotProcess, 1);
95 };
96 
97 #endif /*BSEMCPLOTPROCESS_HH*/
virtual void InitHistos(const TString &t_folderprefix)=0
Base Process class.
Definition: PndProcess.h:36
Resembles/Contains all information a particle hitting the EMC can provide for later use in the PID st...
Definition: BSEmcRecoHit.h:43
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:66
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:40
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:59
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()