CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
FP420DigiMain Class Reference

#include <FP420DigiMain.h>

Public Types

typedef float Amplitude
 
typedef
DConverterFP420::DigitalMapType 
DigitalMapType
 
typedef std::map< int, float,
std::less< int > > 
hit_map_type
 
typedef
PileUpFP420::HitToDigisMapType 
HitToDigisMapType
 

Public Member Functions

 FP420DigiMain (const edm::ParameterSet &conf)
 
std::vector< HDigiFP420run (const std::vector< PSimHit > &input, const G4ThreeVector &, unsigned int)
 
 ~FP420DigiMain ()
 

Private Member Functions

void fluctuateEloss (int particleId, float momentum, float eloss, float length, int NumberOfSegments, float elossVector[])
 
void push_digis (const DigitalMapType &, const HitToDigisMapType &, const PileUpFP420::signal_map_type &)
 

Private Attributes

std::vector< short int > adcVec
 
bool addNoisyPixels
 
double appliedVoltage
 
double chargeDistributionRMS
 
double chargeMobility
 
float ClusterWidth
 
edm::ParameterSet conf_
 
double depletionVoltage
 
std::vector< HDigiFP420digis
 
bool doMissCalibrate
 
float elossCut
 
float ENC
 
LandauFP420 fluctuate
 
double ldrift
 
double ldriftX
 
double ldriftY
 
float moduleThickness
 
int ndigis
 
bool noDiffusion
 
bool noNoise
 
int NumberOfSegments
 
int numStrips
 
int numStripsW
 
int numStripsX
 
int numStripsXW
 
int numStripsY
 
int numStripsYW
 
double pitch
 
double pitchW
 
double pitchX
 
double pitchXW
 
double pitchY
 
double pitchYW
 
float Sigma0
 
std::vector< const PSimHit * > ss
 
double temperature
 
int theAdcFullScale
 
bool theApplyTofCut
 
CDividerFP420theCDividerFP420
 
ChargeDrifterFP420theCDrifterFP420
 
DigiConverterFP420theDConverterFP420
 
float theElectronPerADC
 
FP420NumberingSchemetheFP420NumberingScheme
 
float theGainSmearing
 
GaussNoiseFP420theGNoiseFP420
 
HitDigitizerFP420theHitDigitizerFP420
 
float theNoiseInElectrons
 
GaussNoiseProducerFP420theNoiser
 
float theOffsetSmearing
 
PileUpFP420thePileUpFP420
 
int theStripsInChip
 
float theStripThreshold
 
float theStripThresholdInE
 
float theThreshold
 
double thez420
 
double thezD2
 
double thezD3
 
ZeroSuppressFP420theZSuppressFP420
 
float Thick300
 
double tMax
 
double tofCut
 
int verbosity
 
int xytype
 

Detailed Description

Definition at line 32 of file FP420DigiMain.h.

Member Typedef Documentation

typedef float FP420DigiMain::Amplitude

Definition at line 37 of file FP420DigiMain.h.

Definition at line 39 of file FP420DigiMain.h.

typedef std::map<int, float, std::less<int> > FP420DigiMain::hit_map_type

Definition at line 36 of file FP420DigiMain.h.

Definition at line 40 of file FP420DigiMain.h.

Constructor & Destructor Documentation

FP420DigiMain::FP420DigiMain ( const edm::ParameterSet conf)

Definition at line 42 of file FP420DigiMain.cc.

References addNoisyPixels, conf_, gather_cfg::cout, elossCut, ENC, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), ldrift, ldriftX, ldriftY, moduleThickness, ndigis, noNoise, numStrips, numStripsW, numStripsX, numStripsXW, numStripsY, numStripsYW, pitch, pitchW, pitchX, pitchXW, pitchY, pitchYW, theApplyTofCut, theDConverterFP420, theElectronPerADC, theFP420NumberingScheme, theGNoiseFP420, theHitDigitizerFP420, thePileUpFP420, theThreshold, thez420, thezD2, thezD3, theZSuppressFP420, Thick300, tofCut, verbosity, and xytype.

42  :conf_(conf){
43  std::cout << "Creating a FP420DigiMain" << std::endl;
44  ndigis=0;
45  verbosity = conf_.getUntrackedParameter<int>("VerbosityLevel");
46  theElectronPerADC= conf_.getParameter<double>("ElectronFP420PerAdc");
47  theThreshold = conf_.getParameter<double>("AdcFP420Threshold");
48  noNoise = conf_.getParameter<bool>("NoFP420Noise");
49  addNoisyPixels = conf_.getParameter<bool>("AddNoisyPixels");
50  thez420 = conf_.getParameter<double>("z420");
51  thezD2 = conf_.getParameter<double>("zD2");
52  thezD3 = conf_.getParameter<double>("zD3");
53  theApplyTofCut = conf_.getParameter<bool>("ApplyTofCut");
54  tofCut = conf_.getParameter<double>("LowtofCutAndTo200ns");
55  // sn0 = 3;// number of stations
56  // pn0 = 6;// number of superplanes
57  // rn0 = 3; // number of sensors in superlayer
58  xytype = 2;
59  if(verbosity>0) {
60  std::cout << "theApplyTofCut=" << theApplyTofCut << " tofCut=" << tofCut << std::endl;
61  std::cout << "FP420DigiMain theElectronPerADC=" << theElectronPerADC << " theThreshold=" << theThreshold << " noNoise=" << noNoise << std::endl;
62  }
63  // X (or Y)define type of sensor (xytype=1 or 2 used to derive it: 1-Y, 2-X)
64  // for every type there is normal pixel size=0.05 and Wide 0.400 mm
65  Thick300 = 0.300; // = 0.300 mm normalized to 300micron Silicon
66  //ENC= 2160.; // EquivalentNoiseCharge300um = 2160. + other sources of noise
67  ENC= 960.; // EquivalentNoiseCharge300um = 2160. + other sources of noise
68 
69  ldriftX = 0.050; // in mm(xytype=1)
70  ldriftY = 0.050; // in mm(xytype=2)
71  moduleThickness = 0.250; // mm(xytype=1)(xytype=2)
72 
73  pitchY= 0.050; // in mm(xytype=1)
74  pitchX= 0.050; // in mm(xytype=2)
75  //numStripsY = 200; // Y plate number of strips:200*0.050=10mm (xytype=1)
76  //numStripsX = 400; // X plate number of strips:400*0.050=20mm (xytype=2)
77  numStripsY = 144; // Y plate number of strips:144*0.050=7.2mm (xytype=1)
78  numStripsX = 160; // X plate number of strips:160*0.050=8.0mm (xytype=2)
79 
80  pitchYW= 0.400; // in mm(xytype=1)
81  pitchXW= 0.400; // in mm(xytype=2)
82  //numStripsYW = 50; // Y plate number of W strips:50 *0.400=20mm (xytype=1) - W have ortogonal projection
83  //numStripsXW = 25; // X plate number of W strips:25 *0.400=10mm (xytype=2) - W have ortogonal projection
84  numStripsYW = 20; // Y plate number of W strips:20 *0.400=8.0mm (xytype=1) - W have ortogonal projection
85  numStripsXW = 18; // X plate number of W strips:18 *0.400=7.2mm (xytype=2) - W have ortogonal projection
86 
87  // tofCut = 1350.; // Cut on the particle TOF range = 1380 - 1500
88  elossCut = 0.00003; // Cut on the particle TOF = 100 or 50
89 
90  if(verbosity>0) std::cout << "FP420DigiMain moduleThickness=" << moduleThickness << std::endl;
91 
93 
94  float noiseRMS = ENC*moduleThickness/Thick300;
95 
96 
97 
99  // Y:
100  if (xytype ==1) {
101  numStrips = numStripsY; // Y plate number of strips:200*0.050=10mm --> 100*0.100=10mm
102  pitch= pitchY;
103  ldrift = ldriftX; // because drift is in local coordinates which 90 degree rotated ( for correct timeNormalization & noiseRMS calculations)
104  numStripsW = numStripsYW; // Y plate number of strips:200*0.050=10mm --> 100*0.100=10mm
105  pitchW= pitchYW;
106  }
107  // X:
108  if (xytype ==2) {
109  numStrips = numStripsX; // X plate number of strips:400*0.050=20mm --> 200*0.100=20mm
110  pitch= pitchX;
111  ldrift = ldriftY; // because drift is in local coordinates which 90 degree rotated ( for correct timeNormalization & noiseRMS calculations)
112  numStripsW = numStripsXW; // X plate number of strips:400*0.050=20mm --> 200*0.100=20mm
113  pitchW= pitchXW;
114  }
115 
116  // float noiseRMS = ENC*moduleThickness/Thick300;
117 
118 
120  int numPixels = numStrips*numStripsW;
121  theGNoiseFP420 = new GaussNoiseFP420(numPixels,noiseRMS,theThreshold,addNoisyPixels,verbosity);
122  // theGNoiseFP420 = new GaussNoiseFP420(numStrips,noiseRMS,theThreshold,addNoisyPixels);
124 
125 
126 
127 
128  theZSuppressFP420 = new ZeroSuppressFP420(conf_,noiseRMS/theElectronPerADC);
129  thePileUpFP420 = new PileUpFP420();
130  theDConverterFP420 = new DigiConverterFP420(theElectronPerADC,verbosity);
131 
132  if(verbosity>0) std::cout << "FP420DigiMain end of constructor" << std::endl;
133 
134 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
GaussNoiseFP420 * theGNoiseFP420
edm::ParameterSet conf_
Definition: FP420DigiMain.h:56
float theThreshold
Definition: FP420DigiMain.h:87
DigiConverterFP420 * theDConverterFP420
float theElectronPerADC
Definition: FP420DigiMain.h:71
FP420NumberingScheme * theFP420NumberingScheme
ZeroSuppressFP420 * theZSuppressFP420
PileUpFP420 * thePileUpFP420
tuple cout
Definition: gather_cfg.py:121
HitDigitizerFP420 * theHitDigitizerFP420
float moduleThickness
FP420DigiMain::~FP420DigiMain ( )

Definition at line 142 of file FP420DigiMain.cc.

References gather_cfg::cout, theDConverterFP420, theGNoiseFP420, theHitDigitizerFP420, thePileUpFP420, theZSuppressFP420, and verbosity.

142  {
143  if(verbosity>0) {
144  std::cout << "Destroying a FP420DigiMain" << std::endl;
145  }
146  delete theGNoiseFP420;
147  delete theZSuppressFP420;
148  delete theHitDigitizerFP420;
149  delete thePileUpFP420;
150  delete theDConverterFP420;
151 
152 }
GaussNoiseFP420 * theGNoiseFP420
DigiConverterFP420 * theDConverterFP420
ZeroSuppressFP420 * theZSuppressFP420
PileUpFP420 * thePileUpFP420
tuple cout
Definition: gather_cfg.py:121
HitDigitizerFP420 * theHitDigitizerFP420

Member Function Documentation

void FP420DigiMain::fluctuateEloss ( int  particleId,
float  momentum,
float  eloss,
float  length,
int  NumberOfSegments,
float  elossVector[] 
)
private
void FP420DigiMain::push_digis ( const DigitalMapType dm,
const HitToDigisMapType htd,
const PileUpFP420::signal_map_type afterNoise 
)
private

Definition at line 268 of file FP420DigiMain.cc.

References gather_cfg::cout, digis, i, ndigis, and verbosity.

Referenced by run().

271  {
272  //
273  if(verbosity>0) {
274  std::cout << " ****FP420DigiMain: push_digis start: do for loop dm.size()=" << dm.size() << std::endl;
275  }
276 
277 
278  digis.reserve(50);
279  digis.clear();
280  // link_coll.clear();
281  for ( DigitalMapType::const_iterator i=dm.begin(); i!=dm.end(); i++) {
282 
283  // Load digis
284  // push to digis the content of first and second words of HDigiFP420 vector for every strip pointer (*i)
285  digis.push_back( HDigiFP420( (*i).first, (*i).second));
286  ndigis++;
287  // very useful check:
288  if(verbosity>0) {
289  std::cout << " ****FP420DigiMain:push_digis: ndigis = " << ndigis << std::endl;
290  std::cout << "push_digis: strip = " << (*i).first << " adc = " << (*i).second << std::endl;
291  }
292 
293  }
294 
296  /*
297  //
298  // reworked to access the fraction of amplitude per simhit PSimHit
299  //
300  for ( HitToDigisMapType::const_iterator mi=htd.begin(); mi!=htd.end(); mi++) {
301  #ifdef mydigidebug1
302  std::cout << " ****push_digis:first for: (*mi).first = " << (*mi).first << std::endl;
303  std::cout << " if condition = " << (*((const_cast<DigitalMapType * >(&dm))))[(*mi).first] << std::endl;
304  #endif
305  // if ((*((const_cast<DigitalMapType * >(&dm))))[(*mi).first] != 0){
306  if ((*((const_cast<DigitalMapType * >(&dm)))).find((*mi).first) != (*((const_cast<DigitalMapType * >(&dm)))).end() ){
307  //
308  // For each channel, sum up the signals from a simtrack
309  //
310  std::map<const PSimHit *, Amplitude> totalAmplitudePerSimHit;
311  for (std::vector < std::pair < const PSimHit*, Amplitude > >::const_iterator simul =
312  (*mi).second.begin() ; simul != (*mi).second.end(); simul ++){
313  #ifdef mydigidebug1
314  std::cout << " ****push_digis:inside last for: (*simul).second= " << (*simul).second << std::endl;
315  #endif
316  totalAmplitudePerSimHit[(*simul).first] += (*simul).second;
317  } // for
318  } // if
319  } // for
320  */
321 
323 
324  // reworked to access the fraction of amplitude per simhit
325 
326  for ( HitToDigisMapType::const_iterator mi=htd.begin(); mi!=htd.end(); mi++) {
327  //
328  if ((*((const_cast<DigitalMapType * >(&dm)))).find((*mi).first) != (*((const_cast<DigitalMapType * >(&dm)))).end() ){
329  // --- For each channel, sum up the signals from a simtrack
330  //
331  map<const PSimHit *, Amplitude> totalAmplitudePerSimHit;
332  for (std::vector < std::pair < const PSimHit*, Amplitude > >::const_iterator simul =
333  (*mi).second.begin() ; simul != (*mi).second.end(); simul ++){
334  totalAmplitudePerSimHit[(*simul).first] += (*simul).second;
335  }
336  /*
337  //--- include the noise as well
338 
339  PileUpFP420::signal_map_type& temp1 = const_cast<PileUpFP420::signal_map_type&>(afterNoise);
340  float totalAmplitude1 = temp1[(*mi).first];
341 
342  //--- digisimlink
343  for (std::map<const PSimHit *, Amplitude>::const_iterator iter = totalAmplitudePerSimHit.begin();
344  iter != totalAmplitudePerSimHit.end(); iter++){
345 
346  float threshold = 0.;
347  if (totalAmplitudePerSimHit[(*iter).first]/totalAmplitude1 >= threshold) {
348  float fraction = totalAmplitudePerSimHit[(*iter).first]/totalAmplitude1;
349 
350  //Noise fluctuation could make fraction>1. Unphysical, set it by hand.
351  if(fraction >1.) fraction = 1.;
352 
353  link_coll.push_back(StripDigiSimLink( (*mi).first, //channel
354  ((*iter).first)->trackId(), //simhit
355  fraction)); //fraction
356  }//if
357  }//for
358  */
359  //
360  }//if
361  }//for
362  //
363  //
365  //
366  //
367  //
368  }
DConverterFP420::DigitalMapType DigitalMapType
Definition: FP420DigiMain.h:39
int i
Definition: DBlmapReader.cc:9
std::vector< HDigiFP420 > digis
tuple cout
Definition: gather_cfg.py:121
vector< HDigiFP420 > FP420DigiMain::run ( const std::vector< PSimHit > &  input,
const G4ThreeVector &  bfield,
unsigned int  iu 
)

Definition at line 159 of file FP420DigiMain.cc.

References funct::abs(), PileUpFP420::add(), GaussNoiseFP420::addNoise(), DigiConverterFP420::convert(), gather_cfg::cout, PSimHit::detUnitId(), digis, PileUpFP420::dumpLink(), PileUpFP420::dumpSignal(), elossCut, PSimHit::energyLoss(), PSimHit::entryPoint(), PSimHit::exitPoint(), first, moduleThickness, noNoise, numStrips, numStripsW, PSimHit::pabs(), PSimHit::particleType(), pitch, pitchW, HitDigitizerFP420::processHit(), push_digis(), PileUpFP420::reset(), theApplyTofCut, theDConverterFP420, theGNoiseFP420, theHitDigitizerFP420, thePileUpFP420, theZSuppressFP420, PSimHit::tof(), tofCut, PSimHit::trackId(), verbosity, PV3DBase< T, PVType, FrameType >::x(), xytype, PV3DBase< T, PVType, FrameType >::y(), PV3DBase< T, PVType, FrameType >::z(), and ZeroSuppressFP420::zeroSuppress().

Referenced by cms::DigitizerFP420::produce().

160  {
161 
162  /*
163  int det, zside, sector, zmodule;
164  // theFP420NumberingScheme->FP420NumberingScheme::unpackMYIndex(iu, rn0, pn0, sn0, det, zside, sector, zmodule);
165  theFP420NumberingScheme->unpackMYIndex(iu, rn0, pn0, sn0, det, zside, sector, zmodule);
166 */
168  // unsigned int detID = det->globalId().rawId();
169  // unsigned int detID = 1;
170  bool first = true;
171 
172  // main loop
173  //
174  // First: loop on the SimHits
175  //
176  std::vector<PSimHit>::const_iterator simHitIter = input.begin();
177  std::vector<PSimHit>::const_iterator simHitIterEnd = input.end();
178  for (;simHitIter != simHitIterEnd; ++simHitIter) {
179 
180  const PSimHit ihit = *simHitIter;
181 
182  if ( first ) {
183  // detID = ihit.detUnitId();
184  first = false;
185  }
186 
187  // main part here:
188  double losenergy = ihit.energyLoss();
189  float tof = ihit.tof();
190 
191  if(verbosity>1) {
192  unsigned int unitID = ihit.detUnitId();
193  std::cout << " *******FP420DigiMain: intindex= " << iu << std::endl;
194  std::cout << " tof= " << tof << " EnergyLoss= " << losenergy << " pabs= " << ihit.pabs() << std::endl;
195  std::cout << " EntryLocalP x= " << ihit.entryPoint().x() << " EntryLocalP y= " << ihit.entryPoint().y() << std::endl;
196  std::cout << " ExitLocalP x= " << ihit.exitPoint().x() << " ExitLocalP y= " << ihit.exitPoint().y() << std::endl;
197  std::cout << " EntryLocalP z= " << ihit.entryPoint().z() << " ExitLocalP z= " << ihit.exitPoint().z() << std::endl;
198  std::cout << " unitID= " << unitID << " xytype= " << xytype << " particleType= " << ihit.particleType() << " trackId= " << ihit.trackId() << std::endl;
199  // std::cout << " det= " << det << " sector= " << sector << " zmodule= " << zmodule << std::endl;
200  std::cout << " bfield= " << bfield << std::endl;
201  }
202  if(verbosity>0) {
203  std::cout << " *******FP420DigiMain: theApplyTofCut= " << theApplyTofCut << std::endl;
204  std::cout << " tof= " << tof << " EnergyLoss= " << losenergy << " pabs= " << ihit.pabs() << std::endl;
205  std::cout << " particleType= " << ihit.particleType() << std::endl;
206  }
207 
208  //
209 
210  // if ( ( !(theApplyTofCut) || (theApplyTofCut && tofCut < abs(tof) < (tofCut+200.)) ) && losenergy > elossCut) {
211  if ( ( !(theApplyTofCut) || ( theApplyTofCut && abs(tof) > tofCut && abs(tof) < (tofCut+200.)) ) && losenergy > elossCut) {
212  // if ( abs(tof) < tofCut && losenergy > elossCut) {
213  // if ( losenergy>0) {
214  if(verbosity>0) std::cout << " inside tof: OK " << std::endl;
215 
216  // xytype = 1 - Y strips; =2 - X strips;
217  // HitDigitizerFP420::hit_map_type _temp = theHitDigitizerFP420->processHit(ihit,bfield,xytype,numStrips,pitch);
219 
220 
221 
222  thePileUpFP420->add(_temp,ihit,verbosity);
223 
224  }// if
225 
226  else {
227  // std::cout << " *******FP420DigiMain: ERROR??? losenergy = " << losenergy << std::endl;
228  }
229  // main part end (AZ)
230  } //for
231  // main loop end (AZ)
232 
235 
236 
237  PileUpFP420::signal_map_type afterNoise;
238 
239  if (noNoise) {
240  afterNoise = theSignal;
241  } else {
242  afterNoise = theGNoiseFP420->addNoise(theSignal);
243  // add_noise();
244  }
245 
246  // if((pixelInefficiency>0) && (_signal.size()>0))
247  // pixel_inefficiency(); // Kill some pixels
248 
249 
250 
251  digis.clear();
252 
253 
254 
255  // !!!!!
257  theLink,afterNoise);
258 
259 
260 
261  return digis; // to HDigiFP420
262 }
float tof() const
deprecated name for timeOfFlight()
Definition: PSimHit.h:72
GaussNoiseFP420 * theGNoiseFP420
void reset()
Definition: PileUpFP420.h:22
std::map< int, float, std::less< int > > hit_map_type
T y() const
Definition: PV3DBase.h:63
std::vector< HDigiFP420 > digis
PileUpFP420::signal_map_type addNoise(const PileUpFP420::signal_map_type &)
DigitalMapType convert(const signal_map_type &)
static std::string const input
Definition: EdmProvDump.cc:44
Local3DPoint exitPoint() const
Exit point in the local Det frame.
Definition: PSimHit.h:38
virtual void add(const HitDigitizerFP420::hit_map_type &, const PSimHit &hit, int)
Definition: PileUpFP420.cc:13
DigiConverterFP420 * theDConverterFP420
T z() const
Definition: PV3DBase.h:64
ZSuppressFP420::DigitalMapType zeroSuppress(const DigitalMapType &, int)
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
float pabs() const
fast and more accurate access to momentumAtEntry().mag()
Definition: PSimHit.h:63
bool first
Definition: L1TdeRCT.cc:79
ZeroSuppressFP420 * theZSuppressFP420
signal_map_type dumpSignal()
Definition: PileUpFP420.h:23
float energyLoss() const
The energy deposit in the PSimHit, in ???.
Definition: PSimHit.h:75
int particleType() const
Definition: PSimHit.h:85
void push_digis(const DigitalMapType &, const HitToDigisMapType &, const PileUpFP420::signal_map_type &)
std::map< int, Amplitude, std::less< int > > signal_map_type
Definition: PileUpFP420.h:15
PileUpFP420 * thePileUpFP420
unsigned int trackId() const
Definition: PSimHit.h:102
tuple cout
Definition: gather_cfg.py:121
T x() const
Definition: PV3DBase.h:62
Local3DPoint entryPoint() const
Entry point in the local Det frame.
Definition: PSimHit.h:35
HitToDigisMapType dumpLink()
Definition: PileUpFP420.h:24
std::map< int, std::vector< std::pair< const PSimHit *, Amplitude > >, std::less< int > > HitToDigisMapType
Definition: PileUpFP420.h:16
HitDigitizerFP420 * theHitDigitizerFP420
unsigned int detUnitId() const
Definition: PSimHit.h:93
hit_map_type processHit(const PSimHit &, const G4ThreeVector &, int, int, double, int, double, double, int)
float moduleThickness

Member Data Documentation

std::vector<short int> FP420DigiMain::adcVec
private

Definition at line 54 of file FP420DigiMain.h.

bool FP420DigiMain::addNoisyPixels
private

Definition at line 82 of file FP420DigiMain.h.

Referenced by FP420DigiMain().

double FP420DigiMain::appliedVoltage
private

Definition at line 103 of file FP420DigiMain.h.

double FP420DigiMain::chargeDistributionRMS
private

Definition at line 107 of file FP420DigiMain.h.

double FP420DigiMain::chargeMobility
private

Definition at line 104 of file FP420DigiMain.h.

float FP420DigiMain::ClusterWidth
private

Definition at line 67 of file FP420DigiMain.h.

edm::ParameterSet FP420DigiMain::conf_
private

Definition at line 56 of file FP420DigiMain.h.

Referenced by FP420DigiMain().

double FP420DigiMain::depletionVoltage
private

Definition at line 102 of file FP420DigiMain.h.

std::vector<HDigiFP420> FP420DigiMain::digis
private

Definition at line 202 of file FP420DigiMain.h.

Referenced by push_digis(), and run().

bool FP420DigiMain::doMissCalibrate
private

Definition at line 180 of file FP420DigiMain.h.

float FP420DigiMain::elossCut
private

Definition at line 85 of file FP420DigiMain.h.

Referenced by FP420DigiMain(), and run().

float FP420DigiMain::ENC
private

Definition at line 75 of file FP420DigiMain.h.

Referenced by FP420DigiMain().

LandauFP420 FP420DigiMain::fluctuate
private

Definition at line 191 of file FP420DigiMain.h.

double FP420DigiMain::ldrift
private

Definition at line 98 of file FP420DigiMain.h.

Referenced by FP420DigiMain().

double FP420DigiMain::ldriftX
private

Definition at line 96 of file FP420DigiMain.h.

Referenced by FP420DigiMain().

double FP420DigiMain::ldriftY
private

Definition at line 97 of file FP420DigiMain.h.

Referenced by FP420DigiMain().

float FP420DigiMain::moduleThickness
private

Definition at line 170 of file FP420DigiMain.h.

Referenced by FP420DigiMain(), and run().

int FP420DigiMain::ndigis
private

Definition at line 53 of file FP420DigiMain.h.

Referenced by FP420DigiMain(), and push_digis().

bool FP420DigiMain::noDiffusion
private

Definition at line 106 of file FP420DigiMain.h.

bool FP420DigiMain::noNoise
private

Definition at line 81 of file FP420DigiMain.h.

Referenced by FP420DigiMain(), and run().

int FP420DigiMain::NumberOfSegments
private

Definition at line 59 of file FP420DigiMain.h.

int FP420DigiMain::numStrips
private

Definition at line 164 of file FP420DigiMain.h.

Referenced by FP420DigiMain(), and run().

int FP420DigiMain::numStripsW
private

Definition at line 167 of file FP420DigiMain.h.

Referenced by FP420DigiMain(), and run().

int FP420DigiMain::numStripsX
private

Definition at line 162 of file FP420DigiMain.h.

Referenced by FP420DigiMain().

int FP420DigiMain::numStripsXW
private

Definition at line 165 of file FP420DigiMain.h.

Referenced by FP420DigiMain().

int FP420DigiMain::numStripsY
private

Definition at line 163 of file FP420DigiMain.h.

Referenced by FP420DigiMain().

int FP420DigiMain::numStripsYW
private

Definition at line 166 of file FP420DigiMain.h.

Referenced by FP420DigiMain().

double FP420DigiMain::pitch
private

Definition at line 91 of file FP420DigiMain.h.

Referenced by FP420DigiMain(), and run().

double FP420DigiMain::pitchW
private

Definition at line 94 of file FP420DigiMain.h.

Referenced by FP420DigiMain(), and run().

double FP420DigiMain::pitchX
private

Definition at line 89 of file FP420DigiMain.h.

Referenced by FP420DigiMain().

double FP420DigiMain::pitchXW
private

Definition at line 92 of file FP420DigiMain.h.

Referenced by FP420DigiMain().

double FP420DigiMain::pitchY
private

Definition at line 90 of file FP420DigiMain.h.

Referenced by FP420DigiMain().

double FP420DigiMain::pitchYW
private

Definition at line 93 of file FP420DigiMain.h.

Referenced by FP420DigiMain().

float FP420DigiMain::Sigma0
private

Definition at line 63 of file FP420DigiMain.h.

std::vector<const PSimHit*> FP420DigiMain::ss
private

Definition at line 193 of file FP420DigiMain.h.

double FP420DigiMain::temperature
private

Definition at line 105 of file FP420DigiMain.h.

int FP420DigiMain::theAdcFullScale
private

Definition at line 76 of file FP420DigiMain.h.

bool FP420DigiMain::theApplyTofCut
private

Definition at line 83 of file FP420DigiMain.h.

Referenced by FP420DigiMain(), and run().

CDividerFP420* FP420DigiMain::theCDividerFP420
private

Definition at line 130 of file FP420DigiMain.h.

ChargeDrifterFP420* FP420DigiMain::theCDrifterFP420
private

Definition at line 120 of file FP420DigiMain.h.

DigiConverterFP420* FP420DigiMain::theDConverterFP420
private

Definition at line 158 of file FP420DigiMain.h.

Referenced by FP420DigiMain(), run(), and ~FP420DigiMain().

float FP420DigiMain::theElectronPerADC
private

Definition at line 71 of file FP420DigiMain.h.

Referenced by FP420DigiMain().

FP420NumberingScheme* FP420DigiMain::theFP420NumberingScheme
private

Definition at line 172 of file FP420DigiMain.h.

Referenced by FP420DigiMain().

float FP420DigiMain::theGainSmearing
private

Definition at line 181 of file FP420DigiMain.h.

GaussNoiseFP420* FP420DigiMain::theGNoiseFP420
private

Definition at line 154 of file FP420DigiMain.h.

Referenced by FP420DigiMain(), run(), and ~FP420DigiMain().

HitDigitizerFP420* FP420DigiMain::theHitDigitizerFP420
private

Definition at line 156 of file FP420DigiMain.h.

Referenced by FP420DigiMain(), run(), and ~FP420DigiMain().

float FP420DigiMain::theNoiseInElectrons
private

Definition at line 77 of file FP420DigiMain.h.

GaussNoiseProducerFP420* FP420DigiMain::theNoiser
private

Definition at line 192 of file FP420DigiMain.h.

float FP420DigiMain::theOffsetSmearing
private

Definition at line 182 of file FP420DigiMain.h.

PileUpFP420* FP420DigiMain::thePileUpFP420
private

Definition at line 155 of file FP420DigiMain.h.

Referenced by FP420DigiMain(), run(), and ~FP420DigiMain().

int FP420DigiMain::theStripsInChip
private

Definition at line 160 of file FP420DigiMain.h.

float FP420DigiMain::theStripThreshold
private

Definition at line 78 of file FP420DigiMain.h.

float FP420DigiMain::theStripThresholdInE
private

Definition at line 79 of file FP420DigiMain.h.

float FP420DigiMain::theThreshold
private

Definition at line 87 of file FP420DigiMain.h.

Referenced by FP420DigiMain().

double FP420DigiMain::thez420
private

Definition at line 72 of file FP420DigiMain.h.

Referenced by FP420DigiMain().

double FP420DigiMain::thezD2
private

Definition at line 73 of file FP420DigiMain.h.

Referenced by FP420DigiMain().

double FP420DigiMain::thezD3
private

Definition at line 74 of file FP420DigiMain.h.

Referenced by FP420DigiMain().

ZeroSuppressFP420* FP420DigiMain::theZSuppressFP420
private

Definition at line 157 of file FP420DigiMain.h.

Referenced by FP420DigiMain(), run(), and ~FP420DigiMain().

float FP420DigiMain::Thick300
private

Definition at line 64 of file FP420DigiMain.h.

Referenced by FP420DigiMain().

double FP420DigiMain::tMax
private

Definition at line 188 of file FP420DigiMain.h.

double FP420DigiMain::tofCut
private

Definition at line 86 of file FP420DigiMain.h.

Referenced by FP420DigiMain(), and run().

int FP420DigiMain::verbosity
private

Definition at line 59 of file FP420DigiMain.h.

Referenced by FP420DigiMain(), push_digis(), run(), and ~FP420DigiMain().

int FP420DigiMain::xytype
private

Definition at line 59 of file FP420DigiMain.h.

Referenced by FP420DigiMain(), and run().