]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Updated class description: added class name title, author;
authorivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 21 Aug 2001 19:47:14 +0000 (19:47 +0000)
committerivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 21 Aug 2001 19:47:14 +0000 (19:47 +0000)
RW vector types changed to STL;
messenger data member changed from a pointer to a value.

AliGeant4/AliColourStore.cxx
AliGeant4/AliColourStore.h
AliGeant4/AliModulesComposition.cxx
AliGeant4/AliModulesComposition.h
AliGeant4/AliParticleGun.cxx
AliGeant4/AliParticleGun.h

index 04f49de1bca651ece3686307083a342fc8e931c3..31cf6ecc73b4b540b073b8572c06563d280c09d0 100644 (file)
@@ -1,6 +1,10 @@
 // $Id$
 // Category: visualization
 //
+// Author: I. Hrivnacova
+//
+// Class AliColourStore
+// --------------------
 // See the class description in the header file.
 
 #include "AliColourStore.h"
@@ -19,22 +23,22 @@ AliColourStore* AliColourStore::fgInstance = 0;
 //_____________________________________________________________________________
 AliColourStore::AliColourStore() {
 //
-  fColours.insert(AliColour("White",     1.0, 1.0, 1.0));    
-  fColours.insert(AliColour("Black",     0.0, 0.0, 0.0));     
-  fColours.insert(AliColour("Red",       1.0, 0.0, 0.0));   
-  fColours.insert(AliColour("RoseDark",  1.0, 0.0, 0.5));  
-  fColours.insert(AliColour("Green",     0.0, 1.0, 0.0));     
-  fColours.insert(AliColour("Green2",    0.0, 1.0, 0.5));     
-  fColours.insert(AliColour("GreenClair",0.5, 1.0, 0.0));
-  fColours.insert(AliColour("Yellow",    1.0, 1.0, 0.0));     
-  fColours.insert(AliColour("BlueDark",  0.0, 0.0, 1.0)); 
-  fColours.insert(AliColour("BlueClair", 0.0, 1.0, 1.0)); 
-  fColours.insert(AliColour("BlueClair2",0.0, 0.5, 1.0));
-  fColours.insert(AliColour("Magenta",   1.0, 0.0, 1.0));    
-  fColours.insert(AliColour("Magenta2",  0.5, 0.0, 1.0));   
-  fColours.insert(AliColour("BrownClair",1.0, 0.5, 0.0));
-  fColours.insert(AliColour("Gray",      0.3, 0.3, 0.3));    
-  fColours.insert(AliColour("GrayClair", 0.6, 0.6, 0.6));
+  fColours.push_back(AliColour("White",     1.0, 1.0, 1.0));    
+  fColours.push_back(AliColour("Black",     0.0, 0.0, 0.0));     
+  fColours.push_back(AliColour("Red",       1.0, 0.0, 0.0));   
+  fColours.push_back(AliColour("RoseDark",  1.0, 0.0, 0.5));  
+  fColours.push_back(AliColour("Green",     0.0, 1.0, 0.0));     
+  fColours.push_back(AliColour("Green2",    0.0, 1.0, 0.5));     
+  fColours.push_back(AliColour("GreenClair",0.5, 1.0, 0.0));
+  fColours.push_back(AliColour("Yellow",    1.0, 1.0, 0.0));     
+  fColours.push_back(AliColour("BlueDark",  0.0, 0.0, 1.0)); 
+  fColours.push_back(AliColour("BlueClair", 0.0, 1.0, 1.0)); 
+  fColours.push_back(AliColour("BlueClair2",0.0, 0.5, 1.0));
+  fColours.push_back(AliColour("Magenta",   1.0, 0.0, 1.0));    
+  fColours.push_back(AliColour("Magenta2",  0.5, 0.0, 1.0));   
+  fColours.push_back(AliColour("BrownClair",1.0, 0.5, 0.0));
+  fColours.push_back(AliColour("Gray",      0.3, 0.3, 0.3));    
+  fColours.push_back(AliColour("GrayClair", 0.6, 0.6, 0.6));
 }
 
 //_____________________________________________________________________________
@@ -72,9 +76,8 @@ AliColourStore* AliColourStore::Instance()
 // Creates the instance if it does not exist.
 // ---
 
-  if (fgInstance == 0 ) {
+  if (fgInstance == 0 )
     fgInstance = new AliColourStore();
-  }
   
   return fgInstance;
 }
@@ -87,13 +90,9 @@ G4Colour AliColourStore::GetColour(G4String name) const
 // Retrieves the colour by name.
 // ---
 
-  G4int nofCol = fColours.entries();
-  for (G4int i=0; i<nofCol; i++)
-  {
-    AliColour alColour = fColours[i];
-    if (name == alColour.GetName()) 
-    { return alColour.GetColour(); }
-  }
+  ColourConstIterator it;  
+  for (it = fColours.begin(); it != fColours.end(); it++) 
+    if (name == (*it).GetName()) return (*it).GetColour();
   
   G4String text = "Colour " + name + " is not defined.";
   AliGlobals::Exception(text);
@@ -107,12 +106,13 @@ G4String AliColourStore::GetColoursList() const
 // ---
 
   G4String list = "";
-  G4int nofCol = fColours.entries();
-  for (G4int i=0; i<nofCol; i++)
-  {
-    list += fColours[i].GetName();
+  ColourConstIterator it;
+
+  for (it = fColours.begin(); it != fColours.end(); it++) {
+    list += (*it).GetName();
     list += " ";
-  };
+  }
+  
   return list;
 } 
        
@@ -124,11 +124,13 @@ G4String AliColourStore::GetColoursListWithCommas() const
 // ---
 
   G4String list = "";
-  G4int nofCol = fColours.entries();
-  for (G4int i=0; i<nofCol; i++)
-  {
-    list += fColours[i].GetName();
-    if (i < nofCol-1) list += ", ";
-  };
+  G4int i = 0;
+  ColourConstIterator it;
+
+  for (it = fColours.begin(); it != fColours.end(); it++) {
+    list += (*it).GetName();
+    if (i++ < fColours.size()-1) list += ", ";
+  }
+  
   return list;
 } 
index 17fd8a9995015d5afb184c65dc08c8a5bb0b8dc6..8e0c81338d2d39c11f0944b737073606a6ab4ae9 100644 (file)
@@ -1,6 +1,10 @@
 // $Id$
 // Category: visualization
 //
+// Author: I. Hrivnacova
+//
+// Class AliColourStore
+// --------------------
 // Singleton data type class - store for the predefined colours.
 
 #ifndef ALI_COLOUR_STORE_H
  
 class AliColour;
 
-#include <g4rw/tvordvec.h>
+#include <g4std/vector>
 
 class AliColourStore 
 {
-  typedef G4RWTValOrderedVector<AliColour>  AliColourVector;
+  typedef G4std::vector<AliColour>     ColourVector;
+  typedef ColourVector::iterator       ColourIterator;
+  typedef ColourVector::const_iterator ColourConstIterator;
 
   public:
     // --> protected
@@ -42,7 +48,7 @@ class AliColourStore
     static AliColourStore*  fgInstance; //this instance
 
     // data members
-    AliColourVector  fColours;          //vector of AliColour
+    ColourVector  fColours; //vector of AliColour
 };   
 
 #endif //ALI_COLOUR_STORE_H
index f6257f3725e5fec8ee849bf277eb9bd6e523f40a..1641635bb7bf6802de8f61ffb3838e2dfdb98fae 100644 (file)
@@ -1,10 +1,13 @@
 // $Id$
 // Category: geometry
 //
+// Author: I. Hrivnacova
+//
+// Class AliModulesComposition
+// ---------------------------
 // See the class description in the header file.
 
 #include "AliModulesComposition.h"
-#include "AliModulesCompositionMessenger.h"
 #include "AliSingleModuleConstruction.h"
 #include "AliMoreModulesConstruction.h"
 #include "AliDetSwitch.h"
 AliModulesComposition::AliModulesComposition()
   : fReadGeometry(false),
     fWriteGeometry(false),
-    fMagneticField(0)    
+    fMagneticField(0),
+    fMessenger(this)
 {
 //
   fMoreModulesConstruction = new AliMoreModulesConstruction();
-  fMessenger = new AliModulesCompositionMessenger(this);
 }
 
 //_____________________________________________________________________________
 AliModulesComposition::AliModulesComposition(const AliModulesComposition& right)
+  : fMessenger(this)
 {
 //
   AliGlobals::Exception("AliModulesComposition is protected from copying.");  
@@ -41,13 +45,17 @@ AliModulesComposition::~AliModulesComposition() {
 //   
   delete fMoreModulesConstruction;
   delete fMagneticField;
-  delete fMessenger; 
   
   // destroy det switch vector
-  fDetSwitchVector.clearAndDestroy();  
+  DetSwitchIterator it;
+  for (it = fDetSwitchVector.begin(); it != fDetSwitchVector.end(); it++)
+    delete *it; 
   
   // destroy det construction vector
-  fModuleConstructionVector.clearAndDestroy();
+  SingleModuleIterator itm;
+  for (itm = fModuleConstructionVector.begin(); 
+       itm != fModuleConstructionVector.end(); it++)
+    delete *itm;
 }
 
 // operators
@@ -72,31 +80,32 @@ void AliModulesComposition::AddDetSwitch(AliDetSwitch* detSwitch)
 // Adds detSwitch to the detSwitch vector.
 // ---
 
-  fDetSwitchVector.insert(detSwitch);
-  fMessenger->SetCandidates();
+  fDetSwitchVector.push_back(detSwitch);
+  fMessenger.SetCandidates();
 }  
   
 //_____________________________________________________________________________
-void AliModulesComposition::AddSingleModuleConstruction(G4String moduleName, 
-                               G4int version, AliModuleType moduleType)
+void AliModulesComposition::AddSingleModuleConstruction(
+                               const G4String& name, G4int version, 
+                              AliModuleType moduleType)
 {
 // Adds SingleModuleConstruction.
 // ---
 
-  AliSingleModuleConstruction* moduleConstruction
-    = new AliSingleModuleConstruction(moduleName, version, moduleType);
-  fModuleConstructionVector.insert(moduleConstruction);
+  fModuleConstructionVector
+    .push_back(new AliSingleModuleConstruction(name, version, moduleType));
 }  
                  
 //_____________________________________________________________________________
-void AliModulesComposition::AddMoreModuleConstruction(G4String moduleName, 
-                               G4int version, AliModuleType moduleType)
+void AliModulesComposition::AddMoreModuleConstruction(
+                               const G4String& name, G4int version, 
+                              AliModuleType moduleType)
 {
 // Adds module to MoreModulesConstruction (construction of dependent
 // modules.)
 // ---
 
-  fMoreModulesConstruction->AddModule(moduleName, version, moduleType);
+  fMoreModulesConstruction->AddModule(name, version, moduleType);
 }  
                                  
 //_____________________________________________________________________________
@@ -110,47 +119,48 @@ void AliModulesComposition::ConstructModules()
   SetWriteGeometryToModules(fWriteGeometry);
   
   // configure single modules
-  G4int nofDets = fModuleConstructionVector.entries();
-  G4int i;
-  for (i=0; i<nofDets; i++) {
-    fModuleConstructionVector[i]->Configure(*AliFiles::Instance());
-    cout << "Module " << fModuleConstructionVector[i]->GetDetName() 
-         << " configured." << endl;
+  SingleModuleIterator it;
+  for (it  = fModuleConstructionVector.begin(); 
+       it != fModuleConstructionVector.end(); it++) {
+       
+    (*it)->Configure(*AliFiles::Instance());
+    cout << "Module " << (*it)->GetDetName() << " configured." << endl;
   }  
      
   // configure dependent modules
-  G4int nofModules = fMoreModulesConstruction->GetNofModules();
-  if (nofModules>0) {
+  if (fMoreModulesConstruction->GetNofModules() > 0)
     fMoreModulesConstruction->Configure(*AliFiles::Instance());
-  }  
 
   // construct single modules
-  for (i=0; i<nofDets; i++) {
-    G4cout << "Module " << fModuleConstructionVector[i]->GetDetName()
+  for (it  = fModuleConstructionVector.begin(); 
+       it != fModuleConstructionVector.end(); it++) {
+
+    G4cout << "Module " << (*it)->GetDetName()
            << " will be constructed now." << G4endl;
-    fModuleConstructionVector[i]->Construct();
+    (*it)->Construct();
   }  
     
   // construct dependent modules
-  if (nofModules>0) {
+  if (fMoreModulesConstruction->GetNofModules() > 0) {
     G4cout << "Dependent modules will be constructed now." << G4endl;
     fMoreModulesConstruction->Construct();
   }  
 }  
 
 //_____________________________________________________________________________
-AliDetSwitch* AliModulesComposition::GetDetSwitch(const G4String& detName)
+AliDetSwitch* AliModulesComposition::GetDetSwitch(const G4String& moduleName)
 {
 // Returns the detector switch with given detector name.
 // ---
 
-  AliDetSwitch* detSwitch = 0;
-  for (G4int id=0; id<fDetSwitchVector.entries(); id++) {  
-    detSwitch = fDetSwitchVector[id];
-    if (detSwitch->GetDetName() == detName) return detSwitch; 
-  }
-  
-  return detSwitch;  
+  DetSwitchIterator it;
+  for (it = fDetSwitchVector.begin(); it != fDetSwitchVector.end(); it++)
+    if ((*it)->GetDetName() == moduleName) return *it; 
+
+  G4String text = "AliModulesComposition::GetDetSwitch:\n";
+  text = text + "Wrong detector name for " + moduleName;   
+  AliGlobals::Exception(text);
+  return 0;  
 } 
 
 //_____________________________________________________________________________
@@ -160,18 +170,15 @@ void AliModulesComposition::SetReadGeometryToModules(G4bool readGeometry)
 // ---
 
   // single module constructions
-  G4int nofDets = fModuleConstructionVector.entries();
-  G4int i;
-  for (i=0; i<nofDets; i++)
-    fModuleConstructionVector[i]->SetReadGeometry(readGeometry);
+  SingleModuleIterator it;
+  for (it  = fModuleConstructionVector.begin(); 
+       it != fModuleConstructionVector.end(); it++)        
+    (*it)->SetReadGeometry(readGeometry);
 
   // more modules construction
-  nofDets = fMoreModulesConstruction->GetNofModules();
-  for (i=0; i<nofDets; i++) { 
-    AliSingleModuleConstruction* moduleConstruction
-      = fMoreModulesConstruction->GetModuleConstruction(i);
-    moduleConstruction->SetReadGeometry(readGeometry);
-  }  
+  for (G4int i=0; i<fMoreModulesConstruction->GetNofModules(); i++) 
+    fMoreModulesConstruction
+      ->GetModuleConstruction(i)->SetReadGeometry(readGeometry);
 }    
   
 //_____________________________________________________________________________
@@ -181,18 +188,15 @@ void AliModulesComposition::SetWriteGeometryToModules(G4bool writeGeometry)
 // ---
 
   // single module constructions
-  G4int nofDets = fModuleConstructionVector.entries();
-  G4int i;
-  for (i=0; i<nofDets; i++)
-    fModuleConstructionVector[i]->SetWriteGeometry(writeGeometry);
+  SingleModuleIterator it;
+  for (it  = fModuleConstructionVector.begin(); 
+       it != fModuleConstructionVector.end(); it++)        
+    (*it)->SetWriteGeometry(writeGeometry);
 
   // more modules construction
-  nofDets = fMoreModulesConstruction->GetNofModules();
-  for (i=0; i<nofDets; i++) { 
-    AliSingleModuleConstruction* moduleConstruction
-      = fMoreModulesConstruction->GetModuleConstruction(i);
-    moduleConstruction->SetWriteGeometry(writeGeometry);
-  }  
+  for (G4int i=0; i<fMoreModulesConstruction->GetNofModules(); i++) 
+    fMoreModulesConstruction
+      ->GetModuleConstruction(i)->SetWriteGeometry(writeGeometry);
 }    
 
 //_____________________________________________________________________________
@@ -202,45 +206,45 @@ void AliModulesComposition::SetProcessConfigToModules(G4bool processConfig)
 // ---
 
   // single module constructions
-  G4int nofDets = fModuleConstructionVector.entries();
-  G4int i;
-  for (i=0; i<nofDets; i++)
-    fModuleConstructionVector[i]->SetProcessConfig(processConfig);
+  SingleModuleIterator it;
+  for (it  = fModuleConstructionVector.begin(); 
+       it != fModuleConstructionVector.end(); it++)        
+    (*it)->SetProcessConfig(processConfig);
   
   // more modules construction
-  nofDets = fMoreModulesConstruction->GetNofModules();
-  for (i=0; i<nofDets; i++) { 
-    AliSingleModuleConstruction* moduleConstruction
-      = fMoreModulesConstruction->GetModuleConstruction(i);
-    moduleConstruction->SetProcessConfig(processConfig);
-  }    
+  for (G4int i=0; i<fMoreModulesConstruction->GetNofModules(); i++) 
+    fMoreModulesConstruction
+      ->GetModuleConstruction(i)->SetProcessConfig(processConfig);
 }    
 
 // public methods
 
 //_____________________________________________________________________________
-void AliModulesComposition::SwitchDetOn(G4String moduleNameVer)
+void AliModulesComposition::SwitchDetOn(const G4String& moduleNameVer)
 { 
 // Switchs on module specified by name and version.
 // ---
 
-  G4int nofDets = fDetSwitchVector.entries(); 
+  DetSwitchIterator it;
+
   if (moduleNameVer == "ALL") {
-    for (G4int id=0; id<nofDets; id++) fDetSwitchVector[id]->SwitchOnDefault(); 
+    for (it = fDetSwitchVector.begin(); it != fDetSwitchVector.end(); it++)
+      (*it)->SwitchOnDefault(); 
   }
   else if (moduleNameVer == "PPR") {
-    for (G4int id=0; id<nofDets; id++) fDetSwitchVector[id]->SwitchOnPPR(); 
+    for (it = fDetSwitchVector.begin(); it != fDetSwitchVector.end(); it++)
+      (*it)->SwitchOnPPR(); 
     AliFiles::Instance()->SetMacroName("ConfigPPR");
   }
   else if (moduleNameVer == "NONE") {
-    for (G4int id=0; id<nofDets; id++)
-      fDetSwitchVector[id]->SwitchOff(); 
+    for (it = fDetSwitchVector.begin(); it != fDetSwitchVector.end(); it++)
+      (*it)->SwitchOff(); 
   }
   else {
     // get version number
     G4int len = moduleNameVer.length();
-    G4String moduleName = moduleNameVer(0, len-1);
-    G4String version = moduleNameVer(len-1, 1);
+    G4String moduleName = moduleNameVer.substr(0, len-1);
+    G4String version = moduleNameVer.substr(len-1, 1);
     G4int iVersion = AliGlobals::StringToInt(version);
 
     if (iVersion < 0) {
@@ -254,81 +258,46 @@ void AliModulesComposition::SwitchDetOn(G4String moduleNameVer)
 }
 
 //_____________________________________________________________________________
-void AliModulesComposition::SwitchDetOn(G4String moduleName, G4int version)
+void AliModulesComposition::SwitchDetOn(const G4String& moduleName, 
+                                        G4int version)
 { 
 // Switchs on module specified by name and version.
 // ---
 
-  G4int nofDets = fDetSwitchVector.entries(); 
-  for (G4int id=0; id<nofDets; id++) {
-    G4String iDetName = fDetSwitchVector[id]->GetDetName();
-    if (iDetName == moduleName) {
-      fDetSwitchVector[id]->SwitchOn(version);
-      return;
-    }
-  }
-  AliGlobals::Exception(
-    "AliModulesComposition: Wrong detector name for " + moduleName + ".");
+  GetDetSwitch(moduleName)->SwitchOn(version);
 }
 
 //_____________________________________________________________________________
-void AliModulesComposition::SwitchDetOnDefault(G4String moduleName)
+void AliModulesComposition::SwitchDetOnDefault(const G4String& moduleName)
 { 
 // Switchs on module specified by name with default version.
 // ---
 
-  G4int nofDets = fDetSwitchVector.entries(); 
-  for (G4int id=0; id<nofDets; id++) {
-    G4String iDetName = fDetSwitchVector[id]->GetDetName();
-    if (iDetName == moduleName) {
-      fDetSwitchVector[id]->SwitchOnDefault();
-      return;
-    }
-  }
-  AliGlobals::Exception(
-    "AliModulesComposition: Wrong detector name for " + moduleName + ".");
+  GetDetSwitch(moduleName)->SwitchOnDefault();
 }
 
 //_____________________________________________________________________________
-void AliModulesComposition::SwitchDetOnPPR(G4String moduleName)
+void AliModulesComposition::SwitchDetOnPPR(const G4String& moduleName)
 { 
 // Switchs on module specified by name with PPR version.
 // ---
 
-  G4int nofDets = fDetSwitchVector.entries(); 
-  for (G4int id=0; id<nofDets; id++) {
-    G4String iDetName = fDetSwitchVector[id]->GetDetName();
-    if (iDetName == moduleName) {
-      fDetSwitchVector[id]->SwitchOnPPR();
-      return;
-    }
-  }
-  AliGlobals::Exception(
-    "AliModulesComposition: Wrong detector name for " + moduleName + ".");
+  GetDetSwitch(moduleName)->SwitchOnPPR();
 }
 
 //_____________________________________________________________________________
-void AliModulesComposition::SwitchDetOff(G4String moduleName)
+void AliModulesComposition::SwitchDetOff(const G4String& moduleName)
 { 
 // Switchs off module specified by name.
 // ---
 
-  G4int nofDets = fDetSwitchVector.entries(); 
   if (moduleName == "ALL") {
-    for (G4int id=0; id<nofDets; id++)
-      fDetSwitchVector[id]->SwitchOff(); 
-  }
-  else {
-    for (G4int id=0; id<nofDets; id++) {
-      G4String iDetName = fDetSwitchVector[id]->GetDetName();
-      if (iDetName == moduleName) { 
-        fDetSwitchVector[id]->SwitchOff();
-        return;
-      }
-    }
+    DetSwitchIterator it;
+    for (it = fDetSwitchVector.begin(); it != fDetSwitchVector.end(); it++)
+      (*it)->SwitchOff(); 
   }
-  AliGlobals::Exception(
-    "AliModulesComposition: Wrong detector name for " + moduleName + ".");
+  else 
+    GetDetSwitch(moduleName)->SwitchOff();
 }
 
 //_____________________________________________________________________________
@@ -382,7 +351,7 @@ void AliModulesComposition::GenerateXMLGeometry() const
   G4String detName;
   G4String detVersion = "";
   G4int version = -1;
-  for (G4int i=fDetSwitchVector.entries()-1; i>=0; i--) {
+  for (G4int i=fDetSwitchVector.size()-1; i>=0; i--) {
     version = fDetSwitchVector[i]->GetSwitchedVersion();
     if (version > -1) {
       detName = fDetSwitchVector[i]->GetDetName();
@@ -422,23 +391,23 @@ G4String AliModulesComposition::GetSwitchedDetsList() const
 // Returns list of switched detectors.
 // ---
 
-  G4String svList = "";
-  
-  G4int nofDets = fDetSwitchVector.entries(); 
+  G4String svList = "";  
   G4int nofSwitchedDets = 0;
-  for (G4int id=0; id<nofDets; id++) {
-    G4int iVersion = fDetSwitchVector[id]->GetSwitchedVersion();
+  DetSwitchConstIterator it;
+  
+  for (it = fDetSwitchVector.begin(); it != fDetSwitchVector.end(); it++) {
+    G4int iVersion = (*it)->GetSwitchedVersion();
     if (iVersion > -1) {
       nofSwitchedDets++;
-      G4String moduleNameVer = fDetSwitchVector[id]->GetDetName();
+      G4String moduleNameVer = (*it)->GetDetName();
       AliGlobals::AppendNumberToString(moduleNameVer, iVersion);
       svList += moduleNameVer;
       svList += " "; 
     }
   }
 
-  if (nofSwitchedDets ==  nofDets) svList = "ALL: " + svList;
-  if (nofSwitchedDets ==  0)       svList = "NONE";   
+  if (nofSwitchedDets == fDetSwitchVector.size()) svList = "ALL: " + svList;
+  if (nofSwitchedDets == 0) svList = "NONE";   
 
   return svList;
 }
@@ -450,17 +419,15 @@ G4String AliModulesComposition::GetAvailableDetsList() const
 // ---
 
   G4String svList = "";
+  DetSwitchConstIterator it;
   
-  G4int nofDets = fDetSwitchVector.entries(); 
-  for (G4int id=0; id<nofDets; id++) {
-    G4int nofVersions = fDetSwitchVector[id]->GetNofVersions();
-    for (G4int iv=0; iv<nofVersions; iv++) {
-      G4String moduleNameVer = fDetSwitchVector[id]->GetDetName();
+  for (it = fDetSwitchVector.begin(); it != fDetSwitchVector.end(); it++)
+    for (G4int iv=0; iv<(*it)->GetNofVersions(); iv++) {
+      G4String moduleNameVer = (*it)->GetDetName();
       AliGlobals::AppendNumberToString(moduleNameVer, iv);
       svList += moduleNameVer;
       svList += " ";
-    }
-  }
+    } 
 
   return svList;
 }
@@ -472,18 +439,17 @@ G4String AliModulesComposition::GetAvailableDetsListWithCommas() const
 // ---
 
   G4String svList = "";
-  
-  G4int nofDets = fDetSwitchVector.entries(); 
-  for (G4int id=0; id<nofDets; id++) {
-    G4int nofVersions = fDetSwitchVector[id]->GetNofVersions();
-    for (G4int iv=0; iv<nofVersions; iv++) {
-      G4String moduleNameVer = fDetSwitchVector[id]->GetDetName();
+  G4int id =0;
+  DetSwitchConstIterator it;
+
+  for (it = fDetSwitchVector.begin(); it != fDetSwitchVector.end(); it++)
+    for (G4int iv=0; iv<(*it)->GetNofVersions(); iv++) {
+      G4String moduleNameVer = (*it)->GetDetName();
       AliGlobals::AppendNumberToString(moduleNameVer, iv);
       svList += moduleNameVer;
-      if (iv<nofVersions-1)    svList += "/";
-      else if (id < nofDets-1) svList += ", ";
+      if (iv < (*it)->GetNofVersions()-1)        svList += "/";
+      else if (id++ < fDetSwitchVector.size()-1) svList += ", ";
     }
-  }
 
   return svList;
 }
@@ -495,10 +461,10 @@ G4String AliModulesComposition::GetDetNamesList() const
 // ---
 
   G4String svList = "";
+  DetSwitchConstIterator it;
   
-  G4int nofDets = fDetSwitchVector.entries(); 
-  for (G4int id=0; id<nofDets; id++) { 
-    svList += fDetSwitchVector[id]->GetDetName();
+  for (it = fDetSwitchVector.begin(); it != fDetSwitchVector.end(); it++) {
+    svList += (*it)->GetDetName();
     svList += " ";
   }
 
@@ -512,11 +478,12 @@ G4String AliModulesComposition::GetDetNamesListWithCommas() const
 // ---
 
   G4String svList = "";
-  
-  G4int nofDets = fDetSwitchVector.entries(); 
-  for (G4int id=0; id<nofDets; id++) { 
-    svList += fDetSwitchVector[id]->GetDetName();
-    if (id < nofDets-1) svList += ", ";
+  G4int id =0;
+  DetSwitchConstIterator it;
+
+  for (it = fDetSwitchVector.begin(); it != fDetSwitchVector.end(); it++) {
+    svList += (*it)->GetDetName();
+    if (id++ < fDetSwitchVector.size()-1) svList += ", ";
   }
 
   return svList;
index ad5455ac6c17049eb5bc04999f1f9c17fd853122..c3ac549322abe584e9d4dcf3d144ff83a3f180e8 100644 (file)
@@ -1,6 +1,10 @@
 // $Id$
 // Category: geometry
 //
+// Author: I. Hrivnacova
+//
+// Class AliModulesComposition
+// ---------------------------
 // Detector construction base class for building geometry
 // composed from independent modules with availability of interactive modules
 // setup.
 #ifndef ALI_MODULES_COMPOSITION_H
 #define ALI_MODULES_COMPOSITION_H
 
+#include "AliModulesCompositionMessenger.h"
 #include "AliModuleType.h"
 
 #include <G4VUserDetectorConstruction.hh>
 #include <globals.hh>
-
-#include <g4rw/tpordvec.h>
+#include <g4std/vector>
 
 class AliSingleModuleConstruction;
 class AliDetSwitch;
-class AliModulesCompositionMessenger;
 class AliMoreModulesConstruction;
 class AliMagneticField;
 
@@ -25,9 +28,12 @@ class G4VPhysicalVolume;
 
 class AliModulesComposition : public G4VUserDetectorConstruction
 {
-  typedef G4RWTPtrOrderedVector<AliDetSwitch>  AliDetSwitchRWVector;
-  typedef G4RWTPtrOrderedVector<AliSingleModuleConstruction>
-                                AliSingleModuleConstructionRWVector; 
+  typedef G4std::vector<AliDetSwitch*>    DetSwitchVector;
+  typedef DetSwitchVector::iterator       DetSwitchIterator;
+  typedef DetSwitchVector::const_iterator DetSwitchConstIterator;
+
+  typedef G4std::vector<AliSingleModuleConstruction*> SingleModuleVector;
+  typedef SingleModuleVector::iterator                SingleModuleIterator;    
 
   public:
     AliModulesComposition();
@@ -37,11 +43,11 @@ class AliModulesComposition : public G4VUserDetectorConstruction
 
     // methods
     virtual G4VPhysicalVolume* Construct() = 0;
-    void SwitchDetOn(G4String moduleNameVer);
-    void SwitchDetOn(G4String moduleName, G4int version);
-    void SwitchDetOnDefault(G4String moduleName);
-    void SwitchDetOnPPR(G4String moduleName);
-    void SwitchDetOff(G4String moduleName);
+    void SwitchDetOn(const G4String& moduleNameVer);
+    void SwitchDetOn(const G4String& moduleName, G4int version);
+    void SwitchDetOnDefault(const G4String& moduleName);
+    void SwitchDetOnPPR(const G4String& moduleName);
+    void SwitchDetOff(const G4String& moduleName);
     void PrintSwitchedDets() const;
     void PrintAvailableDets() const;
     void PrintMaterials() const;
@@ -68,17 +74,17 @@ class AliModulesComposition : public G4VUserDetectorConstruction
 
     // methods  
     void AddDetSwitch(AliDetSwitch* detSwitch);
-    void AddSingleModuleConstruction(G4String moduleName, G4int version,
+    void AddSingleModuleConstruction(const G4String& name, G4int version,
                                      AliModuleType moduleType = kDetector);
-    void AddMoreModuleConstruction(G4String moduleName, G4int version,
+    void AddMoreModuleConstruction(const G4String& name, G4int version,
                                      AliModuleType moduleType = kDetector);
     void ConstructModules();
 
     // get methods
-    AliDetSwitch* GetDetSwitch(const G4String& detName);
+    AliDetSwitch* GetDetSwitch(const G4String& moduleName);
 
     // data members
-    AliDetSwitchRWVector  fDetSwitchVector; //vector of AliDetSwitch
+    DetSwitchVector  fDetSwitchVector; //vector of AliDetSwitch
     
   private:    
     // methods
@@ -86,14 +92,13 @@ class AliModulesComposition : public G4VUserDetectorConstruction
     void SetWriteGeometryToModules(G4bool writeGeometry);
 
     // data members
-    AliSingleModuleConstructionRWVector fModuleConstructionVector; //..
-                                         //vector of 
-                                         //AliSingleModuleConstruction 
-    AliMoreModulesConstruction*         fMoreModulesConstruction;  //..
-                                          //AliMoreModulesConstruction
-
-    AliMagneticField*                fMagneticField;  //magnetic field
-    AliModulesCompositionMessenger*  fMessenger;      //messenger
+    SingleModuleVector           fModuleConstructionVector; //vector of 
+                                         //single module constructions 
+    AliMoreModulesConstruction*  fMoreModulesConstruction;  //..
+                                          //dependent modules construction
+
+    AliMagneticField*               fMagneticField;  //magnetic field
+    AliModulesCompositionMessenger  fMessenger;      //messenger
     G4bool  fReadGeometry;        //option applied to all modules
     G4bool  fWriteGeometry;       //option applied to all modules     
 };
index aef5d3637dbedb7ffda087d42b184926591b9464..fec0debc938ceec09fb626aeb559ca5129010f60 100644 (file)
@@ -1,6 +1,10 @@
 // $Id$
 // Category: event
 //
+// Author: I. Hrivnacova
+//
+// Class AliParticleGun
+// --------------------
 // See the class description in the header file.
 
 #include "AliParticleGun.h"
 #include <G4Event.hh>
 
 //_____________________________________________________________________________
-AliParticleGun::AliParticleGun() {
+AliParticleGun::AliParticleGun() 
+  :fMessenger(this) {
 //
-  fMessenger = new AliParticleGunMessenger(this);
+  //fMessenger = new AliParticleGunMessenger(this);
 }
 
 //_____________________________________________________________________________
 AliParticleGun::AliParticleGun(const AliParticleGun& right)
-  : G4VPrimaryGenerator(right)
+  : G4VPrimaryGenerator(right),
+    fMessenger(this)
 {
-  // allocation
-  fMessenger = new AliParticleGunMessenger(this);
-
   // copy stuff
   *this = right;
 }
@@ -33,8 +36,8 @@ AliParticleGun::AliParticleGun(const AliParticleGun& right)
 //_____________________________________________________________________________
 AliParticleGun::~AliParticleGun() {
 //
-  fGunParticlesVector.clearAndDestroy();
-  delete fMessenger;
+  // delete gun particles
+  Reset();
 }
 
 // operators
@@ -48,13 +51,14 @@ AliParticleGun& AliParticleGun::operator=(const AliParticleGun& right)
   // base class assignment
   this->G4VPrimaryGenerator::operator=(right);
 
-  // particles vector
-  fGunParticlesVector.clearAndDestroy();
-  for (G4int i=0; i<right.fGunParticlesVector.entries(); i++) {
-    AliGunParticle* rhsParticle = right.fGunParticlesVector[i];
-    AliGunParticle* newParticle = new AliGunParticle(*rhsParticle);
-    fGunParticlesVector.insert(newParticle);
-  }
+  // delete gun particles
+  Reset();
+
+  // copy  gun particles
+  GunParticleConstIterator it;
+  for (it = (right.fGunParticleVector).begin();
+       it != (right.fGunParticleVector).end(); it++)
+    fGunParticleVector.push_back(new AliGunParticle(**it));
 
   return *this;  
 }
@@ -67,7 +71,7 @@ void AliParticleGun::AddParticle(AliGunParticle* particle)
 // Adds particle.
 // ---
 
-  fGunParticlesVector.insert(particle); 
+  fGunParticleVector.push_back(particle); 
 }
 
 //_____________________________________________________________________________
@@ -76,9 +80,12 @@ void AliParticleGun::RemoveParticle(G4int iParticle)
 // Removes particle.
 // ---
 
-  AliGunParticle* particle = fGunParticlesVector[iParticle];
-  fGunParticlesVector.remove(particle); 
-  delete particle;  
+  GunParticleIterator it = fGunParticleVector.begin();
+  it += iParticle;
+  //advance(it,iParticle);
+   
+  delete *it;
+  fGunParticleVector.erase(it); 
 }
 
 //_____________________________________________________________________________
@@ -91,10 +98,10 @@ void AliParticleGun::GeneratePrimaryVertex(G4Event* event)
   G4ThreeVector previousPosition = G4ThreeVector(); 
   G4double previousTime = 0.; 
 
-  G4int nofGunParticles = fGunParticlesVector.entries();
-  for( G4int i=0; i<nofGunParticles; i++ )
-  {    
-    AliGunParticle* particle = fGunParticlesVector[i];
+  GunParticleIterator it;
+  for (it = fGunParticleVector.begin(); it != fGunParticleVector.end(); it++) {    
+
+    AliGunParticle* particle = *it;
 
     G4ParticleDefinition* particleDefinition
       = particle->GetParticleDefinition();
@@ -106,7 +113,8 @@ void AliParticleGun::GeneratePrimaryVertex(G4Event* event)
     G4ThreeVector position = particle->GetPosition(); 
     G4double time = particle->GetTime(); 
     G4PrimaryVertex* vertex;
-    if ( i==0 || position != previousPosition || time != previousTime ) {   
+    if (it == fGunParticleVector.begin() || 
+        position != previousPosition || time != previousTime ) {   
       // create a new vertex 
       // in case position and time of gun particle are different from 
       // previous values
@@ -140,14 +148,15 @@ void AliParticleGun::GeneratePrimaryVertex(G4Event* event)
     vertex->SetPrimary(primaryParticle);
   }
   
-  // delete gun particles
-  fGunParticlesVector.clearAndDestroy();
-
   // add verbose
   G4cout << "AliParticleGun::GeneratePrimaryVertex:" << G4endl;
   G4cout << "   " 
-         << event->GetNumberOfPrimaryVertex() << " of primary vertices,"
-         << "   " << nofGunParticles << " of primary particles " << G4endl;  
+         << event->GetNumberOfPrimaryVertex()  << " of primary vertices,"
+         << "   " << fGunParticleVector.size() << " of primary particles " 
+        << G4endl;  
+
+  // delete gun particles
+  Reset();
 }
 
 //_____________________________________________________________________________
@@ -156,7 +165,11 @@ void AliParticleGun::Reset()
 // Resets the particle gun.
 // ---
 
-  fGunParticlesVector.clearAndDestroy(); 
+  GunParticleIterator it;
+  for (it = fGunParticleVector.begin(); it != fGunParticleVector.end(); it++)
+    delete *it;
+
+  fGunParticleVector.clear(); 
 }
 
 //_____________________________________________________________________________
@@ -165,19 +178,19 @@ void AliParticleGun::List()
 // Lists the particle gun.
 // ---
 
-  G4int nofGunParticles = fGunParticlesVector.entries();
-
   G4cout << "Particle Gun: " << G4endl;
 
-  if (nofGunParticles==0)
-  { G4cout << "   No particles are defined." << G4endl; }
-  else
-  {
-    for (G4int i=0; i<nofGunParticles; i++)
-    {
-      G4cout << i << " th particle properties: " << G4endl;
+  if (fGunParticleVector.size() == 0) 
+    G4cout << "   No particles are defined." << G4endl; 
+  else {
+    G4int i = 0;
+    GunParticleIterator it;
+    for (it = fGunParticleVector.begin(); 
+         it != fGunParticleVector.end(); it++) {    
+        
+      G4cout << i++ << " th particle properties: " << G4endl;
       G4cout << "============================" << G4endl;
-      fGunParticlesVector[i]->Print();
+      (*it)->Print();
     }
   }
 }
index fd341b602da93c779f52f46a6e08500fa744509e..c9153b25e42c1dd182a45dfd36ad4f181b85b689 100644 (file)
@@ -1,6 +1,10 @@
 // $Id$
 // Category: event
 //
+// Author: I. Hrivnacova
+//
+// Class AliParticleGun
+// --------------------
 // Particle gun that can be interactively composed by a user.
 
 #ifndef ALI_PARTICLE_GUN_H
 
 #include <G4VPrimaryGenerator.hh>
 #include <globals.hh>
+#include <g4std/vector>
 
-#include <g4rw/tpordvec.h>
+#include "AliParticleGunMessenger.h"
 
 class AliGunParticle;
-class AliParticleGunMessenger;
 
 class G4Event;
 
 class AliParticleGun : public G4VPrimaryGenerator
 {
-  typedef G4RWTPtrOrderedVector<AliGunParticle>  AliGunParticleVector;
+  typedef G4std::vector<AliGunParticle*>    GunParticleVector;
+  typedef GunParticleVector::iterator       GunParticleIterator;
+  typedef GunParticleVector::const_iterator GunParticleConstIterator;
 
   public:
      AliParticleGun();
@@ -40,14 +46,14 @@ class AliParticleGun : public G4VPrimaryGenerator
   
   private:
      // data members
-     AliGunParticleVector      fGunParticlesVector; //vector of AliGunParticle
-     AliParticleGunMessenger*  fMessenger;          //messenger
+     GunParticleVector        fGunParticleVector; //vector of AliGunParticle
+     AliParticleGunMessenger  fMessenger;         //messenger
 };
 
 // inline methods
 
 inline G4int AliParticleGun::GetNofGunParticles() const
-{ return fGunParticlesVector.entries(); }
+{ return fGunParticleVector.size(); }
 
 #endif //ALI_PARTICLE_GUN_H