PandaRoot
PndSdsNoiseProducer.h
Go to the documentation of this file.
1 // -------------------------------------------------------------------------
2 // ----- PndSdsNoiseProducer header file -----
3 // ----- Created 01.07.08 by R.Kliemt -----
4 // -------------------------------------------------------------------------
5 
13 #ifndef PNDSDSNOISEPRODUCER_H
14 #define PNDSDSNOISEPRODUCER_H
15 
16 #include "PndSdsTask.h"
17 
18 #include <vector>
19 
20 #include "TRandom.h"
21 //#include "PndSdsGeoPar.h"
22 #include "PndGeoHandling.h"
23 #include "PndSdsStripDigiPar.h"
24 #include "PndSdsPixelDigiPar.h"
25 #include "PndDetectorList.h"
26 #include "TString.h"
27 
28 class TClonesArray;
29 
31  public:
34 
41 
43  virtual ~PndSdsNoiseProducer();
44 
46  virtual void SetParContainers();
47  virtual InitStatus Init();
48 
54  virtual void SetBranchNames() = 0;
55  virtual void SetMCPointType() = 0;
56 
58  virtual void Exec(Option_t *opt);
59 
60  Double_t CalcDistFraction(Double_t spread, Double_t threshold);
61  // Int_t CalcChanWhite(Int_t chanleft, Double_t frac);
62  Int_t CalcChargeAboveThreshold(Double_t spread, Double_t threshold);
63  void AddDigiStrip(Int_t &iStrip, Int_t iPoint, Int_t sensorID, Int_t fe, Int_t chan, Double_t charge);
64  void AddDigiPixel(Int_t &noisies, Int_t iPoint, Int_t sensorID, Int_t fe, Int_t col, Int_t row, Double_t charge);
65 
66  void DiveDownNode(TGeoNode *fN);
67  void FillSensorLists();
68  // void Finish();
69 
71  {
72  if (this != &other) // protect against invalid self-assignment
73  {
78  fDigiParRect = other.fDigiParRect;
79  fDigiParTrap = other.fDigiParTrap;
80  fDigiParPix = other.fDigiParPix;
81  fMCPointType = other.fMCPointType;
82  fGeoH = other.fGeoH;
83  fPixelIds4 = other.fPixelIds4;
84  fPixelIds6 = other.fPixelIds6;
85  fPixelIds8 = other.fPixelIds8;
86  fPixelIds12 = other.fPixelIds12;
89  fNoiseSpread = other.fNoiseSpread;
90  fThreshold = other.fThreshold;
92  }
93  return *this;
94  }
95 
96  protected:
100  TClonesArray *fDigiStripArray;
101  TClonesArray *fDigiPixelArray;
102 
107 
109 
111 
112  std::vector<Int_t> fPixelIds4;
113  std::vector<Int_t> fPixelIds6;
114  std::vector<Int_t> fPixelIds8;
115  std::vector<Int_t> fPixelIds12;
116  std::vector<Int_t> fStripRectIds;
117  std::vector<Int_t> fStripTrapIds;
118 
120  Int_t fThreshold;
121 
122  Double_t fIonizationEnergy; // electrons per GeV (Panda unified units)
123  // void Register();
124  // void Reset();
125  // void ProduceHits();
126 
128 };
129 
130 #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.