Hi Rooters! I have a pb in reading (and perhaps in filling) a tree. The tree declaration I used is: TTree *ptree_flash = new TTree("FLASH",argv[1]); event_flash = new EventFlash(); TBranch *b_flash =ptree_flash->Branch("EventFlash","EventFlash", &event_flash,bufsize,split); Then I fill the tree with: event_flash=new EventFlash(dim_bloc,nb_burst,&buf[i]); ptree_flash->Fill(); where buf is UShort_t *buf=new UShort_t[lgb], (lgb being a given dimension). When I fill the tree, I used the method event_flash->GetFlashSpectrum()->Show(); in order to check what I am reading (and so what I hope to put in the tree). But when I try to read again the tree, the GetFlashSpectrum()->Show() method give me numbers which are completly different from the one I (hope to) fill in the tree. Is there some one who can tell me what I am doing wrong? Thanks very much, Olivier Meplan. ----------------------------------------------------------------------------- The definition of the class EventFlash is given in the file flash_flash.h, flash_spectrum.h (and the corresponding .C files): // ========== flash_flash.h =========== class EventFlash : public TObject { private: Int_t fNo_burst; //Numero de burst UShort_t fNo_voie_flash; //Numero de la voie du flash touche Int_t fTps_avt_stockage; //Nb canaux entre l'origne et le 1er canal stocke FlashSpectrum *fSpectrum; //Amplitude=f(tps des coups par rapport au burst) pour chaque voie flash public: EventFlash():fNo_burst(0),fNo_voie_flash(0),fTps_avt_stockage(0){fSpectrum=new FlashSpectrum();} EventFlash(Int_t dim,Int_t burst,UShort_t *event); ~EventFlash(){delete fSpectrum;} Int_t GetNbBurt() const { return fNo_burst; } UShort_t GetNumVoie() const {return fNo_voie_flash; } Int_t GetTemps_Avant_Stokage() const {return fTps_avt_stockage; } FlashSpectrum *GetFlashSpectrum() {return fSpectrum; } ClassDef(EventFlash,1) }; // ========== flash_flash.C =========== #include "flash_flash.h" ClassImp(EventFlash) EventFlash::EventFlash(Int_t dim,Int_t burst,UShort_t *event) : TObject() { fNo_burst=burst; fSpectrum=new FlashSpectrum(dim); fNo_voie_flash=(*event & 0x00FF); fTps_avt_stockage=*(event+1); for(Int_t i=0 ; i<dim ; i++) { GetFlashSpectrum()->FillSpectrum(i,(event[i+2] & 0x0FFF)); } } // ========== flash_spectrum.h =========== class FlashSpectrum : public TObject { private: UShort_t *fFlashSpectrum; Int_t fSize; public: FlashSpectrum(): fSize(10) { fFlashSpectrum = new UShort_t[fSize]; } FlashSpectrum( Int_t size) { fSize=size; fFlashSpectrum = new UShort_t[fSize]; } ~FlashSpectrum(){delete [] fFlashSpectrum;} void FillSpectrum(UShort_t *spectrum) { for(Int_t i=0; i<fSize ; i++) fFlashSpectrum[i]=spectrum[i]; } void FillSpectrum(Int_t i,UShort_t val) { fFlashSpectrum[i]=val; } UShort_t *GetSpectrum(){return fFlashSpectrum;} Int_t GetSize(){return fSize;} void Show() { for(Int_t i=0; i<GetSize(); i++) cout<<"AMP:"<<fFlashSpectrum[i]<<endl; } ClassDef(FlashSpectrum,1) }; //=============================== -- ========================================================= |Olivier Meplan |E-mail:meplan@isn.in2p3.fr | | |ISN, 53 avenue des Martyrs | Tel +33(0)4 76-28-41-90 |F-38026 GRENOBLE cedex | Fax +33(0)4 76-28-40-04 =========================================================
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:40 MET