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