PandaRoot
BSEmcPreclusterTimeBuncherProcess.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 BSEMCPRECLUSTERTIMEBUNCHERPROCESS_HH
14 #define BSEMCPRECLUSTERTIMEBUNCHERPROCESS_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 "BSEmcPrecluster.h"
29 
30 class BSEmcPrecluster;
32 class TBuffer;
33 class TClass;
34 class TMemberInspector;
35 struct BSEmcClusteringData;
36 template <class T>
38 
48  public:
49  BSEmcPreclusterTimeBuncherProcess(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 
58  void SetPreclusterSourceBranchName(const TString &t_branchname) { fSourceBranchName = t_branchname; }
59  void SetPreclusterTargetBranchName(const TString &t_branchname) { fTargetBranchName = t_branchname; }
60 
61  private:
62  PndMutableContainerI<BSEmcPrecluster> *fPreclusters{nullptr};
63  TString fSourceBranchName{""};
64  TString fTargetBranchName{""};
65  std::string fClusteringParName{""};
66  Double_t fTimebunchCutTime{0};
67  std::unique_ptr<TimeGap> fFunctor{new TimeGap()};
68 
70 };
71 
72 #endif /*BSEMCPRECLUSTERTIMEBUNCHERPROCESS_HH*/
Base Process class.
Definition: PndProcess.h:36
void SetPreclusterSourceBranchName(const TString &t_branchname)
represents an emc precluster, formed in the (virtual) data concentrators
Process to create precluster time bunches using TimeGap on timesorted precluster container.
void SetPreclusterTargetBranchName(const TString &t_branchname)
virtual void SetupParameters(const PndParameterRegister *t_parameterRegister)
Fetch all parameters from the PndParameterRegister.
BSEmcPreclusterTimeBuncherProcess(const TString &t_sourceBranchName)
virtual void RequestDataContainer(PndContainerRegister *t_register)
Pass the container register to the process, and get the processes container requirements.
Interface to a datacontainer to be used in PandaROOT.
Helper class to indirect the Parameter fetching via the FairRuntimeDb.
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...
virtual void GetDataContainer(PndContainerRegister *t_register)
Pass the container register to the process, and set the processes container requirements.
virtual void Process()
The actual data transformation (digitizing, clustering, etc.) should be defined here.