CbmRoot
Loading...
Searching...
No Matches
CbmMvdDetector.h
Go to the documentation of this file.
1/* Copyright (C) 2014-2020 Institut fuer Kernphysik, Goethe-Universitaet Frankfurt, Frankfurt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Michael Deveaux, Philipp Sitzmann [committer] */
4
5// -------------------------------------------------------------------------
6// ----- CbmMvdDetector header file -----
7// ----- Created 02/12/08 by M. Deveaux -----
8// -------------------------------------------------------------------------
9
10
20#ifndef CBMMVDDETECTOR_H
21#define CBMMVDDETECTOR_H 1
22
23#include "CbmMvdStationPar.h" // for CbmMvdStationPar
24
25#include <Rtypes.h> // for ClassDef
26#include <RtypesCore.h> // for Int_t, UInt_t, Bool_t, Float_t, Double_t
27#include <TClonesArray.h> // for TClonesArray
28#include <TNamed.h> // for TNamed
29#include <TObject.h>
30#include <TString.h> // for TString
31
32#include <map> // for map
33
34class CbmMvdSensor;
37class TBuffer;
38class TClass;
39class TMemberInspector;
40class TObject;
41class TH1;
42
43enum class CbmMvdSensorTyp;
44
45class CbmMvdDetector : public TNamed {
46
47private:
49 CbmMvdDetector(const char* name);
50
51public:
55 static CbmMvdDetector* Instance();
56
58 virtual ~CbmMvdDetector();
59
61 void SendInputToSensorPlugin(Int_t detectorid, Int_t nPlugin, TObject* input);
62
63 void GetOutputArray(Int_t nPlugin, TClonesArray* outputArray);
64 void GetMatchArray(Int_t nPlugin, TClonesArray* matchArray);
65
66 std::map<int, CbmMvdSensor*>& GetSensorMap() { return fSensorMap; };
67 CbmMvdSensor* GetSensor(Int_t nSensor) { return (CbmMvdSensor*) fSensorArray->At(nSensor); }
68 Int_t GetSensorArraySize() { return (fSensorArray->GetEntriesFast()); }
69
70 Int_t GetPluginArraySize() { return fPluginCount - 1; }
71 UInt_t GetPluginCount() { return fPluginCount; }
72 void SetPluginCount(UInt_t count) { fPluginCount = count; }
73 Int_t DetectPlugin(Int_t pluginID);
74
76 void AddSensor(TString clearName, TString fullName, TString nodeName, CbmMvdSensorDataSheet* sensorData,
77 Int_t sensorNr, Int_t volumeId, Double_t sensorStartTime, Int_t stationNr);
78 static void SetSensorTyp(CbmMvdSensorTyp typ) { fSensorTyp = typ; };
79 void SetSensorArrayFilled(Bool_t value = kTRUE) { fSensorArrayFilled = value; }
80 void Init();
81
82 void SetMisalignment(Float_t misalignment[3])
83 {
84 for (Int_t i = 0; i < 3; i++)
85 fepsilon[i] = misalignment[i];
86 };
87
88 //void BuildDebugHistograms() { ; };
89 void ShowDebugHistos();
90 TH1* GetHistogram(UInt_t nPlugin, UInt_t nHistogramNumber);
91 TH1* GetHistogram(UInt_t nPlugin, UInt_t nHistogramNumber, UInt_t sensorInSensorArrayNumber);
92 UInt_t GetMaxHistoNumber(UInt_t nPlugin);
93
94
96 void ExecChain(); //Processes the full execution chain
97 void Exec(UInt_t nLevel); //Processes Element nLevel of the chain
98 void ExecFrom(UInt_t nLevel); //Preocesses Elements from a given level till the end
99
101 void Finish();
102
104 void SetParameterFile(CbmMvdStationPar* parameter) { fParameter = parameter; };
107
108 /*
109 static void SetSensorTyp(CbmMvdSensorTyp typ) { fSensorTyp = typ; };
110
111 void SetSensorArrayFilled(Bool_t value = kTRUE) {fSensorArrayFilled=value;}
112*/
113
114private:
116
117 TClonesArray* fSensorArray;
118 std::map<int, CbmMvdSensor*> fSensorMap;
120 TClonesArray* foutput;
121 TClonesArray* foutputHits;
122 TClonesArray* foutputDigis;
123 TClonesArray* foutputCluster; //khun
124 TClonesArray* foutputDigiMatchs;
125 TClonesArray* foutputHitMatchs;
126 TClonesArray* fcurrentEvent;
127 Float_t fepsilon[3];
133
134
138 Bool_t fFinished;
139
140 TString fName;
141
143
144
147
149};
150
151#endif
CbmMvdSensorTyp
Definition CbmMvdHelper.h:8
std::map< int, CbmMvdSensor * > & GetSensorMap()
virtual ~CbmMvdDetector()
CbmMvdDetector operator=(const CbmMvdDetector &)
TH1 * GetHistogram(UInt_t nPlugin, UInt_t nHistogramNumber)
TClonesArray * foutputDigis
Int_t GetPluginArraySize()
void AddSensor(TString clearName, TString fullName, TString nodeName, CbmMvdSensorDataSheet *sensorData, Int_t sensorNr, Int_t volumeId, Double_t sensorStartTime, Int_t stationNr)
void ExecFrom(UInt_t nLevel)
UInt_t GetMaxHistoNumber(UInt_t nPlugin)
static CbmMvdDetector * Instance()
static void SetSensorTyp(CbmMvdSensorTyp typ)
CbmMvdDetector(const CbmMvdDetector &)
Int_t DetectPlugin(Int_t pluginID)
CbmMvdStationPar * fParameter
TClonesArray * foutputHitMatchs
void SetSensorArrayFilled(Bool_t value=kTRUE)
CbmMvdSensor * GetSensor(Int_t nSensor)
Float_t fepsilon[3]
static CbmMvdDetector * fInstance
UInt_t GetPluginCount()
CbmMvdStationPar * GetParameterFile()
void SendInputToSensorPlugin(Int_t detectorid, Int_t nPlugin, TObject *input)
void SetMisalignment(Float_t misalignment[3])
std::map< int, CbmMvdSensor * > fSensorMap
static CbmMvdSensorTyp fSensorTyp
TClonesArray * foutputCluster
TClonesArray * fcurrentEvent
ClassDef(CbmMvdDetector, 3)
void GetOutputArray(Int_t nPlugin, TClonesArray *outputArray)
TClonesArray * foutputDigiMatchs
void GetMatchArray(Int_t nPlugin, TClonesArray *matchArray)
void SetPluginCount(UInt_t count)
Bool_t fSensorArrayFilled
void SetParameterFile(CbmMvdStationPar *parameter)
Int_t GetSensorArraySize()
void Exec(UInt_t nLevel)
TClonesArray * fSensorArray
TClonesArray * foutput
TClonesArray * foutputHits
void Print(Option_t *opt="") const