Hi Paolo, Could you send a small tar file with the strict minimum to reproduce thsi problem? Rene Brun On Tue, 10 Jun 2003, Paolo ADRAGNA wrote: > > Hi everyone, > > I found out a very strange problem with my program. > > I created this simple class: > > /*************************************************************************** > TC_BeamTDCData.h - description > ------------------- > begin : Sat Mar 29 2003 > copyright : (C) 2003 by Paolo ADRAGNA > email : paolo.adragna@pi.infn.it > ***************************************************************************/ > > /*************************************************************************** > * * > * This program is free software; you can redistribute it and/or modify * > * it under the terms of the GNU General Public License as published by * > * the Free Software Foundation; either version 2 of the License, or * > * (at your option) any later version. * > * * > ***************************************************************************/ > > #ifndef TC_BEAMTDCDATA_H > #define TC_BEAMTDCDATA_H > > #include <algorithm> > #include <iostream> > #include <vector> > > #include <TObject.h> > > #include "TC_Calibration.h" > > class TC_BeamTDCData : public TObject > { > > private: > > Float_t Xcha1; > Float_t Ycha1; > > Float_t Xcha2; > Float_t Ycha2; > > Float_t Ximp; > Float_t Yimp; > > std::vector<int> tdc1; > std::vector<int> tdc2; > > const TC_Calibration beam; > > public: > > TC_BeamTDCData(void); > virtual ~TC_BeamTDCData(void); > > void Reset(); > void Decode(int size, unsigned long *data); > void Print(); > > Float_t GetXcha1(); > Float_t GetYcha1(); > Float_t GetXcha2(); > Float_t GetYcha2(); > > ClassDef(TC_BeamTDCData,1) > > }; > > #endif > > Then I create a TTree and a TBranch with > > tree->Branch("BeamTDC", "TC_BeamTDCData", &fBeamTDCData, 32000, 3); > > where we have TC_BeamTDCData* fBeamTDCData. > > When I fill the tree (with a loop, one entry for every event) I am sure that > fBeamTDCData is not empty: all the data members have the right expected value > (I checked with a Print() method). > But if I try > > tree->Scan("Xcha1:Ycha1:Xcha2:Ycha2:Ximp:Yimp","","", 6, 0) > > for example, I find that only Ximp and Yimp have the correct values. As far as > the other variable, only the first entry is correct; from the second on all > the values seems to b meaningless, surely different from the printed ones, > and frequently also equal among them. Here an example: > > ************************************************************************************ > * Row * Xcha1 * Ycha1 * Xcha2 * Ycha2 * Ximp * Yimp * > ************************************************************************************ > * 0 * -0.938000 * -1.289999 * -0.936900 * -1.289999 * -0.936623 *-1.289999 > * 1 * 6.5722312 * 6.5722312 * 6.5722312 * 6.5722312 * 3.0130693 * 2.3270983 > * 2 * 6.5722312 * 6.5722312 * 6.5722312 * 6.5722312 * 2.486444 * 2.2331476 * > * 3 * 6.5722312 * 6.5722312 * 6.5722312 * 6.5722312 * 1.6526198 * 1.5285182 * > * 4 * 6.5722312 * 6.5722312 * 6.5722312 * 6.5722312 * 1.9159326 * 3.6893818 * > ************************************************************************************ > > Any idea on this strange behaviour? I use the Version 3.05/04 21 April 2003 > on gcc 2.95.2 > > Ciao, > Paolo Adragna >
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:12 MET