цикл падает после первой переменной - PullRequest
0 голосов
/ 24 октября 2019

У меня есть код на C ++, который я должен зациклить с другим внешним скриптом Python. Каждый раз, когда я запускаю этот скрипт на Python, весь процесс падает после первого цикла. Так что я думаю, что моя проблема носит более общий характер, может быть, мне нужно сначала понять базовый синтаксис, который, как правило, привел бы к этой аварии. Я надеюсь, что вы, ребята, можете дать мне несколько советов о том, почему это приводит к аварии.

код c ++:

bool IsaSlowPion(const Particle*, const std::vector<double>& vars)
{
  const unsigned iparticle = int(std::lround(vars[0]));
  std::cout << "looking at particle nr:   " << iparticle << std::endl;
  StoreArray<MCParticle> particles;
  for (auto p : particles) {
    std::cout << p.getMother() << std::endl;
  }
  unsigned nparticles = particles.getEntries();
  std::cout << "Particles per event:  "<< nparticles << std::endl;
  if (nparticles < 1) {
    B2WARNING("No MCParticles found in the event, check the input");
    return false;
  }
  if (iparticle > (nparticles-1)) {
    return false;
  }
  std::cout << particles[iparticle]->getPDG() <<  std::endl;
  if (abs(particles[iparticle]->getPDG() == 413)) {
    std::cout << "test print" << std::endl;
    std::cout << particles[iparticle]->getMother() << std::endl;

      if (abs(particles[iparticle]->getMother()->getPDG() == 413)) {
        std::cout << particles[iparticle]->getEnergy() << std::endl;
        return true;
      } else {
        return false;
      }

  }
}

VARIABLE_GROUP("PXD clusters");
REGISTER_VARIABLE("IsaSlowPion(i)", IsaSlowPion, "[EventBased] Returns" );

, а скрипт python для доступа к коду C ++ и выполнения цикла выглядит следующим образом:

IsaPionList = []
maxparticles = 20
for iy in range(1, maxparticles):
  variables.addAlias('IsaSlowPion_%i' %(iy), 'IsaSlowPion(%i)' %(iy))
  IsaPionList.append('IsaSlowPion_%i' %(iy))

EDIT: извините,Я совершенно забыл вставить в вывод и сообщения об ошибках:

[INFO] Steering file: slowPi2.py
looking at particle nr:   1
0          300553         10.5821
0x132f91a0             511         5.27953
0x132f91a0            -511         5.27953
0x132f9240            -413         2.01023
0x132f9240             -11     0.000510999

Particles per event:  23
PDG:  -211
*** Error in `basf2': munmap_chunk(): invalid pointer: 0x00007ffc9e610ab8 ***
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...