transformer une list en TVectorT

transformer une list en TVectorT - C++ - Programmation

Marsh Posté le 21-05-2019 à 17:14:22    

Code :
  1. int main(int argc, char* argv[]){
  2. TApplication app("app",&argc,argv);
  3. TFile *f = new TFile("ggdATLAS_Appendix_06.root" );
  4. TTree *t2 = (TTree*)f->Get("t2" );
  5. t2->Print();
  6. cout<<"probleme1"<<endl;
  7. int iprov,ntrack;
  8. double e[3],px[3],py[3],pz[3];
  9. double x3;
  10. double pt[3],y[3];
  11. double x1,x2;
  12. float pdf_weight[1000];
  13. float weight;
  14.   // we get the value stored into the header for the normalisation
  15. TList *list = t2->GetUserInfo();
  16. cout<<"probleme2"<<endl;
  17. list->Print();
  18. TVectorT<float> &v = *(list->At(0));
  19. cout<<"probleme3"<<endl;
  20. cout<<"probleme3"<<endl;
  21. float& nb_evt = v[0];
  22. cout<<"probleme3"<<endl;
  23. float& xsec = v[1];
  24. cout<<"probleme3"<<endl;
  25. float& sqrt_s = v[2];
  26. cout<<"PROBLEME"<<endl;
  27. float norma = xsec/nb_evt;
  28. cout<<"probleme3"<<endl;


 
Quand je compile mon programme, une erreur survient (error: invalid initialization of reference of type ‘TVectorT<float>&’ from expression of type ‘TObject’
 TVectorT<float> &v = *(list->At(0)); )  , elle vient de la ligne TVectorT<float> &v =*(list->At(0)); et je ne sais pas comment la modifier pour que le vector v se construise.  
Quelqu'un a une idée ?

Reply

Marsh Posté le 21-05-2019 à 17:14:22   

Reply

Marsh Posté le 01-07-2019 à 14:31:09    

Bonjour,
 
Quel est le type de *(list->At(0))?
 
Si je suis tombé sur la bonne doc, ce qui n'est pas sûr: tu ne donnes pas
beaucoup d'info, je pense qu'il faut faire quelque chose du genre:

Code :
  1. TVectorT<float> v(UneTaille);
  2. v[0] = *(list->At(0));


Mais je ne connais pas du tout la bibliothèque d'où sortent tes listes et
vecteurs donc c'est peut-être n'importe quoi. Et puis il faut être sûr que
"list->At(0)" retourne bien un "float*".
 
Sans info supplémentaires sur la bibliothèque concernée le but de ce code et ses
entrées/sorties ça va être compliqué de répondre.


---------------
deluser --remove-home ptitchep
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed