PandaRoot
BSEmcDigiTimeBuncherProcess.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 BSEMCDIGITIMEBUNCHERPROCESS_HH
14 #define BSEMCDIGITIMEBUNCHERPROCESS_HH
15 
16 #include <memory>
17 #include <string>
18 
19 #include "Rtypes.h"
20 #include "RtypesCore.h"
21 #include "TString.h"
22 
23 #include "FairTSBufferFunctional.h"
24 
25 #include "PndContainerI.h"
26 #include "PndProcess.h"
27 
28 #include "BSEmcDigi.h"
29 
30 class BSEmcDigi;
32 class TBuffer;
33 class TClass;
34 class TMemberInspector;
35 struct BSEmcClusteringData;
36 template <class T>
38 
48  public:
49  BSEmcDigiTimeBuncherProcess(const TString &t_sourcebranchname = "");
51 
52  virtual void SetDetectorName(const std::string &t_detectorName) /*override*/;
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  virtual void Process() /*override*/;
57  void SetDigiSourceBranchName(const TString &t_branchname) { fSourceBranchName = t_branchname; }
58  void SetDigiTargetBranchName(const TString &t_branchname) { fTargetBranchName = t_branchname; }
59 
60  private:
61  PndMutableContainerI<BSEmcDigi> *fDigis{nullptr};
62  TString fSourceBranchName{""};
63  TString fTargetBranchName{""};
64  std::string fClusteringParName{""};
65  Double_t fTimebunchCutTime{0};
66  std::unique_ptr<TimeGap> fDigiFunctor{new TimeGap()};
67  Int_t fEvent{0};
68  ClassDef(BSEmcDigiTimeBuncherProcess, 1);
69 };
70 
71 #endif /*BSEMCDIGITIMEBUNCHERPROCESS_HH*/
Base Process class.
Definition: PndProcess.h:36
virtual ~BSEmcDigiTimeBuncherProcess()
virtual void GetDataContainer(PndContainerRegister *t_register)
Pass the container register to the process, and set the processes container requirements.
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...
void SetDigiSourceBranchName(const TString &t_branchname)
BSEmcDigiTimeBuncherProcess(const TString &t_sourcebranchname="")
Process to create digi time bunches using TimeGap on timesorted digi container.
virtual void Process()
The actual data transformation (digitizing, clustering, etc.) should be defined here.
represents the reconstructed hit of one emc crystal
Definition: BSEmcDigi.h:59
Interface to a datacontainer to be used in PandaROOT.
Helper class to indirect the Parameter fetching via the FairRuntimeDb.
void SetDigiTargetBranchName(const TString &t_branchname)
virtual void RequestDataContainer(PndContainerRegister *t_register)
Pass the container register to the process, and get the processes container requirements.