1 removed + 11 modified, total 12 files
slicPandora/src
diff -u -r1.6 -r1.7
--- DetectorGeometry.cpp 8 Mar 2010 23:00:53 -0000 1.6
+++ DetectorGeometry.cpp 11 Mar 2010 22:18:43 -0000 1.7
@@ -42,9 +42,9 @@
// Process the calorimeter elements.
TiXmlElement* calorimeters = root->FirstChildElement("calorimeters");
TiXmlElement* calElem = (TiXmlElement*) calorimeters->FirstChild("calorimeter");
- for (calElem;
- calElem;
- calElem = calElem->NextSiblingElement() )
+ for ( ;
+ calElem;
+ calElem = calElem->NextSiblingElement() )
{
// Get the type of calorimeter.
const char* subdetType = calElem->Attribute("type");
@@ -97,7 +97,7 @@
// Process layer elements.
TiXmlElement* layerElem = layers->FirstChildElement();
- for (layerElem;
+ for (;
layerElem;
layerElem = layerElem->NextSiblingElement() )
{
@@ -148,7 +148,7 @@
IDDecoder::IDFields fields;
TiXmlElement* idElem = (TiXmlElement*) calElem->FirstChild("id");
TiXmlElement* fieldElem = (TiXmlElement*) idElem->FirstChild("field");
- for (fieldElem;
+ for (;
fieldElem;
fieldElem = fieldElem->NextSiblingElement())
{
@@ -327,7 +327,7 @@
std::cout << " ID Fields (name, start, length, signed) - " << decoder->getFieldCount() << std::endl;
for (int i=0, j=decoder->getFieldCount(); i<j; i++)
{
- IDDecoder::IDField* field = decoder->getField(i);
+ const IDDecoder::IDField* field = decoder->getField(i);
std::cout << " " << field->getName() << ", " << field->getStart() << ", " << field->getLength() << ", " << field->isSigned() << std::endl;
}
@@ -344,6 +344,10 @@
{
return pandora::HCAL;
}
+ else
+ {
+ std::cout << "Unknown CalorimeterType <" << calType << ">." << std::endl;
+ }
}
inline pandora::InputDetectorRegion DetectorGeometry::getDetectorRegion(const std::string& calType) const
@@ -356,6 +360,10 @@
{
return pandora::ENDCAP;
}
+ else
+ {
+ std::cout << "Unknown CalorimeterType <" << calType << ">." << std::endl;
+ }
}
slicPandora/src
diff -u -r1.1 -r1.2
--- JobConfig.cpp 23 Feb 2010 02:27:26 -0000 1.1
+++ JobConfig.cpp 11 Mar 2010 22:18:43 -0000 1.2
@@ -1,108 +1,4 @@
#include "JobConfig.h"
-#include "DetectorGeometry.h"
-
-JobConfig::JobConfig()
- : m_nevents(-1),
- m_nskip(0)
-{}
-
-JobConfig::~JobConfig()
-{}
-
-const std::string& JobConfig::getPandoraSettingsXmlFile()
-{
- return m_pandoraSettingsXmlFile;
-}
-
-void JobConfig::setPandoraSettingsXmlFile(std::string pandoraSettingsXmlFile)
-{
- m_pandoraSettingsXmlFile = pandoraSettingsXmlFile;
-}
-
-void JobConfig::setPandoraSettingsXmlFile(const char* pandoraSettingsXmlFile)
-{
- m_pandoraSettingsXmlFile = std::string(pandoraSettingsXmlFile);
-}
-
-const std::string& JobConfig::getGeometryFile()
-{
- return m_geometryFile;
-}
-
-void JobConfig::setGeometryFile(const char* geometryFile)
-{
- m_geometryFile = std::string(geometryFile);
-}
-
-void JobConfig::setGeometryFile(std::string geometryFile)
-{
- m_geometryFile = geometryFile;
-}
-
-void JobConfig::addInputFile(const char* filename)
-{
- m_inputLcioFiles.push_back(std::string(filename));
-}
-
-void JobConfig::addInputFile(std::string filename)
-{
- m_inputLcioFiles.push_back(filename);
-}
-
-JobConfig::FileList JobConfig::getInputFiles()
-{
- return m_inputLcioFiles;
-}
-
-void JobConfig::setNumberOfEvents(int nevents)
-{
- m_nevents = nevents;
-}
-
-int JobConfig::getNumberOfEvents()
-{
- return m_nevents;
-}
-
-void JobConfig::setSkipEvents(int nskip)
-{
- m_nskip = nskip;
-}
-
-int JobConfig::getSkipEvents()
-{
- return m_nskip;
-}
-
-void JobConfig::setOutputFile(const char* outputFile)
-{
- m_outputFile = std::string(outputFile);
-}
-
-void JobConfig::setOutputFile(std::string outputFile)
-{
- m_outputFile = outputFile;
-}
-
-const std::string& JobConfig::getOutputFile()
-{
- return m_outputFile;
-}
-
-void JobConfig::addCalorimeterType(const char* calType)
-{
- m_calTypes.push_back(std::string(calType));
-}
-
-void JobConfig::addCalorimeterType(std::string calType)
-{
- m_calTypes.push_back(calType);
-}
-
-JobConfig::CalorimeterTypes JobConfig::getCalorimeterTypes()
-{
- return m_calTypes;
-}
JobConfig::CalorimeterTypes JobConfig::getDefaultCalorimeterTypes()
{
slicPandora/src
diff -u -r1.4 -r1.5
--- JobManager.cpp 8 Mar 2010 23:00:53 -0000 1.4
+++ JobManager.cpp 11 Mar 2010 22:18:43 -0000 1.5
@@ -91,7 +91,7 @@
return m_detectorGeometry;
}
-StatusCode JobManager::run()
+void JobManager::run()
{
initialize();
@@ -118,22 +118,35 @@
// Process events.
while (event != 0)
- {
+ {
+ // Run event processors over this event.
processEvent(event);
+
+ // Write out this event to LCIO file.
writer->writeEvent(event);
+
+ // Read the next event.
+ event = reader->readNextEvent();
+
+ // Check if job should be stopped due to user-specified event limit.
if (nread >= ntoread)
{
- std::cout << "Read <" << ntoread << "> events. Stopping run!" << std::endl;
+ std::cout << std::endl << "Stopping run after <" << ntoread << "> events!" << std::endl;
break;
}
- event = reader->readNextEvent();
+
+ // Increment number of events read.
++nread;
}
+
+ // Close the LCIO reader.
reader->close();
+
+ // Close the LCIO writer.
writer->flush();
writer->close();
- return STATUS_CODE_SUCCESS;
+ std::cout << "Pandora ran <" << nread << "> events in this job." << std::endl;
}
void JobManager::processEvent(EVENT::LCEvent* event)
slicPandora/src
diff -u -r1.5 -r1.6
--- PfoProcessor.cpp 10 Mar 2010 20:17:54 -0000 1.5
+++ PfoProcessor.cpp 11 Mar 2010 22:18:43 -0000 1.6
@@ -1,4 +1,4 @@
-// $Id: PfoProcessor.cpp,v 1.5 2010/03/10 20:17:54 jeremy Exp $
+// $Id: PfoProcessor.cpp,v 1.6 2010/03/11 22:18:43 jeremy Exp $
#include "PfoProcessor.h"
// lcio
@@ -34,38 +34,41 @@
{}
void PfoProcessor::processEvent(EVENT::LCEvent* event)
-{
- std::cout << "PfoProcessor::processEvent" << std::endl;
- // first a container for the clusters...
+{
+ // Make a container for the clusters.
LCCollectionVec* clusterVec = new LCCollectionVec(EVENT::LCIO::CLUSTER);
- // if we want to point back to the hits we need to set the flag
+
+ // Set flag for pointing back to CalorimeterHits.
LCFlagImpl clusterFlag(0);
clusterFlag.setBit(EVENT::LCIO::CLBIT_HITS);
clusterVec->setFlag(clusterFlag.getFlag());
- // get the particle flow objects
+ // Get Pandora's list of PFOs.
pandora::ParticleFlowObjectList particleFlowObjectList;
PANDORA_THROW_RESULT_IF_AND_IF(STATUS_CODE_SUCCESS, STATUS_CODE_NOT_INITIALIZED, !=, PandoraApi::GetParticleFlowObjects(getJobManager()->getPandora(),
particleFlowObjectList));
+ std::cout << "Pandora found " << particleFlowObjectList.size() << " PFOs in event <" << event->getEventNumber() << ">." << std::endl;
- std::cout << "Pandora found " << particleFlowObjectList.size() << " PFOs" << std::endl;
-
+ // Make a container for the ReconstructedParticles.
LCCollectionVec* pReconstructedParticleCollection = new LCCollectionVec(EVENT::LCIO::RECONSTRUCTEDPARTICLE);
- // get particle flow objects and create "reconstructed particles"
+ // Iterate over Pandora's PFO objects to create LCIO ReconstructedParticles.
for (pandora::ParticleFlowObjectList::iterator itPFO = particleFlowObjectList.begin(), itPFOEnd = particleFlowObjectList.end();
- itPFO != itPFOEnd; ++itPFO)
+ itPFO != itPFOEnd;
+ ++itPFO)
{
+ // Make the new ReconstructedParticle.
ReconstructedParticleImpl *pReconstructedParticle = new ReconstructedParticleImpl();
pandora::ClusterAddressList clusterAddressList = (*itPFO)->GetClusterAddressList();
- cout << "Found " << clusterAddressList.size() << " clusters." << endl;
+ cout << "Pandora found <" << clusterAddressList.size() << "> clusters." << endl;
pandora::TrackAddressList trackAddressList = (*itPFO)->GetTrackAddressList();
- // make LCIO clusters
+ // Iterate over the cluster list and make LCIO clusters.
for (pandora::ClusterAddressList::iterator itCluster = clusterAddressList.begin(), itClusterEnd = clusterAddressList.end();
itCluster != itClusterEnd; ++itCluster)
{
+ // Make a new Cluster.
ClusterImpl *pCluster = new ClusterImpl();
double clusterEnergy = 0.;
@@ -80,24 +83,34 @@
maxE = ((CalorimeterHit*) (*itHit))->getEnergy();
//avert your gaze...
clusterPosition = const_cast<float*>(((CalorimeterHit*) (*itHit))->getPosition());
- }
+ }
pCluster->addHit((CalorimeterHit*) (*itHit), 1.0); // transform from Uid (=void*) to a CalorimeterHit*
}
+
+ // Set cluster energy.
pCluster->setEnergy(clusterEnergy);
+
+ // Set the cluster position.
pCluster->setPosition(clusterPosition);
- cout << "Cluster contains " << pCluster->getCalorimeterHits().size() << " hits" << endl;
- // add this cluster to the collection
+
+ cout << "Cluster contains <" << pCluster->getCalorimeterHits().size() << "> hits." << endl;
+
+ // Add the cluster to the collection.
clusterVec->addElement(pCluster);
+
+ // Associate the cluster with the ReconstructedParticle.
pReconstructedParticle->addCluster(pCluster);
}
- // add tracks
- for (pandora::TrackAddressList::iterator itTrack = trackAddressList.begin(), itTrackEnd = trackAddressList.end(); itTrack != itTrackEnd;
- ++itTrack)
+ // Add the tracks to the event.
+ for (pandora::TrackAddressList::iterator itTrack = trackAddressList.begin(), itTrackEnd = trackAddressList.end();
+ itTrack != itTrackEnd;
+ ++itTrack)
{
pReconstructedParticle->addTrack((Track*) (*itTrack));
}
+ // Set the ReconstructedParticle parameters from the PFO.
float momentum[3] = {(*itPFO)->GetMomentum().GetX(), (*itPFO)->GetMomentum().GetY(), (*itPFO)->GetMomentum().GetZ()};
pReconstructedParticle->setMomentum(momentum);
pReconstructedParticle->setEnergy((*itPFO)->GetEnergy());
@@ -105,12 +118,13 @@
pReconstructedParticle->setCharge((*itPFO)->GetCharge());
pReconstructedParticle->setType((*itPFO)->GetParticleId());
+ // Add the ReconstructedParticle to the collection.
pReconstructedParticleCollection->addElement(pReconstructedParticle);
}
- // add the list of clusters to the event
+
+ // Add the list of clusters to the event.
event->addCollection(clusterVec, "ReconClusters");
- //cout << "end of loop over pandora outpout" << endl;
- event->addCollection(pReconstructedParticleCollection, "PandoraPFOCollection");
- //cout << "added pfo objects to event" << endl;
-
+
+ // Add the list of ReconstructedParticles to the event.
+ event->addCollection(pReconstructedParticleCollection, "PandoraPFOCollection");
}
slicPandora/src
diff -N EventProcessor.cpp
--- EventProcessor.cpp 23 Feb 2010 02:27:26 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,21 +0,0 @@
-#include "EventProcessor.h"
-
-#include "JobManager.h"
-
-EventProcessor::EventProcessor(std::string name)
- : m_name(name)
-{;}
-
-EventProcessor::~EventProcessor()
-{;}
-
-void EventProcessor::setJobManager(JobManager* manager)
-{
- m_manager = manager;
-}
-
-JobManager* EventProcessor::getJobManager()
-{
- return m_manager;
-}
-
slicPandora/include
diff -u -r1.2 -r1.3
--- CalorimeterHitProcessor.h 8 Mar 2010 23:00:54 -0000 1.2
+++ CalorimeterHitProcessor.h 11 Mar 2010 22:18:44 -0000 1.3
@@ -13,26 +13,42 @@
using EVENT::CalorimeterHit;
+/**
+ * This is an event processor that converts collections of CalorimeterHits
+ * to Pandora CaloHit::Parameters and registers them with the current
+ * Pandora instance. The collections to process are retrieved from the JobManager's
+ * list of calorimeter collection types (e.g. EM_BARREL).
+ */
class CalorimeterHitProcessor : public EventProcessor
{
public:
+
+ /**
+ * Standard ctor.
+ */
CalorimeterHitProcessor()
: EventProcessor("CalorimeterHitProcessor")
{;}
+ /**
+ * Standard dtor.
+ */
virtual ~CalorimeterHitProcessor()
{;}
public:
+ /**
+ * This method converts LCIO CalorimeterHits into Pandora CalHit::Parameters.
+ */
void processEvent(EVENT::LCEvent*);
private:
/**
- * Make a 64-bit identifier for a hit.
+ * Make a 64-bit ID from the two 32-bit cell IDs of a CalorimeterHit.
*/
- inline long long makeId64(CalorimeterHit* hit)
+ inline long long makeId64(CalorimeterHit* hit) const
{
return ((long long)hit->getCellID1())<<32 | hit->getCellID0();
}
@@ -45,6 +61,9 @@
DetectorGeometry::ExtraSubDetectorParameters* xsubdet,
CalorimeterHit*);
+ /**
+ * Print the given CalHit::Parameters to cout.
+ */
void printCaloHitParameters(const PandoraApi::CaloHit::Parameters&);
};
slicPandora/include
diff -u -r1.3 -r1.4
--- EventProcessor.h 9 Mar 2010 20:13:42 -0000 1.3
+++ EventProcessor.h 11 Mar 2010 22:18:44 -0000 1.4
@@ -1,4 +1,4 @@
-// $Id: EventProcessor.h,v 1.3 2010/03/09 20:13:42 jeremy Exp $
+// $Id: EventProcessor.h,v 1.4 2010/03/11 22:18:44 jeremy Exp $
#ifndef EventProcessor_h
#define EventProcessor_h 1
@@ -9,7 +9,7 @@
// lcio
#include "EVENT/LCEvent.h"
-// Needed to avoid circular reference with EventProcessor.
+// Avoid circular reference with EventProcessor class.
class JobManager;
using EVENT::LCEvent;
@@ -22,22 +22,48 @@
class EventProcessor
{
public:
- EventProcessor(std::string);
- virtual ~EventProcessor();
- void setJobManager(JobManager*);
- JobManager* getJobManager();
+ /**
+ * ctor which requires a name argument.
+ */
+ EventProcessor(std::string name)
+ : m_name(name)
+ {;}
+
+ /**
+ * Standard dtor.
+ */
+ virtual ~EventProcessor()
+ {;}
+
+ /**
+ * Set the pointer to the processor's JobManager.
+ */
+ inline void setJobManager(JobManager* manager)
+ {
+ m_manager = manager;
+ }
+
+ /**
+ * Get the pointer to the processor's JobManager.
+ */
+ inline JobManager* getJobManager() const
+ {
+ return m_manager;
+ }
- inline const std::string& getName()
+ /**
+ * Get the name of the processor.
+ */
+ inline const std::string& getName() const
{
return m_name;
}
/**
* Process a single LCIO event. This is a pure virtual method that must be
- * implemented by sub-classes. Processors that are calling Pandora algorithms
- * may ignore the LCEvent entirely and retrieve objects directly from Pandora
- * via the JobManager's reference to it.
+ * implemented by sub-classes. Processors that call Pandora algorithms may
+ * ignore the LCEvent and retrieve objects directly from the Pandora instance.
*/
virtual void processEvent(EVENT::LCEvent*) = 0;
slicPandora/include
diff -u -r1.3 -r1.4
--- IDDecoder.h 9 Mar 2010 20:13:42 -0000 1.3
+++ IDDecoder.h 11 Mar 2010 22:18:44 -0000 1.4
@@ -1,7 +1,8 @@
-// $Id: IDDecoder.h,v 1.3 2010/03/09 20:13:42 jeremy Exp $
-#ifndef IDDecoder_h
-#define IDDecoder_h 1
+// $Id: IDDecoder.h,v 1.4 2010/03/11 22:18:44 jeremy Exp $
+#ifndef IDDECODER_H
+#define IDDECODER_H 1
+// stl
#include <string>
#include <vector>
#include <map>
@@ -9,40 +10,65 @@
/**
* This class extracts field values from 64-bit identifiers based on an identifier
* description. It provides similar functionality to the GeomConverter Java class
- * org.lcsim.geometry.util.IDDecoder (NOT the org.lcsim.geometry.IDDecoder interface).
+ * org.lcsim.geometry.util.IDDecoder (but NOT the org.lcsim.geometry.IDDecoder interface
+ * with the same class name).
*/
class IDDecoder
{
public:
+ /**
+ * An IDField represents a portion of a 64-bit id which contains a data field.
+ * This is defined by a starting bit, a length, and a flag that specifies
+ * whether the field may contain signed values that need to be decoded differently
+ * from unsigned fields. Fields also have a name, e.g. "layer"..
+ */
class IDField
{
public:
+ /**
+ * Fully specified ctor. The parameters of IDFields do not change after creation.
+ */
IDField(const std::string& name, int start, int length, bool isSigned)
: m_name(name), m_start(start), m_length(length), m_signed(isSigned)
{;}
+ /**
+ * Standard dtor.
+ */
virtual ~IDField()
{;}
- const std::string& getName()
+ /**
+ * Get the name of the field.
+ */
+ inline const std::string& getName() const
{
return m_name;
}
- const int getStart()
+ /**
+ * Get the start bit of the field, numbered from 0 to 63.
+ */
+ inline const int getStart() const
{
return m_start;
}
- const int getLength()
+ /**
+ * Get the length of the field.
+ */
+ inline const int getLength() const
{
return m_length;
}
- const bool isSigned()
+ /**
+ * Get the sign flag specifying whether this field may contain signed field values.
+ */
+ inline const bool isSigned() const
{
return m_signed;
}
@@ -56,11 +82,21 @@
public:
+ // List of fields.
typedef std::vector<IDField*> IDFields;
+
+ // Map of field indices to fields.
typedef std::map<int,IDField*> IndexedFieldMap;
+
+ // Map of field names to fields.
typedef std::map<std::string,IDField*> NamedFieldMap;
+
+ // Map field names to indices.
typedef std::map<std::string,int> Name2IndexMap;
+ /**
+ * ctor that requires a list of fields.
+ */
IDDecoder(IDFields fields)
: m_fields(fields)
{
@@ -77,28 +113,50 @@
}
}
+ /**
+ * Standard dtor.
+ */
virtual ~IDDecoder()
{;}
- int getFieldValue(int index, long id);
+ /**
+ * Extract a field at the given index from the id.
+ */
+ int getFieldValue(int index, long id);
+
+ /**
+ * Extract a field with the given name from the id.
+ */
int getFieldValue(const std::string& name, long id);
- IDField* getField(int index)
+ /**
+ * Get a field by index.
+ */
+ inline const IDField* getField(int index)
{
return m_indexMap[index];
}
- IDField* getField(const std::string& name)
+ /**
+ * Get a field by name.
+ */
+ inline const IDField* getField(const std::string& name)
{
return m_nameMap[name];
}
- int getFieldIndex(const std::string& name)
+ /**
+ * Get the index of a field by name.
+ */
+ inline const int getFieldIndex(const std::string& name)
{
return m_name2IndexMap[name];
}
- int getFieldCount()
+ /**
+ * Get the number of fields.
+ */
+ inline const int getFieldCount() const
{
return m_fields.size();
}
slicPandora/include
diff -u -r1.3 -r1.4
--- JobConfig.h 9 Mar 2010 20:13:42 -0000 1.3
+++ JobConfig.h 11 Mar 2010 22:18:44 -0000 1.4
@@ -1,51 +1,139 @@
-// $Id: JobConfig.h,v 1.3 2010/03/09 20:13:42 jeremy Exp $
-#ifndef _SLIC_PANDORACONFIG_H
-#define _SLIC_PANDORACONFIG_H 1
+// $Id: JobConfig.h,v 1.4 2010/03/11 22:18:44 jeremy Exp $
+#ifndef JOBCONFIG_H
+#define JOBCONFIG_H 1
// stl
#include <string>
#include <vector>
-class DetectorGeometry;
-
+/**
+ * JobConfig contains all the parameters for running Pandora jobs using the JobManager.
+ */
class JobConfig
{
public:
+ // List of input files.
typedef std::vector<std::string> FileList;
- typedef std::vector<std::string> CalorimeterTypes;
- JobConfig();
- virtual ~JobConfig();
+ // List of calorimeter types.
+ typedef std::vector<std::string> CalorimeterTypes;
- void setPandoraSettingsXmlFile(const char*);
- void setPandoraSettingsXmlFile(std::string);
- const std::string& getPandoraSettingsXmlFile();
-
- void setGeometryFile(const char*);
- void setGeometryFile(std::string);
- const std::string& getGeometryFile();
-
- void addInputFile(const char*);
- void addInputFile(std::string);
- FileList getInputFiles();
-
- void setOutputFile(const char*);
- void setOutputFile(std::string);
- const std::string& getOutputFile();
+ JobConfig()
+ : m_nevents(-1), m_nskip(0)
+ {;}
+
+ virtual ~JobConfig()
+ {;}
+
+ /**
+ * Set the Pandora settings XML file path.
+ */
+ inline void setPandoraSettingsXmlFle(const char* pandoraSettingsXmlFile)
+ {
+ m_pandoraSettingsXmlFile = std::string(pandoraSettingsXmlFile);
+ }
+
+ /**
+ * Set the Pandora settings XML file path.
+ */
+ inline void setPandoraSettingsXmlFile(std::string pandoraSettingsXmlFile)
+ {
+ m_pandoraSettingsXmlFile = pandoraSettingsXmlFile;
+ }
+
+ /**
+ * Get the Pandora settings XML file path.
+ */
+ inline const std::string& getPandoraSettingsXmlFile() const
+ {
+ return m_pandoraSettingsXmlFile;
+ }
+
+ inline void setGeometryFile(const char* geometryFile)
+ {
+ m_geometryFile = std::string(geometryFile);
+ }
+
+ inline void setGeometryFile(std::string geometryFile)
+ {
+ m_geometryFile = geometryFile;
+ }
+
+ const std::string& getGeometryFile() const
+ {
+ return m_geometryFile;
+ }
+
+ inline void addInputFile(const char* filename)
+ {
+ m_inputLcioFiles.push_back(std::string(filename));
+ }
+
+ inline void addInputFile(std::string filename)
+ {
+ m_inputLcioFiles.push_back(filename);
+ }
+
+ const FileList getInputFiles() const
+ {
+ return m_inputLcioFiles;
+ }
+
+ inline void setOutputFile(const char* outputFile)
+ {
+ m_outputFile = std::string(outputFile);
+ }
+
+ inline void setOutputFile(std::string outputFile)
+ {
+ m_outputFile = outputFile;
+ }
+
+ inline const std::string& getOutputFile() const
+ {
+ return m_outputFile;
+ }
+
+ inline void setNumberOfEvents(int nevents)
+ {
+ m_nevents = nevents;
+ }
+
+ inline const int getNumberOfEvents() const
+ {
+ return m_nevents;
+ }
+
+ inline void setSkipEvents(int nskip)
+ {
+ m_nskip = nskip;
+ }
+
+ inline int getSkipEvents() const
+ {
+ return m_nskip;
+ }
+
+ const CalorimeterTypes getCalorimeterTypes() const
+ {
+ return m_calTypes;
+ }
+
+ inline void addCalorimeterType(const char* calType)
+ {
+ m_calTypes.push_back(std::string(calType));
+ }
+
+ inline void addCalorimeterType(std::string calType)
+ {
+ m_calTypes.push_back(calType);
+ }
void useDefaultCalorimeterTypes();
- void addCalorimeterType(const char*);
- void addCalorimeterType(std::string);
- CalorimeterTypes getCalorimeterTypes();
- CalorimeterTypes getDefaultCalorimeterTypes();
-
- void setNumberOfEvents(int nevents);
- int getNumberOfEvents();
- void setSkipEvents(int nskip);
- int getSkipEvents();
+ inline CalorimeterTypes getDefaultCalorimeterTypes();
private:
std::string m_pandoraSettingsXmlFile;
slicPandora/include
diff -u -r1.6 -r1.7
--- JobManager.h 11 Mar 2010 19:56:48 -0000 1.6
+++ JobManager.h 11 Mar 2010 22:18:44 -0000 1.7
@@ -1,4 +1,4 @@
-// $Id: JobManager.h,v 1.6 2010/03/11 19:56:48 jeremy Exp $
+// $Id: JobManager.h,v 1.7 2010/03/11 22:18:44 jeremy Exp $
#ifndef JobManager_h
#define JobManager_h 1
@@ -14,6 +14,10 @@
class DetectorGeometry;
class EventProcessor;
+/**
+ * The JobManager is a manager class for running slicPandora jobs.
+ * The job configuration is defined in a separate class, JobConfig.
+ */
class JobManager
{
public:
@@ -48,24 +52,24 @@
JobConfig* getJobConfig();
/**
+ * Run the job with the current settings.
+ */
+ void run();
+
+ /**
* Add an EventProcessor to the end of the processor list.
*/
void addEventProcessor(EventProcessor*);
/**
- * Get the DetectorGeometry created from the input xml file.
+ * Get the DetectorGeometry that was created from the input XML file.
*/
DetectorGeometry* getDetectorGeometry();
/**
* Get the Pandora PFA instance.
*/
- const pandora::Pandora& getPandora();
-
- /**
- * Run the job with the current settings.
- */
- StatusCode run();
+ const pandora::Pandora& getPandora();
private:
@@ -75,10 +79,13 @@
void processEvent(EVENT::LCEvent*);
/**
- * Initialize the job so it is ready to run.
+ * Initialize the job so that it is ready to run.
*/
void initialize();
+ /**
+ * Create Pandora's algorithm generators.
+ */
StatusCode registerUserAlgorithmFactories();
/**
slicPandora/include
diff -u -r1.2 -r1.3
--- PfoProcessor.h 9 Mar 2010 20:13:42 -0000 1.2
+++ PfoProcessor.h 11 Mar 2010 22:18:44 -0000 1.3
@@ -1,12 +1,16 @@
-// $Id: PfoProcessor.h,v 1.2 2010/03/09 20:13:42 jeremy Exp $
+// $Id: PfoProcessor.h,v 1.3 2010/03/11 22:18:44 jeremy Exp $
#ifndef PFOPROCESSOR_H
#define PFOPROCESSOR_H 1
+// slicPandora
#include "EventProcessor.h"
// lcio
#include "EVENT/LCEvent.h"
+/**
+ * This event processor converts Pandora PFO objects into LCIO output.
+ */
class PfoProcessor : public EventProcessor
{
public:
slicPandora/tests
diff -u -r1.1 -r1.2
--- PandoraFrontend.cpp 11 Mar 2010 19:56:49 -0000 1.1
+++ PandoraFrontend.cpp 11 Mar 2010 22:18:44 -0000 1.2
@@ -1,4 +1,4 @@
-//$Id: PandoraFrontend.cpp,v 1.1 2010/03/11 19:56:49 jeremy Exp $
+//$Id: PandoraFrontend.cpp,v 1.2 2010/03/11 22:18:44 jeremy Exp $
/**
* This is a simple frontend to run slicPandora. It takes an ordered list of arguments. (See usage method.)
@@ -17,7 +17,7 @@
void printUsage()
{
cout << "./bin/PandoraFrontend geometry.xml pandoraSettings.xml inputEvents.slcio reconOutput.slcio nevents" << endl << endl;
- cout << "The nevents argument is optional. By default, PandoraFrontend will run over all of the input events." << std::endl;
+ cout << "The [nevents] argument is optional. By default, PandoraFrontend will run over all of the input events." << std::endl;
}
int main(int argc, char **argv)
@@ -50,12 +50,12 @@
}
// Print out arguments before starting job.
- cout << "PandoraFrontend got " << nargs << " arguments..." << endl;
+ cout << "PandoraFrontend got " << nargs << " arguments ..." << endl;
cout << " geometry: " << geometry << endl;
cout << " pandoraSettings: " << pandoraSettings << endl;
cout << " inputEvents: " << inputEvents << endl;
cout << " outputEvents: " << outputEvents << endl;
- cout << " nevents: " << nevents << endl;
+ cout << " nevents: " << nevents << endl << endl;
// Create the job configuration from the command line arguments.
JobConfig* config = new JobConfig();
CVSspam 0.2.8