Hi Philippe Yes, I did. I require to have at least one track for event, in fact, before to try to use my functions I wrote out the parameters of my test events. Also, if I disable the CINT optimization, everything run fine, but when I try to use another function (for example a vertexing function) I get tha same problem, so I am trying to understand the problem with the first function that I am using. About compile my code, yes I did it just before to send the first email and it compiled, except that it has a problem at the final when I try to load MyClass.so. Eduard Philippe Canal wrote: >Hi Eduard, > >I do not have quite enough information to give a definitive answer. >However, did you check that there are some tracks for the event where it >fails? If you are sure that the Trks pointer is available valid, is there >always enough value in the array returned by Trks->trpars() and >Trks->trerrs()? > >Also you can try to either compiler your code (ACLiC) or disable the CINT >optimization (.O 0) which has sometimes some troubles with some loops. > >Cheers, >Philippe. > >-----Original Message----- >From: owner-roottalk@pcroot.cern.ch >[mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Eduard De La Cruz >Burelo >Sent: Monday, March 17, 2003 5:54 AM >To: roottalk@pcroot.cern.ch >Subject: [ROOT] segmentation violation , Any idea? > > >Hello > >I have trying to figure out the problem but I have a few days working on >it without find the problem. I have a macro ( Loop() )similar which is >created by MakeClass(), but I have included a few structures, like these >ones: > >struct track_C { > > Double_t Par[5]; //Parameters > Double_t EMatrix[5][5]; //Error's Matrix > Double_t Chisq = 0; //X^2 > //int Nhits; >}; >struct track_C_list { > track_C trklist[300]; > int ntracks; // number of tracks >}; > >I also included in MyClass.C a script to fill this information: > >track_C MyClass::FillTrack(TMBTrks* Trks) >{ > > track_C trck; > > Double_t *trpars = 0; > Double_t *trerrs = 0; > > trpars = Trks->trpars(); > trerrs = Trks->trerrs(); > > trck.Par[0] = trpars[0]; > trck.Par[1] = trpars[1]; > trck.Par[2] = trpars[2]; > trck.Par[3] = trpars[3]; > trck.Par[4] = trpars[4]; > > trck.EMatrix[0][0] = trerrs[0]; > trck.EMatrix[0][1] = trerrs[1]; > trck.EMatrix[0][2] = trerrs[2]; > trck.EMatrix[0][3] = trerrs[3]; > trck.EMatrix[0][4] = trerrs[4]; > trck.EMatrix[1][1] = trerrs[5]; > trck.EMatrix[1][2] = trerrs[6]; > trck.EMatrix[1][3] = trerrs[7]; > trck.EMatrix[1][4] = trerrs[8]; > trck.EMatrix[2][2] = trerrs[9]; > trck.EMatrix[2][3] = trerrs[10]; > trck.EMatrix[2][4] = trerrs[11]; > trck.EMatrix[3][3] = trerrs[12]; > trck.EMatrix[3][4] = trerrs[13]; > trck.EMatrix[4][4] = trerrs[14]; > > > trck.EMatrix[1][0] = trerrs[1]; > trck.EMatrix[2][0] = trerrs[2]; > trck.EMatrix[2][1] = trerrs[6]; > trck.EMatrix[3][0] = trerrs[3]; > trck.EMatrix[3][1] = trerrs[7]; > trck.EMatrix[3][2] = trerrs[10]; > trck.EMatrix[4][0] = trerrs[4]; > trck.EMatrix[4][1] = trerrs[8]; > trck.EMatrix[4][2] = trerrs[11]; > trck.EMatrix[4][3] = trerrs[13]; > > trck.Chisq = Trks->getChi2Ndf(); > > return trck; >} > >if I do not use the function FillTrack, everything run fine, I can make >histograms, fill root tuples, etc., but if I use this function, I get: > >root [2] t.MyLoopMC(); > Number of events : 11000 >Event: 1 > <------- New event ---------> > We have 4 muons >Starting loop 1 ... >Starting loop 2 ... >Starting loop 2 ... >Starting loop 2 ... > Matching ... > done >0 --- 5 >Starting loop 1 ... >Starting loop 1 ... >Starting loop 2 ... > Matching ... > done >4 --- 5 > <------- Finishing New event ---------> >Event 2 > <------- New event ---------> > We have 4 muons >Starting loop 1 ... >Starting loop 1 ... >Starting loop 1 ... > <------- Finishing New event ---------> > > *** Break *** segmentation violation >Root > Function MyLoopMC() busy flag cleared > >As you can see I look for two muons and then I make a matching with MC, >that work fine, but after the second event I get a segmentation >violation and I can not find where is the problem because the event get >the end, but the next one does not start, and there is nothing between them. > >If anybody have an idea about what could be the problem please let me >know. Any help is welcome. > >Thanks a lot > >Eduard > >P.S.I am using Version 3.03/07 > > >
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:10 MET