Dear root team,
When creating the class TreeH0.C and the header file TreeH0.h in the
following way:
root[] TChain hits("TreeH0")
root[] hits.Add("galice.root/TreeH0")
.
.
root[] hits.MakeClass()
... TreeH0.C and TreeH0.h are created.
When compiling TreeH0.C the following error occured:
TreeH0.h:302: `b_TTRAC' undeclared (first use this function)
In line 83 (see attachment) there is a definition:
TBranch *b_TTRAC_;
When I delete the last underline the thing compiles. So could it be that
there is an error in naming the branches of the tree?
Unfortunately I still did not manage to run the thing, because the main()
that I added in TreeH0.C produces a segmentation fault when declaring
TreeH0 hit;
(see attachment)
Can you please help me??
Best greetings,
Martin
//////////////////////////////////////////////////////////
// This class has been automatically generated
// (Fri Jan 11 10:35:08 2002 by ROOT version3.02/06)
// from TChain TreeH0/
//////////////////////////////////////////////////////////
#ifndef TreeH0_h
#define TreeH0_h
#include <TBranch.h>
#include <TROOT.h>
#include <TChain.h>
#include <TFile.h>
const Int_t kMaxTTRAC = 28351;
const Int_t kMaxBRICK = 10122;
const Int_t kMaxDRIFT = 48;
class TreeH0 {
public :
TTree *fChain; //!pointer to the analyzed TTree or TChain
Int_t fCurrent; //!current Tree number in a TChain
//Declaration of leaves types
Int_t TTRAC_;
UInt_t TTRAC_fUniqueID[kMaxTTRAC]; //[TTRAC_]
UInt_t TTRAC_fBits[kMaxTTRAC]; //[TTRAC_]
Int_t TTRAC_fTrack[kMaxTTRAC]; //[TTRAC_]
Float_t TTRAC_fX[kMaxTTRAC]; //[TTRAC_]
Float_t TTRAC_fY[kMaxTTRAC]; //[TTRAC_]
Float_t TTRAC_fZ[kMaxTTRAC]; //[TTRAC_]
Int_t TTRAC_fVol0[kMaxTTRAC]; //[TTRAC_]
Int_t TTRAC_fVol1[kMaxTTRAC]; //[TTRAC_]
Int_t TTRAC_fVol2[kMaxTTRAC]; //[TTRAC_]
Int_t TTRAC_fVol3[kMaxTTRAC]; //[TTRAC_]
Int_t TTRAC_fVol4[kMaxTTRAC]; //[TTRAC_]
Int_t TTRAC_fVol5[kMaxTTRAC]; //[TTRAC_]
Int_t TTRAC_fVol6[kMaxTTRAC]; //[TTRAC_]
Int_t TTRAC_fVol7[kMaxTTRAC]; //[TTRAC_]
Int_t TTRAC_fVol8[kMaxTTRAC]; //[TTRAC_]
Int_t TTRAC_fVol9[kMaxTTRAC]; //[TTRAC_]
Int_t TTRAC_fId[kMaxTTRAC]; //[TTRAC_]
Int_t TTRAC_fEvNumber[kMaxTTRAC]; //[TTRAC_]
Int_t BRICK_;
UInt_t BRICK_fUniqueID[kMaxBRICK]; //[BRICK_]
UInt_t BRICK_fBits[kMaxBRICK]; //[BRICK_]
Int_t BRICK_fTrack[kMaxBRICK]; //[BRICK_]
Float_t BRICK_fX[kMaxBRICK]; //[BRICK_]
Float_t BRICK_fY[kMaxBRICK]; //[BRICK_]
Float_t BRICK_fZ[kMaxBRICK]; //[BRICK_]
Int_t BRICK_fVol0[kMaxBRICK]; //[BRICK_]
Int_t BRICK_fVol1[kMaxBRICK]; //[BRICK_]
Int_t BRICK_fVol2[kMaxBRICK]; //[BRICK_]
Int_t BRICK_fVol3[kMaxBRICK]; //[BRICK_]
Int_t BRICK_fVol4[kMaxBRICK]; //[BRICK_]
Int_t BRICK_fVol5[kMaxBRICK]; //[BRICK_]
Int_t BRICK_fVol6[kMaxBRICK]; //[BRICK_]
Int_t BRICK_fVol7[kMaxBRICK]; //[BRICK_]
Int_t BRICK_fVol8[kMaxBRICK]; //[BRICK_]
Int_t BRICK_fVol9[kMaxBRICK]; //[BRICK_]
Int_t BRICK_fId[kMaxBRICK]; //[BRICK_]
Int_t BRICK_fEvNumber[kMaxBRICK]; //[BRICK_]
Int_t DRIFT_;
UInt_t DRIFT_fUniqueID[kMaxDRIFT]; //[DRIFT_]
UInt_t DRIFT_fBits[kMaxDRIFT]; //[DRIFT_]
Int_t DRIFT_fTrack[kMaxDRIFT]; //[DRIFT_]
Float_t DRIFT_fX[kMaxDRIFT]; //[DRIFT_]
Float_t DRIFT_fY[kMaxDRIFT]; //[DRIFT_]
Float_t DRIFT_fZ[kMaxDRIFT]; //[DRIFT_]
Int_t DRIFT_fVol0[kMaxDRIFT]; //[DRIFT_]
Int_t DRIFT_fVol1[kMaxDRIFT]; //[DRIFT_]
Int_t DRIFT_fVol2[kMaxDRIFT]; //[DRIFT_]
Int_t DRIFT_fVol3[kMaxDRIFT]; //[DRIFT_]
Int_t DRIFT_fVol4[kMaxDRIFT]; //[DRIFT_]
Int_t DRIFT_fVol5[kMaxDRIFT]; //[DRIFT_]
Int_t DRIFT_fVol6[kMaxDRIFT]; //[DRIFT_]
Int_t DRIFT_fVol7[kMaxDRIFT]; //[DRIFT_]
Int_t DRIFT_fVol8[kMaxDRIFT]; //[DRIFT_]
Int_t DRIFT_fVol9[kMaxDRIFT]; //[DRIFT_]
Int_t DRIFT_fId[kMaxDRIFT]; //[DRIFT_]
Int_t DRIFT_fEvNumber[kMaxDRIFT]; //[DRIFT_]
//List of branches
TBranch *b_TTRAC; //!
TBranch *b_TTRAC_fUniqueID; //!
TBranch *b_TTRAC_fBits; //!
TBranch *b_TTRAC_fTrack; //!
TBranch *b_TTRAC_fX; //!
TBranch *b_TTRAC_fY; //!
TBranch *b_TTRAC_fZ; //!
TBranch *b_TTRAC_fVol0; //!
TBranch *b_TTRAC_fVol1; //!
TBranch *b_TTRAC_fVol2; //!
TBranch *b_TTRAC_fVol3; //!
TBranch *b_TTRAC_fVol4; //!
TBranch *b_TTRAC_fVol5; //!
TBranch *b_TTRAC_fVol6; //!
TBranch *b_TTRAC_fVol7; //!
TBranch *b_TTRAC_fVol8; //!
TBranch *b_TTRAC_fVol9; //!
TBranch *b_TTRAC_fId; //!
TBranch *b_TTRAC_fEvNumber; //!
TBranch *b_BRICK; //!
TBranch *b_BRICK_fUniqueID; //!
TBranch *b_BRICK_fBits; //!
TBranch *b_BRICK_fTrack; //!
TBranch *b_BRICK_fX; //!
TBranch *b_BRICK_fY; //!
TBranch *b_BRICK_fZ; //!
TBranch *b_BRICK_fVol0; //!
TBranch *b_BRICK_fVol1; //!
TBranch *b_BRICK_fVol2; //!
TBranch *b_BRICK_fVol3; //!
TBranch *b_BRICK_fVol4; //!
TBranch *b_BRICK_fVol5; //!
TBranch *b_BRICK_fVol6; //!
TBranch *b_BRICK_fVol7; //!
TBranch *b_BRICK_fVol8; //!
TBranch *b_BRICK_fVol9; //!
TBranch *b_BRICK_fId; //!
TBranch *b_BRICK_fEvNumber; //!
TBranch *b_DRIFT; //!
TBranch *b_DRIFT_fUniqueID; //!
TBranch *b_DRIFT_fBits; //!
TBranch *b_DRIFT_fTrack; //!
TBranch *b_DRIFT_fX; //!
TBranch *b_DRIFT_fY; //!
TBranch *b_DRIFT_fZ; //!
TBranch *b_DRIFT_fVol0; //!
TBranch *b_DRIFT_fVol1; //!
TBranch *b_DRIFT_fVol2; //!
TBranch *b_DRIFT_fVol3; //!
TBranch *b_DRIFT_fVol4; //!
TBranch *b_DRIFT_fVol5; //!
TBranch *b_DRIFT_fVol6; //!
TBranch *b_DRIFT_fVol7; //!
TBranch *b_DRIFT_fVol8; //!
TBranch *b_DRIFT_fVol9; //!
TBranch *b_DRIFT_fId; //!
TBranch *b_DRIFT_fEvNumber; //!
TreeH0(TTree *tree=0);
~TreeH0();
Int_t Cut(Int_t entry);
Int_t GetEntry(Int_t entry);
Int_t LoadTree(Int_t entry);
void Init(TTree *tree);
void Loop(Int_t nn = 0);
Bool_t Notify();
void Show(Int_t entry = -1);
};
#endif
#ifdef TreeH0_cxx
TreeH0::TreeH0(TTree *tree)
{
// if parameter tree is not specified (or zero), connect the file
// used to generate this class and read the Tree.
if (tree == 0) {
#ifdef SINGLE_TREE
// The following code should be used if you want this class to access
// a single tree instead of a chain
TFile *f = (TFile*)gROOT->GetListOfFiles()->FindObject("Memory Directory");
if (!f) {
f = new TFile("Memory Directory");
f->cd("Rint:/");
}
tree = (TTree*)gDirectory->Get("TreeH0");
#else // SINGLE_TREE
// The following code should be used if you want this class to access a chain
// of trees.
TChain * chain = new TChain("TreeH0","");
chain->Add("galice.root/TreeH0");
chain->Add("galice.root/TreeH1");
chain->Add("galice.root/TreeH2");
chain->Add("galice.root/TreeH3");
chain->Add("galice.root/TreeH4");
chain->Add("galice.root/TreeH5");
chain->Add("galice.root/TreeH6");
chain->Add("galice.root/TreeH7");
chain->Add("galice.root/TreeH8");
chain->Add("galice.root/TreeH9");
chain->Add("galice.root/TreeH10");
chain->Add("galice.root/TreeH11");
chain->Add("galice.root/TreeH12");
chain->Add("galice.root/TreeH13");
chain->Add("galice.root/TreeH14");
chain->Add("galice.root/TreeH15");
chain->Add("galice.root/TreeH16");
chain->Add("galice.root/TreeH17");
chain->Add("galice.root/TreeH18");
chain->Add("galice.root/TreeH19");
tree = chain;
#endif // SINGLE_TREE
}
Init(tree);
}
TreeH0::~TreeH0()
{
if (!fChain) return;
delete fChain->GetCurrentFile();
}
Int_t TreeH0::GetEntry(Int_t entry)
{
// Read contents of entry.
if (!fChain) return 0;
return fChain->GetEntry(entry);
}
Int_t TreeH0::LoadTree(Int_t entry)
{
// Set the environment to read one entry
if (!fChain) return -5;
Int_t centry = fChain->LoadTree(entry);
if (centry < 0) return centry;
if (fChain->IsA() != TChain::Class()) return centry;
TChain *chain = (TChain*)fChain;
if (chain->GetTreeNumber() != fCurrent) {
fCurrent = chain->GetTreeNumber();
Notify();
}
return centry;
}
void TreeH0::Init(TTree *tree)
{
// Set branch addresses
if (tree == 0) return;
fChain = tree;
fCurrent = -1;
fChain->SetMakeClass(1);
fChain->SetBranchAddress("TTRAC",&TTRAC_);
fChain->SetBranchAddress("TTRAC.fUniqueID",TTRAC_fUniqueID);
fChain->SetBranchAddress("TTRAC.fBits",TTRAC_fBits);
fChain->SetBranchAddress("TTRAC.fTrack",TTRAC_fTrack);
fChain->SetBranchAddress("TTRAC.fX",TTRAC_fX);
fChain->SetBranchAddress("TTRAC.fY",TTRAC_fY);
fChain->SetBranchAddress("TTRAC.fZ",TTRAC_fZ);
fChain->SetBranchAddress("TTRAC.fVol0",TTRAC_fVol0);
fChain->SetBranchAddress("TTRAC.fVol1",TTRAC_fVol1);
fChain->SetBranchAddress("TTRAC.fVol2",TTRAC_fVol2);
fChain->SetBranchAddress("TTRAC.fVol3",TTRAC_fVol3);
fChain->SetBranchAddress("TTRAC.fVol4",TTRAC_fVol4);
fChain->SetBranchAddress("TTRAC.fVol5",TTRAC_fVol5);
fChain->SetBranchAddress("TTRAC.fVol6",TTRAC_fVol6);
fChain->SetBranchAddress("TTRAC.fVol7",TTRAC_fVol7);
fChain->SetBranchAddress("TTRAC.fVol8",TTRAC_fVol8);
fChain->SetBranchAddress("TTRAC.fVol9",TTRAC_fVol9);
fChain->SetBranchAddress("TTRAC.fId",TTRAC_fId);
fChain->SetBranchAddress("TTRAC.fEvNumber",TTRAC_fEvNumber);
fChain->SetBranchAddress("BRICK",&BRICK_);
fChain->SetBranchAddress("BRICK.fUniqueID",BRICK_fUniqueID);
fChain->SetBranchAddress("BRICK.fBits",BRICK_fBits);
fChain->SetBranchAddress("BRICK.fTrack",BRICK_fTrack);
fChain->SetBranchAddress("BRICK.fX",BRICK_fX);
fChain->SetBranchAddress("BRICK.fY",BRICK_fY);
fChain->SetBranchAddress("BRICK.fZ",BRICK_fZ);
fChain->SetBranchAddress("BRICK.fVol0",BRICK_fVol0);
fChain->SetBranchAddress("BRICK.fVol1",BRICK_fVol1);
fChain->SetBranchAddress("BRICK.fVol2",BRICK_fVol2);
fChain->SetBranchAddress("BRICK.fVol3",BRICK_fVol3);
fChain->SetBranchAddress("BRICK.fVol4",BRICK_fVol4);
fChain->SetBranchAddress("BRICK.fVol5",BRICK_fVol5);
fChain->SetBranchAddress("BRICK.fVol6",BRICK_fVol6);
fChain->SetBranchAddress("BRICK.fVol7",BRICK_fVol7);
fChain->SetBranchAddress("BRICK.fVol8",BRICK_fVol8);
fChain->SetBranchAddress("BRICK.fVol9",BRICK_fVol9);
fChain->SetBranchAddress("BRICK.fId",BRICK_fId);
fChain->SetBranchAddress("BRICK.fEvNumber",BRICK_fEvNumber);
fChain->SetBranchAddress("DRIFT",&DRIFT_);
fChain->SetBranchAddress("DRIFT.fUniqueID",DRIFT_fUniqueID);
fChain->SetBranchAddress("DRIFT.fBits",DRIFT_fBits);
fChain->SetBranchAddress("DRIFT.fTrack",DRIFT_fTrack);
fChain->SetBranchAddress("DRIFT.fX",DRIFT_fX);
fChain->SetBranchAddress("DRIFT.fY",DRIFT_fY);
fChain->SetBranchAddress("DRIFT.fZ",DRIFT_fZ);
fChain->SetBranchAddress("DRIFT.fVol0",DRIFT_fVol0);
fChain->SetBranchAddress("DRIFT.fVol1",DRIFT_fVol1);
fChain->SetBranchAddress("DRIFT.fVol2",DRIFT_fVol2);
fChain->SetBranchAddress("DRIFT.fVol3",DRIFT_fVol3);
fChain->SetBranchAddress("DRIFT.fVol4",DRIFT_fVol4);
fChain->SetBranchAddress("DRIFT.fVol5",DRIFT_fVol5);
fChain->SetBranchAddress("DRIFT.fVol6",DRIFT_fVol6);
fChain->SetBranchAddress("DRIFT.fVol7",DRIFT_fVol7);
fChain->SetBranchAddress("DRIFT.fVol8",DRIFT_fVol8);
fChain->SetBranchAddress("DRIFT.fVol9",DRIFT_fVol9);
fChain->SetBranchAddress("DRIFT.fId",DRIFT_fId);
fChain->SetBranchAddress("DRIFT.fEvNumber",DRIFT_fEvNumber);
Notify();
}
Bool_t TreeH0::Notify()
{
// Called when loading a new file.
// Get branch pointers.
b_TTRAC = fChain->GetBranch("TTRAC");
b_TTRAC_fUniqueID = fChain->GetBranch("TTRAC.fUniqueID");
b_TTRAC_fBits = fChain->GetBranch("TTRAC.fBits");
b_TTRAC_fTrack = fChain->GetBranch("TTRAC.fTrack");
b_TTRAC_fX = fChain->GetBranch("TTRAC.fX");
b_TTRAC_fY = fChain->GetBranch("TTRAC.fY");
b_TTRAC_fZ = fChain->GetBranch("TTRAC.fZ");
b_TTRAC_fVol0 = fChain->GetBranch("TTRAC.fVol0");
b_TTRAC_fVol1 = fChain->GetBranch("TTRAC.fVol1");
b_TTRAC_fVol2 = fChain->GetBranch("TTRAC.fVol2");
b_TTRAC_fVol3 = fChain->GetBranch("TTRAC.fVol3");
b_TTRAC_fVol4 = fChain->GetBranch("TTRAC.fVol4");
b_TTRAC_fVol5 = fChain->GetBranch("TTRAC.fVol5");
b_TTRAC_fVol6 = fChain->GetBranch("TTRAC.fVol6");
b_TTRAC_fVol7 = fChain->GetBranch("TTRAC.fVol7");
b_TTRAC_fVol8 = fChain->GetBranch("TTRAC.fVol8");
b_TTRAC_fVol9 = fChain->GetBranch("TTRAC.fVol9");
b_TTRAC_fId = fChain->GetBranch("TTRAC.fId");
b_TTRAC_fEvNumber = fChain->GetBranch("TTRAC.fEvNumber");
b_BRICK = fChain->GetBranch("BRICK");
b_BRICK_fUniqueID = fChain->GetBranch("BRICK.fUniqueID");
b_BRICK_fBits = fChain->GetBranch("BRICK.fBits");
b_BRICK_fTrack = fChain->GetBranch("BRICK.fTrack");
b_BRICK_fX = fChain->GetBranch("BRICK.fX");
b_BRICK_fY = fChain->GetBranch("BRICK.fY");
b_BRICK_fZ = fChain->GetBranch("BRICK.fZ");
b_BRICK_fVol0 = fChain->GetBranch("BRICK.fVol0");
b_BRICK_fVol1 = fChain->GetBranch("BRICK.fVol1");
b_BRICK_fVol2 = fChain->GetBranch("BRICK.fVol2");
b_BRICK_fVol3 = fChain->GetBranch("BRICK.fVol3");
b_BRICK_fVol4 = fChain->GetBranch("BRICK.fVol4");
b_BRICK_fVol5 = fChain->GetBranch("BRICK.fVol5");
b_BRICK_fVol6 = fChain->GetBranch("BRICK.fVol6");
b_BRICK_fVol7 = fChain->GetBranch("BRICK.fVol7");
b_BRICK_fVol8 = fChain->GetBranch("BRICK.fVol8");
b_BRICK_fVol9 = fChain->GetBranch("BRICK.fVol9");
b_BRICK_fId = fChain->GetBranch("BRICK.fId");
b_BRICK_fEvNumber = fChain->GetBranch("BRICK.fEvNumber");
b_DRIFT = fChain->GetBranch("DRIFT");
b_DRIFT_fUniqueID = fChain->GetBranch("DRIFT.fUniqueID");
b_DRIFT_fBits = fChain->GetBranch("DRIFT.fBits");
b_DRIFT_fTrack = fChain->GetBranch("DRIFT.fTrack");
b_DRIFT_fX = fChain->GetBranch("DRIFT.fX");
b_DRIFT_fY = fChain->GetBranch("DRIFT.fY");
b_DRIFT_fZ = fChain->GetBranch("DRIFT.fZ");
b_DRIFT_fVol0 = fChain->GetBranch("DRIFT.fVol0");
b_DRIFT_fVol1 = fChain->GetBranch("DRIFT.fVol1");
b_DRIFT_fVol2 = fChain->GetBranch("DRIFT.fVol2");
b_DRIFT_fVol3 = fChain->GetBranch("DRIFT.fVol3");
b_DRIFT_fVol4 = fChain->GetBranch("DRIFT.fVol4");
b_DRIFT_fVol5 = fChain->GetBranch("DRIFT.fVol5");
b_DRIFT_fVol6 = fChain->GetBranch("DRIFT.fVol6");
b_DRIFT_fVol7 = fChain->GetBranch("DRIFT.fVol7");
b_DRIFT_fVol8 = fChain->GetBranch("DRIFT.fVol8");
b_DRIFT_fVol9 = fChain->GetBranch("DRIFT.fVol9");
b_DRIFT_fId = fChain->GetBranch("DRIFT.fId");
b_DRIFT_fEvNumber = fChain->GetBranch("DRIFT.fEvNumber");
return kTRUE;
}
void TreeH0::Show(Int_t entry)
{
// Print contents of entry.
// If entry is not specified, print current entry
if (!fChain) return;
fChain->Show(entry);
}
Int_t TreeH0::Cut(Int_t entry)
{
// This function may be called from Loop.
// returns 1 if entry is accepted.
// returns -1 otherwise.
return 1;
}
#endif // #ifdef TreeH0_cxx
#define TreeH0_cxx
#include "TreeH0.h"
#include "TH2.h"
#include "TStyle.h"
#include "TCanvas.h"
#include "TBranch.h"
#include "TApplication.h"
#include "TFrame.h"
int main(int argc, char **argv){
TreeH0 hit;
//TApplication theApp("App",&argc, argv);
hit.Loop(7);
//theApp.Run();
return 0;
}
void TreeH0::Loop(Int_t nn)
{
// In a ROOT session, you can do:
// Root > .L TreeH0.C
// Root > TreeH0 t
// Root > t.GetEntry(12); // Fill t data members with entry number 12
// Root > t.Show(); // Show values of entry 12
// Root > t.Show(16); // Read and show values of entry 16
// Root > t.Loop(); // Loop on all entries
//
// This is the loop skeleton
// To read only selected branches, Insert statements like:
// METHOD1:
// fChain->SetBranchStatus("*",0); // disable all branches
// fChain->SetBranchStatus("branchname",1); // activate branchname
// METHOD2: replace line
// fChain->GetEntry(i); // read all branches
//by b_branchname->GetEntry(i); //read only this branch
if (fChain == 0) return;
TCanvas *c1;
c1 = new TCanvas("c1","Track Display",200,10,700,500);
c1->SetFillColor(21);
c1->GetFrame()->SetFillColor(21);
c1->GetFrame()->SetBorderSize(6);
c1->GetFrame()->SetBorderMode(-2);
Int_t nentries = Int_t(fChain->GetEntries());
if(nentries>nn&&nn) nentries=nn;
Int_t nbytes = 0, nb = 0;
TH2F *coord = new TH2F("coord","x and y coordinates of hits",50,-400,400,50,-400,400);
TH1F *track = new TH1F("track","angle against z-axis",20,0.,2.);
track->SetFillColor(44);
for (Int_t jentry=0; jentry<nentries;jentry++) {
Int_t ientry = LoadTree(jentry); //in case of a TChain, ientry is the entry number in the current file
nb = fChain->GetEntry(jentry); nbytes += nb;
// if (Cut(ientry) < 0) continue;
printf("jentry=%d, LoadTree gives %d, BRICK=%d\n",jentry,ientry,BRICK_);
Int_t ftrack=0;
Float_t xold=BRICK_fX[0],yold=BRICK_fY[0],zold=BRICK_fZ[0],angl;
Int_t BRICKcc = BRICK_>kMaxBRICK ? kMaxBRICK : BRICK_ ;
for (Int_t k=0; k<BRICKcc;k++){
coord->Fill(BRICK_fX[k],BRICK_fY[k]);
if(ftrack==BRICK_fTrack[k]&&k==BRICK_-1){
if(k>0&&fabs(BRICK_fZ[k]-zold)!=0.){
angl=atan(sqrt(pow(BRICK_fX[k]-xold,2.)+pow(BRICK_fY[k]-yold,2.))/fabs(BRICK_fZ[k]-zold));
track->Fill(angl);
}
}
if(ftrack!=BRICK_fTrack[k]){
if(k>1&&fabs(BRICK_fZ[k-1]-zold)!=0.){
angl=atan(sqrt(pow(BRICK_fX[k-1]-xold,2.)+pow(BRICK_fY[k-1]-yold,2.))/fabs(BRICK_fZ[k-1]-zold));
printf("The angle is %f\n",angl);
track->Fill(angl);
}
ftrack=BRICK_fTrack[k];
xold=BRICK_fX[k];yold=BRICK_fY[k];zold=BRICK_fZ[k];
}
printf(" Brick hit %d, fTrack=%d (%f|%f|%f)\n",k,BRICK_fTrack[k],BRICK_fX[k],BRICK_fY[k],BRICK_fZ[k]);
// if(k==10) break;
}
}
track->Draw();
c1->Update();
getchar();
coord->Draw("LEGO1");
c1->Update();
}
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:37 MET