ROOT logo
///////////////////////////////////////////////////////////////////////////////////////////////
//                                                                                           //
//   DIGInitialize                                                                           //
//                                                                                           //
//   Class performing the initialization (reads the input data card and store it)            //
//                                                                                           //
//                                                                                           //
//                                                                                           //
//                                                                                           //
//                                                                                           //
//                                                                                           //
///////////////////////////////////////////////////////////////////////////////////////////////
#include <diginitialize.h>

#include <TROOT.h> // for gROOT object
#include <TMath.h>
#include <TMatrixD.h>
#include <TCanvas.h>
#include <TGraph.h>
#include <TAxis.h>
#include <TRandom3.h>
#include <TFile.h>
#include <TTree.h>
#include <TBranch.h>
#include <TClonesArray.h>
#include <TString.h>

#include <stdio.h>
#include <string.h>

using namespace std;

//==============================================================================
//==============================================================================
ClassImp(DIGInitialize)

DIGInitialize::DIGInitialize()  
  : TNamed("DIG Initialize","Initialize")
{
  //
  // default constructor
  //

}

//______________________________________________________________________________
//  

DIGInitialize::DIGInitialize(char *name, char *title, TString aCP, TString aCFN, TString action)  : TNamed(name,title)
{

// --- open config file:

  
  SetConfigPathAndFileName(aCP,aCFN); 
  printf(" Reading Setup from %s\n", fConfigPathAndFileName.Data());

  fConfigFileStream.open(fConfigPathAndFileName);
  Bool_t    answer=fConfigFileStream.fail();
  while( answer ) {
    cout << "enter correct file name \n";
    cin >> fConfigFileName;
    fConfigPathAndFileName = fConfigPath + fConfigFileName;
    printf(" Reading Setup from %s\n", fConfigPathAndFileName.Data());
    fConfigFileStream.open(fConfigPathAndFileName);
    answer=fConfigFileStream.fail();
  }

  // Char_t char_buffer; 

  //----------------------------------------------
  //--------------------READ Action PARAMETERS
  //----------------------------------------------
  Char_t c; 
  Int_t k;

  /*
  nextItem(':');
  nextItem('"'); k = 0;
  do {
    fConfigFileStream >> c;
    if ((c != '"') && (k < ActionParameter.actionnum)) {
      ActionParameter.Doit[k] = c;
      k++;
    }
  } while (c != '"');
  */
  //string copy to char:
  ActionParameter.Doit[action.Sizeof()]=0;
  string temp;
  temp = action;
  memcpy(ActionParameter.Doit,temp.c_str() ,action.Sizeof());

  nextItem(':');
  nextItem('"'); k = 0;
  do {
    fConfigFileStream >> c;
    if ((c != '"') && (k < ActionParameter.actionnum)) {
      ActionParameter.Model[k] = c;
      k++;
    }
  } while (c != '"');
  



  //----------------------------------------------
  //--------------------READ BEAM PARAMETERS
  //----------------------------------------------

  read_item(BeamParameter.RunNumber);
  read_item(BeamParameter.NumberOfEvents);
  read_item(BeamParameter.BeamOption);
  read_item(BeamParameter.ParticleDensity);
  //read_item(BeamParameter.NumberOfPlanes);
  read_item(BeamParameter.NAngles);
  nextItem(':');
  for (Int_t j = 0; j < BeamParameter.NAngles; j++) {
    fConfigFileStream >> BeamParameter.ThetaIncidentDeg[j];
  }
  nextItem(':');
  for (Int_t j = 0; j < BeamParameter.NAngles; j++) {
    fConfigFileStream >> BeamParameter.PhiIncidentDeg[j];
  }
  // printf(" Reading Setup from %s\n", fConfigPathAndFileName.Data());

  //----------------------------------------------
  //--------------------READ PLANE PARAMETERS
  //----------------------------------------------

  read_item(PlaneParameter.NGeom);

  nextItem(':');
  for (Int_t j = 0; j < PlaneParameter.NGeom; j++) {
    fConfigFileStream >> PlaneParameter.PitchX[j];
  }

  nextItem(':');
  for (Int_t j = 0; j < PlaneParameter.NGeom; j++) {
    fConfigFileStream >> PlaneParameter.PitchY[j];
  }

  nextItem(':');
  for (Int_t j = 0; j < PlaneParameter.NGeom; j++) {
    fConfigFileStream >> PlaneParameter.NoiseElectrons[j];
  }

  nextItem(':');
  for (Int_t j = 0; j < PlaneParameter.NGeom; j++) {
    fConfigFileStream >> PlaneParameter.EpitaxialThickness[j];
  }


  read_item(PlaneParameter.NPixelsX);
  read_item(PlaneParameter.NPixelsY);

  read_item(PlaneParameter.NTemperature);

  nextItem(':');
  for (Int_t j = 0; j < PlaneParameter.NTemperature; j++) {
    fConfigFileStream >> PlaneParameter.Temperature[j];
  }

  read_item(PlaneParameter.IonizationEnergy);
  read_item(PlaneParameter.SegmentSize);
  read_item(PlaneParameter.MaximumSegmentSize);
  read_item(PlaneParameter.MaximumChargePerSegment);
  read_item(PlaneParameter.DiffusionMaximumRangeInX);
  read_item(PlaneParameter.DiffusionMaximumRangeInY);
  read_item(PlaneParameter.ReflexionCoefficient);
  read_item(PlaneParameter.BasicModel_SigmaTenMicrons);

  //----------------------------------------------
  //--------------------READ TRANSPORT PARAMETERS
  //----------------------------------------------

  read_item(PlaneParameter.NTransport);
  pTransportParameter  = new TransportParameter_t[PlaneParameter.NTransport];

  //---loop over all TRANSPORT models
  for (Int_t p = 0; p < PlaneParameter.NTransport; p++) {
    read_item(pTransportParameter[p].ChargeModel);
    read_item(pTransportParameter[p].RangeLimit_InPitchUnit);
    read_item(pTransportParameter[p].Lorentz2DModel_Cp0);
    read_item(pTransportParameter[p].Lorentz2DModel_Cp1);
    read_item(pTransportParameter[p].Gauss2DModel_sigma1_Cp0);
    read_item(pTransportParameter[p].Gauss2DModel_sigma1_Cp1);
    read_item(pTransportParameter[p].Gauss2DModel_sigma2_Cp0);
    read_item(pTransportParameter[p].Gauss2DModel_sigma2_Cp1);
    read_item(pTransportParameter[p].Gauss2DModel_weight);
    read_item(pTransportParameter[p].LorGaussModel_Norm1_Cp0);
    read_item(pTransportParameter[p].LorGaussModel_Norm1_Cp1);
    read_item(pTransportParameter[p].LorGaussModel_Norm1_Cp2);
    read_item(pTransportParameter[p].LorGaussModel_sigma_Cp0);
    read_item(pTransportParameter[p].LorGaussModel_sigma_Cp1);
    read_item(pTransportParameter[p].LorGaussModel_C_Cp0);
    read_item(pTransportParameter[p].LorGaussModel_C_Cp1);
    read_item(pTransportParameter[p].LorGaussModel_Norm_Cp0);
    read_item(pTransportParameter[p].LorGaussModel_Norm_Cp1);


  }
  //----------------------------------------------
  //READ ADC PARAMETERS
  //----------------------------------------------
 
  read_item(PlaneParameter.NADC);
  pADCParameter  = new ADCParameter_t[PlaneParameter.NADC];

  //---loop over all ADCs
  for (Int_t p = 0; p < PlaneParameter.NADC; p++) {
    //---read number of bits of the ADC:
    read_item(pADCParameter[p].Nbits);
    //----compute number of thresholds needed:
    pADCParameter[p].NThresholds = int(TMath::Power(2.0,pADCParameter[p].Nbits) - 1); 
    read_item(pADCParameter[p].ADC_linear);
    if(pADCParameter[p].ADC_linear){ //-------linear case (enter LSB and step size)
      read_item(pADCParameter[p].LSB);
      read_item(pADCParameter[p].Electron_Conversion);      
      nextItem(':');
      for (Int_t j = 0; j < pADCParameter[p].NThresholds; j++) {
	pADCParameter[p].ADC_thresholds[j] = pADCParameter[p].LSB+float(j)* (pADCParameter[p].Electron_Conversion);
      } 
    }else{    //non linear case (read each value instead)
      nextItem(':');
      nextItem(':');     
      nextItem(':');     
      for (Int_t j = 0; j < pADCParameter[p].NThresholds; j++) {
	fConfigFileStream >> pADCParameter[p].ADC_thresholds[j];
      } 
      pADCParameter[p].LSB=pADCParameter[p].ADC_thresholds[0];     
      pADCParameter[p].Electron_Conversion = -999; // dummy value since not needed.
    }
  }


  PrintInfo();

  //----------------------------------------------
  //Configure
  //----------------------------------------------




}
//______________________________________________________________________________
//  


DIGInitialize::~DIGInitialize() { // 
  // virtual destructor
  //
  //  delete fLayers;
}



//______________________________________________________________________________
//  
void  DIGInitialize::SetConfigPath(TString aCP) 
{ 
  fConfigPath = aCP;  
}


//______________________________________________________________________________
//  
void DIGInitialize::SetConfigFileName(TString aCFN) 
{ 
  fConfigFileName = aCFN;     
} 

//______________________________________________________________________________
//  
void DIGInitialize::SetConfigPathAndFileName() 
{ 
  fConfigPathAndFileName = fConfigPath + fConfigFileName;     
} 

//______________________________________________________________________________
//  
void DIGInitialize::SetConfigPathAndFileName(TString aCP,TString aCFN) 
{ 
  fConfigPath = aCP;  
  fConfigFileName = aCFN;     
  fConfigPathAndFileName = fConfigPath + fConfigFileName;  
} 
//______________________________________________________________________________
//  
TString  DIGInitialize::GetConfigPath() 
{ 
  return fConfigPath;  
}
//______________________________________________________________________________
//  
TString DIGInitialize::GetConfigFileName() 
{ 
  return fConfigFileName;     
} 
//______________________________________________________________________________
//  
TString DIGInitialize::GetConfigPathAndFileName() 
{ 
  return fConfigPathAndFileName;
} 
//______________________________________________________________________________
//  

void DIGInitialize::PrintInfo() {

  std::cout<<"------------------------------------------- "<<endl;
  std::cout<<"---------Action configuration------------- "<<endl;
  std::cout<<"------------------------------------------- "<<endl;
  std::cout<<" Action: "<<ActionParameter.Doit <<endl;
  //printf("%s\n",ActionParameter.Doit);
  std::cout<<" Model: "<<ActionParameter.Model << endl;
  //printf("%s\n",ActionParameter.Model);
  std::cout<<"------------------------------------------- "<<endl;
  std::cout<<"---------General configuration------------- "<<endl;
  std::cout<<"------------------------------------------- "<<endl;
  std::cout<<"-- RunNumber: "<<BeamParameter.RunNumber<<endl;
  std::cout<<"-- NumberOfEvents: "<<BeamParameter.NumberOfEvents<<endl;
  std::cout<<"-- BeamOption: "<<BeamParameter.BeamOption<<endl;
  std::cout<<"-- ParticleDensity: "<<BeamParameter.ParticleDensity<<endl;
  std::cout<<"--Number of different Angles: "<<BeamParameter.NAngles<<endl;
  for (Int_t j = 0; j < BeamParameter.NAngles; j++) {
    std::cout<<" Theta(deg): "<<BeamParameter.ThetaIncidentDeg[j]<<" Phi(deg): "<<BeamParameter.PhiIncidentDeg[j]<<endl;
  }
  //std::cout<<" NumberOfPlanes: "<<BeamParameter.NumberOfPlanes<<endl;
  std::cout<<"------------------------------------------- "<<endl;
  std::cout<<"----------Plane configuration-------------- "<<endl;
  std::cout<<"------------------------------------------- "<<endl;
  std::cout<<"--Number of different Geometries: "<<PlaneParameter.NGeom<<endl;
  for (Int_t j = 0; j < PlaneParameter.NGeom ; j++) {
    std::cout<<" PitchX: "<<PlaneParameter.PitchX[j]<<" PitchY: "<<PlaneParameter.PitchY[j]<<endl;
    std::cout<<" Epitaxial_thickness: "<<PlaneParameter.EpitaxialThickness[j]<<endl;
    std::cout<<" Noise: "<<PlaneParameter.NoiseElectrons[j]<<endl;
  }

  std::cout<<"--Number pixels in X and Y: "<<PlaneParameter.NPixelsX<<" x "<<PlaneParameter.NPixelsY<<endl;

  std::cout<<"--Number different temperatures "<<PlaneParameter.NTemperature<<endl;
  for (Int_t j = 0; j < PlaneParameter.NTemperature; j++) {
    std::cout<<" Temperature: "<<PlaneParameter.Temperature[j]<<endl;
  }
  std::cout<<"--IonizationEnergy "<< PlaneParameter.IonizationEnergy<<endl;
  std::cout<<"--SegmentSize  "<<PlaneParameter.SegmentSize<<endl;
  std::cout<<"--MaximumSegmentSize  "<<PlaneParameter.MaximumSegmentSize<<endl;
  std::cout<<"--MaximumChargePerSegment  "<<PlaneParameter.MaximumChargePerSegment<<endl;
  std::cout<<"--DiffusionMaximumRangeInX  "<<PlaneParameter.DiffusionMaximumRangeInX<<endl;
  std::cout<<"--DiffusionMaximumRangeInY  "<<PlaneParameter.DiffusionMaximumRangeInY<<endl;
  std::cout<<"--ReflexionCoefficient  "<<PlaneParameter.ReflexionCoefficient<<endl;
  std::cout<<"--BasicModel_SigmaTenMicrons  "<<PlaneParameter.BasicModel_SigmaTenMicrons<<endl;
  std::cout<<"------------------------------------------- "<<endl;
  std::cout<<"----------Transport configuration-------------- "<<endl;
  std::cout<<"------------------------------------------- "<<endl;
  std::cout<<"-- Number of Transport models = "<<PlaneParameter.NTransport<<endl;
  for (Int_t p = 0; p < PlaneParameter.NTransport; p++) {
    std::cout<<"-> Transport Model number "<<p<<endl;
    std::cout<<"--ChargeModel "<<pTransportParameter[p].ChargeModel<<endl;
    std::cout<<"--RangeLimit_InPitchUnit "<<pTransportParameter[p].RangeLimit_InPitchUnit<<endl;
    std::cout<<"--Lorentz2DModel_Cp0 "<<pTransportParameter[p].Lorentz2DModel_Cp0<<endl;
    std::cout<<"--Lorentz2DModel_Cp1 "<<pTransportParameter[p].Lorentz2DModel_Cp1<<endl;
    std::cout<<"--Gauss2DModel_sigma1_Cp0 "<<pTransportParameter[p].Gauss2DModel_sigma1_Cp0<<endl;
    std::cout<<"--Gauss2DModel_sigma1_Cp1 "<<pTransportParameter[p].Gauss2DModel_sigma1_Cp1<<endl;
    std::cout<<"--Gauss2DModel_sigma2_Cp0 "<<pTransportParameter[p].Gauss2DModel_sigma2_Cp0<<endl;
    std::cout<<"--Gauss2DModel_sigma2_Cp1 "<<pTransportParameter[p].Gauss2DModel_sigma2_Cp1<<endl;
    std::cout<<"--Gauss2DModel_weight "<<pTransportParameter[p].Gauss2DModel_weight<<endl;
    std::cout<<"--LorGaussModel_Norm1_Cp0 "<<pTransportParameter[p].LorGaussModel_Norm1_Cp0<<endl;
    std::cout<<"--LorGaussModel_Norm1_Cp1 "<<pTransportParameter[p].LorGaussModel_Norm1_Cp1<<endl;
    std::cout<<"--LorGaussModel_Norm1_Cp2 "<<pTransportParameter[p].LorGaussModel_Norm1_Cp2<<endl;
    std::cout<<"--LorGaussModel_sigma_Cp0 "<<pTransportParameter[p].LorGaussModel_sigma_Cp0<<endl;
    std::cout<<"--LorGaussModel_sigma_Cp1 "<<pTransportParameter[p].LorGaussModel_sigma_Cp1<<endl;
    std::cout<<"--LorGaussModel_C_Cp0 "<<pTransportParameter[p].LorGaussModel_C_Cp0<<endl;
    std::cout<<"--LorGaussModel_C_Cp1 "<<pTransportParameter[p].LorGaussModel_C_Cp1<<endl;
    std::cout<<"--LorGaussModel_Norm_Cp0 "<<pTransportParameter[p].LorGaussModel_Norm_Cp0<<endl;
    std::cout<<"--LorGaussModel_Norm_Cp1 "<<pTransportParameter[p].LorGaussModel_Norm_Cp1<<endl;
  }
  std::cout<<"------------------------------------------- "<<endl;
  std::cout<<"-----------ADC configuration---------------  "<<endl;
  std::cout<<"------------------------------------------- "<<endl;
  std::cout<<"-- Number of ADCs = "<<PlaneParameter.NADC<<endl;
  for (Int_t p = 0; p < PlaneParameter.NADC; p++) {
    std::cout<<"-> ADC "<<p<<endl;
    std::cout<<"Nbits= "<<pADCParameter[p].Nbits<<"; ADC_linear="<<pADCParameter[p].ADC_linear<<endl;
    std::cout<<"NThresholds= "<<pADCParameter[p].NThresholds<<"; LSB= "<<pADCParameter[p].LSB <<endl;
    std::cout<<"Electron_Conversion= "<<pADCParameter[p].Electron_Conversion<<endl;
    Int_t Nthtoprint = pADCParameter[p].NThresholds;
    if(Nthtoprint < 33){
      for (Int_t j = 0; j < pADCParameter[p].NThresholds; j++) {
	std::cout<<"thresholds["<<j<<"]="<<pADCParameter[p].ADC_thresholds[j]<<endl;
      } 
    }else{
      Nthtoprint = 32;
      for (Int_t j = 0; j < Nthtoprint; j++) {
	std::cout<<"thresholds["<<j<<"]="<<pADCParameter[p].ADC_thresholds[j]<<endl;
      } 
      std::cout<<" etc. "<<endl;  
    }
  }

  std::cout<<"------------------------------------------- "<<endl;
  std::cout<<"------------------------------------------- "<<endl;
  std::cout<<"------------------------------------------- "<<endl;

  std::cout<<" "<<endl;
  std::cout<<"------------------------------------------- "<<endl;
  std::cout<<"----------END OF READ OUT FILE------------- "<<endl;
  std::cout<<"------------------------------------------- "<<endl;
}

//______________________________________________________________________________
//  
void DIGInitialize::nextItem(Char_t delimiter)
{
  Char_t c;
  do {
    fConfigFileStream >> c;
  } while (c != delimiter);  
}


//______________________________________________________________________________
//  
void DIGInitialize::read_item(Int_t &arg)
{
  nextItem(':');
  fConfigFileStream >> arg;
}

//______________________________________________________________________________
//  
void DIGInitialize::read_item(Float_t &arg)
{

  // reads values from configuration file

  nextItem(':');
  fConfigFileStream >> arg;
}
//______________________________________________________________________________
//  
void DIGInitialize::read_item(Double_t &arg)
{

  // reads values from configuration file

  nextItem(':');
  fConfigFileStream >> arg;
}
//______________________________________________________________________________
//  
void DIGInitialize::read_item(Bool_t &arg)
{

  // reads values from configuration file

  nextItem(':');
  fConfigFileStream >> arg;
}
//______________________________________________________________________________
//  
 diginitialize.cxx:1
 diginitialize.cxx:2
 diginitialize.cxx:3
 diginitialize.cxx:4
 diginitialize.cxx:5
 diginitialize.cxx:6
 diginitialize.cxx:7
 diginitialize.cxx:8
 diginitialize.cxx:9
 diginitialize.cxx:10
 diginitialize.cxx:11
 diginitialize.cxx:12
 diginitialize.cxx:13
 diginitialize.cxx:14
 diginitialize.cxx:15
 diginitialize.cxx:16
 diginitialize.cxx:17
 diginitialize.cxx:18
 diginitialize.cxx:19
 diginitialize.cxx:20
 diginitialize.cxx:21
 diginitialize.cxx:22
 diginitialize.cxx:23
 diginitialize.cxx:24
 diginitialize.cxx:25
 diginitialize.cxx:26
 diginitialize.cxx:27
 diginitialize.cxx:28
 diginitialize.cxx:29
 diginitialize.cxx:30
 diginitialize.cxx:31
 diginitialize.cxx:32
 diginitialize.cxx:33
 diginitialize.cxx:34
 diginitialize.cxx:35
 diginitialize.cxx:36
 diginitialize.cxx:37
 diginitialize.cxx:38
 diginitialize.cxx:39
 diginitialize.cxx:40
 diginitialize.cxx:41
 diginitialize.cxx:42
 diginitialize.cxx:43
 diginitialize.cxx:44
 diginitialize.cxx:45
 diginitialize.cxx:46
 diginitialize.cxx:47
 diginitialize.cxx:48
 diginitialize.cxx:49
 diginitialize.cxx:50
 diginitialize.cxx:51
 diginitialize.cxx:52
 diginitialize.cxx:53
 diginitialize.cxx:54
 diginitialize.cxx:55
 diginitialize.cxx:56
 diginitialize.cxx:57
 diginitialize.cxx:58
 diginitialize.cxx:59
 diginitialize.cxx:60
 diginitialize.cxx:61
 diginitialize.cxx:62
 diginitialize.cxx:63
 diginitialize.cxx:64
 diginitialize.cxx:65
 diginitialize.cxx:66
 diginitialize.cxx:67
 diginitialize.cxx:68
 diginitialize.cxx:69
 diginitialize.cxx:70
 diginitialize.cxx:71
 diginitialize.cxx:72
 diginitialize.cxx:73
 diginitialize.cxx:74
 diginitialize.cxx:75
 diginitialize.cxx:76
 diginitialize.cxx:77
 diginitialize.cxx:78
 diginitialize.cxx:79
 diginitialize.cxx:80
 diginitialize.cxx:81
 diginitialize.cxx:82
 diginitialize.cxx:83
 diginitialize.cxx:84
 diginitialize.cxx:85
 diginitialize.cxx:86
 diginitialize.cxx:87
 diginitialize.cxx:88
 diginitialize.cxx:89
 diginitialize.cxx:90
 diginitialize.cxx:91
 diginitialize.cxx:92
 diginitialize.cxx:93
 diginitialize.cxx:94
 diginitialize.cxx:95
 diginitialize.cxx:96
 diginitialize.cxx:97
 diginitialize.cxx:98
 diginitialize.cxx:99
 diginitialize.cxx:100
 diginitialize.cxx:101
 diginitialize.cxx:102
 diginitialize.cxx:103
 diginitialize.cxx:104
 diginitialize.cxx:105
 diginitialize.cxx:106
 diginitialize.cxx:107
 diginitialize.cxx:108
 diginitialize.cxx:109
 diginitialize.cxx:110
 diginitialize.cxx:111
 diginitialize.cxx:112
 diginitialize.cxx:113
 diginitialize.cxx:114
 diginitialize.cxx:115
 diginitialize.cxx:116
 diginitialize.cxx:117
 diginitialize.cxx:118
 diginitialize.cxx:119
 diginitialize.cxx:120
 diginitialize.cxx:121
 diginitialize.cxx:122
 diginitialize.cxx:123
 diginitialize.cxx:124
 diginitialize.cxx:125
 diginitialize.cxx:126
 diginitialize.cxx:127
 diginitialize.cxx:128
 diginitialize.cxx:129
 diginitialize.cxx:130
 diginitialize.cxx:131
 diginitialize.cxx:132
 diginitialize.cxx:133
 diginitialize.cxx:134
 diginitialize.cxx:135
 diginitialize.cxx:136
 diginitialize.cxx:137
 diginitialize.cxx:138
 diginitialize.cxx:139
 diginitialize.cxx:140
 diginitialize.cxx:141
 diginitialize.cxx:142
 diginitialize.cxx:143
 diginitialize.cxx:144
 diginitialize.cxx:145
 diginitialize.cxx:146
 diginitialize.cxx:147
 diginitialize.cxx:148
 diginitialize.cxx:149
 diginitialize.cxx:150
 diginitialize.cxx:151
 diginitialize.cxx:152
 diginitialize.cxx:153
 diginitialize.cxx:154
 diginitialize.cxx:155
 diginitialize.cxx:156
 diginitialize.cxx:157
 diginitialize.cxx:158
 diginitialize.cxx:159
 diginitialize.cxx:160
 diginitialize.cxx:161
 diginitialize.cxx:162
 diginitialize.cxx:163
 diginitialize.cxx:164
 diginitialize.cxx:165
 diginitialize.cxx:166
 diginitialize.cxx:167
 diginitialize.cxx:168
 diginitialize.cxx:169
 diginitialize.cxx:170
 diginitialize.cxx:171
 diginitialize.cxx:172
 diginitialize.cxx:173
 diginitialize.cxx:174
 diginitialize.cxx:175
 diginitialize.cxx:176
 diginitialize.cxx:177
 diginitialize.cxx:178
 diginitialize.cxx:179
 diginitialize.cxx:180
 diginitialize.cxx:181
 diginitialize.cxx:182
 diginitialize.cxx:183
 diginitialize.cxx:184
 diginitialize.cxx:185
 diginitialize.cxx:186
 diginitialize.cxx:187
 diginitialize.cxx:188
 diginitialize.cxx:189
 diginitialize.cxx:190
 diginitialize.cxx:191
 diginitialize.cxx:192
 diginitialize.cxx:193
 diginitialize.cxx:194
 diginitialize.cxx:195
 diginitialize.cxx:196
 diginitialize.cxx:197
 diginitialize.cxx:198
 diginitialize.cxx:199
 diginitialize.cxx:200
 diginitialize.cxx:201
 diginitialize.cxx:202
 diginitialize.cxx:203
 diginitialize.cxx:204
 diginitialize.cxx:205
 diginitialize.cxx:206
 diginitialize.cxx:207
 diginitialize.cxx:208
 diginitialize.cxx:209
 diginitialize.cxx:210
 diginitialize.cxx:211
 diginitialize.cxx:212
 diginitialize.cxx:213
 diginitialize.cxx:214
 diginitialize.cxx:215
 diginitialize.cxx:216
 diginitialize.cxx:217
 diginitialize.cxx:218
 diginitialize.cxx:219
 diginitialize.cxx:220
 diginitialize.cxx:221
 diginitialize.cxx:222
 diginitialize.cxx:223
 diginitialize.cxx:224
 diginitialize.cxx:225
 diginitialize.cxx:226
 diginitialize.cxx:227
 diginitialize.cxx:228
 diginitialize.cxx:229
 diginitialize.cxx:230
 diginitialize.cxx:231
 diginitialize.cxx:232
 diginitialize.cxx:233
 diginitialize.cxx:234
 diginitialize.cxx:235
 diginitialize.cxx:236
 diginitialize.cxx:237
 diginitialize.cxx:238
 diginitialize.cxx:239
 diginitialize.cxx:240
 diginitialize.cxx:241
 diginitialize.cxx:242
 diginitialize.cxx:243
 diginitialize.cxx:244
 diginitialize.cxx:245
 diginitialize.cxx:246
 diginitialize.cxx:247
 diginitialize.cxx:248
 diginitialize.cxx:249
 diginitialize.cxx:250
 diginitialize.cxx:251
 diginitialize.cxx:252
 diginitialize.cxx:253
 diginitialize.cxx:254
 diginitialize.cxx:255
 diginitialize.cxx:256
 diginitialize.cxx:257
 diginitialize.cxx:258
 diginitialize.cxx:259
 diginitialize.cxx:260
 diginitialize.cxx:261
 diginitialize.cxx:262
 diginitialize.cxx:263
 diginitialize.cxx:264
 diginitialize.cxx:265
 diginitialize.cxx:266
 diginitialize.cxx:267
 diginitialize.cxx:268
 diginitialize.cxx:269
 diginitialize.cxx:270
 diginitialize.cxx:271
 diginitialize.cxx:272
 diginitialize.cxx:273
 diginitialize.cxx:274
 diginitialize.cxx:275
 diginitialize.cxx:276
 diginitialize.cxx:277
 diginitialize.cxx:278
 diginitialize.cxx:279
 diginitialize.cxx:280
 diginitialize.cxx:281
 diginitialize.cxx:282
 diginitialize.cxx:283
 diginitialize.cxx:284
 diginitialize.cxx:285
 diginitialize.cxx:286
 diginitialize.cxx:287
 diginitialize.cxx:288
 diginitialize.cxx:289
 diginitialize.cxx:290
 diginitialize.cxx:291
 diginitialize.cxx:292
 diginitialize.cxx:293
 diginitialize.cxx:294
 diginitialize.cxx:295
 diginitialize.cxx:296
 diginitialize.cxx:297
 diginitialize.cxx:298
 diginitialize.cxx:299
 diginitialize.cxx:300
 diginitialize.cxx:301
 diginitialize.cxx:302
 diginitialize.cxx:303
 diginitialize.cxx:304
 diginitialize.cxx:305
 diginitialize.cxx:306
 diginitialize.cxx:307
 diginitialize.cxx:308
 diginitialize.cxx:309
 diginitialize.cxx:310
 diginitialize.cxx:311
 diginitialize.cxx:312
 diginitialize.cxx:313
 diginitialize.cxx:314
 diginitialize.cxx:315
 diginitialize.cxx:316
 diginitialize.cxx:317
 diginitialize.cxx:318
 diginitialize.cxx:319
 diginitialize.cxx:320
 diginitialize.cxx:321
 diginitialize.cxx:322
 diginitialize.cxx:323
 diginitialize.cxx:324
 diginitialize.cxx:325
 diginitialize.cxx:326
 diginitialize.cxx:327
 diginitialize.cxx:328
 diginitialize.cxx:329
 diginitialize.cxx:330
 diginitialize.cxx:331
 diginitialize.cxx:332
 diginitialize.cxx:333
 diginitialize.cxx:334
 diginitialize.cxx:335
 diginitialize.cxx:336
 diginitialize.cxx:337
 diginitialize.cxx:338
 diginitialize.cxx:339
 diginitialize.cxx:340
 diginitialize.cxx:341
 diginitialize.cxx:342
 diginitialize.cxx:343
 diginitialize.cxx:344
 diginitialize.cxx:345
 diginitialize.cxx:346
 diginitialize.cxx:347
 diginitialize.cxx:348
 diginitialize.cxx:349
 diginitialize.cxx:350
 diginitialize.cxx:351
 diginitialize.cxx:352
 diginitialize.cxx:353
 diginitialize.cxx:354
 diginitialize.cxx:355
 diginitialize.cxx:356
 diginitialize.cxx:357
 diginitialize.cxx:358
 diginitialize.cxx:359
 diginitialize.cxx:360
 diginitialize.cxx:361
 diginitialize.cxx:362
 diginitialize.cxx:363
 diginitialize.cxx:364
 diginitialize.cxx:365
 diginitialize.cxx:366
 diginitialize.cxx:367
 diginitialize.cxx:368
 diginitialize.cxx:369
 diginitialize.cxx:370
 diginitialize.cxx:371
 diginitialize.cxx:372
 diginitialize.cxx:373
 diginitialize.cxx:374
 diginitialize.cxx:375
 diginitialize.cxx:376
 diginitialize.cxx:377
 diginitialize.cxx:378
 diginitialize.cxx:379
 diginitialize.cxx:380
 diginitialize.cxx:381
 diginitialize.cxx:382
 diginitialize.cxx:383
 diginitialize.cxx:384
 diginitialize.cxx:385
 diginitialize.cxx:386
 diginitialize.cxx:387
 diginitialize.cxx:388
 diginitialize.cxx:389
 diginitialize.cxx:390
 diginitialize.cxx:391
 diginitialize.cxx:392
 diginitialize.cxx:393
 diginitialize.cxx:394
 diginitialize.cxx:395
 diginitialize.cxx:396
 diginitialize.cxx:397
 diginitialize.cxx:398
 diginitialize.cxx:399
 diginitialize.cxx:400
 diginitialize.cxx:401
 diginitialize.cxx:402
 diginitialize.cxx:403
 diginitialize.cxx:404
 diginitialize.cxx:405
 diginitialize.cxx:406
 diginitialize.cxx:407
 diginitialize.cxx:408
 diginitialize.cxx:409
 diginitialize.cxx:410
 diginitialize.cxx:411
 diginitialize.cxx:412
 diginitialize.cxx:413
 diginitialize.cxx:414
 diginitialize.cxx:415
 diginitialize.cxx:416
 diginitialize.cxx:417
 diginitialize.cxx:418
 diginitialize.cxx:419
 diginitialize.cxx:420
 diginitialize.cxx:421
 diginitialize.cxx:422
 diginitialize.cxx:423
 diginitialize.cxx:424
 diginitialize.cxx:425
 diginitialize.cxx:426
 diginitialize.cxx:427
 diginitialize.cxx:428
 diginitialize.cxx:429
 diginitialize.cxx:430
 diginitialize.cxx:431
 diginitialize.cxx:432
 diginitialize.cxx:433
 diginitialize.cxx:434
 diginitialize.cxx:435
 diginitialize.cxx:436
 diginitialize.cxx:437
 diginitialize.cxx:438
 diginitialize.cxx:439
 diginitialize.cxx:440
 diginitialize.cxx:441
 diginitialize.cxx:442
 diginitialize.cxx:443
 diginitialize.cxx:444
 diginitialize.cxx:445
 diginitialize.cxx:446
 diginitialize.cxx:447
 diginitialize.cxx:448
 diginitialize.cxx:449
 diginitialize.cxx:450
 diginitialize.cxx:451
 diginitialize.cxx:452
 diginitialize.cxx:453
 diginitialize.cxx:454
 diginitialize.cxx:455
 diginitialize.cxx:456
 diginitialize.cxx:457
 diginitialize.cxx:458
 diginitialize.cxx:459
 diginitialize.cxx:460
 diginitialize.cxx:461
 diginitialize.cxx:462
 diginitialize.cxx:463