+++ /dev/null
-/****************************************************************************
- * Origin: M.Ivanov, CERN, Marian.Ivanov@cern.ch *
- ****************************************************************************/
-
-
-
-#ifndef __CINT__
-#include "alles.h"
-#include "AliComplexCluster.h"
-#endif
-
-Int_t AliTPCCompareClusters(Int_t eventn) {
- cerr<<"Comparing clusters...\n";
-
- TFile *file=TFile::Open("galice.root");
- if (!file->IsOpen()) {cerr<<"Can't open galice.root !\n"; return 1;}
-
- // TFile *cf=TFile::Open("AliTPCclusters.root");
- TFile *cf=TFile::Open("AliTPCclusters.root");
- if (!cf->IsOpen()){cerr<<"Can't open AliTPCclusters.root !\n"; return 3;}
-
- AliTPCParam *dig=(AliTPCParam *)cf->Get("75x40_100x60");
- if (!dig) {cerr<<"TPC parameters have not been found !\n"; return 2;}
-
- TFile *fout=TFile::Open("AliTPCClustersDif.root","new");
- if (!fout->IsOpen()) fout=TFile::Open("AliTPCClustersDif.root","recreate");
-
- //connect exact clusters
- file->cd();
- AliTPCClustersArray *ce=new AliTPCClustersArray;
- ce->Setup(dig);
- ce->SetClusterType("AliComplexCluster");
- char cname[100];
- sprintf(cname,"TreeCExact_%d",eventn);
- ce->ConnectTree(cname);
- //connect reconstructed clusters
- cf->cd();
- AliTPCClustersArray *cr=new AliTPCClustersArray;
- cr->Setup(dig);
- cr->SetClusterType("AliTPCcluster");
- sprintf(cname,"TreeC_TPC_%d",eventn);
- cr->ConnectTree(cname);
-
- //create differantial clusters
- fout->cd();
- AliTPCClustersArray carray;
- carray.Setup(dig);
- carray.SetClusterType("AliDifCluster");
- carray.MakeTree();
-
- Int_t nrows=Int_t(cr->GetTree()->GetEntries());
- for (Int_t n=0; n<nrows; n++) {
- AliSegmentID *sr=cr->LoadEntry(n);
- Int_t sec,row;
- dig->AdjustSectorRow(sr->GetID(),sec,row);
- ce->LoadRow(sec,row);
- cr->LoadRow(sec,row);
- AliTPCClustersRow* clrowe = ce->GetRow(sec,row);
- AliTPCClustersRow* clrowr = cr->GetRow(sec,row);
- AliTPCClustersRow* clrowdiff = carray.CreateRow(sec,row);
-
- Int_t ncl=clrowe->GetArray()->GetEntriesFast();
- const Int_t kNIS=dig->GetNInnerSector(), kNOS=dig->GetNOuterSector();
- Int_t npads, sign;
- if (sec < kNIS) {
- npads = dig->GetNPadsLow(row);
- sign = (sec < kNIS/2) ? 1 : -1;
- } else {
- npads = dig->GetNPadsUp(row);
- sign = ((sec-kNIS) < kNOS/2) ? 1 : -1;
- }
-
- while (ncl--) {
- // AliTPCcluster *cl=(AliTPCcluster*)clrow[ncl];
- AliComplexCluster *cl=(AliComplexCluster*)(clrowe->GetArray()->At(ncl));
- AliDifCluster * cldif = new(clrowdiff->Append()) AliDifCluster;
-
- Double_t x=dig->GetPadRowRadii(sec,row);
- Double_t y=cl->fY;
- y = ( y + 0.5 - 0.5*npads) *dig->GetPadPitchWidth(sec);
- Double_t z=cl->fX*dig->GetZWidth();
- z = sign*(dig->GetZLength() - z);
- Float_t cs, sn, tmp;
- dig->AdjustCosSin(sec,cs,sn);
- Int_t ncr = clrowr->GetArray()->GetEntriesFast();
- AliTPCcluster *clrec =0;
- while (ncr--) {
- clrec = (AliTPCcluster*)(clrowr->GetArray()->At(ncr));
- if (clrec->GetLabel(0) == cl->fTracks[0]){
- //cout<<cl->fTracks[0]<<"\n";
- cldif->fTracks[0]= cl->fTracks[0];
- cldif->fTracks[1]= clrec->GetLabel(1);
- cldif->fTracks[2]= clrec->GetLabel(2);
-
- cldif->fX = clrec->GetZ();
- cldif->fY = clrec->GetY();
- cldif->fQ = clrec->GetQ();
- cldif->fOrigQ = cl->fQ;
- cldif->fDx = cldif->fX - z;
- cldif->fAngleX= cl->fSigmaX2;
- cldif->fAngleY= cl->fSigmaY2;
- cldif->fDy = cldif->fY - y;
- }
-
- }
- //tmp = x*cs-y*sn; y= x*sn+y*cs; x=tmp;
-
- // pm->SetPoint(ncl,x,y,z);
- }
- cr->ClearRow(sec,row);
- ce->ClearRow(sec,row);
- carray.StoreRow(sec,row);
- carray.ClearRow(sec,row);
- }
- delete ce;
- delete cr;
- carray.GetTree()->Write("Diff");
- cf->Close();
- fout->Close();
- file->Close();
- return 0;
-}
+++ /dev/null
-#ifndef __CINT__
- #include "alles.h"
- #include "AliTPCtracker.h"
- #include "TView.h"
- #include "TPolyMarker3D.h"
- #include "AliSimDigits.h"
-
-#endif
-Int_t AliTPCDisplayClusters(Int_t eventn=0, Int_t noiseth=15) {
- cerr<<"Displaying clusters...\n";
-
- TFile *file=TFile::Open("galice.root");
- if (!file->IsOpen()) {cerr<<"Can't open galice.root !\n"; return 1;}
-
- TFile *cf=TFile::Open("AliTPCclusters.root");
- if (!cf->IsOpen()){cerr<<"Can't open AliTPCclusters.root !\n"; return 3;}
-
- AliTPCParam *dig=(AliTPCParam *)cf->Get("75x40_100x60");
- if (!dig) {cerr<<"TPC parameters have not been found !\n"; return 2;}
-
-
- // some "constants"
- Int_t markerColorSignal = 5;
- Int_t markerColorBgr = 2;
- Int_t MASK = 10000000;
-
-
- TCanvas *c1=new TCanvas("cdisplay", "Cluster display",0,0,700,730);
- TView *v=new TView(1);
- v->SetRange(-430,-560,-430,430,560,1710);
- c1->Clear();
- c1->SetFillColor(1);
- c1->SetTheta(90.);
- c1->SetPhi(0.);
-
- AliTPCClustersArray *ca=new AliTPCClustersArray;
- ca->Setup(dig);
- ca->SetClusterType("AliTPCcluster");
- char cname[100];
- sprintf(cname,"TreeC_TPC_%d",eventn);
-
- ca->ConnectTree(cname);
- Int_t nrows=Int_t(ca->GetTree()->GetEntries());
- for (Int_t n=0; n<nrows; n++) {
- AliSegmentID *s=ca->LoadEntry(n);
- Int_t sec,row;
- dig->AdjustSectorRow(s->GetID(),sec,row);
- AliTPCClustersRow &clrow = *ca->GetRow(sec,row);
- Int_t ncl=clrow.GetArray()->GetEntriesFast();
- TPolyMarker3D *pm=new TPolyMarker3D(ncl);
- TPolyMarker3D *pmSignal=new TPolyMarker3D(ncl); // polymarker for signal
- Int_t imarBgr=0;
- Int_t imarSignal=0;
- while (ncl--) {
- AliTPCcluster *cl=(AliTPCcluster*)clrow[ncl];
- Double_t x=dig->GetPadRowRadii(sec,row), y=cl->GetY(), z=cl->GetZ();
- if (cl->GetQ()<noiseth) continue;
- Float_t cs, sn, tmp;
- dig->AdjustCosSin(sec,cs,sn);
- tmp = x*cs-y*sn; y= x*sn+y*cs; x=tmp;
- if (TMath::Abs(z)>50) continue;
- Int_t trackId = cl->GetLabel(0);
- if (trackId<0) continue; //bug in tracks ID
- if (trackId < MASK-1) {
- pmSignal->SetPoint(imarSignal,x,y,z);
- imarSignal++;
- } else {
- pm->SetPoint(imarBgr,x,y,z);
- imarBgr++;
- }
- }
- ca->ClearRow(sec,row);
-
- // change color for signal
- pm->SetMarkerSize(1);
- pm->SetMarkerColor(markerColorBgr);
- pm->SetMarkerStyle(1);
- pm->Draw();
-
- pmSignal->SetMarkerSize(1);
- pmSignal->SetMarkerColor(markerColorSignal);
- pmSignal->SetMarkerStyle(1);
- pmSignal->Draw();
- }
- delete ca;
- cf->Close();
-
- TGeometry *geom=(TGeometry*)file->Get("AliceGeom");
- // TList *list = geom->GetListOfNodes();
- TNode * main = (TNode*)((geom->GetListOfNodes())->First());
- TIter next(main->GetListOfNodes());
- TNode *module=0;
- while((module = (TNode*)next())) {
- char ch[100];
- sprintf(ch,"%s\n",module->GetTitle());
- //printf("%s\n",module->GetTitle());
- if (ch[0]=='T'&&ch[1]=='P' && ch[2]=='C') //if TPC draw
- module->SetVisibility(3);
- else
- module->SetVisibility(-1);
- }
-
-
- geom->Draw("same");
- //v->Draw();
- c1->Modified(); c1->Update();
-
- file->Close();
- return 0;
-}
-
+++ /dev/null
-/****************************************************************************
- * Origin: M.Ivanov, CERN, Marian.Ivanov@cern.ch *
- ****************************************************************************/
-
-Int_t AliTPCHits2ExactClusters(Int_t nevent=1)
-{
- //
- // loop over hits and find itersection of the trak with pad rows
- // so called exact clusters stored in the structure similar to hits
- // it's used for comparison purpose - to have benchmark of cluster
- // finder and tracker
-
-
- // Connect the Root Galice file containing Geometry, Kine and Hits
-
- const char * inFile_old = "galice.root";
- const char * inFile_new = "galice.root";
- TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject(inFile_old);
- if (file) {file->Close(); delete file;}
- file = TFile::Open(inFile_new,"UPDATE");
- if (!file->IsOpen()) {
- cerr<<"Can't open "<<inFile_new<<" !\n";
- return 1;
- }
-
- // Get AliRun object from file or create it if not on file
- if (gAlice) delete gAlice;
- gAlice = (AliRun*)file->Get("gAlice");
- if (!gAlice) {
- cerr<<"AliTPCHits2Digits.C : AliRun object not found on file\n";
- return 2;
- }
-
-
-
- // gAlice->GetEvent(0);
- AliTPC *TPC = (AliTPC*)gAlice->GetDetector("TPC");
- AliTPCParam * param = TPC->GetParam();
- TStopwatch timer;
- timer.Start();
-
- for(Int_t eventn =0;eventn<nevent;eventn++){
- printf("Processing event %d\n",eventn);
- gAlice->GetEvent(eventn);
- //setup AliTPCClustersArray
- AliTPCClustersArray * arr=new AliTPCClustersArray;
- arr->SetClusterType("AliComplexCluster");
- arr->Setup(param);
- arr->MakeTree();
- TPC->SetClustersArray(arr);
- for (Int_t i=0;i<72;i++)
- TPC->Hits2ExactClustersSector(i);
- char treeName[100];
- sprintf(treeName,"TreeCExact_%d",eventn);
- TPC->GetClustersArray()->GetTree()->Write(treeName);
- }
-
- delete gAlice; gAlice=0;
- file->Close(); delete file;
- timer.Stop();
- timer.Print();
-
- return 0;
-};
-
-
-
-
+++ /dev/null
-//Begin_Html
-/*
-<img src="../../../../pic/CLFinderDemo.gif">
-*/
-//End_Html
-void CLFinderDemo()
-{
-
- AliTPCDigitsArray *gDigitsArray= GetDigitsArray();
- AliTPCClustersArray *gExactClusters = GetExactClustersArray();
-
-
- AliH2F * his = gDigitsArray->LoadRow(0,0)->GenerHisto()->GetSubrange2d(440,470,60,90);
-
- AliClusterFinder cf;
- cf.SetThreshold(3);
- cf.SetNoise(1);
- Int_t index[3]={1,0,0};
- cf.SetDetectorIndex(index);
- cf.SetDetectorParam(gTPCParam);
- cf.GetHisto(his);
-
- cf.SetBFit(kFALSE);
- cf.GetMinuit()->SetPrintLevel(-1);
- cf.GetMinuit()->SetMaxIterations(100);
- cf.FindPeaks1()->GetEntriesFast();
-
-
- TCanvas *c0 = new TCanvas("signals", "Cluster finder drawing", 600,1100);
- c0->Divide(1,3);
- c0->cd(1);
- cf.Draw("lego2");
-
- c0->cd(2);
- cf.Draw("cont1");
- cf.DrawCluster(4,5,5);
- c0->cd(3);
- cf.DrawBorders("lego2");
-
-}
-
+++ /dev/null
-
-/*
-#include "alles.h"
-extern AliTPCParam *gTPCParam;
-extern AliTPCClustersArray * gCalcClusters;
-extern AliTPCClustersArray * gDifClusters;
-AliTPCDigitsArray * GetDigitsArray();
- AliTPCClustersArray * GetExactClustersArray();
-AliTPCClustersArray * GetCalcClustersArray(Bool_t newtree=kFALSE);
-AliTPCClustersArray * GetDifClustersArray(Bool_t newtree=kFALSE);
-TClonesArray * CompareClusters(TClonesArray *calcclusters,TClonesArray *exactclusters,
- TClonesArray *diffclusters, Float_t shx, Float_t shy);
-*/
-
-void TPCDigits2Clusters(AliTPCDigitsArray * digarr, AliTPCClustersArray *calcarr,
- AliTPCClustersArray *exarr=0, AliTPCClustersArray *difarr=0)
-{
- //
- //calculate clusters position from digits information
- //
-
-
- //initialisation of cluster finder
- AliClusterFinder cf;
- cf.SetThreshold(gTPCParam->GetZeroSup());
- cf.SetDetectorParam(gTPCParam);
- cf.SetBFit(kFALSE);
- cf.GetMinuit()->SetPrintLevel(-1);
- cf.GetMinuit()->SetMaxIterations(20);
-
- if (digarr ==0) digarr = GetDigitsArray();
- if ( (digarr == 0) || (digarr->GetTree()==0)) return;
- if (exarr==0) exarr =GetExactClustersArray();
- if ((exarr!=0)&&(difarr==0)) difarr= GetDifClustersArray();
-
- if (calcarr==0) calcarr = GetCalcClustersArray(kTRUE);
- //loop over all writen digits segments
- Int_t nsegment = (Int_t)digarr->GetTree()->GetEntries();
- Int_t segment;
- for (segment = 0; segment<nsegment;segment++){
- //load segment with index (TTree internal) number segment
- AliSimDigits *digrow= (AliSimDigits*)digarr->LoadEntry(segment);
- Int_t sector,row;
- ((AliTPCParam*)digarr->GetParam())->AdjustSectorRow(digrow->GetID(),sector,row);
-
- AliTPCClustersRow * clrow = calcarr->CreateRow(sector,row);
- AliTPCClustersRow * difrow= difarr->CreateRow(sector,row);
- AliTPCClustersRow * exrow = exarr->GetRow(sector,row);
- if (exrow==0) exrow = exarr->LoadRow(sector,row);
- TH2F *his = (TH2F*)digrow->GenerHisto();
- digrow->ExpandTrackBuffer();
- if (his==0) return;
-
- //set current index for cluster finder
- Int_t index[3]= {0,sector,row};
- cf.GetHisto(his);
- cf.SetDetectorIndex(index);
- cf.FindPeaks3(clrow->GetArray());
-
- //get cluster tracks ID
- Int_t ncl = clrow->GetArray()->GetEntriesFast();
- for (Int_t icl = 0 ;icl<ncl; icl++)
- {
- AliDigitCluster * cl =(AliDigitCluster*)clrow->GetArray()->UncheckedAt(icl);
- Int_t i = (Int_t)cl->fMaxX;
- Int_t j = (Int_t)cl->fMaxY;
- cl->fTracks[0]=digrow->GetTrackIDFast(i,j,0);
- cl->fTracks[1]=digrow->GetTrackIDFast(i,j,1);
- cl->fTracks[2]=digrow->GetTrackIDFast(i,j,2);
- }
- Float_t shx = gTPCParam->GetZOffset()/gTPCParam->GetZWidth()+0.5;
- Float_t shy= 0.5;
- CompareClusters(clrow->GetArray(),exrow->GetArray(),difrow->GetArray(),shx,shy);
- calcarr->StoreRow(sector,row);
- difarr->StoreRow(sector,row);
- digarr->ClearRow(sector,row);
- }
- //STORING RESULTS
- char treeName[100];
- sprintf(treeName,"TreeCCalc_%s",gTPCParam->GetTitle());
- calcarr->GetTree()->Write(treeName);
- if (difarr!=0){
- char treeName[100];
- sprintf(treeName,"TreeCDif_%s",gTPCParam->GetTitle());
- difarr->GetTree()->Write(treeName);
- }
-
-}
-
-
-AliTPCClustersArray * GetCalcClustersArray(Bool_t newtree=kFALSE, const char* name=0)
-{
- //
- //construct AliTPCClusters Array object
- //
- AliTPCClustersArray * arr=0;
- // if ( (gAlice!=0) && (gAlice->GetDetector("TPC")!=0) ) {
- // arr = ((AliTPC*)gAlice->GetDetector("TPC"))->GetClustersArray();
- // if (arr!=0) arr->Update();
- //}
- if (arr==0) {
- arr = new AliTPCClustersArray;
- TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject("galice.root");
- if (file==0) file = TFile::Open("rfio:galice.root","update");
- arr->SetClusterType("AliDigitCluster");
- arr->Setup(gTPCParam);
- cout<<"Update status : "<<arr->Update()<<"\n";
- char treeName[100];
- if (name==0)
- sprintf(treeName,"TreeCExact_%s",gTPCParam->GetTitle());
- else
- sprintf(treeName,"TreeCCalc_%s",gTPCParam->GetTitle());
- if (newtree!=kTRUE){
- cout<<"Connect tree status : "<<arr->ConnectTree(treeName)<<"\n";
- }
- else {
- arr->MakeTree();
- }
- }
- gCalcClusters = arr;
- return arr;
-}
-
-
-AliTPCClustersArray * GetDifClustersArray(Bool_t newtree=kFALSE, const char* name=0)
-{
- //
- //construct AliTPCClusters Array object
- //
- AliTPCClustersArray * arr=0;
- // if ( (gAlice!=0) && (gAlice->GetDetector("TPC")!=0) ) {
- // arr = ((AliTPC*)gAlice->GetDetector("TPC"))->GetClustersArray();
- // if (arr!=0) arr->Update();
- //}
- if (arr==0) {
- arr = new AliTPCClustersArray;
- TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject("galice.root");
- if (file==0) file = TFile::Open("rfio:galice.root","update");
- arr->SetClusterType("AliDifCluster");
- arr->Setup(gTPCParam);
- cout<<"Update status : "<<arr->Update()<<"\n";
- char treeName[100];
- if (name==0)
- sprintf(treeName,"TreeCExact_%s",gTPCParam->GetTitle());
- else
- sprintf(treeName,"TreeCDif_%s",gTPCParam->GetTitle());
- if (newtree!=kTRUE){
- cout<<"Connect tree status : "<<arr->ConnectTree(treeName)<<"\n";
- }
- else {
- arr->MakeTree();
- }
- }
- gDifClusters = arr;
- return arr;
-}
-
-
-
-TClonesArray * CompareClusters(TClonesArray *calcclusters,TClonesArray *exactclusters,
- TClonesArray *diffclusters, Float_t shx, Float_t shy)
-{
- if (calcclusters==0) return 0;
- if (exactclusters==0) return 0;
- if (diffclusters==0) return 0;
- TClonesArray & diff=*diffclusters;
-
-
- Int_t nclusters2 = calcclusters->GetEntriesFast();
- Int_t nclusters1 = exactclusters->GetEntriesFast();
-
- for(Int_t i=0; i<nclusters1; i++){
- AliCluster * cl1 = (AliCluster*)exactclusters->UncheckedAt(i);
- AliDigitCluster *cl2;
- AliDifCluster diffc;
- Int_t index=-1;
- Float_t dx=10000;
- Float_t dy=10000;
- for (Int_t j=0; j<nclusters2;j++){
- cl2 = (AliDigitCluster*)calcclusters->UncheckedAt(j);
- if ( (cl2!=0)&& (cl1!=0)){
- Float_t ddx = (cl2->fX-shx)-cl1->fX;
- Float_t ddy = (cl2->fY-shy)-cl1->fY;
- if ((ddx*ddx+ddy*ddy)<(dx*dx+dy*dy)){
- dx=ddx;
- dy=ddy;
- index=j;
- }
- }
- }
-
- cl2 = (AliDigitCluster*)calcclusters->UncheckedAt(index);
- if (cl2!=0){
- diffc.fDx =dx;
- diffc.fDy =dy;
-
- diffc.fAngleX = cl1->fSigmaX2;
- diffc.fAngleY = cl1->fSigmaY2;
- diffc.fTracks[0] = cl2->fTracks[0];
- diffc.fTracks[1] = cl2->fTracks[1];
- diffc.fTracks[2] = cl2->fTracks[2];
- diffc.fGenerTrack= cl1->fTracks[0];
-
- diffc.fX = cl2->fX;
- diffc.fY = cl2->fY;
- diffc.fNx = cl2->fNx;
- diffc.fNy = cl2->fNy;
- diffc.fQ = cl2->fQ;
- diffc.fOrigQ = cl1->fQ;
- diffc.fSigmaX2 = cl2->fSigmaX2;
- diffc.fSigmaY2 = cl2->fSigmaY2;
- diffc.fArea = cl2->fArea;
- diffc.fMax = cl2->fMax;
- }
- else cout<<"pici[ici/n";
-
- new(diff[i]) AliDifCluster(diffc);
- }
- return diffclusters;
-}
+++ /dev/null
-//#include "alles.h"
-
-void TPCHits2ExactClusters()
-{
- if (gTPCParam==0) {
- cout<<"TPC Param Not Initialised\n";
- return;
- }
- // Dynamically link some shared libs
- if (gClassTable->GetID("AliRun") < 0) {
- gROOT->LoadMacro("loadlibs.C");
- loadlibs();
- }
- // Connect the Root Galice file containing Geometry, Kine and Hits
- const char * inFile = "galice.root";
- TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject(inFile);
- if (file) file->Close();
- file = new TFile(inFile,"UPDATE");
- // Get AliRun object from file or create it if not on file
- // if (!gAlice) {
- gAlice = (AliRun*)file->Get("gAlice");
- if (gAlice) printf("AliRun object found on file\n");
- if (!gAlice) gAlice = new AliRun("gAlice","Alice test program");
- // };
- gAlice->GetEvent(0);
- AliTPC *TPC = (AliTPC*)gAlice->GetDetector("TPC");
-
- //setup AliTPCClustersArray
- AliTPCClustersArray * arr=new AliTPCClustersArray;
- arr->SetClusterType("AliCluster");
- arr->Setup(gTPCParam);
- TPC->SetParam(gTPCParam);
- arr->MakeTree();
-
- TPC->SetClustersArray(arr);
- TPC->Hits2ExactClustersSector(0);
- //write results
- char treeName[100];
- sprintf(treeName,"TreeCExact_%s",gTPCParam->GetTitle());
- TPC->GetClustersArray()->GetTree()->Write(treeName);
-}
-
-
-AliTPCClustersArray * GetExactClustersArray(Bool_t newtree=kFALSE, const char* name=0 )
-{
- AliTPCClustersArray * arr;
- if ( (gAlice!=0) && (gAlice->GetDetector("TPC")!=0) ) {
- arr = ((AliTPC*)gAlice->GetDetector("TPC"))->GetClustersArray();
- if (arr!=0) arr->Update();
- }
- if (arr==0) {
- arr = new AliTPCClustersArray;
- TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject("galice.root");
- if (file==0) file = new TFile("galice.root","update");
- arr->SetClusterType("AliCluster");
- arr->Setup(gTPCParam);
- cout<<"Update status : "<<arr->Update()<<"\n";
- char treeName[100];
- if (name==0)
- sprintf(treeName,"TreeCExact_%s",gTPCParam->GetTitle());
- else sprintf(treeName,"TreeCExact_%s",name);
- if (newtree!=kTRUE){
- cout<<"Connect tree status : "<<arr->ConnectTree(treeName)<<"\n";
- }
- else
- arr->MakeTree();
- }
- return arr;
-}
-
-
-
-