CFEL - ASG Software Suite  2.5.0
CASS
Todo List
Member cass::ACQIRIS::CenterOfMass::getcom (const Channel &c, const CoMParameters &param, SignalProducer::signals_t &sig)
maybe just find the rising slope and let all other things be done by helper functions. (starting with findstartstop)
Member cass::ACQIRIS::ConstantFraction::getcfd (const Channel &c, const CFDParameters &param, SignalProducer::signals_t &sig)
make sure that is works right, since we get back a double
Class cass::ACQIRIS::DelaylineDetector
instead of having a layer (which does nothing) and a wireend a det should have a map of string, signalproducers. THis way one could possibly get rid of the two classes. One has to create a dethit identifier for creating a detecthit list for tof dets (the output of the sig prod. then one could also use the particle class to identif particles. later on one could calc the enegey using the eland methos (stuff that koji and marco added). In this case one could also flatten the directory structure maybe make a sublib for this acqiris lib
Class cass::ACQIRIS::DetectorAnalyzerBackend
rename this class, since its just the base class for all (sorters?).
Class cass::ACQIRIS::DetectorBackend
this class can have the conatiner for all signal producers. It can also have the container for all particles and detectorhits. In case it is a tof detector it just won't have the px and py components and related values. This sig prod will just be call either "u1" .. so the map is of string,sigprod instead of char,sigprod. When changing this also change the directory structure by flatening it out so that one can call make -j. (Or create a .pro file for each subfolder)
Member cass::ACQIRIS::getfwhm (const Channel &c, SignalProducer::signal_t &s, const double &)
make the below an own function
Member cass::ACQIRIS::getmaximum (const Channel &c, SignalProducer::signal_t &s, const double &)
make the below an own function
Class cass::ACQIRIS::HelperAcqirisDetectors
make sure that the detectors are protected from beeing written while they are read from
Member cass::ACQIRIS::HexSorter::loadSettings (CASSSettings &s, DelaylineDetector &d)

add the loading of the settings, make sure they are documented.

check whether one can set the goup this way

Class cass::CachedList
make item_type and id_type template parameters
Class cass::CASSSettings
Make this class serializable, so that the settings can be send to a program that can modify it and send it back.
Member cass::FileProcessor::runthis ()
count the number of skipped events and make is accessible to rateplotter
Member cass::hdf5::createGroupNameFromEventId (uint64_t eventid, hid_t calibcycle)
make sure that it will be always converted to the timezone in stanford otherwise people get confused. Timezones are not yet supported in QDateTime
Member cass::HexCalibrator::loadSettings (size_t)
make sure the below works
Member cass::HexCalibrator::process (const CASSEvent &evt, result_t &res)
check whether one can set the goup this way
Member cass::operator<< (SerializerBackend &serializer, const Result< T > &result)
add the type info to the stream and check it
Member cass::operator>> (SerializerBackend &serializer, Result< T > &result)
add the type info to the stream and check it
Class cass::pixeldetector::AboveNoiseFinder
is this right?
Member cass::pixeldetector::addEllipse (CommonData &data, CASSSettings &s)
check whether this works
Member cass::pixeldetector::CommonData::createCorMap ()
make this a friend and protected so only functions that we allow can call it.
Member cass::pixeldetector::Converter::operator() (const Pds::Xtc *xtc, cass::CASSEvent *evt)
need to implement all configurtion types of the epix data type
Member cass::pixeldetector::Frms6Reader::operator() (std::ifstream &file, CASSEvent &event)
: read out somehow?
Member cass::pixeldetector::SHMStreamer::operator() (QDataStream &stream, CASSEvent &evt)
: read out somehow?
Class cass::pp1002
enable that one can write into just one h5 file multiple events
Member cass::pp240::ellipse (result_t &data, CASSSettings &s)
check whether this works
Class cass::pp301
make more general: operate on bins. now operates on sum.
Author
Stephan Kassemeyer.
Lutz Foucar
Member cass::ProcessorManager::id_t
instead of this list use strings as id
Member cass::ProcessorManager::operator() (const CASSEvent &event)
catch when processor throws an exeption and delete the processor from the active list.
  • create a remove list with all processors that depend on this
  • go through that list and fill all pp that depend on the ones in the list recursivly.
  • remove all pp that made it on the removelist
  • this needs to be done in a locked way since more than one thread do this
Class cass::Result< T >
add statistics for the histograming functionality
Class cass::RingBuffer< T >

find out how one can use std::find to find the right element

maybe create a ReadWriteLock for each element to get rid of the mutexes

separeate declaration and definition to make class more readable

File detector_backend.h

create another acqiris detector, that will just measure the voltage on a given channel

use shared pointers

Member hdf5::Handler::groupExists (const std::string &groupname)
iterate through everthing to get rid of the disabling of the error messaging
Member hdf5::Handler::writeArray (const std::vector< type > &array, const size_t arrayLength, const std::string &valname, int compressLevel=2)
check out whether the chunck size can be optimized.
Member hdf5::Handler::writeMatrix (const std::vector< type > &matrix, std::pair< size_t, size_t > shape, const std::string &valname, int compressLevel=2)
check out whether the chunck size can be optimized.
Class lmf::PausableThread
check the logic whether this is threadsafe (maybe need to add some more mutexlockers.)
globalScope> Member main (int argc, char *argv[])
remove all non alphanumerical characters from the keystring before calling function
globalScope> Member main (int argc, char **argv)
find out how to stop the other threads
File operations.h
add pp creating a running/moving standart deviation (just lke average)