PandaRoot
PndSdsPixelClusterTask.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 // -------------------------------------------------------------------------
14 // ----- CbmStsHitProducerIdel header file -----
15 // ----- Created 10/01/06 by V. Friese -----
16 // -------------------------------------------------------------------------
17 
28 #ifndef PNDSDSPIXELCLUSTERTASK_H
29 #define PNDSDSPIXELCLUSTERTASK_H
30 
31 #include "PndSdsTask.h"
32 //#include "PndSdsGeoPar.h"
33 #include "PndSdsHit.h"
34 #include "PndSdsMCPoint.h"
35 #include "PndSdsPixel.h"
36 #include "PndSdsFE.h"
37 // #include "PndSdsCluster.h"
38 #include "FairGeoVector.h"
39 #include "FairGeoTransform.h"
40 #include "TVector3.h"
41 #include "TRandom.h"
42 #include "TGeoMatrix.h"
43 #include "TGeoBBox.h"
45 #include "PndSdsStripHitProducer.h"
46 #include "PndSdsPixelDigiPar.h"
47 #include "PndSdsTotDigiPar.h"
48 #include "PndSdsChargeConversion.h"
49 #include "PndDetectorList.h"
50 #include "PndGeoHandling.h"
51 
53 #include "PndSdsPixelBackMapping.h"
54 
55 #include "FairTSBufferFunctional.h"
56 
57 #include <string>
58 #include <vector>
59 
60 class TClonesArray;
61 
63  public:
72  PndSdsPixelClusterTask(const char *name);
73 
75  virtual ~PndSdsPixelClusterTask();
77  {
79  fFEModel = other.fFEModel;
80  fDigiArray = other.fDigiArray;
81  fDigiPar = other.fDigiPar;
83  fGeoH = other.fGeoH;
86  fHitArray = other.fHitArray;
87  fEventHeader = other.fEventHeader;
88  fFunctor = other.fFunctor;
90  fClusterType = other.fClusterType;
91  fEventNr = other.fEventNr;
93  fBackMapping = other.fBackMapping;
94  return *this;
95  };
96  virtual void SetClusterFinder() = 0;
97  virtual void SetBackMapping() = 0;
98 
99  void SetNoiseSuppression(Bool_t val) { fUseNoiseSuppression = val; }
100  Bool_t GetNoiseSuppression() const { return fUseNoiseSuppression; }
101 
102  virtual void SetInBranchId()
103  {
104  FairRootManager *ioman = FairRootManager::Instance();
105  fInBranchId = ioman->GetBranchId(fInBranchName);
106  std::cout << "InBranchId: " << fInBranchId << " for Branch: " << fInBranchName.Data() << std::endl;
107  fClusterType = ioman->GetBranchId(fClustBranchName);
108  std::cout << "fClusterType: " << fClusterType << " for Branch: " << fClustBranchName.Data() << std::endl;
109  }
110 
112  virtual void SetParContainers();
113  virtual InitStatus Init();
114  virtual InitStatus ReInit();
115  virtual void FinishEvent();
116 
118  virtual void SetClusterFinderMQ(TList *){}; // tempList //[R.K.03/2017] unused variable(s)
119  virtual void SetBackMappingMQ(TList *){}; // tempList //[R.K.03/2017] unused variable(s)
120  virtual void InitMQ(TList *tempList);
121  virtual void GetParList(TList *tempList);
122  virtual void ExecMQ(TList *inputList, TList *outputList);
123 
125  void Exec(Option_t *opt);
126 
127  protected:
128  Bool_t fUseNoiseSuppression; // switch to turn on/off noise cancellation by introducing an additional cluster threshold
129 
131 
133  TClonesArray *fDigiArray;
137 
140  TClonesArray *fClusterArray;
141  TClonesArray *fHitArray;
142  FairEventHeader *fEventHeader;
143 
144  BinaryFunctor *fFunctor;
145  BinaryFunctor *fStartFunctor;
146 
148  Int_t fEventNr;
149 
150  void Register();
151  void Reset();
152  void ProduceHits();
153  virtual std::vector<PndSdsDigiPixel> ConvertAndFilter(TClonesArray *digidata);
154 
157 
158  // TGeoHMatrix GetTransformation (std::string detName);
159  // void GetLocalHitPoints(PndSdsMCPoint* myPoint, FairGeoVector& myHitIn, FairGeoVector& myHitOut);
160  // PndSdsHit CalcGlobalPoint(std::vector<PndSdsPixel> pixels);
161  // TVector3 GetSensorDimensions(std::string detName);
162 
164 };
165 
166 #endif /* SDSCLUSTERTASK_H */
Int_t fInBranchId
Definition: PndSdsTask.h:50
PndSdsPixelBackMapping * fBackMapping
virtual void FinishEvent()
virtual void ExecMQ(TList *inputList, TList *outputList)
void SetNoiseSuppression(Bool_t val)
virtual InitStatus ReInit()
virtual InitStatus Init()
virtual std::vector< PndSdsDigiPixel > ConvertAndFilter(TClonesArray *digidata)
convert TClonesArray into std::vector and remove corrupted data (for test beam analysis) ...
Class to access the naming information of the MVD.
virtual void SetClusterFinder()=0
ClassDef(PndSdsPixelClusterTask, 4)
PndSdsPixelDigiPar * fDigiPar
TString fInBranchName
Definition: PndSdsTask.h:46
Base class for cluster finding algorithms.
PndSdsPixelClusterTask(const PndSdsPixelClusterTask &other)
PndSdsPixelClusterFinder * fClusterFinder
virtual void SetBackMapping()=0
void Exec(Option_t *opt)
PndSdsPixelClusterTask & operator=(PndSdsPixelClusterTask &other)
virtual void InitMQ(TList *tempList)
virtual void SetParContainers()
virtual void SetClusterFinderMQ(TList *)
virtual ~PndSdsPixelClusterTask()
PndSdsChargeConversion * fChargeConverter
virtual void SetBackMappingMQ(TList *)
Digitization Parameter Class for SDS-Pixel part.
virtual void GetParList(TList *tempList)