+++ /dev/null
-/****************************************************************************
- * Origin: I.Belikov, CERN, Jouri.Belikov@cern.ch *
- ****************************************************************************/
-
-#if !defined(__CINT__) || defined(__MAKECINT__)
- #include <Riostream.h>
- #include "AliTPCParam.h"
- #include "AliTPCtracker.h"
- #include "AliTPCtrackerMI.h"
- #include "AliRun.h"
- #include "AliRunLoader.h"
- #include "AliTPCLoader.h"
- #include "AliESD.h"
- #include "TFile.h"
- #include "TStopwatch.h"
-#endif
-
-extern AliRun *gAlice;
-
-
-Int_t AliTPCFindTracksMI(Int_t N=-1) {
-
- cerr<<"Looking for tracks...\n";
-
- if (gAlice)
- {
- delete AliRunLoader::Instance();
- delete gAlice;
- gAlice = 0x0;
- }
-
- AliRunLoader *rl = AliRunLoader::Open("galice.root");
- if (rl == 0x0)
- {
- cerr<<"Can not open session"<<endl;
- return 1;
- }
- AliTPCLoader *tpcl = (AliTPCLoader*)rl->GetLoader("TPCLoader");
- if (tpcl == 0x0)
- {
- cerr<<"Can not get TPC Loader"<<endl;
- return 1;
- }
-
- if (rl->LoadgAlice())
- {
- cerr<<"Error occured while l"<<endl;
- return 1;
- }
- AliKalmanTrack::SetFieldMap(rl->GetAliRun()->Field());
-
- rl->CdGAFile();
-
- AliTPCParam *param=(AliTPCParam *)gDirectory->Get("75x40_100x60_150x60");
- if (!param)
- {
- param=(AliTPCParam *)gDirectory->Get("75x40_100x60");
- if (!param)
- {
- cerr<<"TPC parameters have not been found !\n";
- return 1;
- }
- else
- {
- cout<<"TPC 75x40_100x60 geometry found"<<endl;
- }
- }
- else
- {
- cout<<"TPC 75x40_100x60_150x60 geometry found"<<endl;
- }
-
-
- tpcl->LoadTracks("recreate");
-
- Int_t eventn;
- if (N<=0)
- {
- eventn = rl->GetNumberOfEvents();
- rl->UnloadHeader();
- }
- else
- eventn = N;
-
- TStopwatch timer;
- Int_t rc=0;
- for (Int_t i=0;i<eventn;i++)
- {
- rl->GetEvent(i);
- TTree * input = tpcl->TreeR();
- if (input == 0x0)
- {
- tpcl->LoadRecPoints("read");
- input = tpcl->TreeR();
- if (input == 0x0)
- {
- cerr << "Problems with input tree (TreeR) for event " << i <<endl;
- continue;
- }
- }
- TTree * output = tpcl->TreeT();
- if (output == 0x0)
- {
- tpcl->MakeTree("T");
- output = tpcl->TreeT();
- if (output == 0x0)
- {
- cerr << "Problems with output tree (TreeT) for event " << i <<endl;
- continue;
- }
- }
-
- printf("Processing event %d\n",i);
- AliTPCtrackerMI *tracker = new AliTPCtrackerMI(param);
- tracker->SetIO();
- tracker->LoadClusters();
- rc=tracker->Clusters2Tracks();
- tracker->WriteTracks(output);
- tracker->UnloadClusters();
- tpcl->WriteTracks("OVERWRITE");
- //output->GetDirectory()->cd();
- //output->Write();
- delete tracker;
- }
- timer.Stop(); timer.Print();
- rl->UnloadgAlice();
-
- delete param;
- delete rl;
- return rc;
-}
+++ /dev/null
-#ifndef __CINT__
- #include "alles.h"
- #include "AliRun.h"
- #include "AliRunLoader.h"
- #include "AliLoader.h"
- #include "AliTPCtracker.h"
- #include "AliITS.h"
- #include "AliITSgeom.h"
- #include "AliITSRecPoint.h"
- #include "AliITSclusterV2.h"
- #include "AliITSsimulationFastPoints.h"
- #include "AliITStrackerV2.h"
-
-#endif
-Int_t AliTPCHits2SDigits(Int_t nevent=1)
-{
-
- // new version by J.Belikov
-
- // Connect the Root Galice file containing Geometry, Kine and Hits
-
- //it assures full cleaning of prevous session
- if (gAlice)
- {
- delete AliRunLoader::Instance();
- delete gAlice;//if everything was OK here it is already NULL
- gAlice = 0x0;
- }
-
- AliRunLoader *rl = AliRunLoader::Open("galice.root","Event","update");
- if (!rl)
- {
- cerr<<"Can't load RunLoader from "<<inFile_new<<" !\n";
- return 1;
- }
-
- // Get AliRun object from file or create it if not on file
-
- rl->LoadgAlice();
-
- gAlice = rl->GetAliRun();
- if (!gAlice) {
- cerr<<"AliTPCHits2Digits.C : AliRun object not found on file\n";
- delete rl;
- return 2;
- }
-
- // gAlice->GetEvent(0);
- AliTPC *TPC = (AliTPC*)gAlice->GetDetector("TPC");
- AliLoader * tpcl = rl->GetLoader("TPCLoader");
- if ((TPC == 0x0) || (tpcl == 0x0))
- {
- cerr<<"AliTPCHits2Digits.C : Can not find TPC or TPCLoader\n";
- delete rl;
- return 3;
- }
-
- tpcl->LoadHits("READ");
- tpcl->LoadSDigits("RECREATE");
-
- TStopwatch timer;
- timer.Start();
-
- // uncomment lines below to set active sectors
- //Int_t sec[10]={4,5,6,7,8,4+36,5+36,6+36,7+36,8+36};
- //TPC->SetActiveSectors(sec,10);
-
- for(Int_t eventn =0;eventn<nevent;eventn++){
- printf("Processing event %d \n",eventn);
- rl->GetEvent(eventn);
- TPC->SetTreeAddress();
- TPC->SetActiveSectors(); // all sectors set active
- printf("\nActive sectors\n");
- for (Int_t i=0;i<72;i++) if (TPC->IsSectorActive(i)) printf("%d\t",i);
-
- TPC->Hits2SDigits2(eventn);
- }
-
- delete rl;
- timer.Stop();
- timer.Print();
-
- return 0;
-};
-
-
-
-
+++ /dev/null
-/****************************************************************************
- * Origin: I.Belikov, CERN, Jouri.Belikov@cern.ch *
- ****************************************************************************/
-
-#ifndef __CINT__
- #include <Riostream.h>
- #include "AliTPCtracker.h"
-
- #include "TFile.h"
- #include "TStopwatch.h"
-#endif
-
-Int_t AliTPCPropagateBack() {
- cerr<<"Propagating tracks back through the TPC...\n";
-
- TFile *in=TFile::Open("AliTPCtracks.root");
- if (!in->IsOpen()) {
- cerr<<"Can't open AliTPCtracks.root !\n";
- return 1;
- }
- TFile *out=TFile::Open("AliTPCBackTracks.root","new");
- if (!out->IsOpen()) {
- cerr<<"Delete old AliTPCBackTracks.root !\n"; return 2;
- }
- TFile *file=TFile::Open("AliTPCclusters.root");
- if (!file->IsOpen()) {
- cerr<<"Can't open AliTPCclusters.root !\n";return 3;
- }
- AliTPCParam *param=(AliTPCParam*)file->Get("75x40_100x60_150x60");
- if (!param) {cerr<<"Can't get TPC parameters !\n"; return 4;}
-
- TStopwatch timer;
- AliTPCtracker *tracker=new AliTPCtracker(param);
- Int_t rc=tracker->PropagateBack(in,out);
- delete tracker;
- timer.Stop(); timer.Print();
-
- file->Close();
- in->Close();
- out->Close();
-
- return rc;
-}
+++ /dev/null
-#ifndef __CINT__
- #include "alles.h"
- #include "AliTPCtracker.h"
-#endif
-Int_t AliTPCSDigits2Digits(Int_t nevent=1)
-{
-
- // new version by J.Belikov
-
- // Connect the Root Galice file containing Geometry, Kine and Hits
-
- const char * inFile_old = "galice.root";
- const char * inFile_new = "galice.root";
-
- if (gAlice)
- {
- delete AliRunLoader::Instance();
- delete gAlice;//if everything was OK here it is already NULL
- gAlice = 0x0;
- }
-
- TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject(inFile_old);
- if (file) {file->Close(); delete file;}
-
- AliRunLoader *rl = AliRunLoader::Open(inFile_new,"Event","update");
-
- if (!rl) {
- 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;
-
- rl->LoadgAlice();
-
- gAlice = rl->GetAliRun();
- if (!gAlice) {
- cerr<<"AliTPCHits2Digits.C : AliRun object not found on file\n";
- delete rl;
- return 2;
- }
-
- // gAlice->GetEvent(0);
- AliTPC *TPC = (AliTPC*)gAlice->GetDetector("TPC");
-
- AliLoader * tpcl = rl->GetLoader("TPCLoader");
-
- if ((TPC == 0x0) || (tpcl == 0x0))
- {
- cerr<<"AliTPCHits2Digits.C : Can not find TPC or TPCLoader\n";
-// delete rl;
- return 3;
- }
-
- tpcl->LoadSDigits("READ");
- tpcl->LoadDigits("RECREATE");
- rl->CdGAFile();
- AliTPCParamSR *dig=(AliTPCParamSR *)gDirectory->Get("75x40_100x60");
- if(dig){
- cerr<<"2 pad-length geom hits with 3 pad-lengths geom digits\n";
- delete dig;
- dig = new AliTPCParamSR();
- }
- else
- {
- dig=(AliTPCParamSR *)gDirectory->Get("75x40_100x60_150x60");
- }
- if (!dig) {cerr<<"TPC parameters have not been found !\n"; return 4;}
- TPC->SetParam(dig);
-
-
- TStopwatch timer;
- timer.Start();
-
- for(Int_t eventn =0;eventn<nevent;eventn++){
- printf("Processing event %d\n",eventn);
- cout<<"rl->GetEvent(eventn);\n";
- rl->GetEvent(eventn);
- cout<<"TPC->SDigits2Digits2(eventn);\n";
- TPC->SDigits2Digits2(eventn);
- }
-
- timer.Stop();
- timer.Print();
-
- delete rl;
- return 0;
-};
-
-
-
-
-
-
-
-
-
-
-
-
+++ /dev/null
-////////////////////////////////////////////////////////////////////////
-//
-// AliTPCTracking.C
-//
-// date: 22.08.2002
-// author: Jiri Chudoba based on code of Jourij Belikov
-// version: 1.0
-// description:
-// reconstructs of tracks in TPC in the following steps:
-// TPC cluster finding
-// TPC track finding
-// input parameters:
-// Int_t nEvents ... nr of events to process (<0 means all)
-// Int_t firstEventNr ... first event number (starts from 0)
-// const char* fileName ... name of galice file
-// Bool_t makeClusters ... run the cluster finder or not?
-// Bool_t makeTracks ... run the track finder or not?
-// const char* fileNameRaw ... if not NULL, the cluster finder uses
-// the given file as raw data input
-//
-// History:
-//
-// 21.07.2003 ... NewIO
-//
-// 18.03.2003 ... Char_t* replaced by const char*
-//
-// 03.03.2003 ... SetFieldFactor moved to AliTracker class and
-// LoadTPCParam moved to AliTPC class
-// TString replaced by Char_t*
-//
-// 20.11.2002 ... Changes due to a changed interface of AliTPCtracker.
-// Use Riostream.h instead of iostream.h
-//
-// 22.08.2002 ... first version
-//
-////////////////////////////////////////////////////////////////////////
-
-#if !defined(__CINT__) || defined(__MAKECINT__)
-#include <Riostream.h>
-#include <TFile.h>
-#include <TTree.h>
-#include <TBenchmark.h>
-#include "AliRunLoader.h"
-#include "AliTPC.h"
-#include "AliTPCParam.h"
-#include "AliTPCclustererMI.h"
-#include "AliTPCtrackerMI.h"
-#include "AliRawReaderRoot.h"
-#endif
-
-Bool_t AliTPCTracking(Int_t nEvents = -1, Int_t firstEvent = 0,
- const char* fileName = "galice.root",
- Bool_t makeClusters = kTRUE,
- Bool_t makeTracks = kTRUE,
- const char* fileNameRaw = NULL);
-
-/*
-Int_t TPCRefitInward(Int_t nEvents=1, Int_t firstEvent=0,
- const char* fileNameClusters="tpc.clusters.root",
- const char* fileNameTracks="tpc.tracks.root",
- const char* fileNameTRDTracks="trd.tracks.root",
- const char* fileNameRefittedTracks="tpc.refitted.tracks.root");
-*/
-
-////////////////////////////////////////////////////////////////////////
-Bool_t AliTPCTracking(Int_t nEvents, Int_t firstEvent,
- const char* fileName,
- Bool_t makeClusters,
- Bool_t makeTracks,
- const char* fileNameRaw)
-{
- // get the loaders
- AliRunLoader* runLoader = AliRunLoader::Open(fileName);
- if (!runLoader) {
- cerr << "AliTPCTracking: no run loader found\n";
- return kFALSE;
- }
- AliLoader* tpcLoader = runLoader->GetLoader("TPCLoader");
- if (!tpcLoader) {
- cerr << "AliTPCTracking: no TPC loader found\n";
- return kFALSE;
- }
-
- // get the TPC parameters
- runLoader->CdGAFile();
- AliTPCParam* param = AliTPC::LoadTPCParam(gFile);
- if (!param) {
- cerr << "AliTPCTracking: no TPC parameters found\n";
- return kFALSE;
- }
-
- // create the clusterer object
- AliTPCclustererMI* clusterer = NULL;
- if (makeClusters) {
- clusterer = new AliTPCclustererMI(param);
- if (!fileNameRaw) tpcLoader->LoadDigits();
- tpcLoader->LoadRecPoints("recreate");
- }
-
- // create the tracker object
- AliTPCtrackerMI* tracker = NULL;
- if (makeTracks) {
-// tracker = new AliTPCtrackerMI(param);
- if (!makeClusters) tpcLoader->LoadRecPoints();
- tpcLoader->LoadTracks("recreate");
- }
-
- // get the event number range
- Int_t maxEvent = 0;
- if (fileNameRaw) {
- TFile* file = TFile::Open(fileNameRaw);
- if (file && file->IsOpen()) {
- TTree* tree = (TTree*) file->Get("T");
- if (tree) maxEvent = (Int_t) tree->GetEntries();
- }
- } else {
- maxEvent = runLoader->GetNumberOfEvents();
- }
- if (nEvents < 0) nEvents = maxEvent - firstEvent;
- Int_t lastEvent = firstEvent + nEvents;
- if (lastEvent > maxEvent) lastEvent = maxEvent;
-
- // loop over the events
- for (Int_t iEvent = firstEvent; iEvent < lastEvent; iEvent++) {
-
- runLoader->GetEvent(iEvent);
-
- // run the cluster finder
- if (makeClusters) {
- if (!tpcLoader->TreeR()) tpcLoader->MakeRecPointsContainer();
- clusterer->SetOutput(tpcLoader->TreeR());
- if (fileNameRaw) {
- AliRawReaderRoot rawReader(fileNameRaw, iEvent);
- clusterer->Digits2Clusters(&rawReader);
- } else {
- clusterer->SetInput(tpcLoader->TreeD());
- clusterer->Digits2Clusters();
- }
- tpcLoader->WriteRecPoints("OVERWRITE");
- }
-
- // run the track finder
- if (makeTracks) {
- tracker = new AliTPCtrackerMI(param);
- tracker->Clusters2Tracks();
- delete tracker;
- }
- }
-
- if (tracker) delete tracker;
- if (clusterer) delete clusterer;
-
- return kTRUE;
-}
-
-/*
-////////////////////////////////////////////////////////////////////////
-Int_t TPCRefitInward(Int_t nEvents, Int_t firstEvent,
- const char* fileNameClusters,
- const char* fileNameTracks,
- const char* fileNameTRDTracks,
- const char* fileNameRefittedTracks)
-{
- Int_t rc = 0;
- const Char_t *name="TPCRefitInward";
- if (gDEBUG>1) cout<<name<<" starts"<<endl;
- if (gDEBUG>1) gBenchmark->Start(name);
- TFile *fileClusters = TFile::Open(fileNameClusters);
- TFile *fileTracks = TFile::Open(fileNameTracks);
- TFile *fileTRDTracks = TFile::Open(fileNameTRDTracks);
- TFile *fileRefittedTracks = TFile::Open(fileNameRefittedTracks, "recreate");
-
- AliTPCParam* paramTPC = AliTPC::LoadTPCParam(fileClusters);
- if (!paramTPC) return 1;
-
- for (Int_t iEvent = firstEvent; iEvent < firstEvent+nEvents; iEvent++){
- if (gDEBUG > 2) cout<<"TPCRefitInward: event "<<iEvent<<endl;
- AliTPCtracker *tracker = new AliTPCtracker(paramTPC);
- tracker->SetEventNumber(iEvent);
- fileClusters->cd();
- rc = tracker->RefitInward(fileTRDTracks, fileTracks, fileRefittedTracks);
- delete tracker;
- if (rc) return rc;
- }
-
- fileClusters->Close();
- fileTracks->Close();
- fileTRDTracks->Close();
- fileRefittedTracks->Close();
- delete fileClusters;
- delete fileTracks;
- delete fileTRDTracks;
- delete fileRefittedTracks;
- if (gDEBUG>1) gBenchmark->Show(name);
- return rc;
-}
-*/