#include "AliTRDclusterizer.h"
#include "AliTRDtracker.h"
#include "AliTRDpidESD.h"
-#include "AliTRDgtuTrack.h"
#include "AliTRDrawData.h"
#include "AliTRDdigitsManager.h"
#include "AliTRDtrackerV1.h"
ClassImp(AliTRDReconstructor)
TClonesArray *AliTRDReconstructor::fgClusters = 0x0;
+TClonesArray *AliTRDReconstructor::fgTracklets = 0x0;
Char_t* AliTRDReconstructor::fgSteerNames[kNsteer] = {
"DigitsConversion "
,"Tail Cancellation "
,"Tracklet Improve "
,"HLT Mode "
,"Cosmic Reconstruction "
+ ,"Process Online Tracklets"
};
Char_t* AliTRDReconstructor::fgSteerFlags[kNsteer] = {
"dc"// digits conversion [false]
,"tc"// apply tail cancellation [true]
- ,"lt"// look-up-table for cluster shape in the r-phi direction
+ ,"lut"// look-up-table for cluster shape in the r-phi direction
,"gs"// gauss cluster shape in the r-phi direction
,"sh"// cluster sharing between tracks
,"nn"// PID method in reconstruction (NN) [true]
,"ti"// improve tracklets in stand alone track finder [true]
,"hlt"// HLT reconstruction [false]
,"cos"// Cosmic Reconstruction [false]
+ ,"tp"// also use online tracklets for reconstruction [false]
};
Char_t* AliTRDReconstructor::fgTaskNames[kNtasks] = {
"RawReader"
if(fgClusters) {
fgClusters->Delete(); delete fgClusters;
}
+ if(fgTracklets) {
+ fgTracklets->Delete(); delete fgTracklets;
+ }
if(fSteerParam&kOwner){
for(Int_t itask = 0; itask < kNtasks; itask++)
if(fDebugStream[itask]) delete fDebugStream[itask];
//
// Convert raw data digits into digit objects in a root tree
//
- AliInfo("Feature not available for the moment."); return;
- AliInfo("Convert raw data digits into digit objects [RawReader -> Digit TTree]");
+ //AliInfo("Convert raw data digits into digit objects [RawReader -> Digit TTree]");
AliTRDrawData rawData;
rawReader->Reset();
rawReader->Select("TRD");
+ rawData.OpenOutput();
AliTRDdigitsManager *manager = rawData.Raw2Digits(rawReader);
manager->MakeBranch(digitsTree);
manager->WriteDigits();
AliTRDclusterizer clusterer(fgTaskNames[kClusterizer], fgTaskNames[kClusterizer]);
clusterer.SetReconstructor(this);
clusterer.OpenOutput(clusterTree);
+ clusterer.OpenTrackletOutput();
clusterer.SetUseLabels(kFALSE);
clusterer.Raw2ClustersChamber(rawReader);
// take over ownership of clusters
fgClusters = clusterer.RecPoints();
clusterer.SetClustersOwner(kFALSE);
+
+ // take over ownership of online tracklets
+ fgTracklets = clusterer.TrackletsArray();
+ clusterer.SetTrackletsOwner(kFALSE);
}
//_____________________________________________________________________________
// take over ownership of clusters
fgClusters = clusterer.RecPoints();
clusterer.SetClustersOwner(kFALSE);
+
+ // take over ownership of online tracklets
+ fgTracklets = clusterer.TrackletsArray();
+ clusterer.SetTrackletsOwner(kFALSE);
}
//_____________________________________________________________________________
PROCESSED = kTRUE;
break;
}
+ // extra rules
+ if(sopt.Contains("gs") && !sopt.Contains("!")){
+ CLRFLG(fSteerParam, kLUT); PROCESSED = kTRUE;
+ }
+
if(PROCESSED) continue;
if(sopt.Contains("sl")){
void AliTRDReconstructor::Options(UInt_t steer, UChar_t *stream)
{
for(Int_t iopt=0; iopt<kNsteer; iopt++){
- AliInfoGeneral("AliTRDReconstructor", Form(" %s[%s]%s", fgSteerNames[iopt], fgSteerFlags[iopt], steer ?(((steer>>iopt)&1)?" : ON":" : OFF"):""));
+ AliDebugGeneral("AliTRDReconstructor", 1, Form(" %s[%s]%s", fgSteerNames[iopt], fgSteerFlags[iopt], steer ?(((steer>>iopt)&1)?" : ON":" : OFF"):""));
}
- AliInfoGeneral("AliTRDReconstructor", " Debug Streaming");
+ AliDebugGeneral("AliTRDReconstructor", 1, " Debug Streaming");
for(Int_t it=0; it<kNtasks; it++)
- AliInfoGeneral("AliTRDReconstructor", Form(" %s [sl_%s] %d", fgTaskNames[it], fgTaskFlags[it], stream ? stream[it] : 0));
+ AliDebugGeneral("AliTRDReconstructor", 1, Form(" %s [sl_%s] %d", fgTaskNames[it], fgTaskFlags[it], stream ? stream[it] : 0));
}