Re: trying to get tpm1 vertex

From: Stephen J. Sanders (ssanders@ukans.edu)
Date: Thu Mar 29 2001 - 17:28:32 EST

  • Next message: Yury Blyakhman: "BB Calibration."

    Hi Peter,  This was clearly part of my problem.  Thanks!  Unfortunately, it
    looks like there may be more to it. I am now failing with:
    
    Error in <TObjArray::At>: index 231652999 out of bounds (size: 4, this:
    0x7ffe5f68)
    
    Doing a backtrace with gdb I get:
    
    Program received signal SIGSEGV, Segmentation fault.
    BrTPCCluster::GetID (this=0x0)
        at /home/sanders/Brahms/brat/include/BrTPCCluster.h:52
    52   Int_t   GetID()       const {return fID;}
    
    (gdb) backtrace
    #0  BrTPCCluster::GetID (this=0x0)
        at /home/sanders/Brahms/brat/include/BrTPCCluster.h:52
    #1  0xe8b0d78 in BrTPCClusterFinder::FillSubClusters (this=0x10a02ba0,
        npeaks=2, SubClusters=0x7ffe5f68) at BrTPCClusterFinder.cxx:898
    #2  0xe8af888 in BrTPCClusterFinder::FindSubClusters (this=0x10a02ba0,
        primaryCluster=0x1211dc48, subClusters=0x7ffe5f68)
        at BrTPCClusterFinder.cxx:624
    #3  0xe8af158 in BrTPCClusterFinder::DeconvoluteClusters (this=0x10a02ba0)
        at BrTPCClusterFinder.cxx:527
    #4  0xe8aca14 in BrTPCClusterFinder::Entry (this=0x10a02ba0)
        at BrTPCClusterFinder.cxx:120
    #5  0xe8ab884 in BrClusterFinderBase::Event (this=0x10a02ba0,
        inputnode=0x120fbf90) at BrClusterFinderBase.cxx:190
    #6  0xe2b6308 in MultReplay::Replay (this=0x109d3080, fnameIn=0x1210f080 "",
        runnum=2336, seq0=3, numSeqTot=1, maxevnt=10000000)
        at src/multReplay.cxx:285
    
    I'm afraid I might be too far ahead of the pack switching to root 3....Here I
    thought I was just catching up!
    I should also correct an error in my initial posting:  I found the 3.00.06
    version of root on afs.  When I indicated earlier that it wasn't available on
    the rcas machines, I had been looking in /brahms/u/brahmslib. I also now see
    that I was trying, and failing, to build brat against 2.24.04.   I will try to
    build against 2.25.03--hopefully this will fix my immediate problems...
    
    ...Steve
    
    
    
    Peter H. L. Christiansen" wrote:
    
    > Hi Steve
    >
    > I don't understand exactly what is wrong, but the idea with this part of
    > the code was that I look in the BrDataTable where the sequences are and I
    > want to find a particular sequence, but the pointer adresses are different
    > because the clusters own the sequences. I use the root method :
    > http://root.cern.ch/root/html/src/TCollection.cxx.html#TCollection:FindObject
    > (Not the first but the second one) and overloads IsEqual() for the
    > BrTPCSequence.
    >
    > This used to work fine for me, but maybe something changed in root 3,
    > and it did.
    >
    > I looked at the root home page and found that :
    >
    > Constness
    > =========
    >
    > We have modified the signature of many methods (in particular in the
    > TObject base class) to introduce more constness in the system.
    > You must change your code if your classes derive from TObject and use
    > one of the modified functions such as ls(), Print(), Compare(), Hash(),
    > etc. The modified TObject methods are:
    >
    >     virtual TObject    *Clone(const char *newname="") const;
    >     virtual Int_t       Compare(const TObject *obj) const;
    >     virtual void        DrawClass() const;
    >     virtual TObject    *DrawClone(Option_t *option="") const;
    >     virtual void        Dump() const;
    >     virtual TObject    *FindObject(const TObject *obj) const;
    >     virtual char       *GetObjectInfo(Int_t px, Int_t py) const;
    >     virtual ULong_t     Hash() const;
    >     virtual void        Inspect() const;
    >     virtual Bool_t      IsEqual(const TObject *obj) const;
    >     virtual void        ls(Option_t *option="") const;
    >     virtual void        Print(Option_t *option="") const;
    >
    > This is the only source of backward incompatibility and we urge you to
    > carefully check your code. Some compilers will warn you about your old
    > "Hash()" hiding the new "Hash() const" but, e.g. not g++. So if for
    > example
    > none of your objects are found anymore in containers than it is very
    > likely
    > you have to fix IsEqual(), Compare() and/or Hash().
    >
    > So Steve I think you should make IsEqual const (just modify it in the
    > header) and check it in if it works - do we need both versions ? - so
    > maybe wait with the check in.
    >
    > Cheers
    >     Peter
    >
    > --
    > :-) --------------------------------- )-:
    > |Peter H L Christiansen aka PAN @ NBI   |
    > |EMAIL  : pchristi@nbi.dk               |
    > |OFFICE : Tb1 @ NBI                     |
    > |PHONE  : 353 25269                     |
    > |SNAIL  : Hans Tavsensgade 35, 4th      |
    > |PHONE  : 35 349336                     |
    > :-D --------------------------------- \-:
    



    This archive was generated by hypermail 2b29 : Thu Mar 29 2001 - 17:29:57 EST