BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
BmnEcalDigitizer.h
Go to the documentation of this file.
1/*
2 * File: BmnEcalDigitizer.h
3 * Author: Petr Alekseev
4 *
5 * Created on 05.08.2020, 19:31
6 */
7
8#ifndef BMNECALDIGITIZER_H
9#define BMNECALDIGITIZER_H
10
11#include "BmnECALDigit.h"
12
13#include <FairTask.h>
14#include <TClonesArray.h>
15
17{
18 public:
20 virtual ~BmnEcalDigitizer();
21 virtual InitStatus Init();
22 virtual void Exec(Option_t* opt);
23 virtual void Print(Option_t* option = "") const;
24
25 ///
26 /// Read coordinates on ECAL cells from provided gepmetry file
27 /// If this file nod set try will be made to obtain it from FairGeoLoader
28 ///
29 /// \param name - ECAL geometry file name
30 ///
31 void SetGeometryFileName(const char* name) { fEcalGeometryFileName = name; }
32
33 ///
34 /// By default cell interaction point supposed to be in the center of the
35 /// cell volume. This param allows it to be shifted along of Z axis of the
36 /// volume.
37 /// Default value is 0
38 ///
39 /// \param cm - Depth shift in cm
40 ///
42
43 ///
44 /// If cell energy is less than threshold it wont be stored.
45 /// Default value is 10 MeV
46 ///
47 /// \param MeV - cell threshold, MeV
48 ///
49 void SetThreshold(Float_t MeV) { fThreshold = MeV; }
50
51 ///
52 /// BmnEcalPoints with grater time will be ignored.
53 /// Default value is 1000 ns. Set 0 for no limit
54 ///
55 /// \param ns - max allowed time in nanoseconds, 0 - no limit
56 ///
58
59 ///
60 /// Cell start time calculated as weighted average of all BmnEcalPoints
61 /// inside it. Cell peak time is just the start time with constant delay.
62 /// Default value is 5 ns
63 ///
64 /// \param ns - delay between start and peak time
65 ///
67
68 ///
69 /// Allows to take into account slowing of light propagation inside of
70 /// WLS fibers
71 ///
72 /// \param sol - light propagation speed in cm/ns, 0 - don't apply
73 /// \param length - length of the WLS fiber (52 cm)
74 /// \param moduleLayerThickness - thikness of the layer in the module (0.195 cm)
75 ///
76 void SetFiber(Float_t sol, Float_t length = 52., Float_t moduleLayerThickness = .195)
77 {
78 fFiberSOL = sol;
79 fFiberLength = length;
80 fLayerThickness = moduleLayerThickness;
81 }
82
83 private:
84 int LoadGeometry();
85
86 const char* fEcalGeometryFileName = nullptr;
91
92 Float_t fFiberSOL = 0.; // cm/ns (not used if zero)
93 Float_t fFiberLength = 52.; // cm
94 Float_t fLayerThickness = 0.195; // cm
95
97 const Int_t fCellsSize = sizeof(fCells) / sizeof(BmnECALDigit);
98
101
103};
104
105#endif /* BMNECALDIGITIZER_H */
int Int_t
float Float_t
double Double_t
const char Option_t
#define ClassDef(name, id)
void SetFiber(Float_t sol, Float_t length=52., Float_t moduleLayerThickness=.195)
Allows to take into account slowing of light propagation inside of WLS fibers.
void SetInteractionDepthShift(Double_t cm)
By default cell interaction point supposed to be in the center of the cell volume.
const char * fEcalGeometryFileName
void SetPeakTimeDelay(Float_t ns)
Cell start time calculated as weighted average of all BmnEcalPoints inside it.
virtual void Exec(Option_t *opt)
TClonesArray * fArrayOfEcalPoints
virtual InitStatus Init()
void SetMaxEcalPointTime(Float_t ns)
BmnEcalPoints with grater time will be ignored.
void SetGeometryFileName(const char *name)
Read coordinates on ECAL cells from provided gepmetry file If this file nod set try will be made to o...
virtual void Print(Option_t *option="") const
TClonesArray * fArrayOfEcalDigits
void SetThreshold(Float_t MeV)
If cell energy is less than threshold it wont be stored.
const Int_t fCellsSize
BmnECALDigit fCells[1024]