--------------269E469815F7
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
In my previous mail I forgot the attachments.
Here they are.
--Cheers,
_/_/ _/ _/ _/_/_/_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/_/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/_/_/_/ _/ _/
*----------------------------------------------------------------------* Dr. Nick van Eijndhoven Department of Subatomic Physics email : nick@phys.uu.nl Utrecht University / NIKHEF tel. +31-30-2532331 (direct) P.O. Box 80.000 tel. +31-30-2531492 (secr.) NL-3508 TA Utrecht fax. +31-30-2518689 The Netherlands WWW : http://www.phys.uu.nl/~nick Office : Ornstein lab. 172 ---------------------------------------------------------------------- tel. +41-22-7679751 (direct) CERN PPE Division / ALICE exp. tel. +41-22-7675857 (secr.) CH-1211 Geneva 23 fax. +41-22-7679480 Switzerland CERN beep : 13+7294 Office : B 160 1-012 *----------------------------------------------------------------------*
--------------269E469815F7 Content-Type: text/plain; charset=us-ascii; name="pbdata2.cc" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="pbdata2.cc"
////////////////////////////////////////////////////////////////////////// // Program to analyze the LEDA data of WA98 // // NvE 09-sep-1997 UU-SAP Utrecht //////////////////////////////////////////////////////////////////////////
#include <iostream.h> #include <math.h>
////////////////////////////////////////////////////////////////////////// typedef struct // Definition of the cluster tree data { int jrun,jevt,itword,jwscal; float etm; } Header; ////////////////////////////////////////////////////////////////////////// void positions_up(AliCalorimeter& cal) { // Determination of the lab. position of each module of the upper LEDA
float sx=4.105; // X-dimension of a module in cm float sy=4.085; // Y-dimension of a module in cm float tilt=8.31; // Tilt angle in degrees
float pi=acos(-1.); float tiltr=tilt*pi/180.; // Tilt angle in radians
float dx=sx; // X-displacement skipping 1 module horizontal float dy=sy*cos(tiltr); // Y-displacement skipping 1 module vertical float dz=sy*sin(tiltr); // Z-displacement skipping 1 module vertical
// Position of the left upper module (1,1) looking downstream float x0=293.; float y0=345.73; float z0=2180.12;
// Determine and store position of each module int nr=cal.GetNrows(); int nc=cal.GetNcolumns(); float pos[3]; for (int i=1; i<=nr; i++) { for (int j=1; j<=nc; j++) { pos[0]=x0-float(j-1)*dx; pos[1]=y0-float(i-1)*dy; pos[2]=z0+float(i-1)*dz; cal.setp(i,j,pos); } } } ////////////////////////////////////////////////////////////////////////// void positions_lw(AliCalorimeter& cal) { // Determination of the lab. position of each module of the lower LEDA
float sx=4.105; // X-dimension of a module in cm float sy=4.085; // Y-dimension of a module in cm float tilt=8.31; // Tilt angle in degrees
float pi=acos(-1.); float tiltr=tilt*pi/180.; // Tilt angle in radians
float dx=sx; // X-displacement skipping 1 module horizontal float dy=sy*cos(tiltr); // Y-displacement skipping 1 module vertical float dz=sy*sin(tiltr); // Z-displacement skipping 1 module vertical
// Position of the left lower module (1,1) looking downstream float x0=291.91; float y0=-331.14; float z0=2183.14;
// Determine and store position of each module int nr=cal.GetNrows(); int nc=cal.GetNcolumns(); float pos[3]; for (int i=1; i<=nr; i++) { for (int j=1; j<=nc; j++) { pos[0]=x0-float(j-1)*dx; pos[1]=y0+float(i-1)*dy; pos[2]=z0+float(i-1)*dz; cal.setp(i,j,pos); } } } ////////////////////////////////////////////////////////////////////////// void pbdata2() { ////////////////////////////////////////////////////////////////////////// // ROOT based analysis program for the WA98 Pb+Pb data // // NvE 09-sep-1997 UU-SAP Utrecht //////////////////////////////////////////////////////////////////////////
// Connect the tree file(s) to the chain TChain pb("h999"); pb.Add("../pb96_09066.root");
// Declaration of leaves types and branch addresses ////////////////////////////////////////////////////////// // This file has been automatically generated // (Thu Jun 18 12:56:17 1998 by ROOT version 2.00/08) // from TTree h999/PWA98 // found on file: pb96_09066.root //////////////////////////////////////////////////////////
Int_t JRUN; Int_t JEVT; Int_t JDATE; Int_t JTIME; Int_t JEVID; UInt_t JWSCAL; UInt_t ITWORD; Float_t ZDC; Float_t EMIR; Float_t EMIRE; Float_t EMIRH; Float_t ETM; Float_t ETME; Float_t ETMH; Int_t NMOD; Int_t IROWL[3000]; UInt_t ICOLL[3000]; Float_t ADCL[3000]; UInt_t IRL[3000]; Float_t THETAL[3000]; Float_t PHIL[3000]; Int_t NCLU; Int_t IROWC[400]; UInt_t ICOLC[400]; Float_t ADCC[400]; UInt_t IRC[400]; Float_t THETAC[400]; Float_t PHIC[400]; Int_t NCLUV; Int_t IADCCV[1000]; Float_t THETACV[1000]; Float_t PHICV[1000];
//Set branch addresses pb.SetBranchAddress("JRUN",&JRUN); pb.SetBranchAddress("JEVT",&JEVT); pb.SetBranchAddress("JDATE",&JDATE); pb.SetBranchAddress("JTIME",&JTIME); pb.SetBranchAddress("JEVID",&JEVID); pb.SetBranchAddress("JWSCAL",&JWSCAL); pb.SetBranchAddress("ITWORD",&ITWORD); pb.SetBranchAddress("ZDC",&ZDC); pb.SetBranchAddress("EMIR",&EMIR); pb.SetBranchAddress("EMIRE",&EMIRE); pb.SetBranchAddress("EMIRH",&EMIRH); pb.SetBranchAddress("ETM",&ETM); pb.SetBranchAddress("ETME",&ETME); pb.SetBranchAddress("ETMH",&ETMH); pb.SetBranchAddress("NMOD",&NMOD); pb.SetBranchAddress("IROWL",IROWL); pb.SetBranchAddress("ICOLL",ICOLL); pb.SetBranchAddress("ADCL",ADCL); pb.SetBranchAddress("IRL",IRL); pb.SetBranchAddress("THETAL",THETAL); pb.SetBranchAddress("PHIL",PHIL); pb.SetBranchAddress("NCLU",&NCLU); pb.SetBranchAddress("IROWC",IROWC); pb.SetBranchAddress("ICOLC",ICOLC); pb.SetBranchAddress("ADCC",ADCC); pb.SetBranchAddress("IRC",IRC); pb.SetBranchAddress("THETAC",THETAC); pb.SetBranchAddress("PHIC",PHIC); pb.SetBranchAddress("NCLUV",&NCLUV); pb.SetBranchAddress("IADCCV",IADCCV); pb.SetBranchAddress("THETACV",THETACV); pb.SetBranchAddress("PHICV",PHICV);
////////////////////////////////////////////////////////////////////////// // // Definitions completed. // Hereafter the user code may follow to perform data analysis. // //////////////////////////////////////////////////////////////////////////
// Selection of branches to be read // pb.SetBranchStatus("*",0); // disable all branches // pb.SetBranchStatus("JRUN",1); // pb.SetBranchStatus("JEVT",1); // pb.SetBranchStatus("JWSCAL",1); // pb.SetBranchStatus("ITWORD",1); // pb.SetBranchStatus("ETM",1);
// Definition of output file to be stored TFile* output = new TFile("caldat.root","RECREATE","Pb+Pb data tree"); TTree* tree=new TTree("T","WA98 Pb+Pb data");
// The event header structure Header evhead;
// Define a calorimeter consisting of a module matrix AliCalorimeter* ledaup=new AliCalorimeter(44,144); AliCalorimeter* ledalw=new AliCalorimeter(40,144);
// The various branches in the tree TBranch* b0=tree->Branch("evhead",&evhead,"jrun/I:jevt:itword:jwscal:etm/F"); TBranch* b1=tree->Branch("ledaup","AliCalorimeter",&ledaup); TBranch* b2=tree->Branch("ledalw","AliCalorimeter",&ledalw);
// Determine and store all Module positions // positions_up(ledaup); // positions_lw(ledalw);
cout << endl; cout << " ledaup dimensions : nrows = " << ledaup.GetNrows() << " ncols = " << ledaup.GetNcolumns() << endl; cout << " ledalw dimensions : nrows = " << ledalw.GetNrows() << " ncols = " << ledalw.GetNcolumns() << endl; cout << endl;
// TH1F* xgeo = new TH1F("xgeo","Scaled Et spectrum",100,0,500); // TH1F* cluold1 = new TH1F("cluold1","Munster leda1 cluster signals",500,0,1000); // TH1F* cluold2 = new TH1F("cluold2","Munster leda2 cluster signals",500,0,1000);
// The main analysis loop int nentries = pb.GetEntries(); cout << " nentries = " << nentries << endl; cout << endl;
nentries=10; // Just to test the program cout << " nentries set to " << nentries << " for testing." << endl;
int nbytes=0; int prnfreq=1; // Frequency of printing an output line
for (int ient=0; ient<nentries; ient++) { nbytes=pb.GetEvent(ient);
if (ITWORD <= 5) { // xgeo->Fill(ETM,JWSCAL);
// The Munster cluster data // int idet; // for (int i=0; i<NCLU; i++) // { // idet=1; // if (IROWC[i] > 0) idet=2; // if (idet == 1) // { // cluold1->Fill(ADCC[i]); // } // else // { // cluold2->Fill(ADCC[i]); // } // }
// Fill the event header data evhead.jrun=JRUN; evhead.jevt=JEVT; evhead.itword=ITWORD; evhead.jwscal=JWSCAL; evhead.etm=ETM;
// Fill calorimeter with module data for (int j=0; j<NMOD; j++) { if (ADCL[j] > 3) { if (IROWL[j] > 0) ledaup.SetSignal(IROWL[j],ICOLL[j],ADCL[j]); if (IROWL[j] < 0) ledalw.SetSignal(-IROWL[j],ICOLL[j],ADCL[j]); } }
if ((ient%prnfreq) == 0) // Print a line every 'prnfreq' events { cout << " ient = " << (ient+1) << " itword = " << ITWORD << " etm = " << ETM << " still " << (nentries-(ient+1)) << " to go." << endl; cout << " No. ledaup modules with a signal : " << ledaup.GetNsignals() << endl; cout << " No. ledalw modules with a signal : " << ledalw.GetNsignals() << endl; }
// Perform clustering on the calorimeter // ledaup.Group(2); // look in maximal 2 rings around central module // ledalw.Group(2); // look in maximal 2 rings around central module
// int nclup=ledaup.GetNclusters(); // int ncllw=ledalw.GetNclusters();
// cout << endl; // cout << " Reconstructed no. of clusters in ledaup : " << nclup << endl; // cout << " Reconstructed no. of clusters in ledalw : " << ncllw << endl;
// Write the data to the tree tree->Fill();
// Reset the complete calorimeter ledaup.Reset(); ledalw.Reset();
} }
tree->Print(); // Provide overview of the Tree contents
// Write the produced histos to the output file(s) output->Write(); output->Close(); }
--------------269E469815F7 Content-Type: text/plain; charset=us-ascii; name="pbdata2.log" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="pbdata2.log"
the current keyboard layout is 437 ******************************************* * * * W E L C O M E to R O O T * * * * Version 2.00/08 5 June 1998 * * * * You are welcome to visit our Web site * * http://root.cern.ch * * * *******************************************
CINT/ROOT C/C++ Interpreter version 5.13.55, May 16 1998 Type ? for help. Commands must be C++ statements. Enclose multiple statements between { }.
--- Welcome to the ROOT general session ---
--- Tree and RALICE classes are loaded by default ---
*** Start at Date : 18-aug-98 Time : 10:52:35 ***
NULL
Processing pbdata2.cc...
ledaup dimensions : nrows = 44 ncols = 144 ledalw dimensions : nrows = 40 ncols = 144
nentries = 3333
nentries set to 10 for testing. ient = 1 itword = 5 etm = 7.47261 still 9 to go. No. ledaup modules with a signal : 0 No. ledalw modules with a signal : 0 ient = 2 itword = 5 etm = 7.93093 still 8 to go. No. ledaup modules with a signal : 34 No. ledalw modules with a signal : 35 ient = 3 itword = 3 etm = 290.969 still 7 to go. No. ledaup modules with a signal : 430 No. ledalw modules with a signal : 314 ient = 4 itword = 5 etm = 6.79157 still 6 to go. No. ledaup modules with a signal : 8 No. ledalw modules with a signal : 14 ient = 5 itword = 3 etm = 375.195 still 5 to go. No. ledaup modules with a signal : 521 No. ledalw modules with a signal : 459 ient = 6 itword = 1 etm = 70.8652 still 4 to go. No. ledaup modules with a signal : 103 No. ledalw modules with a signal : 110 ient = 7 itword = 3 etm = 292.347 still 3 to go. No. ledaup modules with a signal : 400 No. ledalw modules with a signal : 378 ient = 8 itword = 3 etm = 280.064 still 2 to go. No. ledaup modules with a signal : 393 No. ledalw modules with a signal : 357 ient = 9 itword = 5 etm = 3.32494 still 1 to go. No. ledaup modules with a signal : 19 No. ledalw modules with a signal : 19 ient = 10 itword = 3 etm = 303.525 still 0 to go. No. ledaup modules with a signal : 370 No. ledalw modules with a signal : 309 ****************************************************************************** *Tree :T : WA98 Pb+Pb data * *Entries : 10 : Total Size = 286164 bytes File Size = 41594 * * : : Tree compression factor = 6.88 * ****************************************************************************** *Branch :evhead : jrun/I:jevt:itword:jwscal:etm/F * *Entries : 10 : Total Size = 0 bytes File Size = 0 * *Baskets : 0 : Basket Size = 32000 bytes Compression= 1.00 * *............................................................................* *Branch :ledaup : ledaup * *Entries : 10 : BranchObject (see below) * *............................................................................* *Branch :fNrows : fNrows * *Entries : 10 : Total Size = 0 bytes File Size = 0 * *Baskets : 0 : Basket Size = 32000 bytes Compression= 1.00 * *............................................................................* *Branch :fNcolumns : fNcolumns * *Entries : 10 : Total Size = 0 bytes File Size = 0 * *Baskets : 0 : Basket Size = 32000 bytes Compression= 1.00 * *............................................................................* *Branch :fNsignals : fNsignals * *Entries : 10 : Total Size = 0 bytes File Size = 0 * *Baskets : 0 : Basket Size = 32000 bytes Compression= 1.00 * *............................................................................* *Branch :fNclusters : fNclusters * *Entries : 10 : Total Size = 0 bytes File Size = 0 * *Baskets : 0 : Basket Size = 32000 bytes Compression= 1.00 * *............................................................................* *Branch :fModules : fModules * *Entries : 10 : Total Size = 157150 bytes File Size = 22133 * *Baskets : 5 : Basket Size = 32000 bytes Compression= 7.10 * *............................................................................* *Branch :fClusters : fClusters * *Entries : 10 : Total Size = 0 bytes File Size = 0 * *Baskets : 0 : Basket Size = 32000 bytes Compression= 1.00 * *............................................................................* *Branch :fUniqueID : fUniqueID * *Entries : 10 : Total Size = 0 bytes File Size = 0 * *Baskets : 0 : Basket Size = 32000 bytes Compression= 1.00 * *............................................................................* *Branch :fBits : fBits * *Entries : 10 : Total Size = 0 bytes File Size = 0 * *Baskets : 0 : Basket Size = 32000 bytes Compression= 1.00 * *............................................................................* *Branch :ledalw : ledalw * *Entries : 10 : BranchObject (see below) * *............................................................................* *Branch :fNrows : fNrows * *Entries : 10 : Total Size = 0 bytes File Size = 0 * *Baskets : 0 : Basket Size = 32000 bytes Compression= 1.00 * *............................................................................* *Branch :fNcolumns : fNcolumns * *Entries : 10 : Total Size = 0 bytes File Size = 0 * *Baskets : 0 : Basket Size = 32000 bytes Compression= 1.00 * *............................................................................* *Branch :fNsignals : fNsignals * *Entries : 10 : Total Size = 0 bytes File Size = 0 * *Baskets : 0 : Basket Size = 32000 bytes Compression= 1.00 * *............................................................................* *Branch :fNclusters : fNclusters * *Entries : 10 : Total Size = 0 bytes File Size = 0 * *Baskets : 0 : Basket Size = 32000 bytes Compression= 1.00 * *............................................................................* *Branch :fModules : fModules * *Entries : 10 : Total Size = 129014 bytes File Size = 19461 * *Baskets : 5 : Basket Size = 32000 bytes Compression= 6.63 * *............................................................................* *Branch :fClusters : fClusters * *Entries : 10 : Total Size = 0 bytes File Size = 0 * *Baskets : 0 : Basket Size = 32000 bytes Compression= 1.00 * *............................................................................* *Branch :fUniqueID : fUniqueID * *Entries : 10 : Total Size = 0 bytes File Size = 0 * *Baskets : 0 : Basket Size = 32000 bytes Compression= 1.00 * *............................................................................* *Branch :fBits : fBits * *Entries : 10 : Total Size = 0 bytes File Size = 0 * *Baskets : 0 : Basket Size = 32000 bytes Compression= 1.00 * *............................................................................* TFile Writing Name=caldat.root Title=Pb+Pb data tree
--- General ROOT session ended ---
*** Stop at Date : 18-aug-98 Time : 10:52:40 ***
NULL NULL
--------------269E469815F7--