Public Types | Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
DPhaseCoherentNoiseService Class Reference

#include <DPhaseCoherentNoiseService.h>

Inheritance diagram for DPhaseCoherentNoiseService:
ChannelNoiseService

Public Types

typedef std::map< int, std::vector< float > > Map
 
typedef std::map< Channel, AdcSignalVectorMask
 
- Public Types inherited from ChannelNoiseService
typedef unsigned int Channel
 

Public Member Functions

 DPhaseCoherentNoiseService (fhicl::ParameterSet const &pset)
 
 DPhaseCoherentNoiseService (fhicl::ParameterSet const &pset, art::ActivityRegistry &)
 
 ~DPhaseCoherentNoiseService ()
 
int addNoise (detinfo::DetectorClocksData const &clockData, detinfo::DetectorPropertiesData const &detProp, Channel chan, AdcSignalVector &sigs) const
 
std::ostream & print (std::ostream &out=std::cout, std::string prefix="") const
 
- Public Member Functions inherited from ChannelNoiseService
virtual ~ChannelNoiseService ()=default
 
virtual void newEvent ()
 

Public Attributes

Map fChFrequencyMap
 Map storing the frequency vector for each channel. More...
 
Map fChAmplitudeMap
 Map holding the amplitude of the frequency for each channel. More...
 

Private Member Functions

void getAmplitudeArray (Channel chan, std::vector< float > &array) const
 
void getFrequencyArray (Channel chan, std::vector< float > &array) const
 
void makePhaseMap (Map &phaseMap, int size, float minShift, float maxShift)
 
int getNumber (Channel chan) const
 
void getNoiseArray (detinfo::DetectorClocksData const &clockData, std::vector< float > &noiseArray, std::vector< float > ampArray, std::vector< float > freqArray, std::vector< float > phaseArray, float randAmp) const
 
void getPhases ()
 
void importNoiseModel (std::string noiseModel, Map &chFrequencyMap, Map &chAmplitudeMap, double cut, int &normalization) const
 

Private Attributes

std::string fNoiseModel
 < noise model root file More...
 
double fAmplitudeCut
 < only frequencies with amplitude above this cut will be considered More...
 
int fNormalization
 < Normalization factor ( similar to the one for the InFFT ) More...
 
std::vector< float > fRandomize
 < randomization of the amplitude More...
 
std::vector< float > fPhaseShift
 < Phase shift for each group of 30 channels More...
 
std::vector< int > fChannelGroup
 < Channels in the same group get the same phase More...
 
std::vector< float > fInchoerentNoise
 < Mean and std of the incoherent noise More...
 
int fNumberOfPhases
 < Number of pregenerated phase shift maps More...
 
int fRandomSeed
 < Seed for random number service. If absent or zero, use SeedSvc. More...
 
int fLogLevel
 < Log message level: 0=quiet, 1=init only, 2+=every event More...
 
int fMaxFrequencySize
 
std::vector< MapfPhaseMap
 Pregenerated phase shift maps. More...
 
int fNum =0
 Hold the correct event number. More...
 
CLHEP::HepRandomEngine * m_pran
 

Detailed Description

Definition at line 25 of file DPhaseCoherentNoiseService.h.

Member Typedef Documentation

typedef std::map<int, std::vector< float > > DPhaseCoherentNoiseService::Map

Definition at line 30 of file DPhaseCoherentNoiseService.h.

Definition at line 31 of file DPhaseCoherentNoiseService.h.

Constructor & Destructor Documentation

DPhaseCoherentNoiseService::DPhaseCoherentNoiseService ( fhicl::ParameterSet const &  pset)

Definition at line 51 of file DPhaseCoherentNoiseService_service.cc.

52 : fRandomSeed(0), fLogLevel(1),
53  m_pran(nullptr)
54 {
55  const string myname = "DPhaseCoherentNoiseService::ctor: ";
56  fNoiseModel = pset.get<string>("NoiseModel");
57  fAmplitudeCut = pset.get<double>("AmplitudeCut");
58  fNormalization = pset.get<int>("Normalization");
59  fRandomize = pset.get< vector< float > >("Randomize");
60  fPhaseShift = pset.get< vector< float > >("PhaseShift");
61  fChannelGroup = pset.get< vector<int> >("ChannelGroup");
62  fInchoerentNoise = pset.get< vector< float > >("InchoerentNoise");
63  fNumberOfPhases = pset.get<int>("NumberOfPhases");
64  fLogLevel = pset.get<int>("LogLevel");
65  bool haveSeed = pset.get_if_present<int>("RandomSeed", fRandomSeed);
66  if ( fRandomSeed == 0 ) haveSeed = false;
67  pset.get_if_present<int>("LogLevel", fLogLevel);
68 
69  int seed = fRandomSeed;
71 
72  // Assign a unique name for the random number engine ExponentialChannelNoiseServiceVIII
73  // III = for each instance of this class.
74  string rname = "DPhaseCoherentNoiseService";
75  if ( haveSeed )
76  {
77  if ( fLogLevel > 0 ) cout << myname << "WARNING: Using hardwired seed." << endl;
78  m_pran = new HepJamesRandom(seed);
79  }
80  else
81  {
82  if ( fLogLevel > 0 ) cout << myname << "Using NuRandomService." << endl;
84  m_pran = new HepJamesRandom;
85  if ( fLogLevel > 0 ) cout << myname << " Initial seed: " << m_pran->getSeed() << endl;
86  seedSvc->registerEngine(NuRandomService::CLHEPengineSeeder(m_pran), rname);
87  }
88  if ( fLogLevel > 0 ) cout << myname << " Registered seed: " << m_pran->getSeed() << endl;
89 
90  importNoiseModel(fNoiseModel, fChFrequencyMap, fChAmplitudeMap, fAmplitudeCut, fNormalization);
91 
92  //sanity checks for the imported maps and find max frequency array length
93  int max =0;
94 
96  for(Channel chan=0; chan< geo->Nchannels() ; chan++){
97 
98  vector<float> amplitudeArray;
99  vector<float> frequencyArray;
100 
101  getFrequencyArray( chan, frequencyArray);
102  getAmplitudeArray( chan, amplitudeArray);
103 
104  if( frequencyArray.size() != amplitudeArray.size() ){
105  if ( fLogLevel > 0 ){ cout << myname << "frequency array and amplitude array have not the same size in chan: " << chan << endl; }
106  //throw art::Exception("DPhaseCoherentNoiseService") << "frequency array and amplitude array have not the same size";
107  }
108 
109  if( max < (int)frequencyArray.size() ){ max = frequencyArray.size(); }
110  }
111 
113 
114  //pregenerated random phases arrays
115  fPhaseMap.resize(fNumberOfPhases);
116 
117  for ( int isam=0; isam<fNumberOfPhases; ++isam ) {
118  makePhaseMap(fPhaseMap[isam], fMaxFrequencySize, fPhaseShift[0], fPhaseShift[1]);
119  }
120 
121  if ( fLogLevel > 1 ) print() << endl;
122 } //m_pran(nullptr)
std::string fNoiseModel
< noise model root file
std::vector< float > fRandomize
< randomization of the amplitude
int fLogLevel
< Log message level: 0=quiet, 1=init only, 2+=every event
int fNumberOfPhases
< Number of pregenerated phase shift maps
Map fChFrequencyMap
Map storing the frequency vector for each channel.
int fNormalization
< Normalization factor ( similar to the one for the InFFT )
std::vector< int > fChannelGroup
< Channels in the same group get the same phase
void importNoiseModel(std::string noiseModel, Map &chFrequencyMap, Map &chAmplitudeMap, double cut, int &normalization) const
void makePhaseMap(Map &phaseMap, int size, float minShift, float maxShift)
std::ostream & print(std::ostream &out=std::cout, std::string prefix="") const
unsigned int Nchannels() const
Returns the number of TPC readout channels in the detector.
Map fChAmplitudeMap
Map holding the amplitude of the frequency for each channel.
void getAmplitudeArray(Channel chan, std::vector< float > &array) const
size_t size
Definition: lodepng.cpp:55
std::vector< float > fInchoerentNoise
< Mean and std of the incoherent noise
static int max(int a, int b)
int fRandomSeed
< Seed for random number service. If absent or zero, use SeedSvc.
void getFrequencyArray(Channel chan, std::vector< float > &array) const
std::vector< Map > fPhaseMap
Pregenerated phase shift maps.
double fAmplitudeCut
< only frequencies with amplitude above this cut will be considered
LArSoft geometry interface.
Definition: ChannelGeo.h:16
std::vector< float > fPhaseShift
< Phase shift for each group of 30 channels
QTextStream & endl(QTextStream &s)
DPhaseCoherentNoiseService::DPhaseCoherentNoiseService ( fhicl::ParameterSet const &  pset,
art::ActivityRegistry  
)

Definition at line 127 of file DPhaseCoherentNoiseService_service.cc.

128 : DPhaseCoherentNoiseService(pset) { }
DPhaseCoherentNoiseService(fhicl::ParameterSet const &pset)
DPhaseCoherentNoiseService::~DPhaseCoherentNoiseService ( )

Definition at line 132 of file DPhaseCoherentNoiseService_service.cc.

132  {
133  const string myname = "DPhaseCoherentNoiseService::dtor: ";
134  if ( fLogLevel > 0 ) {
135  cout << myname << "Deleting random engine with seed " << m_pran->getSeed() << endl;
136  }
137  delete m_pran;
138 }
int fLogLevel
< Log message level: 0=quiet, 1=init only, 2+=every event
QTextStream & endl(QTextStream &s)

Member Function Documentation

int DPhaseCoherentNoiseService::addNoise ( detinfo::DetectorClocksData const &  clockData,
detinfo::DetectorPropertiesData const &  detProp,
Channel  chan,
AdcSignalVector sigs 
) const
virtual

Implements ChannelNoiseService.

Definition at line 142 of file DPhaseCoherentNoiseService_service.cc.

144  {
145 
146  const string myname = "DPhaseCoherentNoiseService::addNoise: ";
147  if ( fLogLevel > 0 ) {
148  cout << myname << " Processing channel: " << chan << endl;
149  }
150 
151  unsigned int ntick = detProp.NumberTimeSamples();
152 
154  const geo::View_t view = geo->View(chan);
155 
156  //get the map associated to channel and phase array associated to channel
157  int num = getNumber( chan );
158  Map phaseMap = fPhaseMap.at(num);
159  vector<float> phaseArray = phaseMap.at(chan);
160 
161  if ( fLogLevel > 0 ) {
162  cout << myname << " Map number: " << num << endl;
163  }
164 
165  //get amplitude and frequecny
166  vector<float> amplitudeArray;
167  vector<float> frequencyArray;
168 
169  getFrequencyArray( chan, frequencyArray);
170  getAmplitudeArray( chan, amplitudeArray);
171 
172  //Test if the channel was in the fft model
173  if( frequencyArray.size() == 0 && amplitudeArray.size() ==0 ){
174  vector<float> nullArray;
175  nullArray.resize( ntick );
176  sigs = nullArray;
177 
178  if ( fLogLevel > 0 ) {
179  cout << myname << " No freq and amplitude arrays for " << chan << endl;
180  }
181 
182  return 0;
183  }
184 
185 
186  //resize the signal vector
187  sigs.resize( ntick );
188 
189  //choose the correct plane for the amplitude randomization
190  float randAmp=0;
191 
192  if ( view==geo::kY )
193  {
194  randAmp = fRandomize[0];
195  }
196  else if ( view==geo::kZ ) {
197  randAmp = fRandomize[1];
198  }
199  else
200  {
201  if ( fLogLevel > 0 ) {
202  cout << myname << "Invalid plane" << endl;
203  }
204  }
205 
206  //build the noise signal
207  getNoiseArray(clockData, sigs, amplitudeArray, frequencyArray, phaseArray, randAmp);
208 
209  //add incoherent noise if set
210  if( fInchoerentNoise.size() > 0 ){
211 
212  CLHEP::RandGauss gaus(*m_pran);
213 
214  if ( view==geo::kY )
215  {
216  for ( unsigned int itck=0; itck<ntick; ++itck )
217  sigs.at(itck) += gaus.fire( fInchoerentNoise.at(0), fInchoerentNoise.at(1) );
218  }
219  else if ( view==geo::kZ )
220  {
221  for ( unsigned int itck=0; itck<ntick; ++itck )
222  sigs.at(itck) += gaus.fire( fInchoerentNoise.at(2), fInchoerentNoise.at(3) );
223  }
224  else {
225  if ( fLogLevel > 0 ) {
226  cout << myname << "Invalid plane" << endl;
227  }
228  }
229  }
230 
231  if ( fLogLevel > 1 ) {
232  cout << myname << " All done " << endl;
233  }
234 
235  return 0;
236 
237 }
std::vector< float > fRandomize
< randomization of the amplitude
enum geo::_plane_proj View_t
Enumerate the possible plane projections.
int fLogLevel
< Log message level: 0=quiet, 1=init only, 2+=every event
Planes which measure Z direction.
Definition: geo_types.h:132
Planes which measure Y direction.
Definition: geo_types.h:133
T gaus(T x, T amplitude, T mean, T sigma)
Tests GausssianFit object with a known input.
void getAmplitudeArray(Channel chan, std::vector< float > &array) const
size_t size
Definition: lodepng.cpp:55
std::vector< float > fInchoerentNoise
< Mean and std of the incoherent noise
View_t View(geo::PlaneID const &pid) const
Returns the view (wire orientation) on the channels of specified TPC plane.
void getNoiseArray(detinfo::DetectorClocksData const &clockData, std::vector< float > &noiseArray, std::vector< float > ampArray, std::vector< float > freqArray, std::vector< float > phaseArray, float randAmp) const
void getFrequencyArray(Channel chan, std::vector< float > &array) const
std::vector< Map > fPhaseMap
Pregenerated phase shift maps.
LArSoft geometry interface.
Definition: ChannelGeo.h:16
std::map< int, std::vector< float > > Map
QTextStream & endl(QTextStream &s)
void DPhaseCoherentNoiseService::getAmplitudeArray ( Channel  chan,
std::vector< float > &  array 
) const
private

Definition at line 277 of file DPhaseCoherentNoiseService_service.cc.

277  {
278 
279  //test if there is the amplitude array for channel chan
280 
281  if ( fChAmplitudeMap.find(chan) != fChAmplitudeMap.end() ) {
282  array = fChAmplitudeMap.at(chan);
283  }
284 
285  return;
286 }
Map fChAmplitudeMap
Map holding the amplitude of the frequency for each channel.
void DPhaseCoherentNoiseService::getFrequencyArray ( Channel  chan,
std::vector< float > &  array 
) const
private

Definition at line 290 of file DPhaseCoherentNoiseService_service.cc.

290  {
291 
292  //test if there is the amplitude array for channel chan
293 
294  if ( fChFrequencyMap.find(chan) != fChFrequencyMap.end() ) {
295  array = fChFrequencyMap.at(chan);
296  }
297 
298  return;
299 }
Map fChFrequencyMap
Map storing the frequency vector for each channel.
void DPhaseCoherentNoiseService::getNoiseArray ( detinfo::DetectorClocksData const &  clockData,
std::vector< float > &  noiseArray,
std::vector< float >  ampArray,
std::vector< float >  freqArray,
std::vector< float >  phaseArray,
float  randAmp 
) const
private

Definition at line 409 of file DPhaseCoherentNoiseService_service.cc.

411  {
412 
413  //Sum up all the frequencies and amplitude. Make noise waveform
414  const string myname = "DPhaseCoherentNoiseService::getNoiseArray: ";
415 
416  //random number generator
417  CLHEP::RandGauss gaus(*m_pran);
418 
419  //detector properties service
420 
421  //check if frequency vector, and amplitude vector have the same size.
422  if( (ampArray.size() != freqArray.size()) || (ampArray.size() < freqArray.size()) ){
423 
424  const string myname = "DPhaseCoherentNoiseService::getNoiseArray: ";
425  if( fLogLevel > 0 ){
426  cout << myname << "ERROR: amplitude array and frequency array have not the same size." << endl;
427  }
428  return;
429  }
430 
431  //make the noiseArray: loop over time...
432  for( size_t t=0; t<noiseArray.size(); t++ ){
433 
434  //...and loop over frequencies
435  for( size_t f=0; f<freqArray.size(); f++ ){
436 
437  //randomize amplitude
438  double amp = ampArray.at(f) + gaus.fire( 0, randAmp ); //<< Randomization with the expected rms fluctuation calculated from the model
439 
440  //make signal for that frequency
441  double argument = 2*TMath::Pi()*sampling_rate(clockData)*(1.e-3)*freqArray.at(f)*t + phaseArray.at(f);
442 
443  noiseArray.at(t) += ( ((float)1/(float)fNormalization)*amp*sin( argument ) );
444  }
445  }
446 
447  //return the noise array
448  return;
449 }
int fLogLevel
< Log message level: 0=quiet, 1=init only, 2+=every event
int fNormalization
< Normalization factor ( similar to the one for the InFFT )
T gaus(T x, T amplitude, T mean, T sigma)
Tests GausssianFit object with a known input.
double sampling_rate(DetectorClocksData const &data)
Returns the period of the TPC readout electronics clock.
QTextStream & endl(QTextStream &s)
int DPhaseCoherentNoiseService::getNumber ( Channel  chan) const
private

Definition at line 254 of file DPhaseCoherentNoiseService_service.cc.

254  {
255 
256  //return the correct random number to select the PhaseMap making sure it is
257  //correct for the given event
258 
259  int num=0;
260 
261  if( chan == 0 )
262  {
263  CLHEP::RandFlat flat(*m_pran);
264  num = flat.fire()*fNumberOfPhases;
265  fNum=num;
266  }
267  else
268  {
269  num = fNum;
270  }
271 
272  return num;
273 }
int fNumberOfPhases
< Number of pregenerated phase shift maps
int fNum
Hold the correct event number.
void DPhaseCoherentNoiseService::getPhases ( )
private

Definition at line 453 of file DPhaseCoherentNoiseService_service.cc.

453  {
454 
455  //pregenerated random phases arrays
456  fPhaseMap.resize(fNumberOfPhases);
457  for ( int isam=0; isam<fNumberOfPhases; ++isam ) {
459  }
460 
461 }
int fNumberOfPhases
< Number of pregenerated phase shift maps
void makePhaseMap(Map &phaseMap, int size, float minShift, float maxShift)
std::vector< Map > fPhaseMap
Pregenerated phase shift maps.
std::vector< float > fPhaseShift
< Phase shift for each group of 30 channels
void DPhaseCoherentNoiseService::importNoiseModel ( std::string  noiseModel,
Map chFrequencyMap,
Map chAmplitudeMap,
double  cut,
int &  normalization 
) const
private

Definition at line 303 of file DPhaseCoherentNoiseService_service.cc.

304  {
305  /*
306  Import fft from the TProfile2D and store into the frequency and amplitude
307  maps if the frequencies are above the cut
308  */
309 
310  TFile *fin = TFile::Open(noiseModel.c_str(), "READ");
311  if(!fin->IsOpen()){
312  cout << "ERROR!: Can't open file: " << noiseModel << endl;
313  return;
314  }
315  else{
316  cout << "File: " << noiseModel << " successfully opened!" << endl;
317  }
318 
319  //get the histogram
320  TIter next( fin->GetListOfKeys() );
321  TKey *key;
322  TProfile2D *inputHist = new TProfile2D(); //default initialisazion
323 
324  while( (key = (TKey*)next()) ){
325 
326  string name( key->GetName() );
327  string keyName( key->GetClassName() ); //parse char to string
328  if( keyName == "TProfile2D"){
329  inputHist = (TProfile2D*)fin->Get(key->GetName());
330  }
331  else{
332  std::cout << "ERROR! Object: " << keyName << " in file " << noiseModel
333  << "has not the right format!" << std::endl;
334  fin->Close();
335  return;
336  }
337  }
338 
339  //if the model was successfully build the frequency/channel map
340  for(int xx=1; xx<inputHist->GetNbinsX()+1; xx++){
341  for(int yy=1; yy<inputHist->GetNbinsY()+1; yy++){
342 
343  double amplitude = inputHist->GetBinContent( xx, yy );
344  double ch = (int)inputHist->GetXaxis()->GetBinLowEdge(xx)+1; //channel numbered fom 1 to 1280
345  double frequency = inputHist->GetYaxis()->GetBinCenter(yy); //frequencies fom 0 to 1.25 MHz
346 
347  if(amplitude >= cut){
348  chFrequencyMap[ch].push_back( frequency );
349  chAmplitudeMap[ch].push_back( amplitude );
350  }
351  }
352  }
353 
354  //get the normalization
355  //normalization = inputHist->GetNbinsY();
356 
357  return;
358 }
static QCString name
Definition: declinfo.cpp:673
def key(type, name=None)
Definition: graph.py:13
QTextStream & endl(QTextStream &s)
void DPhaseCoherentNoiseService::makePhaseMap ( Map phaseMap,
int  size,
float  minShift,
float  maxShift 
)
private

Definition at line 362 of file DPhaseCoherentNoiseService_service.cc.

363  {
364 
365  //Simpy generates an map with phases from 0 to 2*pi with the same size of size
366 
367  CLHEP::RandFlat flat(*m_pran);
368 
369  vector<float> phaseVector; //<<Phase shifts per group of channels
370  vector<float> phaseArray; //<<Phases common to all channels
371  phaseVector.resize(size);
372  phaseArray.resize(size);
373 
374  //make a new phase vector
375  for( int f=0; f<size; f++ ){
376  double phase = flat.fire()*2.*TMath::Pi();
377  phaseArray.at(f) = phase;
378 
379  }
380 
381  //loop over all channels
382  int index=0; //keep track of the groups already checked;
384  for(Channel chan=0; chan< geo->Nchannels() ; chan++){
385 
386  //assign each channel to a group
387  if( chan >= (Channel)fChannelGroup.at(index) ){
388 
389  index++; //now we can change group
390 
391  //make a new phase vector
392  for( int f=0; f<size; f++ ){
393  double phase = minShift + flat.fire()*( maxShift - minShift );
394  phaseVector.at(f) = phase + phaseArray.at(f);
395 
396  }
397  }//end if channel group
398 
399  //add the vector to the map
400  phaseMap[chan] = phaseVector;
401 
402  }//end for channels
403 
404  return;
405 }
std::vector< int > fChannelGroup
< Channels in the same group get the same phase
unsigned int Nchannels() const
Returns the number of TPC readout channels in the detector.
decltype(auto) constexpr size(T &&obj)
ADL-aware version of std::size.
Definition: StdUtils.h:92
LArSoft geometry interface.
Definition: ChannelGeo.h:16
ostream & DPhaseCoherentNoiseService::print ( std::ostream &  out = std::cout,
std::string  prefix = "" 
) const
virtual

Implements ChannelNoiseService.

Definition at line 241 of file DPhaseCoherentNoiseService_service.cc.

241  {
242 
243  out << prefix << "DPhaseCoherentNoiseService: " << endl;
244  out << prefix << " Noise model source file: " << fNoiseModel << endl;
245  out << prefix << " RandomSeed: " << fRandomSeed << endl;
246  out << prefix << " LogLevel: " << fLogLevel << endl;
247  out << prefix << " Actual random seed: " << m_pran->getSeed();
248 
249  return out;
250 }
std::string fNoiseModel
< noise model root file
int fLogLevel
< Log message level: 0=quiet, 1=init only, 2+=every event
int fRandomSeed
< Seed for random number service. If absent or zero, use SeedSvc.
QTextStream & endl(QTextStream &s)

Member Data Documentation

double DPhaseCoherentNoiseService::fAmplitudeCut
private

< only frequencies with amplitude above this cut will be considered

Definition at line 82 of file DPhaseCoherentNoiseService.h.

Map DPhaseCoherentNoiseService::fChAmplitudeMap

Map holding the amplitude of the frequency for each channel.

Definition at line 35 of file DPhaseCoherentNoiseService.h.

std::vector<int> DPhaseCoherentNoiseService::fChannelGroup
private

< Channels in the same group get the same phase

Definition at line 86 of file DPhaseCoherentNoiseService.h.

Map DPhaseCoherentNoiseService::fChFrequencyMap

Map storing the frequency vector for each channel.

Definition at line 34 of file DPhaseCoherentNoiseService.h.

std::vector< float > DPhaseCoherentNoiseService::fInchoerentNoise
private

< Mean and std of the incoherent noise

Definition at line 87 of file DPhaseCoherentNoiseService.h.

int DPhaseCoherentNoiseService::fLogLevel
private

< Log message level: 0=quiet, 1=init only, 2+=every event

Definition at line 90 of file DPhaseCoherentNoiseService.h.

int DPhaseCoherentNoiseService::fMaxFrequencySize
private

Definition at line 93 of file DPhaseCoherentNoiseService.h.

std::string DPhaseCoherentNoiseService::fNoiseModel
private

< noise model root file

Definition at line 81 of file DPhaseCoherentNoiseService.h.

int DPhaseCoherentNoiseService::fNormalization
private

< Normalization factor ( similar to the one for the InFFT )

Definition at line 83 of file DPhaseCoherentNoiseService.h.

int DPhaseCoherentNoiseService::fNum =0
mutableprivate

Hold the correct event number.

Definition at line 95 of file DPhaseCoherentNoiseService.h.

int DPhaseCoherentNoiseService::fNumberOfPhases
private

< Number of pregenerated phase shift maps

Definition at line 88 of file DPhaseCoherentNoiseService.h.

std::vector< Map > DPhaseCoherentNoiseService::fPhaseMap
private

Pregenerated phase shift maps.

Definition at line 94 of file DPhaseCoherentNoiseService.h.

std::vector< float > DPhaseCoherentNoiseService::fPhaseShift
private

< Phase shift for each group of 30 channels

Definition at line 85 of file DPhaseCoherentNoiseService.h.

std::vector< float > DPhaseCoherentNoiseService::fRandomize
private

< randomization of the amplitude

Definition at line 84 of file DPhaseCoherentNoiseService.h.

int DPhaseCoherentNoiseService::fRandomSeed
private

< Seed for random number service. If absent or zero, use SeedSvc.

Definition at line 89 of file DPhaseCoherentNoiseService.h.

CLHEP::HepRandomEngine* DPhaseCoherentNoiseService::m_pran
private

Definition at line 98 of file DPhaseCoherentNoiseService.h.


The documentation for this class was generated from the following files: