PandaRoot
BSEmcOnlineFeatureExtractionProcess.h
Go to the documentation of this file.
1 #ifndef BSEMCONLINEFEATUREEXTRACTIONPROCESS_HH
2 #define BSEMCONLINEFEATUREEXTRACTIONPROCESS_HH
3 
4 #include <memory>
5 #include <string>
6 #include <vector>
7 
8 #include "Rtypes.h"
9 #include "RtypesCore.h"
10 #include "TString.h"
11 
12 #include "PndInputContainer.h"
13 #include "PndOutputContainerI.h"
14 #include "PndProcess.h"
15 
16 #include "BSEmcDigi.h"
17 #include "BSEmcDigitizationData.h"
18 #include "BSEmcMultiWaveform.h"
19 
21 class BSEmcAbsPSA;
22 class BSEmcWaveform;
23 class TBuffer;
24 class TClass;
25 class TMemberInspector;
27 template <class T>
29 
39 class BSEmcOnlineFeatureExtractionProcess : public PndProcess<BSEmcDigitizationData> {
40  public:
43 
44  virtual void SetDetectorName(const std::string &t_detectorName) /*override*/;
45  virtual void SetData(BSEmcDigitizationData *t_data) /*override*/;
46  virtual void SetupParameters(const PndParameterRegister *t_parameterRegister) /*override*/;
47  virtual void Process() /*override*/;
48 
49  void SetStorageOfData(Bool_t t_val); // Method to specify whether digis are stored or not.
50  void SetPSA(BSEmcAbsPSA *t_psa) { fPSA = t_psa; }
51  std::vector<BSEmcDigi *> ExtractDigis(const std::vector<const BSEmcMultiWaveform *> &t_waveforms) const;
52  void SetWaveformBranchName(const TString &t_branchname) { fWaveformBranchName = t_branchname; }
53 
54  protected:
55  virtual Double_t GetTimeStamp(const BSEmcWaveform *t_waveform, Double_t t_digi_time) const;
56  virtual BSEmcDigi::eGAIN GetGainType(const BSEmcWaveform *t_waveform, Int_t t_hit) const = 0;
57 
58  protected:
59  Double_t fTimebunchCutTime{0};
60  TString fHitBranchName{""};
61  TString fWaveformBranchName{""};
62 
65 
66  Double_t fEnergyDigiThreshold{0};
67 
68  BSEmcAbsPSA *fPSA{nullptr};
69 
71 };
72 
73 #endif /*BSEMCONLINEFEATUREEXTRACTIONPROCESS_HH*/
Base Process class.
Definition: PndProcess.h:24
Baseclass for pulseshapeanalysis ( featureextraction )
Definition: BSEmcAbsPSA.h:26
virtual Double_t GetTimeStamp(const BSEmcWaveform *t_waveform, Double_t t_digi_time) const
ClassDef(BSEmcOnlineFeatureExtractionProcess, 1)
represents a simulated waveform in an emc crystal
Definition: BSEmcWaveform.h:63
"Smart" container that figures out for you what underlying container needs to be fetched from FairRoo...
Online feature extraction process intended as baseclass. Online like, but not actually online...
virtual void SetupParameters(const PndParameterRegister *t_parameterRegister)
Fetch all parameters from the PndParameterRegister.
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...
PndInputContainer< BSEmcMultiWaveform > fWaveformArray
virtual void Process()
The actual data transformation (digitizing, clustering, etc.) should be defined here.
Helper class to indirect the Parameter fetching via the FairRuntimeDb.
void SetWaveformBranchName(const TString &t_branchname)
virtual void SetData(BSEmcDigitizationData *t_data)
Pass the data container ptrs to the process, and store pointers in class members. ...
virtual BSEmcDigi::eGAIN GetGainType(const BSEmcWaveform *t_waveform, Int_t t_hit) const =0
std::vector< BSEmcDigi * > ExtractDigis(const std::vector< const BSEmcMultiWaveform *> &t_waveforms) const
DataStruct to pass addresses to data Container between BSEmcDigitizerTask and PndProcess<BSEmcDigitiz...