G4ITManager_iterator.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: G4ITManager_iterator.cc 64057 2012-10-30 15:04:49Z gcosmo $
00027 //
00028 // Author: Mathieu Karamitros (kara (AT) cenbg . in2p3 . fr) 
00029 //
00030 // History:
00031 // -----------
00032 // 10 Oct 2011 M.Karamitros created
00033 //
00034 // -------------------------------------------------------------------
00035 
00036 #include "G4ITManager.hh"
00037 
00038 // Description of G4ITManager<IT>::iterator
00039 
00040 G4VITManager::iterator::iterator(G4ITBox* box)
00041 {
00042     if(box)
00043     {
00044         fCurrentBox = box ;
00045     }
00046     else 
00047     {
00048         fCurrentBox = 0;        
00049     }
00050 
00051     fNextIT = 0;
00052 }
00053 //______________________________________________________________________
00054 
00055 G4bool G4VITManager::iterator::begin()
00056 {
00057     if(fCurrentBox)
00058     {
00059         fNextIT = fCurrentBox->GetFirstIT();
00060 
00061         if(fNextIT)
00062         {
00063 //            G4cout << "G4VITManager::allbox_iterator, fNextIT :" <<  fNextIT -> GetName()<< G4endl;
00064             return true;
00065         }
00066     }
00067 
00068     return false;
00069 }
00070 //______________________________________________________________________
00071 
00072 G4VITManager::iterator& G4VITManager::iterator::operator++(G4int)
00073 {
00074     if(fCurrentBox)
00075     {
00076         if(fNextIT)
00077         {
00078             fNextIT = fNextIT->GetNext();
00079         }
00080     }
00081     return *this;
00082 }
00083 
00084 //______________________________________________________________________
00085 
00086 G4bool G4VITManager::iterator::end()
00087 {
00088     if(fNextIT) return false;
00089     return true ;
00090 }
00091 
00092 //______________________________________________________________________
00093 
00094 G4VITManager::iterator& G4VITManager::iterator::operator= (const iterator& i)
00095 {
00096     if(this != &i)
00097     {
00098         fNextIT = i.fNextIT;
00099         fCurrentBox = i.fCurrentBox;
00100     }
00101     return *this;
00102 }
00103 
00104 //______________________________________________________________________
00105 
00106 G4IT* G4VITManager::iterator::operator*()
00107 {
00108     return fNextIT;
00109 }
00110 
00111 //______________________________________________________________________
00112 
00113 G4ITBox* G4VITManager::iterator::GetBox()
00114 {
00115     return fCurrentBox;
00116 }
00117 
00118 //______________________________________________________________________
00119 
00120 void G4VITManager::iterator::PrintNext() const
00121 {
00122     if(fNextIT)
00123     {
00124         if(fNextIT->GetTrack())
00125         {
00126                 G4cout
00127                     << fNextIT->GetTrack()->GetTrackID()
00128                     << "\t"
00129                     << fNextIT->GetName()
00130                     << G4endl;
00131         }
00132     }
00133     else
00134     {
00135         G4cout<<"fNextIT = 0"<<G4endl;
00136     }
00137 }
00138 

Generated on Mon May 27 17:48:41 2013 for Geant4 by  doxygen 1.4.7