PandaRoot
BSEmcClusteringTask.h
Go to the documentation of this file.
1 //-----------------------------------------------------------------------
2 //-----------------------------------------------------------------------
3 // File and Version Information:
4 // $Id: $
5 // Software developed for the PANDA Detector at GSI.
6 // Author List:
7 // Jan Zhong
8 // Marcel Tiemens
9 // Áron Kripkó
10 //---------------------------------------------------------------------
11 //#pragma once
12 #ifndef BSEMCCLUSTERINGTASK_HH
13 #define BSEMCCLUSTERINGTASK_HH
14 
15 #include <string>
16 #include <vector>
17 
18 #include "FairLogger.h"
19 
20 #include "PndContainerI.h"
21 #include "PndInputContainer.h"
22 #include "PndOutputContainer.h"
23 #include "PndProcess.h"
24 #include "PndProcessTask.h"
25 
26 #include "BSEmcCluster.h"
27 #include "BSEmcClusteringData.h"
28 #include "BSEmcClusteringPar.h"
29 #include "BSEmcDigi.h"
30 #include "BSEmcSubCluster.h"
31 
40 class BSEmcClusteringTask : public PndProcessTask<BSEmcClusteringData> {
41  public:
42  // Constructors
43  BSEmcClusteringTask(const std::string &t_detectorName = "Barrel", Bool_t t_storeclusters = kTRUE);
44  // Destructor
45  virtual ~BSEmcClusteringTask();
46 
47  void SetDigiBranchName(const std::string &t_branchname) { fDigiBranchname = t_branchname; }
48  void SetDigiBranchAsMutable(Bool_t t_mutable) { fMutableDigiBranch = t_mutable; }
49  void SetPreclusterBranchName(const std::string &t_branchname) { fPreclusterBranchname = t_branchname; }
50  void SetClusterBranchName(const std::string &t_branchname) { fClusterBranchname = t_branchname; }
51  void SetSubClusterBranchName(const std::string &t_branchname) { fSubClusterBranchname = t_branchname; }
52  void SetRecoHitBranchName(const std::string &t_branchname) { fRecoHitBranchname = t_branchname; }
53 
54  protected:
55  virtual void SetupDataArrays() /*override*/;
56  virtual void PreProcessing(Option_t * /*unused*/) /*override*/;
57  virtual void PostProcessing(Option_t * /*unused*/) /*override*/;
58 
59  private:
60  PndContainerI<BSEmcDigi> *fDigiInput{nullptr};
61  PndOutputContainer<BSEmcPrecluster> *fPreclusterOutput{nullptr};
62  PndOutputContainer<BSEmcCluster> *fClusterOutput{nullptr};
63  PndOutputContainer<BSEmcSubCluster> *fSubClusterOutput{nullptr};
64  PndOutputContainer<BSEmcRecoHit> *fRecoHitOutput{nullptr};
65 
66  std::string fDigiBranchname{""};
67  std::string fPreclusterBranchname{""};
68  std::string fClusterBranchname{""};
69  std::string fSubClusterBranchname{""};
70  std::string fRecoHitBranchname{""};
71 
72  Bool_t fMutableDigiBranch{kFALSE};
73  ClassDef(BSEmcClusteringTask, 1)
74 };
75 
76 #endif /*BSEMCCLUSTERINGTASK_HH*/
Task based version of a PndProcessHandler.
"Smart" container that figures out for you what underlying container needs to be fetched from FairRoo...
"Smart" container that figures out for you what underlying container needs to be fetched from FairRoo...
virtual void PreProcessing(Option_t *)
Do some task preparation before PndProcesses are run once per event.
void SetSubClusterBranchName(const std::string &t_branchname)
void SetDigiBranchAsMutable(Bool_t t_mutable)
BSEmcClusteringTask(const std::string &t_detectorName="Barrel", Bool_t t_storeclusters=kTRUE)
Task to orchestrate the full reconstruction line from BSEmcDigis into BSEmcRecoHits.
virtual ~BSEmcClusteringTask()
virtual void PostProcessing(Option_t *)
Do some task post clean up after PndProcesses are run once per event.
void SetPreclusterBranchName(const std::string &t_branchname)
void SetClusterBranchName(const std::string &t_branchname)
virtual void SetupDataArrays()
Define which data containers need to be fetched from the FairRootManager, pass the data container add...
Interface to a datacontainer to be used in PandaROOT.
void SetDigiBranchName(const std::string &t_branchname)
void SetRecoHitBranchName(const std::string &t_branchname)