[Frost] rootbear type declarations for banks

Michael Dugger dugger at jlab.org
Wed May 12 08:54:26 EDT 2010


Ken,

Thanks a lot for the information. I'm still trying to figure out how I 
want to do things in ROOT. I understand that if I make the tree then I no 
longer need the rootbeer framework. This might be good for me. I'm not 
sure yet.

-Michael

On Wed, 12 May 2010, Ken Livingston wrote:

> Hi Michael, Brian,
> Firstly, don't mix up you beers and your bears. It can be confusing when
> you order a large one in a bar!
>
> The structures rootbeer uses for banks are in
> $ROOTBEER/include/bankheader.h, which is made by parsing clasbanks.dll.
> Look for GPID in there (in CUE clasg9 account for example). I've
> explicitly inculded at the end of this mail too.
>
> A quick way to see the struct for any BANK is to bankdump a file:
>
> clasg9>bankdump -GGPID <bosfile|rootDST>
>
> Not sure what you want to do. I'll stress what rootbeer does in case you
> don't know.
> rootbeer handles the reading of banks from BOS files or rootDST files,
> and the writing of banks in rootDST files.
> It was designed specifically for folk with no experience in C++, and
> little root experience. If you're using the rootbeer scheme you don't
> NEED to write your own trees for banks. You can just make DSTs.
> You could make you own trees, or add your own branches to the main DST
> tree for things which are not handled in a BANK format - eg if you do
> PID and want to write out TLorentzVectors or something.
> If you really need to shrink the output and only write essential
> information then it's best to write your own tree rather than a DST.
>
> There's a link on the frost wiki about rootbeer, with a pointer to the
> manual and tutorials.
>
> http://clasweb.jlab.org/rungroups/g9/wiki/index.php/Rootbeer%
> 2C_including_eloss_and_ExpTable
>
>
>
>
> GPID struct is like this
>
> ....
> ....
> typedef struct GPID_t {		//  ST-SC PID bank
> 	int	pid;            //  particle id (GEANT)
> 	float	x;              //  vector3_t vert; Vertex position {x,y,z}
> 	float	y;              //  y
> 	float	z;              //  z
> 	float	E;              //  vector4_t p; Energy
> 	float	px;             //  momentum {x,y,z}
> 	float	py;             //   py
> 	float	pz;             //  pz
> 	int	q;              //  charge
> 	int	trkid;          //  index to TBID bank, counting from 1
> 	int	sec;            //  Sector track is in
> 	int	paddle;         //  Paddle hit
> 	float	dedx;           //  Energy deposited in TOF
> 	float	beta;           //  beta pmag/E
> 	int	sc_stat;        //  status of hit matching to SC: see sc.h
> 	float	sc_time;        //  SC calibrated time for this track (ns)
> 	float	sc_len;         //  track length [cm] from origin to SC
> 	int	st_stat;        //  ST status
> 	float	st_time;        //  ST calibrated time for this track (ns)
> 	float	st_len;         //  track length [cm] from origin to ST
> 	float	mass;           //  mass from time-of-flight
> 	int	mass_ref;       //  0: mass calc from SC & TAG, 1: SC & ST; -1
> neutral or no SC;2:from PART
> 	float	betam;          //  beta from time_of-flight
> 	float	epho;           //  closest photon energy (GeV)
> 	float	tpho;           //  Time of the photon after RF correction
> 	int	tagrid;         //  index to TAGR bank, counting from 1
> 	int	ngrf;           //  number of photons in the same RF bucket
> 	int	ppid;           //  pid as seen in PART bank
> } GPID_t;
> ....
> ....
>
> The way of accessing the info in the struct is, for example,
>
> time=GPID[row].st_time;
>
>
>
>
> Cheers,
> Ken
>
> On Tue, 2010-05-11 at 19:13 -0400, Michael Dugger wrote:
>> Hi,
>>
>> Where can I find the type declarations for the banks? In particular, I
>> would like to know the type declaration for each of the GPID variables
>> within the rootbear framework.
>>
>> Thanks for your time.
>>
>> -Michael
>> _______________________________________________
>> Frost mailing list
>> Frost at jlab.org
>> https://mailman.jlab.org/mailman/listinfo/frost
>
>


More information about the Frost mailing list