fTransformer = new AliL3Transform();
fDoRoi = kFALSE;
fDoNonVertex = kFALSE;
- fClusterDeconv = kFALSE;
+ fClusterDeconv = kTRUE;
fEta[0] = 0.;
fEta[1] = 0.9;
fUseBinary =kFALSE;
fRow[1][1] = 77;
fRow[2][0] = 78;
fRow[2][1] = 109;
- fRow[3][0] = 110;
+ fRow[3][0] = 110;
fRow[3][1] = 141;
fRow[4][0] = 142;
fRow[4][1] = 175; // last row
}
void AliLevel3::SetTrackerParam(Int_t phi_segments, Int_t eta_segments,
- Int_t trackletlength, Int_t tracklength,
- Int_t rowscopetracklet, Int_t rowscopetrack,
- Double_t min_pt_fit, Double_t maxangle,
- Double_t goodDist, Double_t hitChi2Cut,
- Double_t goodHitChi2, Double_t trackChi2Cut,
- Int_t maxdist,Bool_t vertexconstraint)
+ Int_t trackletlength, Int_t tracklength,
+ Int_t rowscopetracklet, Int_t rowscopetrack,
+ Double_t min_pt_fit, Double_t maxangle,
+ Double_t goodDist, Double_t hitChi2Cut,
+ Double_t goodHitChi2, Double_t trackChi2Cut,
+ Int_t maxdist,Double_t maxphi,Double_t maxeta,Bool_t vertexconstraint)
{
//Set parameters input to the tracker
//If no arguments are given, default parameters will be used
fTracker->SetTrackCuts(hitChi2Cut,goodHitChi2,trackChi2Cut,maxdist,vertexconstraint);
fTracker->SetTrackletCuts(maxangle,goodDist,vertexconstraint);
if(vertexconstraint)
- fTracker->MainVertexSettings(trackletlength,tracklength,rowscopetracklet,rowscopetrack);
+ fTracker->MainVertexSettings(trackletlength,tracklength,rowscopetracklet,rowscopetrack,maxphi,maxeta);
else
fTracker->NonVertexSettings(trackletlength,tracklength,rowscopetracklet,rowscopetrack);
Bool_t UseCF = kFALSE;
#ifdef use_aliroot
UseCF = fFileHandler->IsDigit();
+#else
+ if(fUseBinary)
+ UseCF = kTRUE; //In case you are not using aliroot
#endif
const Int_t maxpoints=100000;
const Int_t pointsize = maxpoints * sizeof(AliL3SpacePointData);
AliL3MemHandler *memory = new AliL3MemHandler();
-
+
fTrackMerger->Reset();
fTrackMerger->SetTransformer(fTransformer);
fTrackMerger->SetRows(fRow[0]);
if(UseCF){
if(fUseBinary){
if(!fDoRoi){
- if(0){ //Binary to Memory
- fFileHandler->Free();
+ if(1){ //Binary to Memory
+ fFileHandler->Free();
sprintf(name,"%sdigits_%d_%d.raw",fPath,slice,patch);
- if(!fFileHandler->SetBinaryInput(name)) return;
- digits= (AliL3DigitRowData *)fFileHandler->CompBinary2Memory(ndigits);
+ if(!fFileHandler->SetBinaryInput(name)) return;
+ digits= (AliL3DigitRowData *)fFileHandler->CompBinary2Memory(ndigits);
fFileHandler->CloseBinaryInput();
}
- if(1){ //Binary to Memory with Benchmark
+ if(0){ //Binary to Memory with Benchmark
fFileHandler->Free();
sprintf(name,"%sdigits_%d_%d.raw",fPath,slice,patch);
if(!memory->SetBinaryInput(name)) return;
fClusterFinder->InitSlice(slice,patch,fRow[patch][0],fRow[patch][1]
,maxpoints);
fClusterFinder->SetDeconv(fClusterDeconv);
- fClusterFinder->SetXYError(0.1);
- fClusterFinder->SetZError(0.2);
+ fClusterFinder->SetXYError(0.2);
+ fClusterFinder->SetZError(0.3);
fClusterFinder->SetOutputArray(points);
fClusterFinder->Read(ndigits,digits);
fBenchmark->Start("Cluster Finder");
fTracker->ReadHits(npoints,points);
fBenchmark->Stop("Tracker Read Hits");
fBenchmark->Start("MainVertexTracking A");
- fTracker->MainVertexTracking_a();
+ fTracker->MainVertexTracking();
+ //fTracker->MainVertexTracking_a();
fBenchmark->Stop("MainVertexTracking A");
- fBenchmark->Start("MainVertexTracking B");
- fTracker->MainVertexTracking_b();
- fBenchmark->Stop("MainVertexTracking B");
+ //fBenchmark->Start("MainVertexTracking B");
+ //fTracker->MainVertexTracking_b();
+ //fBenchmark->Stop("MainVertexTracking B");
fBenchmark->Start("Tracking fit");
if(fDoNonVertex)
fTracker->NonVertexTracking();//Do a second pass for nonvertex tracks
AliL3TrackSegmentData *trackdata0 =
(AliL3TrackSegmentData *) memory->Allocate(fTracker->GetTracks());
memory->TrackArray2Memory(ntracks0,trackdata0,fTracker->GetTracks());
-
+ /*
//write tracks
if(fWriteOut){
- sprintf(name,"tracks_tr_%d_%d.raw",slice,patch);
+ sprintf(name,"%stracks_tr_%d_%d.raw",fWriteOutPath,slice,patch);
memory->SetBinaryOutput(name);
memory->Memory2Binary(ntracks0,trackdata0);
memory->CloseBinaryOutput();
}
-
+ */
fInterMerger->Reset();
fInterMerger->SetTransformer(fTransformer);
fInterMerger->Init(fRow[patch],patch);
// fInterMerger->SlowMerge();
fBenchmark->Stop("Inter Merger");
-
+ /*
//write inter merged tracks
if(fWriteOut){
- sprintf(name,"tracks_im_%d_%d.raw",slice,patch);
+ sprintf(name,"%stracks_im_%d_%d.raw",fWriteOutPath,slice,patch);
WriteTracks(name,fInterMerger,'i'); //write output of intermerger
- }
+ }
+ */
memory->Free();
UInt_t ntracks1 =0;
}
fBenchmark->Start("Patch Merger");
// fTrackMerger->SlowMerge();
- fTrackMerger->AddAllTracks();
+ //fTrackMerger->AddAllTracks();
fTrackMerger->Merge();
fBenchmark->Stop("Patch Merger");
+ /*
//write merged tracks
if(fWriteOut){
- sprintf(name,"tracks_tm_%d.raw",slice);
+ sprintf(name,"%stracks_tm_%d.raw",fWriteOutPath,slice);
WriteTracks(name,fTrackMerger,'o'); //write output of trackmerger
}
-
+ */
fTrackData = (AliL3TrackSegmentData *)
fFileHandler->Allocate(fTrackMerger->GetOutTracks());
void AliLevel3::WriteSpacePoints(UInt_t npoints,AliL3SpacePointData *points,
Int_t slice,Int_t patch){
char name[256];
- sprintf(name,"points_%d_%d.raw",slice,patch);
+ sprintf(name,"%spoints_%d_%d.raw",fWriteOutPath,slice,patch);
AliL3MemHandler * memory = new AliL3MemHandler();
memory->SetBinaryOutput(name);
memory->Transform(npoints,points,slice,fTransformer);
void AliLevel3::WriteResults()
{
//Write the resulting tracks to outputfile
- WriteTracks("tracks.raw",fGlobalMerger,'a');
- WriteTracks("tracks_gl.raw",fGlobalMerger,'o');
+ Char_t fname[256];
+ sprintf(fname,"%stracks.raw",fWriteOutPath);
+ WriteTracks(fname,fGlobalMerger,'a');
+ //WriteTracks("tracks.raw",fGlobalMerger,'a');
+ sprintf(fname,"%stracks_gl.raw",fWriteOutPath);
+ WriteTracks(fname,fGlobalMerger,'o');
+ //WriteTracks("tracks_gl.raw",fGlobalMerger,'o');
}