Re: [ROOT] Trasfert of file RH72/ROOTv3.05.04 -> RH73/ROOT v3.05.04

From: Rene Brun (Rene.Brun@cern.ch)
Date: Thu Oct 23 2003 - 16:49:34 MEST


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