Hi Mario, the problem is in your constructor: > (in constructor) > myFile = new TFile(filename,"RECREATE"); > myTree = new TTree("T1","ORCA tutorial tree"); > myNumberOfTowers=0; > > myTree->Branch("Ntowers", &myNumberOfTowers, "Ntowers/I"); > myTree->Branch("Etower", &myETw, "Etower[Ntowers]/F"); > myTree->Branch("Phitower", &myPhiTw, "Phitower[Ntowers]/F"); > myTree->Branch("Etatower", &myEtaTw, "Etatower[Ntowers]/F"); > > myMuonNr=0; > > myTree->Branch("MuonNr", &myMuonNr, "MuonNr/I"); > myTree->Branch("Px", &myPx, "Px/F"); > myTree->Branch("Py", &myPy, "Py/F"); > myTree->Branch("Pz", &myPz, "Pz/F"); > myTree->Branch("P", &myP, "P/F"); > myTree->Branch("N", &myN, "N/I"); > Here you say to ROOT two quite different things about Towers and Muons: - Tower data are declared as arrays of floats with Ntowers elements ("Etower[Ntowers]/F" means this); - Muon data are declared as simple float values ("Px/F"). The correct declaration for the Muon data should be myTree->Branch("MuonNr", &myMuonNr, "MuonNr/I"); myTree->Branch("Px", &myPx, "Px[MuonNr]/F"); myTree->Branch("Py", &myPy, "Py[MuonNr]/F"); myTree->Branch("Pz", &myPz, "Pz[MuonNr]/F"); myTree->Branch("P", &myP, "P[MuonNr]/F"); myTree->Branch("N", &myN, "N[MuonNr]/I"); which declares everything as arrays of float with MuonNr elements. Cheers, .Andrea. -- Andrea 'fwyzard' Bocci - Andrea.Bocci@cern.ch Università di Firenze - Dipartimento di Fisica
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:08 MET