- if(sopt.Contains("!cw")){
- fSteerParam &= ~kWriteClusters;
- continue;
- } else if(sopt.Contains("!sa")){
- fSteerParam &= ~kSeeding;
- continue;
- } else if(sopt.Contains("!nn")){
- fSteerParam &= ~kSteerPID;
- continue;
- } else if(sopt.Contains("tw")){
- if(!sopt.Contains("!")) fSteerParam |= kWriteTracklets;
- continue;
- } else if(sopt.Contains("ar")){
- if(!sopt.Contains("!")) fSteerParam |= kDriftGas;
- continue;
- } else if(sopt.Contains("hlt")){
- if(!sopt.Contains("!")) fSteerParam |= kHLT;
- continue;
- } else if(sopt.Contains("sl")){
- TObjArray *stl = sopt.Tokenize("_");
- if(stl->GetEntriesFast() < 3) continue;
- TString taskstr(((TObjString*)(*stl)[1])->String());
- TString levelstring(((TObjString*)(*stl)[2])->String());
- // Set the stream Level
- Int_t level = levelstring.Atoi();
- AliTRDReconstructorTask task = kTracker;
- if(taskstr.CompareTo("cl") == 0) task = kClusterizer;
- else if(taskstr.CompareTo("tr") == 0) task = kTracker;
- else if(taskstr.CompareTo("pi") == 0) task = kPID;
- SetStreamLevel(level, task);
- continue;
- }
+ for(Int_t iopt=0; iopt<kNsteer; iopt++){
+ if(!sopt.Contains(fgSteerFlags[iopt])) continue;
+ SETFLG(fSteerParam, BIT(iopt));
+ if(sopt.Contains("!")) CLRFLG(fSteerParam, BIT(iopt));
+ processed = kTRUE;
+ break;
+ }
+ if(processed) continue;
+
+ AliWarning(Form("Unknown option flag %s.", sopt.Data()));
+ }
+ opar->Delete();
+ delete opar;
+}
+
+//_____________________________________________________________________________
+void AliTRDReconstructor::Options(UInt_t steer)
+{
+ //
+ // Print the options
+ //
+
+ for(Int_t iopt=0; iopt<kNsteer; iopt++){
+ AliDebugGeneral("AliTRDReconstructor", 1, Form(" %s[%s]%s", fgSteerNames[iopt], fgSteerFlags[iopt], steer ?(((steer>>iopt)&1)?" : ON":" : OFF"):""));
+ }
+}
+
+
+//_____________________________________________________________________________
+TClonesArray* AliTRDReconstructor::GetClusters()
+{
+// Build/ Retrieve cluster array
+ if(!fgClusters){
+ fgClusters = new TClonesArray("AliTRDcluster", Int_t(GetRecoParam()->GetNClusters()));
+ fgClusters->SetOwner();
+ AliInfoGeneral("AliTRDReconstructor", Form("Allocate cluster array @ %p", (void*)fgClusters));
+ }
+ return fgClusters;
+}
+
+//_____________________________________________________________________________
+TClonesArray* AliTRDReconstructor::GetTracklets(const char *trkltype)
+{
+// Build/ Retrieve online tracklets array
+
+ if (trkltype && strlen(trkltype) > 0) {
+ if(fgTracklets && (TClass::GetClass(trkltype) != fgTracklets->GetClass())){
+ fgTracklets->Delete();
+ delete fgTracklets;
+ }
+ if (!fgTracklets) {
+ fgTracklets = new TClonesArray(trkltype, 200);
+ fgTracklets->SetOwner(kTRUE);
+ AliInfoGeneral("AliTRDReconstructor", Form("Allocate online tracklets[%s] array @ %p", trkltype, (void*)fgTracklets));
+ }
+ }
+ return fgTracklets;
+}
+
+//_____________________________________________________________________________
+TClonesArray* AliTRDReconstructor::GetTracks()
+{
+// Build/ Retrieve cluster array
+ if(!fgTracks){
+ fgTracks = new TClonesArray("AliESDTrdTrack", 100);
+ fgTracks->SetOwner();
+ AliInfoGeneral("AliTRDReconstructor", Form("Allocate online tracks array @ %p", (void*)fgTracks));