6 added + 2 modified, total 8 files
lcdd/include
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
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
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
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
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
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
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
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