Hi Jean-Eric,
Our official ROOT releases under AFS are at
/afs/cern.ch/sw/root/v3.05.04/rh73_gcc296
See also our latest AFS versions from http://root.cern.ch
I see a difference between our official version and the one that you are using.
Our version does not reference libstdc++-libc6.2-2.so.3.
Could you try to link with the file mentionned above and let me know?
We have no changes in the TRef logic since monthes.
Rene Brun
Jean-Eric Campagne wrote:
>
> Dear developers,
>
> I have produced a ROOT TTree/TFolder structure saved on a TFile with ROOT
> v3.05.04 under linux RedHat 7.2 with gcc 296. This file is well treated
> afterwards under other machine running the same RedHat version and ROOT
> version.
>
> But, transfering the File under LXPLUS running RH73 and compiling my
> application with
> /afs/cern.ch/sw/packages/ROOT/v3.05.04/rh73_gcc296
>
> I get a Abort that valgrind diagnostic is
>
> ==6757== Jump to the invalid address stated on the next line
> ==6757== at 0x0: ???
> ==6757== by 0x41C5E512: __dynamic_cast_2 (in
> /usr/lib/libstdc++-3-libc6.2-2-2.10.0.so)
> ==6757== by 0x40799928: RTSCINHit::LocalParticle(void)
> (../OpRData/RTSCINHit.cpp:30)
> ==6757== by 0x402CEBBE: Tree2Tree::create(RTSCINHit *)
> (../OpIO/Tree2Tree.cpp
>
> The statement pointed is
>
> RParticle* RTSCINHit::LocalParticle() {
> return dynamic_cast<RParticle*>(fLocalParticle.GetObject());
> }
>
> That is to say the TObejct* stored as a TRef is not recognized anymore. Do
> you have a comment on the trasfert of file created and than treated under
> two different of machine systems ?
>
> Best regards,
> Jean-Eric Campagne
>
> I give you below the RTSCINHit class definition
>
> #ifndef OPDATA_RTSCINHIT_H
> #define OPDATA_RTSCINHIT_H 1
>
> #include <iostream>
> #include "TObject.h"
> #include "TRef.h"
>
> class RParticle;
>
> class RTSCINHit : public TObject {
> public:
> //Ctor
> RTSCINHit() :
> fX(0.),
> fY(0.),
> fZ(0.),
> fSciBar(0),
> fSciBox(0),
> fSciWall(0),
> fSciSM(0),
> fEdep(0.) {
>
> fIndex = nextId++;
> fLocalParticle = 0;
> fPrimaryParticle = 0; //JEC 4/3/03
> fMotherParticle = 0; //JEC 17/3/03
>
> }
>
> //Copy Ctor 4/3/03
> RTSCINHit(const RTSCINHit& a);
> //JEC 4/3/03 use copy ctor to clone an object
> RTSCINHit* clone() const { return new RTSCINHit(*this);}
>
> //Dtor
> virtual ~RTSCINHit() {
> //cout << "Delete RTSCINHit(" << this << ")" << endl;
> }
>
> //list of accessors
> Long_t Index() const { return fIndex;}
> Long_t Index() { return fIndex;}
> void SetIndex(Long_t index) { fIndex = index; }
> static void ResetId() {nextId = 0;}
> static void SetNextId(Long_t value) { nextId = value;}
>
> Float_t X() const { return fX;}
> Float_t X() { return fX;}
> void SetX(Float_t x) { fX = x; }
>
> Float_t Y() const { return fY;}
> Float_t Y() { return fY;}
> void SetY(Float_t y) { fY = y; }
>
> Float_t Z() const { return fZ;}
> Float_t Z() { return fZ;}
> void SetZ(Float_t z) { fZ = z; }
>
> Int_t SciBar() const { return fSciBar;}
> Int_t SciBar() { return fSciBar;}
> void SetSciBar(Int_t scibar) {fSciBar=scibar;}
>
> Int_t SciBox() const { return fSciBox;}
> Int_t SciBox() { return fSciBox;}
> void SetSciBox(Int_t scibox) {fSciBox=scibox;}
>
> Int_t SciWall() const { return fSciWall;}
> Int_t SciWall() { return fSciWall;}
> void SetSciWall(Int_t sciwall) {fSciWall=sciwall;}
>
> Int_t SciSM() const { return fSciSM;}
> Int_t SciSM() { return fSciSM;}
> void SetSciSM(Int_t scism) {fSciSM=scism;}
>
> Float_t Edep() const { return fEdep;}
> Float_t Edep() { return fEdep;}
> void SetEdep(Float_t edep) { fEdep = edep; }
>
> //JEC 4/3/03
> RParticle* LocalParticle() const;
> RParticle* LocalParticle();
> void SetLocalParticle(RParticle*& value);
>
> //JEC 4/3/03
> RParticle* PrimaryParticle() const;
> RParticle* PrimaryParticle();
> void SetPrimaryParticle(RParticle*& value);
>
> //JEC 18/3/03
> RParticle* MotherParticle() const;
> RParticle* MotherParticle();
> void SetMotherParticle(RParticle*& value);
>
> private:
> //index JEC 4/3/03
> static Long_t nextId;
> Long_t fIndex;
>
> //X,Y,Z
> Float_t fX;
> Float_t fY;
> Float_t fZ;
> // Volume identification
> Int_t fSciBar;
> Int_t fSciBox;
> Int_t fSciWall;
> Int_t fSciSM;
>
> // deposited energy
> Float_t fEdep;
>
> //JEC 4/3/03 The Particle Informations are filled in RParticle
> //while there is no need to reference the event number...
> //Local State of the Particle that produces the hits
> TRef fLocalParticle;
>
> //Primary Particle JEC 4/3/03
> TRef fPrimaryParticle;
>
> //Mother Particle JEC 18/3/03
> TRef fMotherParticle;
>
> ClassDef(RTSCINHit,2) //Root version of Target Tracker scintillator Hit
> };
>
> #endif // OPRDATA_RTSCINHIT_H
>
> ...........................................................................
> .LAL - IN2P3 - CNRS
> .LAL - B.P 34 - 91898 Orsay Cedex - France
> .Piece 108
> .Tel +33 (0)1 64 46 84 29
> .Fax +33 (0)1 64 46 83 97
> ...........................................................................
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:16 MET