<<"You have not supplied the input rootfile; use the appropriate ctor!"<<ENDLOG;
return;
}
+
+ AliL3Transform::Init(path);//Initialize the detector parameters.
fWriteOut = kFALSE;
- fGlobalMerger=0;
- fTransformer = new AliL3Transform(path);
+ fUseBinary = binary;
+ SetPath(path);
+ fGlobalMerger = 0;
+
fDoRoi = kFALSE;
fDoNonVertex = kFALSE;
- fClusterDeconv = kTRUE;
+ fFindVertex = kFALSE;
+ SetClusterFinderParam();
+
fEta[0] = 0.;
fEta[1] = 0.9;
- fUseBinary = binary;
- SetPath(path);
- fFindVertex =kFALSE;
+
fEvent=0;
switch(npatches){
fRow[4][0] = 142;
fRow[4][1] = 175; // last row
break;
- default:
+ default: //should match entries in AliL3Transform
fNPatch = 6; //number of patches change row in process
fRow[0][0] = 0; // first row
fRow[0][1] = 31;
AliLevel3::~AliLevel3(){
//Destructor
- if(fVertexFinder) delete fVertexFinder;
- if(fVertex) delete fVertex;
+ if(fVertexFinder) delete fVertexFinder;
+ if(fVertex) delete fVertex;
if(fTracker) delete fTracker;
- if(fTransformer) delete fTransformer;
if(fTrackMerger) delete fTrackMerger;
if(fInterMerger) delete fInterMerger;
if(fFileHandler) delete fFileHandler;
}
+void AliLevel3::SetClusterFinderParam(Float_t fXYError, Float_t fZError, Bool_t deconv)
+{
+ fXYClusterError=fXYError;
+ fZClusterError=fZError;
+ fClusterDeconv=deconv;
+}
+
void AliLevel3::SetTrackerParam(Int_t phi_segments, Int_t eta_segments,
Int_t trackletlength, Int_t tracklength,
Int_t rowscopetracklet, Int_t rowscopetrack,
void AliLevel3::ProcessEvent(Int_t first,Int_t last,Int_t event){
//Do tracking on all slices in region [first,last]
- //Slices numbering in TPC goes from 0-35, which means that 1 slice
+ //Slices numbering in TPC goes from 0-35, which means that one slice
//corresponds to inner+outer sector.E.g. slice 2 corresponds to
//inner=2 + outer=38.
fGlobalMerger= new AliL3GlobalMerger(first,last);
for(Int_t i=first; i<=last; i++){
ProcessSlice(i);
fGlobalMerger->SetVertex(fVertex);
- fGlobalMerger->SetTransformer(fTransformer);
fGlobalMerger->InitSlice(i);
fGlobalMerger->FillTracks(fNTrackData,fTrackData);
fFileHandler->Free(); //free the memory
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]);
for(Int_t patch=fNPatch-1;patch>=0;patch--){
- fFileHandler->Init(slice,patch,fRow[patch]);
- fFileHandler->SetTransformer(fTransformer);
+ fFileHandler->Init(slice,patch,&fRow[patch][0]);
UInt_t npoints=0;
AliL3SpacePointData *points =0;
UInt_t ndigits=0;
points = (AliL3SpacePointData *) memory->Allocate(pointsize);
- fClusterFinder = new AliL3ClustFinderNew(fTransformer);
- fClusterFinder->InitSlice(slice,patch,fRow[patch][0],fRow[patch][1]
- ,maxpoints);
+ fClusterFinder = new AliL3ClustFinderNew();
+ fClusterFinder->InitSlice(slice,patch,fRow[patch][0],fRow[patch][1],maxpoints);
fClusterFinder->SetDeconv(fClusterDeconv);
- fClusterFinder->SetXYError(0.2);
- fClusterFinder->SetZError(0.3);
+ fClusterFinder->SetXYError(fXYClusterError);
+ fClusterFinder->SetZError(fZClusterError);
+ if((fXYClusterError>0)&&(fZClusterError>0))
+ fClusterFinder->SetCalcErr(kFALSE);
fClusterFinder->SetOutputArray(points);
fClusterFinder->Read(ndigits,digits);
fBenchmark->Start("Cluster Finder");
fBenchmark->Stop("Cluster Finder");
npoints = fClusterFinder->GetNumberOfClusters();
delete fClusterFinder;
- fClusterFinder =0;
+ fClusterFinder = 0;
fFileHandler->Free();
LOG(AliL3Log::kInformational,"AliLevel3::ProcessSlice","Cluster Finder")
<<AliL3Log::kDec<<"Found "<<npoints<<" Points"<<ENDLOG;
-
-
}//end UseCF
else{// if not use Clusterfinder
if(fUseBinary){//Binary to Memory
}
*/
fInterMerger->Reset();
- fInterMerger->SetTransformer(fTransformer);
fInterMerger->Init(fRow[patch],patch);
fInterMerger->FillTracks(ntracks0,trackdata0);
memory->Free();
}
fBenchmark->Start("Patch Merger");
-// fTrackMerger->SlowMerge();
+ fTrackMerger->SlowMerge();
//fTrackMerger->AddAllTracks();
- fTrackMerger->Merge();
+ //fTrackMerger->Merge();
fBenchmark->Stop("Patch Merger");
/*
//write merged tracks
char name[256];
sprintf(name,"%spoints_%d_%d.raw",fWriteOutPath,slice,patch);
AliL3MemHandler * memory = new AliL3MemHandler();
- memory->SetTransformer(fTransformer);
memory->SetBinaryOutput(name);
memory->Transform(npoints,points,slice);
memory->Memory2Binary(npoints,points);
delete memory;
}
-
Int_t AliLevel3::WriteTracks(char *filename,AliL3Merger *merger,char opt){
AliL3MemHandler *memory = new AliL3MemHandler();
memory->SetBinaryOutput(filename);