Some CERN ROOT stuff

Updated: 20 octobre 2014

20/10/2014

    When I tried to recompile root-v5-34-00-patches I had this error
Error: cannot open file "AvailabilityMacros.h"  include/RConfig.h:376:
Warning: Error occurred during reading source files
Warning: Error occurred during dictionary source generation
!!!Removing core/base/src/G__Base1.cxx core/base/src/G__Base1.h !!!
Error: core/utils/src/rootcint_tmp: error loading headers...
make: *** [core/base/src/G__Base1.cxx] Error 1
  • Some root flags compilation
	./configure --enable-reflex --enable-qt --with-qt-incdir=/usr/local/Trolltech/Qt-4.6.0//include --with-qt-libdir=/usr/local/Trolltech/Qt-4.6.0/lib
  • Find the maximum x abscissa of a variable from a tuple:
Sampler0->Draw("E") (event if there is no display)
double *b = Sampler0->GetV1()
TMath::MaxElement(#entries,b)
  • You have a 3D histo and you are looking at which bins correspond the global bin N :
int x,y,z ; 
histo->GetBinXYZ(N,x,y,z)
  • I was fed up to put the variables of my TNtuple (and specially when there are a lot of variables).

So I (finally) decided to make a small program to avoid that
Here the newntuple.C

int ntuple(TString file)
{
    int col = ComptCol(file);
	
	cout<<"In file " << file << " there is " << col <<endl;
    
    char var[256];
    for(int i=0;i<7;i++){
        if(i==0) sprintf(var,"var%d",i);
        else sprintf(var,"%s:var%d",var,i);
    }
    cout << var << endl;     TNtuple *nt = new TNtuple("nt","nt",var);     nt->ReadFile(file);
    return 0;
}

int ComptCol(TString file_name)
{
	ifstream file;
    int columns=0;
	char charac;

    file.open(file_name, ios::binary);

	if(!file)
	{
		cout<<" Error while opening "<< file_name << endl;
		exit(1);
	}

    while(file.get(charac)){ if(charac==' ')columns++; if(charac=='\n') return columns;}
	file.close();
}

run root. and then do

 
.L newntuple.C

and then

ntuple("THE_NAME_OF_FILE")

The variable are calling var1:var2…:vary (n=nb of columns of your file).
Then you can do :

nt->Draw("var1:var2")

enjoy !!!
hope it could help.

Ce contenu a été publié dans CHEP, Informatique. Vous pouvez le mettre en favoris avec ce permalien.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *