G4CsvAnalysisManager.cc

Go to the documentation of this file.
00001 //
00002 // ********************************************************************
00003 // * License and Disclaimer                                           *
00004 // *                                                                  *
00005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
00006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
00007 // * conditions of the Geant4 Software License,  included in the file *
00008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
00009 // * include a list of copyright holders.                             *
00010 // *                                                                  *
00011 // * Neither the authors of this software system, nor their employing *
00012 // * institutes,nor the agencies providing financial support for this *
00013 // * work  make  any representation or  warranty, express or implied, *
00014 // * regarding  this  software system or assume any liability for its *
00015 // * use.  Please see the license in the file  LICENSE  and URL above *
00016 // * for the full disclaimer and the limitation of liability.         *
00017 // *                                                                  *
00018 // * This  code  implementation is the result of  the  scientific and *
00019 // * technical work of the GEANT4 collaboration.                      *
00020 // * By using,  copying,  modifying or  distributing the software (or *
00021 // * any work based  on the software)  you  agree  to acknowledge its *
00022 // * use  in  resulting  scientific  publications,  and indicate your *
00023 // * acceptance of all terms of the Geant4 Software license.          *
00024 // ********************************************************************
00025 //
00026 // $Id$
00027 
00028 // Author: Ivana Hrivnacova, 15/06/2011  (ivana@ipno.in2p3.fr)
00029 
00030 #include "G4CsvAnalysisManager.hh"
00031 #include "G4UnitsTable.hh"
00032 
00033 #include "tools/waxml/begend"
00034 #include "tools/waxml/histos"
00035 
00036 #include <iostream>
00037 
00038 G4CsvAnalysisManager* G4CsvAnalysisManager::fgInstance = 0;
00039 
00040 //_____________________________________________________________________________
00041 G4CsvAnalysisManager* G4CsvAnalysisManager::Instance()
00042 {
00043   if ( fgInstance == 0 ) {
00044     fgInstance = new G4CsvAnalysisManager();
00045   }
00046   
00047   return fgInstance;
00048 }    
00049 
00050 //_____________________________________________________________________________
00051 G4CsvAnalysisManager::G4CsvAnalysisManager()
00052  : G4VAnalysisManager("Csv"),
00053    fFile(0),
00054    fNtuple(0),
00055    fNtupleBooking(0),
00056    fNtupleIColumnMap(),
00057    fNtupleFColumnMap(),
00058    fNtupleDColumnMap()
00059 {
00060   if ( fgInstance ) {
00061     G4ExceptionDescription description;
00062     description << "      " 
00063                 << "G4CsvAnalysisManager already exists." 
00064                 << "Cannot create another instance.";
00065     G4Exception("G4CsvAnalysisManager::G4CsvAnalysisManager()",
00066                 "Analysis_F001", FatalException, description);
00067   }              
00068    
00069   fgInstance = this;
00070 }
00071 
00072 //_____________________________________________________________________________
00073 G4CsvAnalysisManager::~G4CsvAnalysisManager()
00074 {  
00075   delete fNtuple;
00076   delete fNtupleBooking;
00077   delete fFile;
00078 
00079   fgInstance = 0;
00080 }
00081 
00082 // 
00083 // private methods
00084 //
00085 
00086 //_____________________________________________________________________________
00087 tools::wcsv::ntuple::column<int>*    
00088 G4CsvAnalysisManager::GetNtupleIColumn(G4int id) const
00089 {
00090   std::map<G4int, tools::wcsv::ntuple::column<int>* >::const_iterator it
00091     = fNtupleIColumnMap.find(id);
00092   if ( it == fNtupleIColumnMap.end() ) {
00093     G4ExceptionDescription description;
00094     description << "      " << "column " << id << " does not exist.";
00095     G4Exception("G4CsvAnalysisManager::GetNtupleIColumn()",
00096                 "Analysis_W009", JustWarning, description);
00097     return 0;
00098   }
00099   
00100   return it->second;
00101 }  
00102     
00103 //_____________________________________________________________________________
00104 tools::wcsv::ntuple::column<float>*  
00105 G4CsvAnalysisManager::GetNtupleFColumn(G4int id) const
00106 {
00107   std::map<G4int, tools::wcsv::ntuple::column<float>* >::const_iterator it
00108     = fNtupleFColumnMap.find(id);
00109   if ( it == fNtupleFColumnMap.end() ) {
00110     G4ExceptionDescription description;
00111     description << "      " << "column " << id << " does not exist.";
00112     G4Exception("G4CsvAnalysisManager::GetNtupleFColumn()",
00113                 "Analysis_W009", JustWarning, description);
00114     return 0;
00115   }
00116   
00117   return it->second;
00118 }  
00119 
00120 
00121 //_____________________________________________________________________________
00122 tools::wcsv::ntuple::column<double>* 
00123 G4CsvAnalysisManager::GetNtupleDColumn(G4int id) const
00124 {
00125   std::map<G4int, tools::wcsv::ntuple::column<double>* >::const_iterator it
00126     = fNtupleDColumnMap.find(id);
00127   if ( it == fNtupleDColumnMap.end() ) {
00128     G4ExceptionDescription description;
00129     description << "      " << "column " << id << " does not exist.";
00130     G4Exception("G4CsvAnalysisManager::GetNtupleDColumn()",
00131                 "Analysis_W009", JustWarning, description);
00132     return 0;
00133   }
00134   
00135   return it->second;
00136 }  
00137  
00138 //_____________________________________________________________________________
00139 G4bool G4CsvAnalysisManager::Reset()
00140 {
00141   delete fNtuple;
00142   fNtuple = 0;
00143   
00144   return true;
00145 }  
00146  
00147 //_____________________________________________________________________________
00148 void  G4CsvAnalysisManager::ExceptionForHistograms(
00149                                         const G4String& functionName) const
00150 {
00151   G4String inFunction = "G4CsvAnalysisManager::";
00152   inFunction += functionName;
00153   G4ExceptionDescription description;
00154   description << "      " 
00155               << "Histograms are not supported." ;
00156   G4Exception(inFunction, "Analysis_W005", JustWarning, description);
00157 }  
00158 
00159 //
00160 // protected methods
00161 //
00162 
00163 //_____________________________________________________________________________
00164 G4bool G4CsvAnalysisManager::WriteOnAscii(std::ofstream& /*output*/)
00165 {
00166 // Write selected objects on ASCII file
00167 // To be added: ntuple
00168 
00169   return true;
00170 }  
00171 
00172 // 
00173 // public methods
00174 //
00175 
00176 //_____________________________________________________________________________
00177 G4bool G4CsvAnalysisManager::OpenFile(const G4String& fileName)
00178 {
00179   // Keep file name
00180   fFileName =  fileName;
00181 
00182   // Add file extension .csv if no extension is given
00183   G4String name(fileName);
00184   if ( name.find(".") == std::string::npos ) { 
00185     name.append(".");
00186     name.append(GetFileType());
00187   }  
00188 
00189 #ifdef G4VERBOSE
00190   if ( fpVerboseL4 ) 
00191     fpVerboseL4->Message("open", "analysis file", name);
00192 #endif
00193   
00194   // delete a previous file if it exists
00195   if ( fFile ) delete fFile; 
00196   
00197   fFile = new std::ofstream(name);
00198   if ( fFile->fail() ) {
00199     G4ExceptionDescription description;
00200     description << "      " << "Cannot open file " << fileName;
00201     G4Exception("G4CsvAnalysisManager::OpenFile()",
00202                 "Analysis_W001", JustWarning, description);
00203     return false;
00204   }
00205 
00206   // Create ntuple if it was already booked
00207   if ( fNtupleBooking && ( ! fNtuple ) ) {
00208 #ifdef G4VERBOSE
00209     if ( fpVerboseL4 ) 
00210       fpVerboseL4->Message("create from booking", "ntuple", name);
00211 #endif
00212     fNtuple = new tools::wcsv::ntuple(*fFile, G4cerr, *fNtupleBooking);
00213     if ( fNtupleBooking->m_columns.size() ) {
00214       // store ntuple columns in local maps
00215       const std::vector<tools::ntuple_booking::col_t>& columns 
00216         = fNtupleBooking->m_columns;
00217       std::vector<tools::ntuple_booking::col_t>::const_iterator it;
00218       G4int index = 0;
00219       for ( it = columns.begin(); it!=columns.end(); ++it) {
00220         if ( (*it).second == tools::_cid(int(0) ) ) {
00221           G4cout << "adding int " << fNtuple->find_column<int>((*it).first) << G4endl;
00222           fNtupleIColumnMap[index++] = fNtuple->find_column<int>((*it).first);
00223         }
00224         else if( (*it).second == tools::_cid(float(0) ) ) {
00225           fNtupleFColumnMap[index++] = fNtuple->find_column<float>((*it).first);
00226         } 
00227         else if((*it).second== tools::_cid(double(0))) {
00228           fNtupleDColumnMap[index++] = fNtuple->find_column<double>((*it).first);
00229         }
00230         else {
00231           G4ExceptionDescription description;
00232           description << "      " 
00233                       << "Unsupported column type " << (*it).first;
00234           G4Exception("G4CsvAnalysisManager::OpenFile()",
00235                       "Analysis_W004", JustWarning, description);
00236         }
00237       }
00238     }
00239   }   
00240 
00241   fLockFileName = true;
00242   
00243 #ifdef G4VERBOSE
00244   if ( fpVerboseL1 ) 
00245     fpVerboseL1->Message("open", "analysis file", name);
00246 #endif
00247   
00248   return true;
00249 }  
00250   
00251 //_____________________________________________________________________________
00252 G4bool G4CsvAnalysisManager::Write() 
00253 {
00254   // nothing to be done for Csv file
00255   G4bool result = true;
00256   
00257   // Write ASCII if activated
00258   if ( IsAscii() ) {
00259     result = WriteAscii();
00260   }   
00261 
00262   return result;
00263 }
00264 
00265 //_____________________________________________________________________________
00266 G4bool G4CsvAnalysisManager::CloseFile()
00267 {
00268   G4bool result = true;
00269 
00270 #ifdef G4VERBOSE
00271   if ( fpVerboseL4 ) 
00272     fpVerboseL4->Message("close", "file", GetFullFileName());
00273 #endif
00274 
00275   // reset data
00276   result = Reset();
00277   if ( ! result ) {
00278       G4ExceptionDescription description;
00279       description << "      " << "Resetting data failed";
00280       G4Exception("G4CsvAnalysisManager::CloseFile()",
00281                 "Analysis_W002", JustWarning, description);
00282       result = false;       
00283   } 
00284 
00285   // close file
00286   fFile->close(); 
00287   fLockFileName = false;
00288 
00289 #ifdef G4VERBOSE
00290   if ( fpVerboseL1 ) 
00291     fpVerboseL1->Message("close", "file", GetFullFileName());
00292 #endif
00293 
00294   return true; 
00295 } 
00296    
00297 //_____________________________________________________________________________
00298 G4int G4CsvAnalysisManager::CreateH1(const G4String& /*name*/, 
00299                                const G4String& /*title*/, 
00300                                G4int /*nbins*/, 
00301                                G4double /*xmin*/, G4double /*xmax*/,
00302                                const G4String& /*unitName*/, 
00303                                const G4String& /*fcnName*/)
00304 {
00305   ExceptionForHistograms("CreateH1");
00306   return 0;
00307 }                                         
00308 
00309 //_____________________________________________________________________________
00310 G4int G4CsvAnalysisManager::CreateH2(const G4String& /*name*/, 
00311                                const G4String& /*title*/, 
00312                                G4int /*nxbins*/, 
00313                                G4double /*xmin*/, G4double /*xmax*/,
00314                                G4int /*nybins*/, 
00315                                G4double /*ymin*/, G4double /*ymax*/,
00316                                const G4String& /*xunitName*/, 
00317                                const G4String& /*yunitName*/, 
00318                                const G4String& /*xfcnName*/,
00319                                const G4String& /*yfcnName*/)
00320 {
00321   ExceptionForHistograms("CreateH2");
00322   return 0;
00323 }                                         
00324 
00325 //_____________________________________________________________________________
00326 G4bool G4CsvAnalysisManager::SetH1(G4int /*id*/,
00327                                 G4int /*nbins*/, 
00328                                 G4double /*xmin*/, G4double /*xmax*/,
00329                                 const G4String& /*unitName*/, 
00330                                 const G4String& /*fcnName*/)
00331 {                                
00332   ExceptionForHistograms("SetH1");
00333   return false;
00334 }
00335   
00336 //_____________________________________________________________________________
00337 G4bool G4CsvAnalysisManager::SetH2(G4int /*id*/,
00338                                 G4int /*nxbins*/, 
00339                                 G4double /*xmin*/, G4double /*xmax*/, 
00340                                 G4int /*nybins*/, 
00341                                 G4double /*ymin*/, G4double /*ymax*/,
00342                                 const G4String& /*xunitName*/, 
00343                                 const G4String& /*yunitName*/, 
00344                                 const G4String& /*xfcnName*/,
00345                                 const G4String& /*yfcnName*/)
00346 {                                
00347   ExceptionForHistograms("SetH2");
00348   return false;
00349 }
00350 
00351 //_____________________________________________________________________________
00352 G4bool G4CsvAnalysisManager::ScaleH1(G4int /*id*/, G4double /*factor*/)
00353 {
00354   ExceptionForHistograms("ScaleH1");
00355   return false;
00356 }
00357                                   
00358 //_____________________________________________________________________________
00359 G4bool G4CsvAnalysisManager::ScaleH2(G4int /*id*/, G4double /*factor*/)
00360 {
00361   ExceptionForHistograms("ScaleH2");
00362   return false;
00363 }
00364 
00365 //_____________________________________________________________________________
00366 void G4CsvAnalysisManager::CreateNtuple(const G4String& name, 
00367                                         const G4String& title)
00368 {
00369   if ( fNtupleBooking ) {
00370     G4ExceptionDescription description;
00371     description << "      " 
00372                 << "Ntuple already exists. "
00373                 << "(Only one ntuple is currently supported.)";
00374     G4Exception("G4CsvAnalysisManager::CreateNtuple()",
00375                 "Analysis_W006", JustWarning, description);
00376     return;       
00377   }
00378 
00379 #ifdef G4VERBOSE
00380   if ( fpVerboseL4 ) 
00381     fpVerboseL4->Message("create", "ntuple", name);
00382 #endif
00383 
00384   // Create ntuple booking
00385   fNtupleBooking = new tools::ntuple_booking();
00386   fNtupleBooking->m_name = name;
00387   fNtupleBooking->m_title = title;
00388            // ntuple booking object is deleted in destructor
00389 
00390   // Create ntuple if the file is open
00391   if ( fFile ) {
00392     fNtuple = new tools::wcsv::ntuple(*fFile);
00393            // ntuple object is deleted when closing a file
00394   }  
00395 
00396 #ifdef G4VERBOSE
00397   if ( fpVerboseL2 ) 
00398     fpVerboseL2->Message("create", "ntuple", name);
00399 #endif
00400 }                                         
00401 
00402 //_____________________________________________________________________________
00403 G4int G4CsvAnalysisManager::CreateNtupleIColumn(const G4String& name)
00404 {
00405 #ifdef G4VERBOSE
00406   if ( fpVerboseL4 ) 
00407     fpVerboseL4->Message("create", "ntuple I column", name);
00408 #endif
00409 
00410   if ( ! fNtupleBooking ) {
00411     G4ExceptionDescription description;
00412     description << "      " 
00413                 << "Ntuple has to be created first. ";
00414     G4Exception("G4CsvAnalysisManager::CreateNtupleIColumn()",
00415                 "Analysis_W005", JustWarning, description);
00416     return -1;       
00417   }
00418 
00419   // Save column info in booking
00420   G4int index = fNtupleBooking->m_columns.size();
00421   fNtupleBooking->add_column<int>(name);  
00422  
00423   // Create column if ntuple already exists
00424   if ( fNtuple ) {
00425     tools::wcsv::ntuple::column<int>* column 
00426       = fNtuple->create_column<int>(name);  
00427     fNtupleIColumnMap[index] = column;
00428   }  
00429 
00430   fLockFirstNtupleColumnId = true;
00431 
00432 #ifdef G4VERBOSE
00433   if ( fpVerboseL2 ) 
00434     fpVerboseL2->Message("create", "ntuple I column", name);
00435 #endif
00436 
00437   return index + fFirstNtupleColumnId;       
00438 }                                         
00439 
00440 //_____________________________________________________________________________
00441 G4int G4CsvAnalysisManager::CreateNtupleFColumn(const G4String& name)
00442 {
00443 #ifdef G4VERBOSE
00444   if ( fpVerboseL4 ) 
00445     fpVerboseL4->Message("create", "ntuple F column", name);
00446 #endif
00447 
00448   if ( ! fNtupleBooking )  {
00449     G4ExceptionDescription description;
00450     description << "      " 
00451                 << "Ntuple has to be created first. ";
00452     G4Exception("G4CsvAnalysisManager::CreateNtupleFColumn()",
00453                 "Analysis_W005", JustWarning, description);
00454     return -1;       
00455   }
00456 
00457   // Save column info in booking
00458   G4int index = fNtupleBooking->m_columns.size();
00459   fNtupleBooking->add_column<float>(name);  
00460  
00461   // Create column if ntuple already exists
00462   if ( fNtuple ) {
00463     tools::wcsv::ntuple::column<float>* column 
00464       = fNtuple->create_column<float>(name);  
00465     fNtupleFColumnMap[index] = column;
00466   }  
00467 
00468   fLockFirstNtupleColumnId = true;
00469 
00470 #ifdef G4VERBOSE
00471   if ( fpVerboseL2 ) 
00472     fpVerboseL2->Message("create", "ntuple F column", name);
00473 #endif
00474 
00475   return index + fFirstNtupleColumnId;       
00476 }                                         
00477 
00478 //_____________________________________________________________________________
00479 G4int G4CsvAnalysisManager::CreateNtupleDColumn(const G4String& name)   
00480 {
00481 #ifdef G4VERBOSE
00482   if ( fpVerboseL4 ) 
00483     fpVerboseL4->Message("create", "ntuple D column", name);
00484 #endif
00485 
00486   if ( ! fNtupleBooking ) {
00487     G4ExceptionDescription description;
00488     description << "      " 
00489                 << "Ntuple has to be created first. ";
00490     G4Exception("G4CsvAnalysisManager::CreateNtupleDColumn()",
00491                 "Analysis_W005", JustWarning, description);
00492     return -1;       
00493   }
00494 
00495   // Save column info in booking
00496   G4int index = fNtupleBooking->m_columns.size();
00497   fNtupleBooking->add_column<double>(name);  
00498  
00499   // Create column if ntuple already exists
00500   if ( fNtuple ) {
00501     tools::wcsv::ntuple::column<double>* column 
00502       = fNtuple->create_column<double>(name);  
00503     fNtupleDColumnMap[index] = column;
00504   }
00505     
00506   fLockFirstNtupleColumnId = true;
00507 
00508 #ifdef G4VERBOSE
00509   if ( fpVerboseL2 ) 
00510     fpVerboseL2->Message("create", "ntuple D column", name);
00511 #endif
00512 
00513   return index + fFirstNtupleColumnId;       
00514 }                                         
00515 
00516 //_____________________________________________________________________________
00517 void G4CsvAnalysisManager::FinishNtuple()
00518 { 
00519   // nothing to be done here
00520 }
00521    
00522   
00523 //_____________________________________________________________________________
00524 G4bool G4CsvAnalysisManager::FillH1(G4int /*id*/, 
00525                                     G4double /*value*/, G4double /*weight*/)
00526 {
00527   G4ExceptionDescription description;
00528   description << "      " 
00529               << "Histograms are not supported." ;
00530   G4Exception("G4CsvAnalysisManager::FillH1()",
00531             "Analysis_W007", JustWarning, description);
00532   return false;
00533 }
00534 
00535 //_____________________________________________________________________________
00536 G4bool G4CsvAnalysisManager::FillH2(G4int /*id*/, 
00537                                     G4double /*xvalue*/, G4double /*yvalue*/,
00538                                     G4double /*weight*/)
00539 {
00540   G4ExceptionDescription description;
00541   description << "      " 
00542               << "Histograms are not supported." ;
00543   G4Exception("G4CsvAnalysisManager::FillH2()",
00544             "Analysis_W007", JustWarning, description);
00545   return false;
00546 }
00547 
00548 //_____________________________________________________________________________
00549 G4bool G4CsvAnalysisManager::FillNtupleIColumn(G4int id, G4int value)
00550 {
00551   tools::wcsv::ntuple::column<int>* column = GetNtupleIColumn(id);
00552   if ( ! column ) {
00553     G4ExceptionDescription description;
00554     description << "      " << "column " << id << " does not exist.";
00555     G4Exception("G4CsvAnalysisManager::FillNtupleIColumn()",
00556                 "Analysis_W009", JustWarning, description);
00557     return false;
00558   }  
00559   
00560   column->fill(value);
00561 #ifdef G4VERBOSE
00562   if ( fpVerboseL4 ) {
00563     G4ExceptionDescription description;
00564     description << " id " << id << " value " << value;
00565     fpVerboseL4->Message("fill", "ntuple I column", description);
00566   }  
00567 #endif
00568   return true;       
00569 }                                         
00570 //_____________________________________________________________________________
00571 G4bool G4CsvAnalysisManager::FillNtupleFColumn(G4int id, G4float value)
00572 {
00573   tools::wcsv::ntuple::column<float>* column = GetNtupleFColumn(id);
00574   if ( ! column ) {
00575     G4ExceptionDescription description;
00576     description << "      " << "column " << id << " does not exist.";
00577     G4Exception("G4CsvAnalysisManager::FillNtupleFColumn()",
00578                 "Analysis_W009", JustWarning, description);
00579     return false;
00580   }  
00581   
00582   column->fill(value);
00583 #ifdef G4VERBOSE
00584   if ( fpVerboseL4 ) {
00585     G4ExceptionDescription description;
00586     description << " id " << id << " value " << value;
00587     fpVerboseL4->Message("fill", "ntuple F column", description);
00588   }  
00589 #endif
00590   return true;       
00591 }                                         
00592 
00593 //_____________________________________________________________________________
00594 G4bool G4CsvAnalysisManager::FillNtupleDColumn(G4int id, G4double value)
00595 {
00596    tools::wcsv::ntuple::column<double>* column = GetNtupleDColumn(id);
00597   if ( ! column ) {
00598     G4ExceptionDescription description;
00599     description << "      " << "column " << id << " does not exist.";
00600     G4Exception("G4CsvAnalysisManager::FillNtupleDColumn()",
00601                 "Analysis_W009", JustWarning, description);
00602     return false;
00603   }  
00604   
00605   column->fill(value);
00606 #ifdef G4VERBOSE
00607   if ( fpVerboseL4 ) {
00608     G4ExceptionDescription description;
00609     description << " id " << id << " value " << value;
00610     fpVerboseL4->Message("fill", "ntuple D column", description);
00611   }  
00612 #endif
00613   return true;       
00614 }                                         
00615 
00616 //_____________________________________________________________________________
00617 G4bool G4CsvAnalysisManager::AddNtupleRow()
00618 { 
00619 #ifdef G4VERBOSE
00620   if ( fpVerboseL4 )
00621     fpVerboseL4->Message("add", "ntuple row", "");
00622 #endif
00623 
00624   if ( ! fNtuple ) {
00625     G4ExceptionDescription description;
00626     description << "      " << "ntuple does not exist. ";
00627     G4Exception("G4CsvAnalysisManager::AddNtupleRow()",
00628                 "Analysis_W008", JustWarning, description);
00629     return false;
00630   }  
00631   
00632   fNtuple->add_row();
00633 #ifdef G4VERBOSE
00634   if ( fpVerboseL4 )
00635     fpVerboseL4->Message("add", "ntuple row", "");
00636 #endif
00637 
00638   return true;
00639 }
00640 
00641 //_____________________________________________________________________________
00642 tools::wcsv::ntuple* G4CsvAnalysisManager::GetNtuple() const
00643 {
00644   return fNtuple;
00645 }  
00646 
00647 
00648 //_____________________________________________________________________________
00649 G4int G4CsvAnalysisManager::GetH1Nbins(G4int /*id*/) const
00650 {
00651   ExceptionForHistograms("GetH1Nbins");
00652   return 0;
00653 }
00654   
00655 //_____________________________________________________________________________
00656 G4double G4CsvAnalysisManager::GetH1Xmin(G4int /*id*/) const
00657 {
00658   ExceptionForHistograms("GetH1Xmin");
00659   return 0;
00660 }
00661   
00662 //_____________________________________________________________________________
00663 G4double G4CsvAnalysisManager::GetH1Xmax(G4int /*id*/) const
00664 {
00665   ExceptionForHistograms("GetH1Xmax");
00666   return 0;
00667 }
00668   
00669 //_____________________________________________________________________________
00670 G4double G4CsvAnalysisManager::GetH1Width(G4int /*id*/) const
00671 {
00672   ExceptionForHistograms("GetH1Xwidth");
00673   return 0;
00674 }
00675   
00676 //_____________________________________________________________________________
00677 G4int G4CsvAnalysisManager::GetH2Nxbins(G4int /*id*/) const
00678 {
00679   ExceptionForHistograms("GetH2NXbins");
00680   return 0;
00681 }
00682   
00683 //_____________________________________________________________________________
00684 G4double G4CsvAnalysisManager::GetH2Xmin(G4int /*id*/) const
00685 {
00686   ExceptionForHistograms("GetH2Xmin");
00687   return 0;
00688 }
00689   
00690 //_____________________________________________________________________________
00691 G4double G4CsvAnalysisManager::GetH2Xmax(G4int /*id*/) const
00692 {
00693   ExceptionForHistograms("GetH2Xmin");
00694   return 0;
00695 }
00696   
00697 //_____________________________________________________________________________
00698 G4double G4CsvAnalysisManager::GetH2XWidth(G4int /*id*/) const
00699 {
00700   ExceptionForHistograms("GetH2XWidth");
00701   return 0;
00702 }
00703   
00704 //_____________________________________________________________________________
00705 G4int G4CsvAnalysisManager::GetH2Nybins(G4int /*id*/) const
00706 {
00707   ExceptionForHistograms("GetH2NYbins");
00708   return 0;
00709 }
00710   
00711 //_____________________________________________________________________________
00712 G4double G4CsvAnalysisManager::GetH2Ymin(G4int /*id*/) const
00713 {
00714   ExceptionForHistograms("GetH2Ymin");
00715   return 0;
00716 }
00717   
00718 //_____________________________________________________________________________
00719 G4double G4CsvAnalysisManager::GetH2Ymax(G4int /*id*/) const
00720 {
00721   ExceptionForHistograms("GetH2Ymax");
00722   return 0;
00723 }
00724   
00725 //_____________________________________________________________________________
00726 G4double G4CsvAnalysisManager::GetH2YWidth(G4int /*id*/) const
00727 {
00728   ExceptionForHistograms("GetH2YWidth");
00729   return 0;
00730 }
00731 
00732 //_____________________________________________________________________________
00733 G4bool G4CsvAnalysisManager::SetH1Title(G4int /*id*/, 
00734                                         const G4String& /*title*/)
00735 {
00736   ExceptionForHistograms("SetH1Title");
00737   return false;
00738 }
00739 
00740 //_____________________________________________________________________________
00741 G4bool G4CsvAnalysisManager::SetH1XAxisTitle(G4int /*id*/, 
00742                                              const G4String& /*title*/)
00743 {
00744   ExceptionForHistograms("SetH1XAxisTitle");
00745   return false;
00746 }
00747 
00748 //_____________________________________________________________________________
00749 G4bool G4CsvAnalysisManager::SetH1YAxisTitle(G4int /*id*/, 
00750                                              const G4String& /*title*/)
00751 {
00752   ExceptionForHistograms("SetH1YAxisTitle");
00753   return false;
00754 }
00755 
00756 //_____________________________________________________________________________
00757 G4bool G4CsvAnalysisManager::SetH2Title(G4int /*id*/, 
00758                                         const G4String& /*title*/)
00759 {
00760   ExceptionForHistograms("SetH2Title");
00761   return false;
00762 }
00763 
00764 //_____________________________________________________________________________
00765 G4bool G4CsvAnalysisManager::SetH2XAxisTitle(G4int /*id*/, 
00766                                              const G4String& /*title*/)
00767 {
00768   ExceptionForHistograms("SetH2XAxisTitle");
00769   return false;
00770 }
00771 
00772 //_____________________________________________________________________________
00773 G4bool G4CsvAnalysisManager::SetH2YAxisTitle(G4int /*id*/, 
00774                                              const G4String& /*title*/)
00775 {
00776   ExceptionForHistograms("SetH2YAxisTitle");
00777   return false;
00778 }
00779 
00780 //_____________________________________________________________________________
00781 G4bool G4CsvAnalysisManager::SetH2ZAxisTitle(G4int /*id*/, 
00782                                              const G4String& /*title*/)
00783 {
00784   ExceptionForHistograms("SetH2ZAxisTitle");
00785   return false;
00786 }
00787 
00788 //_____________________________________________________________________________
00789 G4String G4CsvAnalysisManager::GetH1XAxisTitle(G4int /*id*/) const
00790 {
00791   ExceptionForHistograms("GetH1XAxisTitle");
00792   return "";
00793 }
00794 
00795 //_____________________________________________________________________________
00796 G4String G4CsvAnalysisManager::GetH1Title(G4int /*id*/) const
00797 {
00798   ExceptionForHistograms("GetH1Title");
00799   return "";
00800 }
00801   
00802 //_____________________________________________________________________________
00803 G4String G4CsvAnalysisManager::GetH1YAxisTitle(G4int /*id*/) const
00804 {
00805   ExceptionForHistograms("GetH1YAxisTitle");
00806   return "";
00807 }
00808 
00809 
00810 //_____________________________________________________________________________
00811 G4String G4CsvAnalysisManager::GetH2Title(G4int /*id*/) const
00812 {
00813   ExceptionForHistograms("GetH2Title");
00814   return "";
00815 }
00816   
00817 //_____________________________________________________________________________
00818 G4String G4CsvAnalysisManager::GetH2XAxisTitle(G4int /*id*/) const
00819 {
00820   ExceptionForHistograms("GetH2XAxisTitle");
00821   return "";
00822 }
00823 
00824 //_____________________________________________________________________________
00825 G4String G4CsvAnalysisManager::GetH2YAxisTitle(G4int /*id*/) const
00826 {
00827   ExceptionForHistograms("GetH2YAxisTitle");
00828   return "";
00829 }
00830 
00831 //_____________________________________________________________________________
00832 G4String G4CsvAnalysisManager::GetH2ZAxisTitle(G4int /*id*/) const
00833 {
00834   ExceptionForHistograms("GetH2ZAxisTitle");
00835   return "";
00836 }
00837   

Generated on Mon May 27 17:47:58 2013 for Geant4 by  doxygen 1.4.7