1 #ifndef __JTRIGGER__JTRIGGERMXSHOWER__ 
    2 #define __JTRIGGER__JTRIGGERMXSHOWER__ 
   50     using namespace JMATH;
 
   63     if      (d <= 0.5 * parameters.DMax_m)
 
   65     else if (d <= parameters.DMax_m)
 
   98       match(parameters.DMax_m, parameters.TMaxExtra_ns)
 
  104       if (parameters.numberOfHits == 0) {
 
  105         parameters.numberOfHits = 1;
 
  108       if (parameters.numberOfHits == 1) {
 
  109         parameters.factoryLimit = 1;
 
  112       if (parameters.numberOfModules < 1) {
 
  113         parameters.numberOfModules = 1;
 
  125     template<
class JElement_t>
 
  128                     std::back_insert_iterator<JTriggerOutput> out)
 const 
  131       typedef typename JTimeslice_t::value_type          JFrame_t;
 
  134       if (parameters.enabled) {
 
  136         JTimeslice_t clone(inputL0, mapper);
 
  138         for (JTriggerInput::const_iterator root = inputL1.begin(); root != inputL1.
end(); ++root) {
 
  142           const container_type& zip = mapper.getList(root->getModuleID());
 
  144           for (
typename container_type::const_iterator mod = zip.begin(); mod != zip.end(); ++mod) {
 
  146             const double Tmin  = root->getT() + mod->Tmin_ns;
 
  147             const double Tmax  = root->getT() + mod->Tmax_ns;
 
  149             JFrame_t&    frame = clone[mod->first];
 
  151             frame.fast_forward(root->getT() - TMaxEvent_ns);
 
  153             for (
typename JFrame_t::const_iterator i = frame.get(); *i <= Tmax; ++i) {
 
  156                 buffer.push_back(
JHitR1(frame.getModuleID(),
 
  163           if (
distance          (buffer.begin(), buffer.end()) >= parameters.numberOfHits    - 1 &&
 
  166             if (
distance(buffer.begin(), buffer.end()) < parameters.factoryLimit) {
 
  168               JTriggerInput::iterator q = 
clusterize(buffer.begin(), buffer.end(), match, parameters.numberOfHits - 1);
 
  170               if (
distance          (buffer.begin(), q) >= parameters.numberOfHits    - 1 &&