GSL中的N元组

N元组

本章描述用于创建和操作元组(与事件关联的值集)的函数。n元组存储在文件中。它们的值可以用任意组合提取,并使用选择函数在直方图中记录。

    要存储的值保存在用户定义的数据结构中,创建一个n元组将该数据结构与文件关联起来。然后使用下面描述的n元组函数将值写入文件(通常在一个循环中)。

可以通过提供一个选择函数和一个值函数从n元组数据中创建直方图。选择函数指定是否应该将事件包含在要分析的子集中。值函数为每个事件计算要添加到柱状图的条目。

所有的n元组函数都定义在头文件gsl_ntuple.h中。

26.1 n元组结构体

    gsl_ntuple

    使用gsl_ntuple结构体操作n元组。这个结构体包含了关于存储n元组数据的文件的信息,一个指向当前n元组数据行的指针和用户定义的n元组数据结构体的大小:

typedef struct

{

FILE * file;

void * ntuple_data;

size_t size;

} gsl_ntuple;

26.2 创建n元组

gsl_ntuple * gsl_ntuple_create(char * filename, void * ntuple_data, size_t size)

    本函数为大小为size的元组创建一个新的只写元组文件filename,并返回一个指向新创建的元组结构的指针。任何具有相同名称的现有文件都会截断为零长度并被覆盖。必须提供一个指向当前元组行ntuple_data的内存指针——该指针用于将元组复制入和复制出文件。

26.3 打开一个存在的n元组文件

gsl_ntuple * gsl_ntuple_open(char * filen ame, void * ntuple_data, size_t size)

    本函数打开一个现有的n元组文件filename为了读取,并返回一个指向相应n元组结构体的指针。文件中的元组必须有大小size。必须提供一个指向当前元组行ntuple_data的内存指针——该指针用于将元组复制入和复制出文件。

26.4 写n元组

int gsl_ntuple_write(gsl_ntuple * ntuple)

    本函数将当前大小为ntuple->size的ntuple->ntuple_data写入相应的文件。

int gsl_ntuple_bookdata(gsl_ntuple * ntuple)

    本函数与gsl_ntuple_write()的一样。

猜你喜欢

转载自blog.csdn.net/yxmlhc/article/details/120583307