CbmRoot
CbmTrdModuleRecR.h
Go to the documentation of this file.
1 #ifndef CBMTRDMODULERECR_H
2 #define CBMTRDMODULERECR_H
3 
4 #include "CbmTrdModuleRec.h"
5 
6 #include <deque>
7 #include <list>
8 #include <map>
9 #include <vector>
10 
15 public:
23  CbmTrdModuleRecR(Int_t mod, Int_t ly = -1, Int_t rot = 0);
24  virtual ~CbmTrdModuleRecR();
25 
26  virtual Bool_t AddDigi(const CbmTrdDigi* d, Int_t id);
27 
32  virtual void Clear(Option_t* opt = "");
36  virtual Int_t FindClusters();
37 
38  Int_t GetOverThreshold() const { return fDigiCounter; }
39  Double_t GetSpaceResolution(Double_t val = 3.0);
43  virtual Bool_t MakeHits();
47  virtual CbmTrdHit* MakeHit(Int_t cId,
48  const CbmTrdCluster* c,
49  std::vector<const CbmTrdDigi*>* digis);
50 
51 protected:
52 private:
55 
56  void addClusters(std::deque<std::pair<Int_t, const CbmTrdDigi*>> cluster);
57  Int_t fDigiCounter; // digits over threshold
58  Int_t fCheck = 0;
59 
60  // different error classes for the position resolution based on the simulation results
61  // the error classes are defined for the different module types
62  // TODO: move to parameter file
63  static constexpr Double_t kxVar_Value[2][5] = {
64  {0.0258725, 0.0267693, 0.0344325, 0.0260322, 0.040115},
65  {0.0426313, 0.0426206, 0.0636962, 0.038981, 0.0723851}};
66  static constexpr Double_t kyVar_Value[2][5] = {
67  {0.024549, 0.025957, 0.0250713, 0.0302682, 0.0291146},
68  {0.0401438, 0.0407502, 0.0397242, 0.0519485, 0.0504586}};
69 
70  std::deque<std::tuple<Int_t, Bool_t, const CbmTrdDigi*>>
71  fDigiMap; //map to sort all digis from the Array into a deque; different module are separated; the tuple contains the digi indice, a bool to flag processed digis and the digi itself
72  std::deque<std::deque<std::pair<Int_t, const CbmTrdDigi*>>>
73  fClusterMap; //map to store the clusters and the digi indices for later matching
74 
75  ClassDef(
77  1) // Rectangular pad module; Cluster finding and hit reconstruction algorithms
78 };
79 #endif
CbmTrdModuleRecR::GetOverThreshold
Int_t GetOverThreshold() const
Definition: CbmTrdModuleRecR.h:38
CbmTrdModuleRecR::operator=
const CbmTrdModuleRecR & operator=(const CbmTrdModuleRecR &ref)
CbmTrdModuleRecR::addClusters
void addClusters(std::deque< std::pair< Int_t, const CbmTrdDigi * >> cluster)
Definition: CbmTrdModuleRecR.cxx:453
CbmTrdHit
data class for a reconstructed Energy-4D measurement in the TRD
Definition: CbmTrdHit.h:35
CbmTrdModuleRecR::fCheck
Int_t fCheck
Definition: CbmTrdModuleRecR.h:58
CbmTrdModuleRec
Abstract class for module wise cluster finding and hit reconstruction.
Definition: CbmTrdModuleRec.h:16
CbmTrdModuleRecR::Clear
virtual void Clear(Option_t *opt="")
Clear local storage.
Definition: CbmTrdModuleRecR.cxx:51
CbmTrdModuleRecR::MakeHit
virtual CbmTrdHit * MakeHit(Int_t cId, const CbmTrdCluster *c, std::vector< const CbmTrdDigi * > *digis)
Steering routine for converting cluster to hit.
Definition: CbmTrdModuleRecR.cxx:488
CbmTrdModuleRecR::~CbmTrdModuleRecR
virtual ~CbmTrdModuleRecR()
Definition: CbmTrdModuleRecR.cxx:39
CbmTrdCluster
Data Container for TRD clusters.
Definition: CbmTrdCluster.h:23
CbmTrdModuleRecR::AddDigi
virtual Bool_t AddDigi(const CbmTrdDigi *d, Int_t id)
Add digi to local module.
Definition: CbmTrdModuleRecR.cxx:42
d
double d
Definition: P4_F64vec2.h:24
CbmTrdModuleRecR::fDigiMap
std::deque< std::tuple< Int_t, Bool_t, const CbmTrdDigi * > > fDigiMap
Definition: CbmTrdModuleRecR.h:71
CbmTrdModuleRecR::kyVar_Value
static constexpr Double_t kyVar_Value[2][5]
Definition: CbmTrdModuleRecR.h:66
CbmTrdModuleRecR::fClusterMap
std::deque< std::deque< std::pair< Int_t, const CbmTrdDigi * > > > fClusterMap
Definition: CbmTrdModuleRecR.h:73
CbmTrdModuleRecR
Rectangular pad module; Cluster finding and hit reconstruction algorithms.
Definition: CbmTrdModuleRecR.h:14
CbmTrdModuleRecR::MakeHits
virtual Bool_t MakeHits()
Steering routine for building hits.
Definition: CbmTrdModuleRecR.cxx:485
CbmTrdModuleRecR::CbmTrdModuleRecR
CbmTrdModuleRecR(const CbmTrdModuleRecR &ref)
CbmTrdModuleRec.h
CbmTrdModuleRecR::fDigiCounter
Int_t fDigiCounter
Definition: CbmTrdModuleRecR.h:57
CbmTrdDigi
Definition: CbmTrdDigi.h:14
CbmTrdModuleRecR::kxVar_Value
static constexpr Double_t kxVar_Value[2][5]
Definition: CbmTrdModuleRecR.h:63
CbmTrdModuleRecR::CbmTrdModuleRecR
CbmTrdModuleRecR()
Default constructor.
Definition: CbmTrdModuleRecR.cxx:26
CbmTrdModuleRecR::FindClusters
virtual Int_t FindClusters()
Steering routine for finding digits clusters.
Definition: CbmTrdModuleRecR.cxx:61
CbmTrdModuleRecR::GetSpaceResolution
Double_t GetSpaceResolution(Double_t val=3.0)
Definition: CbmTrdModuleRecR.cxx:608