PandaRoot
PndSdsNoiseProducer.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 // -------------------------------------------------------------------------
14 // ----- PndSdsNoiseProducer header file -----
15 // ----- Created 01.07.08 by R.Kliemt -----
16 // -------------------------------------------------------------------------
17 
25 #ifndef PNDSDSNOISEPRODUCER_H
26 #define PNDSDSNOISEPRODUCER_H
27 
28 #include "PndSdsTask.h"
29 
30 #include <vector>
31 
32 #include "TRandom.h"
33 //#include "PndSdsGeoPar.h"
34 #include "PndGeoHandling.h"
35 #include "PndSdsStripDigiPar.h"
36 #include "PndSdsPixelDigiPar.h"
37 #include "PndDetectorList.h"
38 #include "TString.h"
39 
40 class TClonesArray;
41 
43  public:
46 
53 
55  virtual ~PndSdsNoiseProducer();
56 
58  virtual void SetParContainers();
59  virtual InitStatus Init();
60 
66  virtual void SetBranchNames() = 0;
67  virtual void SetMCPointType() = 0;
68 
70  virtual void Exec(Option_t *opt);
71 
72  Double_t CalcDistFraction(Double_t spread, Double_t threshold);
73  // Int_t CalcChanWhite(Int_t chanleft, Double_t frac);
74  Int_t CalcChargeAboveThreshold(Double_t spread, Double_t threshold);
75  void AddDigiStrip(Int_t &iStrip, Int_t iPoint, Int_t sensorID, Int_t fe, Int_t chan, Double_t charge);
76  void AddDigiPixel(Int_t &noisies, Int_t iPoint, Int_t sensorID, Int_t fe, Int_t col, Int_t row, Double_t charge);
77 
78  void DiveDownNode(TGeoNode *fN);
79  void FillSensorLists();
80  // void Finish();
81 
83  {
84  if (this != &other) // protect against invalid self-assignment
85  {
90  fDigiParRect = other.fDigiParRect;
91  fDigiParTrap = other.fDigiParTrap;
92  fDigiParPix = other.fDigiParPix;
93  fMCPointType = other.fMCPointType;
94  fGeoH = other.fGeoH;
95  fPixelIds4 = other.fPixelIds4;
96  fPixelIds6 = other.fPixelIds6;
97  fPixelIds8 = other.fPixelIds8;
98  fPixelIds12 = other.fPixelIds12;
101  fNoiseSpread = other.fNoiseSpread;
102  fThreshold = other.fThreshold;
104  }
105  return *this;
106  }
107 
108  protected:
112  TClonesArray *fDigiStripArray;
113  TClonesArray *fDigiPixelArray;
114 
119 
121 
123 
124  std::vector<Int_t> fPixelIds4;
125  std::vector<Int_t> fPixelIds6;
126  std::vector<Int_t> fPixelIds8;
127  std::vector<Int_t> fPixelIds12;
128  std::vector<Int_t> fStripRectIds;
129  std::vector<Int_t> fStripTrapIds;
130 
132  Int_t fThreshold;
133 
134  Double_t fIonizationEnergy; // electrons per GeV (Panda unified units)
135  // void Register();
136  // void Reset();
137  // void ProduceHits();
138 
140 };
141 
142 #endif
void DiveDownNode(TGeoNode *fN)
PndSdsPixelDigiPar * fDigiParPix
void AddDigiPixel(Int_t &noisies, Int_t iPoint, Int_t sensorID, Int_t fe, Int_t col, Int_t row, Double_t charge)
PndSdsStripDigiPar * fDigiParTrap
TClonesArray * fDigiPixelArray
std::vector< Int_t > fPixelIds8
void AddDigiStrip(Int_t &iStrip, Int_t iPoint, Int_t sensorID, Int_t fe, Int_t chan, Double_t charge)
virtual void Exec(Option_t *opt)
virtual void SetParContainers()
ClassDef(PndSdsNoiseProducer, 1)
Class to access the naming information of the MVD.
std::vector< Int_t > fStripRectIds
virtual ~PndSdsNoiseProducer()
Digitization Parameter Class for MVD-Strip part.
TClonesArray * fDigiStripArray
Double_t CalcDistFraction(Double_t spread, Double_t threshold)
virtual InitStatus Init()
DetectorType
PndSdsNoiseProducer(PndSdsNoiseProducer &other)
std::vector< Int_t > fStripTrapIds
virtual void SetBranchNames()=0
PndGeoHandling * fGeoH
PndSdsStripDigiPar * fDigiParRect
std::vector< Int_t > fPixelIds6
std::vector< Int_t > fPixelIds12
virtual void SetMCPointType()=0
PndSdsNoiseProducer & operator=(PndSdsNoiseProducer &other)
std::vector< Int_t > fPixelIds4
Geometry name handling.
Int_t CalcChargeAboveThreshold(Double_t spread, Double_t threshold)
Digitization Parameter Class for SDS-Pixel part.