Commit in lcdd on MAIN
include/Cartesian3DMagneticFieldMap.hh+44added 1.1
       /FieldMap3DType.hh+22added 1.1
       /field_map_3d.hh+26added 1.1
       /FieldMapType.hh+14-151.4 -> 1.5
src/Cartesian3DMagneticFieldMap.cc+226added 1.1
   /field_map_3dProcess.cc+56added 1.1
   /field_map_3dSubscriber.cc+62added 1.1
   /LCDDLibLoad.cc+98-981.28 -> 1.29
+548-113
6 added + 2 modified, total 8 files
checkpoint work on 3D mag field; 3D field can be read from hard-coded file name into LCDD now; still needs file name attribute on XML element and schema impl

lcdd/include
Cartesian3DMagneticFieldMap.hh added at 1.1
diff -N Cartesian3DMagneticFieldMap.hh
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ Cartesian3DMagneticFieldMap.hh	3 Oct 2012 00:48:25 -0000	1.1
@@ -0,0 +1,44 @@
+// $Header: /cvs/lcd/lcdd/include/Cartesian3DMagneticFieldMap.hh,v 1.1 2012/10/03 00:48:25 jeremy Exp $
+
+#include "G4MagneticField.hh"
+
+#include <vector>
+using std::vector;
+
+//
+// Original PurgMagTabulatedField3D code developed by:
+//  S.Larsson and J. Generowicz.
+//
+
+class Cartesian3DMagneticFieldMap: public G4MagneticField {
+private:
+
+	// Storage space for the table
+	vector<vector<vector<double> > > _xField;
+	vector<vector<vector<double> > > _yField;
+	vector<vector<vector<double> > > _zField;
+
+	// The dimensions of the table
+	int _nx, _ny, _nz;
+
+	// The physical limits of the defined region
+	double _minx, _maxx, _miny, _maxy, _minz, _maxz;
+
+	// The physical extent of the defined region
+	double _dx, _dy, _dz;
+
+	// Offsets if field map is not in global coordinates
+	double _xOffset;
+	double _yOffset;
+	double _zOffset;
+
+	bool _invertX, _invertY, _invertZ;
+
+public:
+
+	Cartesian3DMagneticFieldMap(const char* filename, double xOffset,
+			double yOffset, double zOffset);
+
+	void GetFieldValue(const double Point[4], double* Bfield) const;
+};
+

lcdd/include
FieldMap3DType.hh added at 1.1
diff -N FieldMap3DType.hh
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ FieldMap3DType.hh	3 Oct 2012 00:48:25 -0000	1.1
@@ -0,0 +1,22 @@
+// $Header: /cvs/lcd/lcdd/include/FieldMap3DType.hh,v 1.1 2012/10/03 00:48:25 jeremy Exp $
+#ifndef LCDD_FIELDMAP3DTYPE_HH
+#define LCDD_FIELDMAP3DTYPE_HH 1
+
+#include "FieldMapType.hh"
+
+/**
+ * @class
+ * @brief
+*/
+class FieldMap3DType : public FieldMapType {
+
+public:
+
+    FieldMap3DType() {
+    }
+
+    virtual ~FieldMap3DType() {
+    }
+};
+
+#endif

lcdd/include
field_map_3d.hh added at 1.1
diff -N field_map_3d.hh
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ field_map_3d.hh	3 Oct 2012 00:48:25 -0000	1.1
@@ -0,0 +1,26 @@
+// $Header: /cvs/lcd/lcdd/include/field_map_3d.hh,v 1.1 2012/10/03 00:48:25 jeremy Exp $
+#ifndef LCDD_FIELD_MAP_3D_HH
+#define LCDD_FIELD_MAP_3D_HH 1
+
+#include "FieldMap3DType.hh"
+
+/**
+ * @class 
+ * @brief 
+ */
+class field_map_3d : public SAXObject, public FieldMap3DType {
+
+public:
+
+  field_map_3d() {
+  }
+
+  virtual ~field_map_3d() {
+  }
+
+  virtual SAXObject::Type type() {
+    return SAXObject::element;
+  }
+};
+
+#endif

lcdd/include
FieldMapType.hh 1.4 -> 1.5
diff -u -r1.4 -r1.5
--- FieldMapType.hh	18 Dec 2006 22:49:01 -0000	1.4
+++ FieldMapType.hh	3 Oct 2012 00:48:25 -0000	1.5
@@ -1,4 +1,4 @@
-// $Header: /cvs/lcd/lcdd/include/FieldMapType.hh,v 1.4 2006/12/18 22:49:01 jeremy Exp $
+// $Header: /cvs/lcd/lcdd/include/FieldMapType.hh,v 1.5 2012/10/03 00:48:25 jeremy Exp $
 #ifndef LCDD_FIELDMAPTYPE_HH
 #define LCDD_FIELDMAPTYPE_HH 1
 
@@ -16,24 +16,23 @@
 class FieldMapType : public FieldType
 {
 public:
-  FieldMapType()
-  {}
 
-  virtual ~FieldMapType()
-  {}
+	FieldMapType() {
+	}
+
+    virtual ~FieldMapType() {
+    }
 
 public:
 
-  const ContentSequence* get_content() const
-  {
-    return &m_sequence;
-  }
-
-  void add_content(const std::string& tag, SAXObject* so)
-  {
-    ContentGroup::ContentItem ci = {tag, so};
-    m_sequence.add_content(ci);
-  }
+    const ContentSequence* get_content() const {
+        return &m_sequence;
+    }
+
+    void add_content(const std::string& tag, SAXObject* so) {
+        ContentGroup::ContentItem ci = {tag, so};
+        m_sequence.add_content(ci);
+    }
 
 public:
 

lcdd/src
Cartesian3DMagneticFieldMap.cc added at 1.1
diff -N Cartesian3DMagneticFieldMap.cc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ Cartesian3DMagneticFieldMap.cc	3 Oct 2012 00:48:25 -0000	1.1
@@ -0,0 +1,226 @@
+//
+// Original PurgMagTabulatedField3D code developed by:
+//  S.Larsson and J. Generowicz.
+//
+
+#include "Cartesian3DMagneticFieldMap.hh"
+#include <fstream>
+#include <iostream>
+#include <cmath>
+using namespace std;
+
+Cartesian3DMagneticFieldMap::Cartesian3DMagneticFieldMap( const char* filename, double xOffset, double yOffset, double zOffset ) 
+	:_xOffset(xOffset),_yOffset(yOffset),_zOffset(zOffset),_invertX(false),_invertY(false),_invertZ(false)
+{    
+	cout << "\n-----------------------------------------------------------"
+		<< "\n      Magnetic field"
+		<< "\n-----------------------------------------------------------";
+
+	cout << "\n ---> " "Reading the field grid from " << filename << " ... " << endl; 
+	ifstream file( filename ); // Open the file for reading.
+
+	// Ignore first blank line
+	char buffer[256];
+	file.getline(buffer,256);
+
+	// Read table dimensions 
+	file >> _nx >> _ny >> _nz; // Note dodgy order
+
+	cout << "  [ Number of values x,y,z: " 
+		<< _nx << " " << _ny << " " << _nz << " ] "
+		<< endl;
+
+	// Set up storage space for table
+	_xField.resize( _nx );
+	_yField.resize( _nx );
+	_zField.resize( _nx );
+	int ix, iy, iz;
+	for (ix=0; ix<_nx; ix++) {
+		_xField[ix].resize(_ny);
+		_yField[ix].resize(_ny);
+		_zField[ix].resize(_ny);
+		for (iy=0; iy<_ny; iy++) {
+			_xField[ix][iy].resize(_nz);
+			_yField[ix][iy].resize(_nz);
+			_zField[ix][iy].resize(_nz);
+		}
+	}
+
+	// Ignore other header information    
+	// The first line whose second character is '0' is considered to
+	// be the last line of the header.
+	do {
+		file.getline(buffer,256);
+	} while ( buffer[1]!='0');
+
+	// Read in the data
+	double xval,yval,zval,bx,by,bz;
+	for (ix=0; ix<_nx; ix++) {
+		for (iy=0; iy<_ny; iy++) {
+			for (iz=0; iz<_nz; iz++) {
+				file >> xval >> yval >> zval >> bx >> by >> bz;
+				if ( ix==0 && iy==0 && iz==0 ) {
+					_minx = xval;
+					_miny = yval;
+					_minz = zval;
+				}
+				_xField[ix][iy][iz] = bx;
+				_yField[ix][iy][iz] = by;
+				_zField[ix][iy][iz] = bz;
+			}
+		}
+	}
+	file.close();
+
+	_maxx = xval;
+	_maxy = yval;
+	_maxz = zval;
+
+	cout << "\n ---> ... done reading " << endl;
+
+	// cout << " Read values of field from file " << filename << endl; 
+	cout << " ---> assumed the order:  x, y, z, Bx, By, Bz "
+		<< "\n ---> Min values x,y,z: " 
+		<< _minx << " " << _miny << " " << _minz << " cm "
+		<< "\n ---> Max values x,y,z: " 
+		<< _maxx << " " << _maxy << " " << _maxz << " cm "
+		<< "\n ---> The field will be offset by " << _xOffset << " " << _yOffset << " " << _zOffset << " cm " << endl;
+
+	// Should really check that the limits are not the wrong way around.
+	if (_maxx < _minx) {swap(_maxx,_minx); _invertX = true;} 
+	if (_maxy < _miny) {swap(_maxy,_miny); _invertY = true;} 
+	if (_maxz < _minz) {swap(_maxz,_minz); _invertZ = true;} 
+	cout << "\nAfter reordering if necessary"  
+		<< "\n ---> Min values x,y,z: " 
+		<< _minx << " " << _miny << " " << _minz << " cm "
+		<< " \n ---> Max values x,y,z: " 
+		<< _maxx << " " << _maxy << " " << _maxz << " cm ";
+
+	_dx = _maxx - _minx;
+	_dy = _maxy - _miny;
+	_dz = _maxz - _minz;
+	cout << "\n ---> Range of values x,y,z: " 
+		<< _dx << " " << _dy << " " << _dz << " cm in z "
+		<< "\n-----------------------------------------------------------" << endl;
+}
+
+void Cartesian3DMagneticFieldMap::GetFieldValue(const double point[4],
+	double *Bfield ) const
+{
+
+	double x = point[0];
+	double y = point[1];
+	double z = point[2] + _zOffset;
+
+	// Check that the point is within the defined region 
+	if ( x>=_minx && x<=_maxx &&
+		y>=_miny && y<=_maxy && 
+		z>=_minz && z<=_maxz ) {
+
+			// Position of given point within region, normalized to the range
+			// [0,1]
+			double xfraction = (x - _minx) / _dx;
+			double yfraction = (y - _miny) / _dy; 
+			double zfraction = (z - _minz) / _dz;
+
+			if (_invertX) { xfraction = 1 - xfraction;}
+			if (_invertY) { yfraction = 1 - yfraction;}
+			if (_invertZ) { zfraction = 1 - zfraction;}
+
+			// Need addresses of these to pass to modf below.
+			// modf uses its second argument as an OUTPUT argument.
+			double xdindex, ydindex, zdindex;
+
+			// Position of the point within the cuboid defined by the
+			// nearest surrounding tabulated points
+			double xlocal = ( std::modf(xfraction*(_nx-1), &xdindex));
+			double ylocal = ( std::modf(yfraction*(_ny-1), &ydindex));
+			double zlocal = ( std::modf(zfraction*(_nz-1), &zdindex));
+
+			// The indices of the nearest tabulated point whose coordinates
+			// are all less than those of the given point
+			int xindex = static_cast<int>(xdindex);
+			int yindex = static_cast<int>(ydindex);
+			int zindex = static_cast<int>(zdindex);
+
+
+#ifdef DEBUG_INTERPOLATING_FIELD
+			cout << "Local x,y,z: " << xlocal << " " << ylocal << " " << zlocal << endl;
+			cout << "Index x,y,z: " << xindex << " " << yindex << " " << zindex << endl;
+			double valx0z0, mulx0z0, valx1z0, mulx1z0;
+			double valx0z1, mulx0z1, valx1z1, mulx1z1;
+			valx0z0= table[xindex  ][0][zindex];  mulx0z0=  (1-xlocal) * (1-zlocal);
+			valx1z0= table[xindex+1][0][zindex];  mulx1z0=   xlocal    * (1-zlocal);
+			valx0z1= table[xindex  ][0][zindex+1]; mulx0z1= (1-xlocal) * zlocal;
+			valx1z1= table[xindex+1][0][zindex+1]; mulx1z1=  xlocal    * zlocal;
+#endif
+
+			// Full 3-dimensional version
+			Bfield[0] =
+				_xField[xindex  ][yindex  ][zindex  ] * (1-xlocal) * (1-ylocal) * (1-zlocal) +
+				_xField[xindex  ][yindex  ][zindex+1] * (1-xlocal) * (1-ylocal) *    zlocal  +
+				_xField[xindex  ][yindex+1][zindex  ] * (1-xlocal) *    ylocal  * (1-zlocal) +
+				_xField[xindex  ][yindex+1][zindex+1] * (1-xlocal) *    ylocal  *    zlocal  +
+				_xField[xindex+1][yindex  ][zindex  ] *    xlocal  * (1-ylocal) * (1-zlocal) +
+				_xField[xindex+1][yindex  ][zindex+1] *    xlocal  * (1-ylocal) *    zlocal  +
+				_xField[xindex+1][yindex+1][zindex  ] *    xlocal  *    ylocal  * (1-zlocal) +
+				_xField[xindex+1][yindex+1][zindex+1] *    xlocal  *    ylocal  *    zlocal ;
+			Bfield[1] =
+				_yField[xindex  ][yindex  ][zindex  ] * (1-xlocal) * (1-ylocal) * (1-zlocal) +
+				_yField[xindex  ][yindex  ][zindex+1] * (1-xlocal) * (1-ylocal) *    zlocal  +
+				_yField[xindex  ][yindex+1][zindex  ] * (1-xlocal) *    ylocal  * (1-zlocal) +
+				_yField[xindex  ][yindex+1][zindex+1] * (1-xlocal) *    ylocal  *    zlocal  +
+				_yField[xindex+1][yindex  ][zindex  ] *    xlocal  * (1-ylocal) * (1-zlocal) +
+				_yField[xindex+1][yindex  ][zindex+1] *    xlocal  * (1-ylocal) *    zlocal  +
+				_yField[xindex+1][yindex+1][zindex  ] *    xlocal  *    ylocal  * (1-zlocal) +
+				_yField[xindex+1][yindex+1][zindex+1] *    xlocal  *    ylocal  *    zlocal ;
+			Bfield[2] =
+				_zField[xindex  ][yindex  ][zindex  ] * (1-xlocal) * (1-ylocal) * (1-zlocal) +
+				_zField[xindex  ][yindex  ][zindex+1] * (1-xlocal) * (1-ylocal) *    zlocal  +
+				_zField[xindex  ][yindex+1][zindex  ] * (1-xlocal) *    ylocal  * (1-zlocal) +
+				_zField[xindex  ][yindex+1][zindex+1] * (1-xlocal) *    ylocal  *    zlocal  +
+				_zField[xindex+1][yindex  ][zindex  ] *    xlocal  * (1-ylocal) * (1-zlocal) +
+				_zField[xindex+1][yindex  ][zindex+1] *    xlocal  * (1-ylocal) *    zlocal  +
+				_zField[xindex+1][yindex+1][zindex  ] *    xlocal  *    ylocal  * (1-zlocal) +
+				_zField[xindex+1][yindex+1][zindex+1] *    xlocal  *    ylocal  *    zlocal ;
+
+	} else {
+		Bfield[0] = 0.0;
+		Bfield[1] = 0.0;
+		Bfield[2] = 0.0;
+	}
+}
+
+int main()
+{
+	Cartesian3DMagneticFieldMap field("C:/work/magfield/magfield3DMap/ThreeDFieldMap.dat", 0.,0.,0.);
+	double pos[4];
+	pos[0]=0.;
+	pos[1]=0.;
+	pos[2]=0.;
+	pos[3]=0.;
+	double B[3];
+
+	for(double x=-0.05; x<=0.05; x+=.005)
+	{
+		for(double y=-0.05; y<=0.17; y+=.005)
+		{
+			for(double z=-0.26; z<=0.1; z+=.05)
+			{
+				pos[0]=x;
+				pos[1] =y;
+				pos[2] = z;
+				field.GetFieldValue(pos, B);
+				cout << pos[0] << " " << pos[1] << " " << pos[2] << " " << B[0] << " " << B[1] << " " << B[2] << endl;
+			}
+		}
+	}
+
+	pos[0]=-0.01;
+	pos[1]=0.038;
+	pos[2]=-0.02;
+	field.GetFieldValue(pos, B);
+	cout << pos[0] << " " << pos[1] << " " << pos[2] << " " << B[0] << " " << B[1] << " " << B[2] << endl;
+	return 0;
+}
+

lcdd/src
field_map_3dProcess.cc added at 1.1
diff -N field_map_3dProcess.cc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ field_map_3dProcess.cc	3 Oct 2012 00:48:25 -0000	1.1
@@ -0,0 +1,56 @@
+// $Header: /cvs/lcd/lcdd/src/field_map_3dProcess.cc,v 1.1 2012/10/03 00:48:25 jeremy Exp $
+
+#include "FieldMapTypeProcess.hh"
+#include <iostream>
+#include "globals.hh"
+#include "field_map_3d.hh"
+
+/**
+ * @class
+ * @brief
+ */
+class field_map_3dProcess : public FieldMapTypeProcess {
+
+public:
+
+	field_map_3dProcess(const ProcessingContext* context = 0)
+    : FieldMapTypeProcess(context) {
+	}
+
+    virtual ~field_map_3dProcess() {
+    }
+
+    virtual void StartElement(const std::string& name, const ASCIIAttributeList& attrs) {
+
+    	std::cout << "field_map_3d::StartElement - " << name << std::endl;
+
+        SAXObject** obj = Context()->GetTopObject();
+
+        field_map_3d* field = new field_map_3d;
+
+        // Top-level caller needs to setup the SAXObject references.
+        m_obj = field;
+        *obj = field;
+
+        // Call next process UP in inheritance chain, after the SAXObject is set.
+        FieldMapTypeProcess::StartElement(name, attrs);
+    }
+
+    virtual void EndElement(const std::string&) {
+    }
+
+    virtual void Characters(const std::string&) {
+    }
+
+    virtual void StackPopNotify(const std::string& name) {
+        std::cout << "field_map_3d::StackPopNotify" << std::endl;
+        FieldMapTypeProcess::StackPopNotify(name);
+    }
+
+    virtual const std::string& State() const {
+        static std::string tag = "field_map_3d";
+        return tag;
+    }
+};
+
+DECLARE_PROCESS_FACTORY(field_map_3dProcess)

lcdd/src
field_map_3dSubscriber.cc added at 1.1
diff -N field_map_3dSubscriber.cc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ field_map_3dSubscriber.cc	3 Oct 2012 00:48:25 -0000	1.1
@@ -0,0 +1,62 @@
+// $Header: /cvs/lcd/lcdd/src/field_map_3dSubscriber.cc,v 1.1 2012/10/03 00:48:25 jeremy Exp $
+
+// gdml
+#include "Saxana/SAXSubscriber.h"
+#include "Saxana/SAXComponentFactory.h"
+
+// geant4
+#include "G4Processor/GDMLProcessor.h"
+
+// lcdd
+#include "LCDDProcessor.hh"
+#include "field_map_3d.hh"
+#include "Cartesian3DMagneticFieldMap.hh"
+
+/*
+ * @class
+ * @brief
+ */
+class field_map_3dSubscriber: virtual public SAXSubscriber {
+
+public:
+
+	virtual const SAXComponentObject* Build() const {
+		return this;
+	}
+
+public:
+
+	field_map_3dSubscriber() {
+		Subscribe("field_map_3d");
+	}
+
+	virtual ~field_map_3dSubscriber() {
+	}
+
+	virtual void Activate(const SAXObject* object) {
+
+		std::cout << "field_map_3d::Subscriber" << std::endl;
+
+		const field_map_3d* obj = dynamic_cast<const field_map_3d*>(object);
+
+		if (object != 0) {
+
+			if (obj) {
+
+				if (obj) {
+
+					//GDMLExpressionEvaluator* calc = GDMLProcessor::GetInstance()->GetEvaluator();
+
+					//std::string lunit = obj->get_lunit();
+					//std::string funit = obj->get_funit();
+					std::string name = obj->get_name();
+
+					Cartesian3DMagneticFieldMap* fmap = new Cartesian3DMagneticFieldMap("ThreeDFieldMap.dat", 0, 0, 0);
+					LCDDProcessor::instance()->addMagneticField(name, fmap);
+				}
+			}
+		}
+	}
+};
+
+DECLARE_SUBSCRIBER_FACTORY(field_map_3dSubscriber)

lcdd/src
LCDDLibLoad.cc 1.28 -> 1.29
diff -u -r1.28 -r1.29
--- LCDDLibLoad.cc	23 Jun 2011 21:04:10 -0000	1.28
+++ LCDDLibLoad.cc	3 Oct 2012 00:48:25 -0000	1.29
@@ -4,102 +4,102 @@
 
 extern "C" {
 
-  void LCDDLoadProcesses()
-  {
-    // header
-    LOAD_COMPONENT(headerProcess);
-    LOAD_COMPONENT(detectorProcess);
-    LOAD_COMPONENT(authorProcess);
-    LOAD_COMPONENT(generatorProcess);
-    LOAD_COMPONENT(commentProcess);
-
-    // volume extended
-    LOAD_COMPONENT(volumeExtendedProcess);
-    LOAD_COMPONENT(physvolidProcess);
-
-    // SDs
-    LOAD_COMPONENT(calorimeterProcess);
-    LOAD_COMPONENT(optical_calorimeterProcess);
-    LOAD_COMPONENT(unsegmented_calorimeterProcess);
-    LOAD_COMPONENT(trackerProcess);
-    LOAD_COMPONENT(scorerProcess);
-    LOAD_COMPONENT(sdrefProcess);
-
-    // segmentations
-    LOAD_COMPONENT(grid_xyzProcess);
-    LOAD_COMPONENT(projective_cylinderProcess);
-    LOAD_COMPONENT(projective_zplaneProcess);
-    LOAD_COMPONENT(nonprojective_cylinderProcess);
-    LOAD_COMPONENT(global_grid_xyProcess);
-
-    // Ids
-    LOAD_COMPONENT(idspecProcess);
-    LOAD_COMPONENT(idfieldProcess);
-    LOAD_COMPONENT(idspecrefProcess);
-
-    // field
-    LOAD_COMPONENT(fieldrefProcess);
-    LOAD_COMPONENT(global_fieldProcess);
-    LOAD_COMPONENT(solenoidProcess);
-    LOAD_COMPONENT(rz_field_mapProcess);
-    LOAD_COMPONENT(rzbProcess);
-    LOAD_COMPONENT(dipoleProcess);
-    LOAD_COMPONENT(dipole_coeffProcess);
-    LOAD_COMPONENT(box_dipoleProcess);
- 
-    // region
-    LOAD_COMPONENT(regionProcess);
-    LOAD_COMPONENT(regionrefProcess);
-
-    // display
-    LOAD_COMPONENT(visProcess);
-    LOAD_COMPONENT(visrefProcess);
-    LOAD_COMPONENT(colorProcess);
-
-    // limit
-    LOAD_COMPONENT(limitsetProcess);
-    LOAD_COMPONENT(limitsetrefProcess);
-    LOAD_COMPONENT(limitProcess);
-  }
-
-  void LCDDLoadSubscribers()
-  {
-    // subscribers
-    LOAD_COMPONENT(headerSubscriber);
-
-    // volume extended
-    //LOAD_COMPONENT(volumeExtendedSubscriber);
-
-    // SDs
-    LOAD_COMPONENT(calorimeterSubscriber);
-    LOAD_COMPONENT(optical_calorimeterSubscriber);
-    LOAD_COMPONENT(unsegmented_calorimeterSubscriber);
-    LOAD_COMPONENT(trackerSubscriber);
-    LOAD_COMPONENT(scorerSubscriber);
-
-    // Ids
-    LOAD_COMPONENT(idspecSubscriber);
-
-    // field 
-    LOAD_COMPONENT(solenoidSubscriber);
-    LOAD_COMPONENT(rz_field_mapSubscriber);
-    LOAD_COMPONENT(dipoleSubscriber);
-    LOAD_COMPONENT(box_dipoleSubscriber);
-    LOAD_COMPONENT(global_fieldSubscriber);
-
-    // region
-    LOAD_COMPONENT(regionSubscriber);
-
-    // display
-    LOAD_COMPONENT(visSubscriber);
-
-    // limit
-    LOAD_COMPONENT(limitsetSubscriber);
-  }
-
-  void LCDDLibLoad()
-  {
-    LCDDLoadProcesses();
-    LCDDLoadSubscribers();
-  }
+void LCDDLoadProcesses() {
+
+	// header
+	LOAD_COMPONENT(headerProcess);
+	LOAD_COMPONENT(detectorProcess);
+	LOAD_COMPONENT(authorProcess);
+	LOAD_COMPONENT(generatorProcess);
+	LOAD_COMPONENT(commentProcess);
+
+	// volume extended
+	LOAD_COMPONENT(volumeExtendedProcess);
+	LOAD_COMPONENT(physvolidProcess);
+
+	// SDs
+	LOAD_COMPONENT(calorimeterProcess);
+	LOAD_COMPONENT(optical_calorimeterProcess);
+	LOAD_COMPONENT(unsegmented_calorimeterProcess);
+	LOAD_COMPONENT(trackerProcess);
+	LOAD_COMPONENT(scorerProcess);
+	LOAD_COMPONENT(sdrefProcess);
+
+	// segmentations
+	LOAD_COMPONENT(grid_xyzProcess);
+	LOAD_COMPONENT(projective_cylinderProcess);
+	LOAD_COMPONENT(projective_zplaneProcess);
+	LOAD_COMPONENT(nonprojective_cylinderProcess);
+	LOAD_COMPONENT(global_grid_xyProcess);
+
+	// Ids
+	LOAD_COMPONENT(idspecProcess);
+	LOAD_COMPONENT(idfieldProcess);
+	LOAD_COMPONENT(idspecrefProcess);
+
+	// field
+	LOAD_COMPONENT(fieldrefProcess);
+	LOAD_COMPONENT(global_fieldProcess);
+	LOAD_COMPONENT(solenoidProcess);
+	LOAD_COMPONENT(rz_field_mapProcess);
+	LOAD_COMPONENT(rzbProcess);
+	LOAD_COMPONENT(dipoleProcess);
+	LOAD_COMPONENT(dipole_coeffProcess);
+	LOAD_COMPONENT(box_dipoleProcess);
+	LOAD_COMPONENT(field_map_3dProcess)
+
+	// region
+	LOAD_COMPONENT(regionProcess);
+	LOAD_COMPONENT(regionrefProcess);
+
+	// display
+	LOAD_COMPONENT(visProcess);
+	LOAD_COMPONENT(visrefProcess);
+	LOAD_COMPONENT(colorProcess);
+
+	// limit
+	LOAD_COMPONENT(limitsetProcess);
+	LOAD_COMPONENT(limitsetrefProcess);
+	LOAD_COMPONENT(limitProcess);
+}
+
+void LCDDLoadSubscribers() {
+	// subscribers
+	LOAD_COMPONENT(headerSubscriber);
+
+	// volume extended
+	//LOAD_COMPONENT(volumeExtendedSubscriber);
+
+	// SDs
+	LOAD_COMPONENT(calorimeterSubscriber);
+	LOAD_COMPONENT(optical_calorimeterSubscriber);
+	LOAD_COMPONENT(unsegmented_calorimeterSubscriber);
+	LOAD_COMPONENT(trackerSubscriber);
+	LOAD_COMPONENT(scorerSubscriber);
+
+	// Ids
+	LOAD_COMPONENT(idspecSubscriber);
+
+	// field
+	LOAD_COMPONENT(solenoidSubscriber);
+	LOAD_COMPONENT(rz_field_mapSubscriber);
+	LOAD_COMPONENT(dipoleSubscriber);
+	LOAD_COMPONENT(box_dipoleSubscriber);
+	LOAD_COMPONENT(global_fieldSubscriber);
+	LOAD_COMPONENT(field_map_3dSubscriber);
+
+	// region
+	LOAD_COMPONENT(regionSubscriber);
+
+	// display
+	LOAD_COMPONENT(visSubscriber);
+
+	// limit
+	LOAD_COMPONENT(limitsetSubscriber);
+}
+
+void LCDDLibLoad() {
+	LCDDLoadProcesses();
+	LCDDLoadSubscribers();
+}
 }
CVSspam 0.2.12


Use REPLY-ALL to reply to list

To unsubscribe from the LCD-CVS list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCD-CVS&A=1