BmnRoot 26.10.0-210-gc52d34b0
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
CbmStsModule.h
Go to the documentation of this file.
1/** @file CbmStsModule.h
2 ** @author Volker Friese <v.friese@gsi.de>
3 ** @date 14.05.2013
4 **/
5
6#ifndef CBMSTSMODULE_H
7#define CBMSTSMODULE_H 1
8
9#include "CbmStsElement.h"
10#include "CbmStsSenzor.h"
11#include "TNamed.h"
12
13#include <map>
14#include <vector>
15
17
18using namespace std;
19
20/** @class CbmStsModule
21 ** @brief Class representing an instance of a readout unit in the CBM-STS.
22 ** @author V.Friese <v.friese@gsi.de>
23 ** @version 1.0
24 **
25 ** The StsModule is the read-out unit in the CBM STS. It consists of one
26 ** sensor or two or more daisy-chained sensors (CbmStsSensor), the analogue
27 ** cable and the read-out electronics.
28 **
29 ** The module receives and stores the analogue signals from the sensor(s)
30 ** in a buffer. It takes care of interference of signals in one and the
31 ** same channel (two signals arriving within a given dead time).
32 ** The module digitises the analogue signals and sends them to the
33 ** CbmDaq when appropriate.
34 **/
35
37{
38 public:
39 /** Default constructor **/
41
42 /** Standard constructor
43 ** @param name Name
44 ** @param title Title
45 ** @param node Pointer to relevant TGeoPhysicalNode
46 */
47 CbmStsModule(const char* name, const char* title, TGeoPhysicalNode* node = NULL);
48
49 /** Destructor **/
50 virtual ~CbmStsModule();
51
52 // Add daughter element (from base class)
53 // @param element Pointer to element to be added as daughter.
54 // virtual void AddDaughter(CbmStsElement* element);
55
56 /** Add a sensor to the module
57 ** @param sensor Pointer to sensor object
58 **/
59 void AddSensor(CbmStsSenzor* sensor);
60
61 /** Add an analogue signal to the buffer
62 *
63 * @param channel channel number
64 * @param time time of signal [ns]
65 * @param charge analogue charge [e]
66 *
67 * The signal will be added to the buffer. Interference with
68 * previous signals within the same channels is checked and the
69 * proper action is executed.
70 */
71 void AddSignal(Int_t channel, Double_t time, Double_t charge);
72
73 private:
74 vector<CbmStsSenzor*> fSensors; ///< Array of sensors
75 // TODO: Unify inherited array and private array
76
77 /** Buffer for the analogue signals **/
78 map<Int_t, pair<Double_t, Double_t>> fBuffer;
79
82
84};
85
86#endif /* CBMSTSMODULE_H */
int Int_t
double Double_t
#define ClassDef(name, id)
CbmStsElement()
Default constructor.
void AddSignal(Int_t channel, Double_t time, Double_t charge)
Add an analogue signal to the buffer.
void AddSensor(CbmStsSenzor *sensor)
Add a sensor to the module.
vector< CbmStsSenzor * > fSensors
Array of sensors.
CbmStsModule()
Default constructor.
virtual ~CbmStsModule()
Destructor.
CbmStsModule(const CbmStsModule &)
CbmStsModule & operator=(const CbmStsModule &)
map< Int_t, pair< Double_t, Double_t > > fBuffer
Buffer for the analogue signals.
Class representing an instance of a sensor in the CBM-STS.