CbmRoot
Loading...
Searching...
No Matches
CbmTrdModuleRecR.h
Go to the documentation of this file.
1/* Copyright (C) 2018-2020 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Florian Uhlig [committer] */
4
5#ifndef CBMTRDMODULERECR_H
6#define CBMTRDMODULERECR_H
7
8#include "CbmTrdModuleRec.h"
9
10#include <deque>
11#include <list>
12#include <map>
13#include <vector>
14
19 public:
27 CbmTrdModuleRecR(Int_t mod, Int_t ly = -1, Int_t rot = 0);
28 virtual ~CbmTrdModuleRecR();
29
30 virtual Bool_t AddDigi(const CbmTrdDigi* d, Int_t id);
31
36 virtual void Clear(Option_t* opt = "");
40 virtual Int_t FindClusters(bool clr = true);
41
42 Int_t GetOverThreshold() const { return fDigiCounter; }
43 Double_t GetSpaceResolution(Double_t val = 3.0);
44 bool IsClusterComplete(const CbmTrdCluster* cluster);
48 virtual Bool_t MakeHits();
52 virtual CbmTrdHit* MakeHit(Int_t cId, const CbmTrdCluster* c, std::vector<const CbmTrdDigi*>* digis);
53
54 protected:
55 private:
58
59 void addClusters(std::deque<std::pair<Int_t, const CbmTrdDigi*>> cluster);
60 Int_t fDigiCounter; // digits over threshold
61 Int_t fCheck = 0;
62
63 // different error classes for the position resolution based on the simulation results
64 // the error classes are defined for the different module types
65 // TODO: move to parameter file
66 static constexpr Double_t kxVar_Value[2][5] = {{0.0258725, 0.0267693, 0.0344325, 0.0260322, 0.040115},
67 {0.0426313, 0.0426206, 0.0636962, 0.038981, 0.0723851}};
68 static constexpr Double_t kyVar_Value[2][5] = {{0.024549, 0.025957, 0.0250713, 0.0302682, 0.0291146},
69 {0.0401438, 0.0407502, 0.0397242, 0.0519485, 0.0504586}};
70
71 std::deque<std::tuple<Int_t, Bool_t, const CbmTrdDigi*>>
72 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
73 std::deque<std::deque<std::pair<Int_t, const CbmTrdDigi*>>>
74 fClusterMap; //map to store the clusters and the digi indices for later matching
75
76 ClassDef(CbmTrdModuleRecR,
77 1) // Rectangular pad module; Cluster finding and hit reconstruction algorithms
78};
79#endif
Data Container for TRD clusters.
data class for a reconstructed Energy-4D measurement in the TRD
Definition CbmTrdHit.h:40
Rectangular pad module; Cluster finding and hit reconstruction algorithms.
CbmTrdModuleRecR(const CbmTrdModuleRecR &ref)
static constexpr Double_t kxVar_Value[2][5]
virtual Bool_t AddDigi(const CbmTrdDigi *d, Int_t id)
Add digi to local module.
std::deque< std::tuple< Int_t, Bool_t, const CbmTrdDigi * > > fDigiMap
static constexpr Double_t kyVar_Value[2][5]
CbmTrdModuleRecR()
Default constructor.
bool IsClusterComplete(const CbmTrdCluster *cluster)
const CbmTrdModuleRecR & operator=(const CbmTrdModuleRecR &ref)
virtual Int_t FindClusters(bool clr=true)
Steering routine for finding digits clusters.
Double_t GetSpaceResolution(Double_t val=3.0)
void addClusters(std::deque< std::pair< Int_t, const CbmTrdDigi * > > cluster)
virtual CbmTrdHit * MakeHit(Int_t cId, const CbmTrdCluster *c, std::vector< const CbmTrdDigi * > *digis)
Steering routine for converting cluster to hit.
Int_t GetOverThreshold() const
std::deque< std::deque< std::pair< Int_t, const CbmTrdDigi * > > > fClusterMap
virtual Bool_t MakeHits()
Steering routine for building hits.
virtual void Clear(Option_t *opt="")
Clear local storage.
Abstract class for module wise cluster finding and hit reconstruction.