Ignore:
Timestamp:
Jun 10, 2013, 4:52:52 PM (11 years ago)
Author:
lemeur
Message:

mise a jour des manipulations de faisceau

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Interface_Web/trunk/pspaWT/sources/controler/src/softwareParmela.cc

    r398 r417  
    2222  cout << " setRelativeParmelaElementIndices() taille a priori : " << relativeParmelaElementIndices_.size() << endl;
    2323  abstractElement* elPtr = dataManager_->getElementPointerFromNumero(numeroDeb_);
     24
    2425  bool there_is_rfgun = ( elPtr->getNomdElement().getElementType() == RFgun );
    2526  unsigned offsetNumElem;
     
    262263  particles.clear();
    263264  particles.resize(faisceau.size(), bareParticle());
    264   double x,xp,y,yp;
     265  //  double x,xp,y,yp;
     266  double xp, yp;
    265267  double betagammaz;
    266   double betaz;
    267   double deltaz;
     268  //  double betaz;
     269  double cdt;
    268270  double dephas;
    269271  double g;
     
    273275  // sont donnes en radians
    274276  for (unsigned k = 0; k < faisceau.size(); k++) {
    275     x= faisceau.at(k).xx;
     277    //    x= faisceau.at(k).xx;
    276278    xp=faisceau.at(k).xxp;
    277     y= faisceau.at(k).yy;
     279    //    y= faisceau.at(k).yy;
    278280    yp=faisceau.at(k).yyp;
    279281    // dephasage par rapport a la reference
     
    281283    g = faisceau.at(k).wz/EREST_MeV;
    282284    betagammaz = faisceau.at(k).begamz;
    283     betaz = betagammaz/(g+1.0);
    284     deltaz = FACTEUR * betaz * dephas / referencefrequency;
    285     x += xp * deltaz;
    286     y += yp * deltaz;
    287     pos.setComponents(x,y,deltaz);
     285    //    betaz = betagammaz/(g+1.0);
     286    //    deltaz = FACTEUR * betaz * dephas / referencefrequency;
     287    cdt = FACTEUR * dephas / referencefrequency;
     288    //    x += xp * deltaz;
     289    //    y += yp * deltaz;
     290    pos.setComponents(faisceau.at(k).xx,faisceau.at(k).yy,cdt);
    288291    betagamma.setComponents(xp*betagammaz, yp*betagammaz, betagammaz);
    289292    particles.at(k) = bareParticle(pos,betagamma);
     
    311314    }
    312315   
    313     const vector<bareParticle>& partic = beam->getParticleVector();
     316    //    const vector<bareParticle>& partic = beam->getParticleVector();
    314317    double weight = 1.0;
    315318    double xx,yy,zz;
    316319    double begamx, begamy, begamz;
    317     for (unsigned k = 0; k < partic.size(); k++) {
    318         partic.at(k).getPosition().getComponents(xx,yy,zz);
    319         partic.at(k).getBetaGamma().getComponents(begamx,begamy,begamz);
     320    //    TRIDVECTOR pos, begam;
     321    double zmin = GRAND;
     322    double zmax = -zmin;
     323    double cdtmin, cdtmax;
     324    beam->ZrangeCdt(cdtmin, cdtmax);
     325    cout << " softwareParmela::beamToParmela cdtmin = " << cdtmin << " cdtmax = " << cdtmax << endl;
     326 
     327    for (unsigned k = 0; k < beam->getNbParticles(); k++) {
     328        // partic.at(k).getPosition().getComponents(xx,yy,zz);
     329        // partic.at(k).getBetaGamma().getComponents(begamx,begamy,begamz);
     330      beam->coordonneesDeployees(k, -cdtmax).getComponents(xx,yy,zz);
     331      beam->betaGamma(k).getComponents(begamx,begamy,begamz);
     332      if ( zz > zmax) zmax = zz;
     333      if ( zz < zmin ) zmin = zz;
    320334        outfile << xx << " " << begamx << " " <<  yy << " " << begamy << " " << zz << " " << begamz  << " " << weight << endl;
    321335    }
    322336    outfile.close();
     337    cout << " softwareParmela::beamToParmela zmn = " << zmin << " zmax = " << zmax << endl;
    323338    return true;
    324339}
Note: See TracChangeset for help on using the changeset viewer.