Received: from d0sgi0.fnal.gov (d0sgi0.fnal.gov [131.225.221.44]) by d0sgim.fnal.gov (980427.SGI.8.8.8/970903.SGI.AUTOCF) via SMTP id MAA08128 for <\meena@d0sgim.fnal.gov>; Mon, 21 Dec 1998 12:32:24 -0600 (CST) Received: from FNAL.FNAL.Gov (fnal.fnal.gov [131.225.9.8]) by d0sgi0.fnal.gov (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id MAA15027 for ; Mon, 21 Dec 1998 12:32:29 -0600 Received: from d02ka.fnal.gov ("port 9472"@d02ka.fnal.gov) by FNAL.FNAL.GOV (PMDF V5.1-12 #3998) with SMTP id <01J5LLLTVQ5K0004IJ@FNAL.FNAL.GOV> for meena@d0sgi0.fnal.gov; Mon, 21 Dec 1998 12:33:03 -0600 CDT Date: Mon, 21 Dec 1998 12:33:02 -0600 (CST) From: Guilherme Lima Subject: VertexMC and VertexAnalysis To: Meenakshi Narain Cc: Frederic Stichelbaut , Guilherme Lima Message-id: MIME-version: 1.0 Content-type: TEXT/PLAIN; charset=US-ASCII Dear Meena, You can find the first presentable version of VertexMC class in d02ka: ~lima/d0/vtx/vertexutil/ As usual, the header is in vertexutil/VertexMC.hpp, and the methods are in src/VertexMC.cpp, starting from the directory above. There is some documentation on these files. As of now, VertexMC is just a class. Its main attribute is _allvtx, of type list. It stores all distinct vertices from mcpp. Distinct here means that two or more vertices at the same spatial point get merged into a single vertex, with all particles decaying at that point stored as parents, and all *charged stable* daughters stored as daughters. I showed it to Frederic today, and discussed with him. His suggestions are mainly twofold: 1) to move the _allvtx filling out from the constructor into a method, and 2) to get _allvtx stored as a chunk. I will work on these points next. But I would like to have some input from you too, concerning the current way _allvtx is declared (as a list), and also whether _allvtx is the only think to be saved on a chunk, or whether something else would also be useful. So please take a look at the above files, VertexMC.hpp and VertexMC.cpp. The other issue is vertex_analyze package, where you asked me to add an Ntuple for MC information. You can find my version of VertexAnalysis (.hpp and .cpp files) on ~lima/d0/vtx/vertex_analyze directory. It creates an Ntuple (_ptuple[4]) for MC info, and fills it from information retrieved using VertexMC. The ntuple filling is handled in a new method, fill_mcvtx_ntuple, on VertexAnalysis.cpp. The only lines needed to fill the Ntuple are: VertexMC* _pvtxmc = new VertexMC(event); list lista = _pvtxmc->getMC_distinct_vertices(); fill_mcvtx_ntuple(lista, 4); All other lines after these three are just for demonstration on how to use VertexMC's methods. They are not needed to get the Ntuple. But lots of comments are there, so I left these lines for now. Also, noticed that I included some calls after every column definition at the VERTEX block of your ntuples, like: _ptuple[i]->dimension(_maxvertex); _ptuple[i]->index("nvertex"); Without these calls, you get the whole 100 elements for all arrays stored on the ntuple, for each call to ntuple_fill, because the arrays have not been indexed to nvertex variable. Please send your comments in when available. But please note that I'm leaving today for vacations, taking advantage of FNAL's shutdown. I'll be back on January 6th, so don't expect any response until then. Happy holidays, and have a wonderful New Year! Cheers, Guilherme =========================================================================== | Guilherme Lima | Phone (630)840-2454 | Fermilab, P.O.Box 500, MS 352 | | UERJ @ D0 Exp | FAX: (630)840-8886 | Batavia, IL 60510-0500 | | Office 17 @ D0 Trailler City (East PKP) | E-mail: lima@fnal.gov | ===========================================================================