Brian Wilt's Daily Log -- Archive, Week Ending Friday, 6/30
Friday, July 7, 2006
Made the adjustments to
PSimHit , added the new fields and methods to access and set them. Altered the
GeometryGrabber class such that it gets the hits, and adds the new field.
The new program segfaults (and doesn't even give a trace), so I'm going to be removing strategic parts to see if I can get it to run and try to trace the problem. So hard to do when the program needs to build the entire geometry each time I run a test, but we'll deal.
The program would
SegFault and not even give a trace when I tried to alter
PSimHit -- even the slightest bit, like adding a field, etc. It wouldn't tolerate anything. So, we were forced to move on to plan B, namely, that I will generate a wrapper class with my global geometry data that I need with a pointer to the original hit. While that's not as robust as I had hoped, at this point, I think it would at least be a good start.
I have my stuff coded now, I'm trying to implement it.
Figured out how to wade through the
SegFaults , now just dealing with it saying I haven't registered my data for the put -- can't see why not.
Global Entry: (1.88527,6.79067,5.42523) , Global Exit: (1.89151,6.81848,5.40383) .
%MSG-w GeometryGrabber : GeometryGrabber:gg 07-Jul-2006 17:48:59 XYZ 1/1
Hit Number 11
%MSG-w GeometryGrabber : GeometryGrabber:gg 07-Jul-2006 17:48:59 XYZ 1/1
Adding global coordinates for hit 11.
%MSG-w GeometryGrabber : GeometryGrabber:gg 07-Jul-2006 17:48:59 XYZ 1/1
Global Entry: (2.54308,10.0767,2.91429) , Global Exit: (2.54803,10.105,2.89272) .
%MSG-w GeometryGrabber : GeometryGrabber:gg 07-Jul-2006 17:48:59 XYZ 1/1
Putting detector data in the event
TimeEvent> 1 1 19.5525
%MSG-w ScheduleExecutionFailure: BetweenModules 07-Jul-2006 17:48:59 XYZ
BetweenEvents
an exception occurred and event is being skipped:
---- ScheduleExecutionFailure BEGIN
ProcessingStopped
---- InsertFailure BEGIN
Not Registered put: Problem found while adding product. No product is registered for (PSimHitGlobals,gg,PixelBarrelGlobalHits,PROD)
cms::Exception going through module GeometryGrabber/gg run: 1 event: 1
---- InsertFailure END
Exception going through path p1
---- ScheduleExecutionFailure END
Hopefully, I can get this problem figured out before I leave for the weekend ... that would be
really sweet.
Phil said that every time you
scramv1 b, you should also
SealPluginRefresh and
eval `scramv1 runtime -sh`. Hmm ...
[bwilt@pc4mit] /home/bwilt/CMSSW_0_7_2/src >SealPluginRefresh
Note: Loading libSimDataFormatsGeometryGrabberDataCapabilities.so
Thanks Phil
Finishing the Dictionaries
Thursday, July 6, 2006
Yesterday, I conclused that the problem was that I didn't have the dictionaries for all the
Geometry classes I was trying to write to the ROOT file. cmsRun didn't understand how to write the stuff to the ROOT file, and it would quit out. I've began generating the libraries, and I think I'm ready to try again.
The status:
Geometry
/CommonDetAlgo
(lots)
GlobalError.h
LocalError.h - Just imports the /Surface/LocalError.h
MeasurementError.h
MeasurementPoint.h
MeasurementVector.h
/CommonDetUnit
GeomDet.h - can't get, virtual
GeomDetType.h - can't get, virtual
GeomDetUnit.h - can't get, virtual
GlobalTrackingGeometry.h - got it (inherits from TrackingGeometry)
TrackingGeometry.h - can't get, virtual
typedef std::vector<GeomDetType*> DetTypeContainer;
typedef std::vector<GeomDet*> DetContainer;
typedef std::vector<GeomDetUnit*> DetUnitContainer;
typedef std::vector<DetId> DetIdContainer;
typedef std::map<DetId,GeomDetUnit*> mapIdToDetUnit;
typedef std::map<DetId,GeomDet*> mapIdToDet;
/CommonTopologies
PixelTopology.h - can't get, virtual (TrackerTopology/RectangularPixelTopology.h instead)
StripTopology.h - can't get, virtual (RectangularStripTopology.h and TrapezoidalStripTopology.h instead)
RectangularStripTopology.h - got it, had to add default constructor
TrapezoidalStripTopology.h - got it, had to add default constructor
/Records
GlobalTrackingGeometryRecord.h - unable to get? kind of a strage class
/Surface
(lots)
LocalError.h
/TrackerGeometryBuilder
(lots)
PixelGeomDetType.h - got it, had to add default constructor
PixelGeomDetUnit.h - got it, had to add default constructor
StripGeomDetType.h - got it, had to add default constructor
StripGeomDetUnit.h - got it, had to add default constructor
TrackerGeometry.h
/TrackerNumberingBuilder
GeometricDet.h - don't think I need, how is this different from GeomDet?
/TrackerTopology
* RectangularPixelTopology.h
/Vector
(lots)
LocalPoint.h - got it
LocalVector.h - got it
GlobalPoint.h - got it
GlobalVector.h - got it
GlobalTag.h - got it
Basic2DVector.h - added in SimDataFormats/TrackingHit
Basic3DVector.h - added in SimDataFormats/TrackingHit
Point2DBase.h - added in SimDataFormats/TrackingHit
Point3DBase.h - added in SimDataFormats/TrackingHit
Vector2DBase.h - added in SimDataFormats/TrackingHit
Vector3DBase.h - added in SimDataFormats/TrackingHit
Phi.h - added in SimDataFormats/TrackingHit
Theta.h - added in SimDataFormats/TrackingHit
LocalTag.h - added in SimDataFormats/TrackingHit
The procedure for generating libraries has been to:
- Alter the BuildFile , adding
- Sometimes add default constructors to the source (
src/.cc) and header (interface/.h) files
- Add
src/classes.h and src/classes_def.h files, and define them according to this
I think I'm ready to make a few minor changes to my module, and then see if I can generate the stuff!
Future problems to tackle:
- Loading the proper libraries into ROOT so I can do my analysis
The module runs ... sort of! I think I've made some great progress. Right now, I came upon this issue:
---- ExecutionFailure BEGIN
ProcessingStopped
---- NoRecord BEGIN
No "GlobalTrackingGeometryRecord" record found in the EventSetup.
Please add an ESSource or EDProducer that delivers such a record.
cms::Exception going through module GeometryGrabber/gg run: 1 event: 1
---- NoRecord END
Exception going through path p1
---- ScheduleExecutionFailure END
an exception ocurred during current event processing
---- EventProcessorFailure END
I just need to re-examine how I'm pulling the data -- but I'm optimistic! Time for lunch =)
Eventually managed to avoid that error (not using
GlobalTrackingGeometryRecord -- ended up using
TrackerDigiGeometryRecord instead), but ran into other problems with seg faults that were very difficult (if not impossible) to trace to the problem. After speaking with Phil, decided that the best course of action was to alter the
PSimHit object to hold an additional number of
GlobalVectors and
GlobalPoints with the coordinates of the hit ... seems like it would be relatively easy to do and intuitive. Will save for tomrorow.
Getting a Module to Run
Wednesday, July 5, 2006
Significant progress was made in generating the libraries for the necessary
Geometry package classes so that I can write them to a ROOT file. Different points of contention were:
- Trying to generate libraries for
virtual (abstract) classes -- I'm pretty sure this is impossible, so I will have to find a way that doesn't involve the full polymorphism hierarchy.
- Problems loading the SEAL libraries -- make sure to make the
BuildFile correctly, and if you want to generate libraries, you must include .
Making a Module
Tuesday, July 4, 2006
Today we celebrate our Independence Day ... and hopefully the day that I get my module loaded. I haven't been updating this very much, but I think that's a good thing (implying that I'm too busy trying to figure things out ...). Problems I've been working over:
- Compiling on
cgate
- Doy, cgate is 64 bit (Maarten says I can SSH over to n06 or n07 to compile)
- Shared libraries problems
- Christoph taught me the way of "nm -C" to find symbols. Sweet. So far, it always has implied a problem with the BuildFile (stuff just missing)
- Figuring out a good way to store the detectors ... how do I associate them with events well?
- Changing the shared libraries
scramv1 b looks through to compile my module (I need to add the geometry libraries)
- BuildFile controls that -- although it doesn't like my FTP editing software
- ...
We've made some good progress. Everything is now compiling, so I'm moving forward on writing the module ... score! I'm going to create another branch under the
Event tree storing
DetUnit s ... or that's the plan as of now.
I made significant progress -- I managed to compile my module without problems, and write a
.cfi file so I could begin running it inside
cmsRun. It seems to be taking issues with something having to do with the dictionaries generated when I compile the file. I think if I can resolve that issue, I'll be home free, but let's not give our hopes up. =)
Tracker Geometry
Monday, July 3, 2006
Today, I'm going to try to rebuild the detector geometry from the XML files. We'll see how this goes.
Phil is saying that I should just do a text dump of those files ... I'm not sure if that's a great idea. We'll see.
I've found some documentation on writing a module which will just copy the detector data into my ROOT file at runtime; that's probably the way to go.