Dear Rene,
I did set address, and as I wrote you, when I am reading the tree in the
same root session where it was created, it works fine (btw, I am using
different branches for reading and writing).
I put NaPCMuon::Class()->GetStreamerInfo()->ls(); as you suggested,
the method to initialize the branch for reading looks like:
void NaRecEvent::SetPCMuonsRead(TTree * tree)
{
// Init Specified Branch for reading
fBrInPCMuons = tree->GetBranch(fgkBlockName[kPCMuonBL]);
// fBrInPCMuons is the TBranch* data member of the NaRecEvent class
if (!fBrInPCMuons) {
Warning("SetPCMuonsRead","No %s",fgkBlockName[kPCMuonBL]);
fBlockStatus[kPCMuonBL] = kBlockAbsent;
return;
}
Warning("SetPCMuonsRead","Found Block %s",fgkBlockName[kPCMuonBL]);
fBlockStatus[kPCMuonBL] = kReadWriteBlock;
fBrInPCMuons->SetAddress(&fPCMuons);
// fPCMuons is TClonesArray* initialized in advance by new
// TClonesArray("NaPCMuon",). NaPCMuon is the class derived from the
// mentioned abstract class
// The full hierarchy is:
// NaPCMuon : public NaTrack : public NaRecParticle : public TObject
// Only NaTrack is an abstract clas
NaPCMuon::Class()->GetStreamerInfo()->ls();
NaTrack::Class()->GetStreamerInfo()->ls();
NaRecParticle::Class()->GetStreamerInfo()->ls();
// This is by request of Rene
Warning("SetPCMuonsRead","Reading test Event");
fBrInPCMuons->GetEntry(0); // Dummy reading to create or init the space
}
Here is the output:
Warning in <NaRecEvent::SetPCMuonsRead>: Found Block PCMuons
StreamerInfo for class: NaPCMuon, version=1
BASE NaTrack offset= 0 type= 0 NA60 Track Class
Float_t fParsUncorr[6] offset=168 type=25 ax,ay,bx,by,pfit,pcomp
of Forward Space Track
Int_t fSextantId offset=200 type= 3 Sextant ID
Float_t fSlopErr2 offset=204 type= 5 RRR
i= 0, NaTrack type= 0, offset= 0, len=1, method=159434808
i= 1, fParsUncorr type= 25, offset=168, len=6, method=0
i= 2, fSextantId type= 3, offset=200, len=1, method=0
i= 3, fSlopErr2 type= 5, offset=204, len=1, method=0
StreamerInfo for class: NaTrack, version=1
BASE NaRecParticle offset= 0 type= 0 NA60 Reconstructed
Particle Class
Int_t fNClusters offset=99999 type= 3 Number of
contributing clusters
Int_t fClusters[24] offset=99999 type=23 Clusters Id's (in the
station)
i= 0, NaRecParticle type= 0, offset= 0, len=1, method=159232424
i= 1, fNClusters type= 3, offset=99999, len=1, method=0
i= 2, fClusters type= 23, offset=99999, len=24, method=0
StreamerInfo for class: NaRecParticle, version=1
BASE TObject offset= 0 type=66 Basic ROOT object
Float_t fPXYZ[3] offset= 12 type=25 Px,Py,Pz of the
Particle
Float_t fVXYZ[3] offset= 24 type=25 x,y,z of the Particle
beginning
Float_t fMass offset= 36 type= 5 Imposed mass
Float_t fPt offset= 40 type= 5 Particle Pt
Float_t fYLab offset= 44 type= 5 Lab Rapidity
Char_t fCharge offset= 48 type= 1 Particle charge
Float_t fChi2 offset= 52 type= 5 Particle quality
Int_t fNumber offset= 56 type= 3 Index in the Particles
list
Int_t fVertexId offset= 60 type= 3 Id of the vertex to
which it is attached
i= 0, TObject type= 66, offset= 0, len=1, method=0
i= 1, fPXYZ type= 25, offset= 12, len=3, method=0
i= 2, fVXYZ type= 25, offset= 24, len=3, method=0
i= 3, fMass type= 5, offset= 36, len=1, method=0
i= 4, fPt type= 5, offset= 40, len=1, method=0
i= 5, fYLab type= 5, offset= 44, len=1, method=0
i= 6, fCharge type= 1, offset= 48, len=1, method=0
i= 7, fChi2 type= 5, offset= 52, len=1, method=0
i= 8, fNumber type= 3, offset= 56, len=1, method=0
i= 9, fVertexId type= 3, offset= 60, len=1, method=0
*** Break *** segmentation violation
Root > Function readrec() busy flag cleared
Best reagrds,
Ruben
On Mon, 6 May 2002, Rene Brun wrote:
> Ruben,
>
> Did you set the branch address before reading your Tree?
> I see that the TStreamerInfo object for your base class
> has not yet been computed when you read the branch.
> This info should be computed when you set the address.
>
> In case you have correctly set the address (unlikely),
> could you add the following statement before calling GetEntry:
> NaPCMuon::Class()->GetStreamerInfo()->ls();
>
> Rene Brun
>
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:52 MET