# DO NOT DELETE THIS LINE -- make depend depends on it.
AliTPC.o: /soft/root/include/TMath.h /soft/root/include/TRandom.h
-AliTPC.o: /soft/root/include/TVector.h /soft/root/include/TGeometry.h
-AliTPC.o: /soft/root/include/TNode.h /soft/root/include/TTUBS.h
-AliTPC.o: /soft/root/include/TObjectTable.h
+AliTPC.o: /soft/root/include/TVector.h /soft/root/include/TMatrix.h
+AliTPC.o: /soft/root/include/TGeometry.h /soft/root/include/TNode.h
+AliTPC.o: /soft/root/include/TTUBS.h /soft/root/include/TObjectTable.h
AliTPC.o: /hdb2/offline/pro/include/GParticle.h /soft/root/include/TObject.h
AliTPC.o: AliTPC.h /hdb2/offline/pro/include/AliDetector.h
AliTPC.o: /hdb2/offline/pro/include/AliModule.h /soft/root/include/TNamed.h
AliTPC.o: /soft/root/include/TClonesArray.h /soft/root/include/TBrowser.h
AliTPC.o: /soft/root/include/TAttLine.h /soft/root/include/TAttMarker.h
AliTPC.o: /soft/root/include/TArrayI.h /hdb2/offline/pro/include/AliHit.h
-AliTPC.o: /hdb2/offline/pro/include/AliDigit.h AliTPCSecGeo.h
-AliTPC.o: /soft/root/include/TMatrix.h /hdb2/offline/pro/include/AliRun.h
+AliTPC.o: /hdb2/offline/pro/include/AliDigit.h AliTPCSecGeo.h AliTPCParam.h
+AliTPC.o: /soft/root/include/TTree.h /hdb2/offline/pro/include/AliRun.h
AliTPC.o: /soft/root/include/TROOT.h /soft/root/include/TList.h
-AliTPC.o: /soft/root/include/TStopwatch.h /soft/root/include/TTree.h
+AliTPC.o: /soft/root/include/TStopwatch.h
AliTPC.o: /hdb2/offline/pro/include/AliHeader.h
AliTPC.o: /hdb2/offline/pro/include/AliMagF.h
AliTPC.o: /hdb2/offline/pro/include/AliMC.h
AliTPC.o: /usr/include/gnu/stubs.h
AliTPC.o: /usr/local/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.91.60/include/stddef.h
AliTPC.o: /usr/local/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.91.60/include/stdarg.h
-AliTPC.o: /usr/local/include/g++/fstream.h
+AliTPC.o: /usr/local/include/g++/fstream.h AliTPCD.h AliTPCPRF2D.h
+AliTPC.o: AliTPCRF1D.h
AliTPCv0.o: /soft/root/include/TMath.h /soft/root/include/TGeometry.h
AliTPCv0.o: /soft/root/include/TNode.h /soft/root/include/TTUBE.h AliTPCv0.h
AliTPCv0.o: AliTPC.h /hdb2/offline/pro/include/AliDetector.h
AliTPCv0.o: /soft/root/include/TAttLine.h /soft/root/include/TAttMarker.h
AliTPCv0.o: /soft/root/include/TArrayI.h /hdb2/offline/pro/include/AliHit.h
AliTPCv0.o: /soft/root/include/TObject.h /hdb2/offline/pro/include/AliDigit.h
-AliTPCv0.o: AliTPCSecGeo.h /soft/root/include/TMatrix.h
-AliTPCv0.o: /hdb2/offline/pro/include/AliRun.h /soft/root/include/TROOT.h
-AliTPCv0.o: /soft/root/include/TList.h /soft/root/include/TStopwatch.h
-AliTPCv0.o: /soft/root/include/TTree.h /hdb2/offline/pro/include/AliHeader.h
+AliTPCv0.o: AliTPCSecGeo.h AliTPCParam.h /soft/root/include/TMatrix.h
+AliTPCv0.o: /soft/root/include/TTree.h /hdb2/offline/pro/include/AliRun.h
+AliTPCv0.o: /soft/root/include/TROOT.h /soft/root/include/TList.h
+AliTPCv0.o: /soft/root/include/TStopwatch.h
+AliTPCv0.o: /hdb2/offline/pro/include/AliHeader.h
AliTPCv0.o: /hdb2/offline/pro/include/AliMagF.h /soft/root/include/TVector.h
AliTPCv0.o: /hdb2/offline/pro/include/AliMC.h
AliTPCv0.o: /hdb2/offline/pro/include/AliGenerator.h
AliTPCv1.o: /soft/root/include/TAttLine.h /soft/root/include/TAttMarker.h
AliTPCv1.o: /soft/root/include/TArrayI.h /hdb2/offline/pro/include/AliHit.h
AliTPCv1.o: /soft/root/include/TObject.h /hdb2/offline/pro/include/AliDigit.h
-AliTPCv1.o: AliTPCSecGeo.h /soft/root/include/TMatrix.h
-AliTPCv1.o: /hdb2/offline/pro/include/AliRun.h /soft/root/include/TROOT.h
-AliTPCv1.o: /soft/root/include/TList.h /soft/root/include/TStopwatch.h
-AliTPCv1.o: /soft/root/include/TTree.h /hdb2/offline/pro/include/AliHeader.h
+AliTPCv1.o: AliTPCSecGeo.h AliTPCParam.h /soft/root/include/TMatrix.h
+AliTPCv1.o: /soft/root/include/TTree.h /hdb2/offline/pro/include/AliRun.h
+AliTPCv1.o: /soft/root/include/TROOT.h /soft/root/include/TList.h
+AliTPCv1.o: /soft/root/include/TStopwatch.h
+AliTPCv1.o: /hdb2/offline/pro/include/AliHeader.h
AliTPCv1.o: /hdb2/offline/pro/include/AliMagF.h /soft/root/include/TVector.h
AliTPCv1.o: /hdb2/offline/pro/include/AliMC.h
AliTPCv1.o: /hdb2/offline/pro/include/AliGenerator.h
AliTPCv1.o: /usr/local/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.91.60/include/stddef.h
AliTPCv1.o: /usr/local/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.91.60/include/stdarg.h
AliTPCv1.o: /usr/local/include/g++/fstream.h
-AliTPCv1.o: /hdb2/offline/pro/include/AliConst.h
+AliTPCv1.o: /hdb2/offline/pro/include/AliConst.h AliTPCD.h
AliTPCv2.o: /soft/root/include/TMath.h /soft/root/include/TGeometry.h
AliTPCv2.o: AliTPCv2.h AliTPC.h /hdb2/offline/pro/include/AliDetector.h
AliTPCv2.o: /hdb2/offline/pro/include/AliModule.h /soft/root/include/TNamed.h
AliTPCv2.o: /soft/root/include/TAttLine.h /soft/root/include/TAttMarker.h
AliTPCv2.o: /soft/root/include/TArrayI.h /hdb2/offline/pro/include/AliHit.h
AliTPCv2.o: /soft/root/include/TObject.h /hdb2/offline/pro/include/AliDigit.h
-AliTPCv2.o: AliTPCSecGeo.h /soft/root/include/TMatrix.h
-AliTPCv2.o: /hdb2/offline/pro/include/AliRun.h /soft/root/include/TROOT.h
-AliTPCv2.o: /soft/root/include/TList.h /soft/root/include/TStopwatch.h
-AliTPCv2.o: /soft/root/include/TTree.h /hdb2/offline/pro/include/AliHeader.h
+AliTPCv2.o: AliTPCSecGeo.h AliTPCParam.h /soft/root/include/TMatrix.h
+AliTPCv2.o: /soft/root/include/TTree.h /hdb2/offline/pro/include/AliRun.h
+AliTPCv2.o: /soft/root/include/TROOT.h /soft/root/include/TList.h
+AliTPCv2.o: /soft/root/include/TStopwatch.h
+AliTPCv2.o: /hdb2/offline/pro/include/AliHeader.h
AliTPCv2.o: /hdb2/offline/pro/include/AliMagF.h /soft/root/include/TVector.h
AliTPCv2.o: /hdb2/offline/pro/include/AliMC.h
AliTPCv2.o: /hdb2/offline/pro/include/AliGenerator.h
AliTPCv2.o: /usr/include/sys/types.h /usr/include/time.h
AliTPCv2.o: /usr/include/endian.h /usr/include/bytesex.h
AliTPCv2.o: /usr/include/sys/select.h /usr/include/selectbits.h
-AliTPCv2.o: /usr/include/alloca.h
+AliTPCv2.o: /usr/include/alloca.h AliTPCD.h
+AliTPCD.o: /soft/root/include/TMath.h AliTPCParam.h
+AliTPCD.o: /soft/root/include/TObject.h AliTPCRF1D.h AliTPCPRF2D.h AliTPCD.h
+AliTPCD.o: /soft/root/include/TNamed.h /soft/root/include/TTree.h
+AliTPCD.o: /soft/root/include/TClonesArray.h /soft/root/include/TClass.h
+AliTPCD.o: /soft/root/include/TBranchClones.h /soft/root/include/TDirectory.h
+AliTPCPRF2D.o: /soft/root/include/TMath.h AliTPCPRF2D.h
+AliTPCPRF2D.o: /soft/root/include/TObject.h /soft/root/include/TF2.h
+AliTPCPRF2D.o: /usr/local/include/g++/iostream.h
+AliTPCPRF2D.o: /usr/local/include/g++/streambuf.h
+AliTPCPRF2D.o: /usr/local/include/g++/libio.h /usr/include/_G_config.h
+AliTPCPRF2D.o: /usr/include/gnu/types.h /usr/include/features.h
+AliTPCPRF2D.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h
+AliTPCPRF2D.o: /usr/local/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.91.60/include/stddef.h
+AliTPCPRF2D.o: /usr/local/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.91.60/include/stdarg.h
+AliTPCPRF2D.o: /usr/include/string.h /soft/root/include/TCanvas.h
+AliTPCPRF2D.o: /soft/root/include/TPad.h /soft/root/include/TStyle.h
+AliTPCPRF2D.o: /soft/root/include/TH1.h /soft/root/include/TH2.h
+AliTPCPRF2D.o: /soft/root/include/TPaveText.h /soft/root/include/TText.h
+AliTPCRF1D.o: /soft/root/include/TMath.h AliTPCRF1D.h
+AliTPCRF1D.o: /soft/root/include/TObject.h /soft/root/include/TF2.h
+AliTPCRF1D.o: /usr/local/include/g++/iostream.h
+AliTPCRF1D.o: /usr/local/include/g++/streambuf.h
+AliTPCRF1D.o: /usr/local/include/g++/libio.h /usr/include/_G_config.h
+AliTPCRF1D.o: /usr/include/gnu/types.h /usr/include/features.h
+AliTPCRF1D.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h
+AliTPCRF1D.o: /usr/local/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.91.60/include/stddef.h
+AliTPCRF1D.o: /usr/local/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.91.60/include/stdarg.h
+AliTPCRF1D.o: /soft/root/include/TCanvas.h /soft/root/include/TPad.h
+AliTPCRF1D.o: /soft/root/include/TStyle.h /soft/root/include/TH1.h
+AliTPCParam.o: /usr/local/include/g++/iostream.h
+AliTPCParam.o: /usr/local/include/g++/streambuf.h
+AliTPCParam.o: /usr/local/include/g++/libio.h /usr/include/_G_config.h
+AliTPCParam.o: /usr/include/gnu/types.h /usr/include/features.h
+AliTPCParam.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h
+AliTPCParam.o: /usr/local/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.91.60/include/stddef.h
+AliTPCParam.o: /usr/local/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.91.60/include/stdarg.h
+AliTPCParam.o: /soft/root/include/TMath.h AliTPCParam.h
+AliTPCParam.o: /soft/root/include/TObject.h AliTPCSecGeo.h
+++ /dev/null
-void Config()
-{
-//=======================================================================
-// Create the output file
-
-TFile *rootfile = new TFile("galice.root","recreate");
-rootfile->SetCompressionLevel(2);
-
-//=======================================================================
-// ******* GEANT STEERING parameters FOR ALICE SIMULATION *******
-geant3->SetTRIG(1); //Number of events to be processed
-geant3->SetSWIT(4,1);
-geant3->SetDEBU(0,0,1);
-//geant3->SetSWIT(2,2);
-geant3->SetDCAY(1);
-geant3->SetPAIR(1);
-geant3->SetCOMP(1);
-geant3->SetPHOT(1);
-geant3->SetPFIS(0);
-geant3->SetDRAY(0);
-geant3->SetANNI(1);
-geant3->SetBREM(1);
-geant3->SetMUNU(1);
-geant3->SetCKOV(1);
-geant3->SetHADR(1); //Select pure GEANH (HADR 1) or GEANH/NUCRIN (HADR 3)
-geant3->SetLOSS(2);
-geant3->SetMULS(1);
-geant3->SetRAYL(1);
-geant3->SetAUTO(1); //Select automatic STMIN etc... calc. (AUTO 1) or manual (AUTO 0)
-geant3->SetABAN(0); //Restore 3.16 behaviour for abandoned tracks
-geant3->SetOPTI(2); //Select optimisation level for GEANT geometry searches (0,1,2)
-Float_t cut = 1.e-3; // 1MeV cut by default
-Float_t tofmax = 1.e10;
-// GAM ELEC NHAD CHAD MUON EBREM MUHAB EDEL MUDEL MUPA TOFMAX
-geant3->SetCUTS(cut,cut, cut, cut, cut, cut, cut, cut, cut, cut, tofmax);
-//
-//=======================================================================
-// ************* STEERING parameters FOR ALICE SIMULATION **************
-// --- Specify event type to be tracked through the ALICE setup
-// --- All positions are in cm, angles in degrees, and P and E in GeV
-AliGenHIJINGpara *gener = new AliGenHIJINGpara(1000);
-gener->SetMomentumRange(0,100);
-gener->SetPhiRange(0,360);
-gener->SetThetaRange(20,160);
-gener->SetOrigin(0,0,0); //vertex position
-gener->SetSigma(0,0,0); //Sigma in (X,Y,Z) (cm) on IP position
-gener->Init();
-
-gAlice->SetField(-999,2); //Specify maximum magnetic field in Tesla (neg. ==> default field)
-
-//=================== Alice BODY parameters =============================
-AliBODY *BODY = new AliBODY("BODY","Alice envelop");
-
-
-
-//============================ TPC parameters ================================
-// --- This allows the user to specify sectors for the SLOW (TPC geometry 2)
-// --- Simulator. TPCSECL (TPSECU) <0 means that ALL lower (upper)
-// --- sectors are specified, any value other than that requires at least one
-// --- sector (lower or upper)to be specified!
-// --- Reminder: sectors 1-24 are lower sectors (1-12 -> z>0, 13-24 -> z<0)
-// --- sectors 25-72 are the upper ones (25-48 -> z>0, 49-72 -> z<0)
-// --- TPCLOWS - number of lower sectors specified (up to 6)
-// --- TPCUPS - number of upper sectors specified (up to 12)
-// --- TPCSENS - sensitive strips for the Slow Simulator !!!
-// --- This does NOT work if all S or L-sectors are specified, i.e.
-// --- if TPCSECL or TPCSECU < 0
-//-----------------------------------------------------------------------------
-
-AliTPC *TPC = new AliTPCv1("TPC","Normal TPC");
-TPC->SetSecAL(1);
-TPC->SetSecAU(1);
-TPC->SetSecLows(1, -1, -1, -1, -1, -1);
-TPC->SetSecUps(25, 26, 48, -1, -1, -1, -1, -1, -1, -1, -1, -1);
-TPC->SetSens(1);
-
-
-
-
-}
+++ /dev/null
-void TPCDigits2Clusters() {
-// Dynamically link some shared libs
- if (gClassTable->GetID("AliRun") < 0) {
- gSystem->Load("libGeant3Dummy.so"); // a dummy version of Geant3
- gSystem->Load("PHOS/libPHOSdummy.so"); // the standard Alice classes
- gSystem->Load("libgalice.so"); // the standard Alice classes
- }
-
-// Connect the Root Galice file containing Geometry, Kine and Hits
- TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject("galice.root");
- if (file) file->Close();
- if (!file) file = new TFile("galice.root");
-
-// 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");
- TPC->Digits2Clusters();
- TClonesArray *c=TPC->Clusters();
- int n=c->GetEntriesFast();
- cout<<"Number of clusters "<<n<<endl;
-
- TPolyMarker3D *pm=new TPolyMarker3D(n);
- for (int i=0; i<n; i++) {
- AliTPCcluster *cl=(AliTPCcluster *)c->UncheckedAt(i);
- pm->SetPoint(i,cl->fX,cl->fY,cl->fZ);
- }
-
- c1=new TCanvas("c1", "Cluster display",0,0,575,750);
- TView *v=new TView(1);
- v->SetRange(-430,-560,-430,430,560,1710);
-
- c1->Clear();
- c1->SetFillColor(1);
- c1->SetTheta(90.);
- c1->SetPhi(0.);
-
- pm->SetMarkerSize(1);
- pm->SetMarkerColor(2);
- pm->SetMarkerStyle(1);
- pm->Draw();
-
- gAlice->GetGeometry()->Draw("same");
-}
+++ /dev/null
-void TPCDigitsDisplay(int sec, int row,
- int max_t_chan=500, float min_t=0., float max_t=500.)
-{
-// Dynamically link some shared libs
- if (gClassTable->GetID("AliRun") < 0) {
- gSystem->Load("libGeant3Dummy.so"); // a dummy version of Geant3
- gSystem->Load("PHOS/libPHOSdummy.so"); // the standard Alice classes
- gSystem->Load("libgalice.so"); // the standard Alice classes
- } else {
- delete gAlice;
- gAlice=0;
- }
-
-// Connect the Root Galice file containing Geometry, Kine and Hits
- TFile *f = (TFile*)gROOT->GetListOfFiles()->FindObject("galice.root");
- if (f) f->Close();
- f = new TFile("galice.root");
-
- TClonesArray *fDigits=new TClonesArray("AliTPCdigit",10000);
- TTree *t=(TTree*)f->Get("TreeD1");
- t->GetBranch("TPC")->SetAddress(&fDigits);
- Int_t sectors_by_rows=(Int_t)t->GetEntries();
- for (Int_t n=0; n<sectors_by_rows; n++) {
- if (!t->GetEvent(n)) continue;
- AliTPCdigit *dig=(AliTPCdigit*)fDigits->UncheckedAt(0);
-
- if (sec < dig->fSector) break;
- if (sec != dig->fSector) continue;
- if (row != dig->fPadRow) continue;
-
- char s[80];
- sprintf(s,"Sector %d Row %d\n",sec,row);
- TH2F *h = new TH2F("h",s,max_t_chan,min_t,max_t,200,0,200);
- Int_t ndigits=fDigits->GetEntriesFast();
- for (Int_t ndig=0; ndig<ndigits; ndig++) {
- dig=(AliTPCdigit*)fDigits->UncheckedAt(ndig);
- if (dig->fSignal < 10) continue; //cluster finder threshold
- h->Fill(dig->fTime,dig->fPad,dig->fSignal);
- }
- h->SetMaximum(200);
- gStyle->SetOptStat(0);
- TCanvas *c1=new TCanvas("c1","TPC digits display",0,0,1110,680);
- TPad *p1=new TPad("p1","",0,0,1,0.5);
- p1->Draw();
- TPad *p2=new TPad("p2","",0,0.5,1,1);
- p2->Draw();
- p2->cd();
- h->Draw("lego");
- p1->cd();
- h->Draw("col");
- }
-}
-
+++ /dev/null
-void TPCHits2Clusters() {
-// Dynamically link some shared libs
- if (gClassTable->GetID("AliRun") < 0) {
- gSystem->Load("libGeant3Dummy.so"); // a dummy version of Geant3
- gSystem->Load("PHOS/libPHOSdummy.so"); // the standard Alice classes
- gSystem->Load("libgalice.so"); // the standard Alice classes
- }
-
-// Connect the Root Galice file containing Geometry, Kine and Hits
- TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject("galice.root");
- if (file) file->Close();
- file = new TFile("galice.root");
-
-// 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");
- TPC->Hits2Clusters();
- TClonesArray *c=TPC->Clusters();
- int n=c->GetEntriesFast();
- cout<<"Number of clusters "<<n<<endl;
-
- TPolyMarker3D *pm=new TPolyMarker3D(n);
- for (int i=0; i<n; i++) {
- AliTPCcluster *cl=(AliTPCcluster *)c->UncheckedAt(i);
- pm->SetPoint(i,cl->fX,cl->fY,cl->fZ);
- }
-
- c1=new TCanvas("c1", "Cluster display",0,0,575,750);
- TView *v=new TView(1);
- v->SetRange(-430,-560,-430,430,560,1710);
-
- c1->Clear();
- c1->SetFillColor(1);
- c1->SetTheta(90.);
- c1->SetPhi(0.);
-
- pm->SetMarkerSize(1);
- pm->SetMarkerColor(2);
- pm->SetMarkerStyle(1);
- pm->Draw();
-
- gAlice->GetGeometry()->Draw("same");
-}
+++ /dev/null
-void TPCHits2Digits()
-{
-// Dynamically link some shared libs
- if (gClassTable->GetID("AliRun") < 0) {
- gSystem->Load("libGeant3Dummy.so"); // a dummy version of Geant3
- gSystem->Load("PHOS/libPHOSdummy.so"); // the standard Alice classes
- gSystem->Load("libgalice.so"); // the standard Alice classes
- } else {
- delete gAlice;
- gAlice=0;
- }
-
-// Connect the Root Galice file containing Geometry, Kine and Hits
- TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject("galice.root");
- if (file) file->Close();
- file = new TFile("galice.root","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");
- TPC->Hits2Digits();
- printf("entries = %d\n",gAlice->TreeD()->GetEntries());
-
- gAlice->TreeD()->Write("TreeD1");
-}
+++ /dev/null
-//******* Run TPCTestClustering.C(1) for fast simulator data
-//******* Run TPCTestClustering.C(2) for slow simulator data
-void TPCTestClustering(int fast=1) {
-// Dynamically link some shared libs
- if (gClassTable->GetID("AliRun") < 0) {
- gSystem->Load("libGeant3Dummy.so"); // a dummy version of Geant3
- gSystem->Load("PHOS/libPHOSdummy.so"); // the standard Alice classes
- gSystem->Load("libgalice.so"); // the standard Alice classes
- } else {
- delete gAlice;
- gAlice=0;
- }
-
-// Connect the Root Galice file containing Geometry, Kine and Hits
- TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject("galice.root");
- if (!file) file = new TFile("galice.root");
-
-// 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");
- if (fast==1) {
- cerr<<"Making clusters...\n";
- TPC->Hits2Clusters();
- } else {
- cerr<<"Looking for clusters...\n";
- TPC->Digits2Clusters();
- }
- TClonesArray *c=TPC->Clusters();
- int n=c->GetEntriesFast();
- cerr<<"Number of clusters "<<n<<" \n";
-
- TPolyMarker3D *pm=new TPolyMarker3D(n);
- for (int i=0; i<n; i++) {
- AliTPCcluster *cl=(AliTPCcluster *)c->UncheckedAt(i);
- Double_t x, y, z; cl->GetXYZ(x,y,z);
- pm->SetPoint(i,x,y,z);
- }
-
- c1=new TCanvas("c1", "Cluster display",0,0,575,750);
- TView *v=new TView(1);
- v->SetRange(-430,-560,-430,430,560,1710);
-
- c1->Clear();
- c1->SetFillColor(1);
- c1->SetTheta(90.);
- c1->SetPhi(0.);
-
- pm->SetMarkerSize(1);
- pm->SetMarkerColor(2);
- pm->SetMarkerStyle(1);
- pm->Draw();
-
- gAlice->GetGeometry()->Draw("same");
-}
+++ /dev/null
-//******* Run TPCTestTracking.C(1) for fast simulator data
-//******* Run TPCTestTracking.C(2) for slow simulator data
-void TPCTestTracking(int fast=1) {
-// Dynamically link some shared libs
- if (gClassTable->GetID("AliRun") < 0) {
- gSystem->Load("libGeant3Dummy.so"); // a dummy version of Geant3
- gSystem->Load("PHOS/libPHOSdummy.so"); // the standard Alice classes
- gSystem->Load("libgalice.so"); // the standard Alice classes
- } else {
- delete gAlice;
- gAlice=0;
- }
-
-// Connect the Root Galice file containing Geometry, Kine and Hits
- TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject("galice.root");
- if (!file) file = new TFile("galice.root");
-
-// 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);
-
- TClonesArray *particles=gAlice->Particles();
- int np=particles->GetEntriesFast();
-
- AliTPC *TPC = (AliTPC*)gAlice->GetDetector("TPC");
-
- if (fast==1) {
- cerr<<"Making clusters...\n";
- TPC->Hits2Clusters();
- TClonesArray *clusters=TPC->Clusters();
- if (!clusters) {cerr<<"No clusters found !\n"; return;}
- int n=clusters->GetEntriesFast();
- cerr<<"Number of clusters "<<n<<" \n";
-
- cerr<<"Marking \"good\" tracks... \n";
- for (int i=0; i<n; i++) {
- AliTPCcluster *c=(AliTPCcluster*)clusters->UncheckedAt(i);
- int lab=c->fTracks[0]; if (lab<0) lab=-lab; lab--;
- if (lab<0) continue; //noise cluster
- int sector=c->fSector, row=c->fPadRow;
- GParticle *p=(GParticle*)particles->UncheckedAt(lab);
- int ks;
- if (row==51) {ks=p->GetKS()|0x100; p->SetKS(ks);}
- if (row==51-8) {ks=p->GetKS()|0x80; p->SetKS(ks);}
- ks=p->GetKS()+1; p->SetKS(ks);
- }
-
- } else {
- cerr<<"Looking for clusters...\n";
- TPC->Digits2Clusters();
- TClonesArray *clusters=TPC->Clusters();
- if (!clusters) {cerr<<"No clusters found !\n"; return;}
- int n=clusters->GetEntriesFast();
- cerr<<"Number of clusters "<<n<<" \n";
-
- cerr<<"Marking \"good\" tracks... \n";
- TClonesArray *digits=TPC->Digits();
- TTree *TD=gAlice->TreeD();
- TD->GetBranch("TPC")->SetAddress(&digits);
- int *count = new int[np];
- int i;
- for (i=0; i<np; i++) count[i]=0;
- int sectors_by_rows=(int)TD->GetEntries();
- for (i=0; i<sectors_by_rows; i++) {
- if (!TD->GetEvent(i)) continue;
- int sec, row;
- int ndigits=digits->GetEntriesFast();
- int j;
- for (j=0; j<ndigits; j++) {
- AliTPCdigit *dig = (AliTPCdigit*)digits->UncheckedAt(j);
- int idx=dig->fTracks[0]-1;
- if (idx<0) continue;
- sec=dig->fSector-1; row=dig->fPadRow-1;
- if (dig->fSignal>10) count[idx]+=dig->fSignal;
- }
- for (j=0; j<np; j++) {
- GParticle *p=(GParticle*)particles->UncheckedAt(j);
- if (count[j]>75) {
- int ks;
- if (row==51 ) {ks=p->GetKS()|0x100; p->SetKS(ks);}
- if (row==51-8) {ks=p->GetKS()|0x80; p->SetKS(ks);}
- ks=p->GetKS()+1; p->SetKS(ks);
- }
- count[j]=0;
- }
- }
- delete[] count;
-
- }
-
- cerr<<"Looking for tracks...\n";
- TPC->Clusters2Tracks();
- TClonesArray *tracks=TPC->Tracks();
- if (!tracks) {cerr<<"No tracks found !\n"; return;}
- int nt=tracks->GetEntriesFast();
- cerr<<"Number of found tracks "<<nt<<endl;
-
-/////////////////////////////////////////////////////////////////////////
- cerr<<"Doing comparison...\n";
- TH1F *hp=new TH1F("hp","PHI resolution",50,-100.,100.); hp->SetFillColor(4);
- TH1F *hl=new TH1F("hl","LAMBDA resolution",50,-100,100); hl->SetFillColor(4);
- TH1F *hpt=new TH1F("hpt","Relative Pt resolution",50,-10.,10.);
- hpt->SetFillColor(2);
- TH1F *hd=new TH1F("hd","Impact parameter distribution ",50,0,25);
- hd->SetFillColor(6);
-
- TH1F *hgood=new TH1F("hgood","Good tracks",20,0,2);
- TH1F *hfound=new TH1F("hfound","Found tracks",20,0,2);
- TH1F *hfake=new TH1F("hfake","Fake tracks",20,0,2);
- TH1F *hg=new TH1F("hg","",20,0,2); //efficiency for good tracks
- hg->SetLineColor(4); hg->SetLineWidth(2);
- TH1F *hf=new TH1F("hf","Efficiency for fake tracks",20,0,2);
- hf->SetFillColor(1); hf->SetFillStyle(3013); hf->SetLineWidth(2);
-
- for (int i=0; i<np; i++) {
- GParticle *p = (GParticle*)particles->UncheckedAt(i);
- if (p->GetParent()>=0) continue; //secondary particle
- if (p->GetKS()<0x100+0x80+32) continue;
- Double_t ptg=p->GetPT(),pxg=p->GetPx(),pyg=p->GetPy(),pzg=p->GetPz();
- if (ptg<0.100) continue;
- if (fabs(pzg/ptg)>0.999) continue;
- hgood->Fill(ptg);
- int found=0;
- for (int j=0; j<nt; j++) {
- AliTPCtrack *track=(AliTPCtrack*)tracks->UncheckedAt(j);
- int lab=track->GetLab();
- if (fabs(lab)!=i) continue;
- found=1;
- Double_t xk=76.;
-
- track->PropagateTo(xk);
- xk-=0.11;
- track->PropagateTo(xk,42.7,2.27); //C
- xk-=2.6;
- track->PropagateTo(xk,36.2,1.98e-3); //C02
- xk-=0.051;
- track->PropagateTo(xk,42.7,2.27); //C
-
- xk-=0.4;
- track->PropagateTo(xk,21.82,2.33); //ITS+beam_pipe+etc (approximately)
-
- track->PropagateToVertex(); //comparison should be done at the vertex
-
- if (lab==i) hfound->Fill(ptg);
- else hfake->Fill(ptg);
- Double_t px,py,pz,pt=fabs(track->GetPt());track->GetPxPyPz(px,py,pz);
- Double_t phig=TMath::ATan(pyg/pxg);
- Double_t phi =TMath::ATan(py /px );
- hp->Fill((phi - phig)*1000.);
- Double_t lamg=TMath::ATan(pzg/ptg);
- Double_t lam =TMath::ATan(pz /pt );
- hl->Fill((lam - lamg)*1000.);
- hpt->Fill((pt - ptg)/ptg*100.);
- Double_t x,y,z; track->GetXYZ(x,y,z);
- hd->Fill(sqrt(x*x + y*y + z*z)*10.);
- break;
- }
- if (!found) cerr<<"Track number "<<i<<" was not found !\n";
- }
- Stat_t ngood =hgood->GetEntries(); cerr<<"Good tracks "<<ngood<<endl;
- Stat_t nfound=hfound->GetEntries();
- if (ngood!=0)
- cerr<<"Integral efficiency is about "<<nfound/ngood*100.<<" %\n";
-
- gStyle->SetOptStat(111110);
-
- TCanvas *c1=new TCanvas("c1","",0,0,700,700);
- TPad *p1=new TPad("p1","",0,0.5,0.5,1); p1->Draw(); hp->SetXTitle("(mrad)");
- p1->cd(); hp->Draw(); c1->cd();
- TPad *p2=new TPad("p2","",0.5,0.5,1,1); p2->Draw(); hl->SetXTitle("(mrad)");
- p2->cd(); hl->Draw(); c1->cd();
- TPad *p3=new TPad("p3","",0,0,0.5,0.5); p3->Draw(); hpt->SetXTitle("(%)");
- p3->cd(); hpt->Draw(); c1->cd();
- TPad *p4=new TPad("p4","",0.5,0,1,0.5); p4->Draw(); hd->SetXTitle("(mm)");
- p4->cd(); hd->Draw(); c1->cd();
-
- TCanvas *c2=new TCanvas("c2",""); c2->cd();
- hfound->Sumw2(); hgood->Sumw2(); hfake->Sumw2();
- hg->Divide(hfound,hgood,1,1.,"b");
- hf->Divide(hfake,hgood,1,1.,"b");
- hg->SetMaximum(1.4);
- hg->SetYTitle("Tracking efficiency");
- hg->SetXTitle("Pt (GeV/c)");
- hg->Draw();
-
- TLine *line1 = new TLine(0,1.0,2,1.0); line1->SetLineStyle(4);
- line1->Draw("same");
- TLine *line2 = new TLine(0,0.9,2,0.9); line2->SetLineStyle(4);
- line2->Draw("same");
-
- hf->SetFillColor(1);
- hf->SetFillStyle(3013);
- hf->SetLineColor(2);
- hf->SetLineWidth(2);
- hf->Draw("histsame");
- TText *text = new TText(0.461176,0.248448,"Fake tracks");
- text->SetTextSize(0.05);
- text->Draw();
- text = new TText(0.453919,1.11408,"Good tracks");
- text->SetTextSize(0.05);
- text->Draw();
-}
-
+++ /dev/null
-void TPCtest()
-{
-// Connect the Root Galice file containing Geometry, Kine and Hits
-TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject("galice.root");
- if (!file) file = new TFile("galice.root","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);
-AliDetector *TPC = gAlice->GetDetector("TPC");
-Int_t en;
-
-((AliTPC*)TPC)->Hits2Digits();
-
-TClonesArray *Digits = TPC->Digits();
-
-en = gAlice->TreeD()->GetEntries();
-printf("entries = %d\n",en);
-
-gAlice->TreeD()->Write();
-
-}