22#include <TClonesArray.h>
43 LOG(info) <<
"SensorType";
47 LOG(info) <<
"Filled";
78 Fatal(GetName(),
" - Do not use standard constructor");
109 Fatal(GetName(),
" - Error, singleton does already exist.");
127 Int_t sensorNr,
Int_t volumeId, Double_t sensorStartTime,
Int_t stationNr)
138 Fatal(GetName(),
" - Error, must add all sensors before adding plugins.");
147 new ((*fSensorArray)[nSensors])
148 CbmMvdSensor(myname, sensorData, fullName, nodeName, sensorNr, volumeId, sensorStartTime);
165 Float_t misalignment[3], randArray[3];
167 gRandom->RndmArray(3, randArray);
168 misalignment[0] = ((2 * randArray[0]) - 1) *
fepsilon[0];
169 misalignment[1] = ((2 * randArray[0]) - 1) *
fepsilon[1];
170 misalignment[2] = ((2 * randArray[0]) - 1) *
fepsilon[2];
172 LOG(debug1) <<
"new sensor " << myname <<
" to detector added at station: " << stationNr;
184 <<
"CbmMvdDetector::DetectPlugin: You tried to access sensor plugins while the detector is not initialized yet.";
190 Int_t nPlugin = pluginArray->GetEntries();
191 for (
Int_t i = 0; i < nPlugin; i++) {
215 foutput =
new TClonesArray(
"CbmMvdPoint", 1000);
224 if (nSensors <= 0) LOG(fatal) <<
"CbmMvdDetector could not load Sensors from Geometry!";
227 for (
Int_t j = 0; j < nSensors; j++) {
230 LOG(debug1) <<
"Init Sensor " << sensor->GetName();
245 for (
Int_t j = 0; j < nSensors; j++) {
255 fSensorMap.at(detectorId)->SendInputToPlugin(nPlugin, input);
277 for (
Int_t i = 0; i < nSensors; i++) {
305 for (
Int_t i = 0; i < nSensors; i++) {
307 sensor->
Exec(nLevel);
332 for (
Int_t i = 0; i < nSensors; i++) {
343 TClonesArray* tmpArray;
346 for (
Int_t i = 0; i < nSensors; i++) {
349 Int_t length = tmpArray->GetEntriesFast();
352 outputArray->AbsorbObjects(tmpArray);
362 TClonesArray* tmpArray;
365 for (
Int_t i = 0; i < nSensors; i++) {
368 Int_t length = tmpArray->GetEntriesFast();
371 matchArray->AbsorbObjects(tmpArray);
403 TH1* mySummedHistogram = (TH1*) ((sensor->
GetHistogram(nPlugin, nHistogram))->Clone());
407 mySummedHistogram->Add((TH1*) sensor->
GetHistogram(nPlugin, nHistogram));
410 return mySummedHistogram;
425 for (
Int_t i = 0; i < nSensors; i++) {
ClassImp(CbmConverterManager)
Helper class to extract information from the GeoManager. Addapted from TrdGeoHandler byFlorian Uhlig ...
static uint32_t GetAddressFromSensorNrAndPixelXY(int32_t sensorNr, int32_t sensorY, int32_t sensorX)
virtual ~CbmMvdDetector()
TH1 * GetHistogram(UInt_t nPlugin, UInt_t nHistogramNumber)
TClonesArray * foutputDigis
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()
std::map< uint32_t, CbmMvdSensor * > fSensorMap
A map of CbmMvdSensor to its hardware address.
Int_t DetectPlugin(Int_t pluginID)
CbmMvdStationPar * fParameter
TClonesArray * foutputHitMatchs
CbmMvdSensor * GetSensor(Int_t nSensor)
static CbmMvdDetector * fInstance
static CbmMvdSensorTyp fSensorTyp
TClonesArray * foutputCluster
void SendInputToSensorPlugin(uint32_t sensorAddress, Int_t nPlugin, TObject *input)
TClonesArray * fcurrentEvent
void GetOutputArray(Int_t nPlugin, TClonesArray *outputArray)
TClonesArray * foutputDigiMatchs
void GetMatchArray(Int_t nPlugin, TClonesArray *matchArray)
Bool_t fSensorArrayFilled
TClonesArray * fSensorArray
TClonesArray * foutputHits
void Init(Bool_t isSimulation=kFALSE, Int_t mcbmFlag=0)
void SetSensorTyp(CbmMvdSensorTyp typ)
virtual Int_t GetPluginIDNumber()
TClonesArray * GetMatchArray(Int_t nPlugin) const
UInt_t GetNumberOfHistograms(UInt_t nPlugin)
void SetMisalignment(Float_t misalignment[3])
TH1 * GetHistogram(UInt_t nPlugin, UInt_t nHisto)
void SetDataSheet(CbmMvdSensorDataSheet *sheet)
void SetStation(Int_t StationNumber)
TObjArray * GetPluginArray()
void SetAddress(uint32_t address)
Sets a hardware address of the sensor.
UInt_t GetPluginArraySize()
void Exec(UInt_t nPlugin)
void ExecFrom(UInt_t nPlugin)
TClonesArray * GetOutputArray(Int_t nPlugin) const