fErrorLogs.Clear();
}
+Bool_t AliESD::RemoveTrack(Int_t /*i*/) {
+ // ---------------------------------------------------------
+ // Remove track
+ // ---------------------------------------------------------
+
+ // Check if this track comes from a reconstructed decay
+ // if (yes) return kFALSE
+
+ // Remap the indices of the daughters of recosntructed decays
+
+ // Remove the track
+ // delete fTracks->RemoveAt(i);
+
+ // Compress the array with tracks
+ // fTracks->Compress();
+
+ return kTRUE;
+}
+
Int_t AliESD::AddV0(const AliESDv0 *v) {
//
// Add V0
return (AliESDTrdTrack *)fTrdTracks.UncheckedAt(i);
}
+ Bool_t RemoveTrack(Int_t i);
+
Int_t AddTrack(const AliESDtrack *t) {
AliESDtrack * track = new(fTracks[fTracks.GetEntriesFast()]) AliESDtrack(*t);
track->SetID(fTracks.GetEntriesFast()-1);
}
}
+Bool_t AliESDEvent::RemoveTrack(Int_t /*i*/) {
+ // ---------------------------------------------------------
+ // Remove track
+ // ---------------------------------------------------------
+
+ // Check if this track comes from a reconstructed decay
+ // if (yes) return kFALSE
+
+ // Remap the indices of the daughters of recosntructed decays
+
+ // Remove the track
+ // delete fTracks->RemoveAt(i);
+
+ // Compress the array with tracks
+ // fTracks->Compress();
+
+ return kTRUE;
+}
+
+
Int_t AliESDEvent::AddTrack(const AliESDtrack *t) {
// Add track
TClonesArray &ftr = *fTracks;
const AliMultiplicity *GetMultiplicity() const {return fSPDMult;}
-
+ Bool_t RemoveTrack(Int_t i);
+
AliESDtrack *GetTrack(Int_t i) const {
return (AliESDtrack *)fTracks->UncheckedAt(i);
}
fRunMuonTracking(kFALSE),
fStopOnError(kFALSE),
fWriteAlignmentData(kFALSE),
+ fCleanESD(kTRUE),
fWriteESDfriend(kFALSE),
fWriteAOD(kFALSE),
fFillTriggerESD(kTRUE),
fRunMuonTracking(rec.fRunMuonTracking),
fStopOnError(rec.fStopOnError),
fWriteAlignmentData(rec.fWriteAlignmentData),
+ fCleanESD(rec.fCleanESD),
fWriteESDfriend(rec.fWriteESDfriend),
fWriteAOD(rec.fWriteAOD),
fFillTriggerESD(rec.fFillTriggerESD),
}
// write ESD
+ if (fCleanESD) CleanESD(esd);
if (fWriteESDfriend) {
new (esdf) AliESDfriend(); // Reset...
esd->GetESDfriend(esdf);
return kTRUE;
}
+//_____________________________________________________________________________
+Bool_t AliReconstruction::CleanESD(AliESDEvent *esd){
+ //
+ // Remove the data which are not needed for the physics analysis.
+ //
+
+ AliInfo("Cleaning the ESD...");
+
+ const AliESDVertex *vertex=esd->GetVertex();
+ Double_t vz=vertex->GetZv();
+
+ Int_t nTracks=esd->GetNumberOfTracks();
+ for (Int_t i=0; i<nTracks; i++) {
+ AliESDtrack *track=esd->GetTrack(i);
+
+ Float_t xy,z; track->GetImpactParameters(xy,z);
+ if (TMath::Abs(xy) < 50.) continue;
+ if (vertex->GetStatus())
+ if (TMath::Abs(vz-z) < 5.) continue;
+
+ esd->RemoveTrack(i);
+ }
+
+ return kTRUE;
+}
+
//_____________________________________________________________________________
Bool_t AliReconstruction::FillESD(AliESDEvent*& esd, const TString& detectors)
{
void SetRunHLTTracking(Bool_t flag=kTRUE) {fRunHLTTracking=flag;};
void SetStopOnError(Bool_t flag=kTRUE) {fStopOnError=flag;}
void SetWriteAlignmentData(Bool_t flag=kTRUE){fWriteAlignmentData=flag;}
+ void SetCleanESD(Bool_t flag=kTRUE){fCleanESD=flag;}
void SetWriteESDfriend(Bool_t flag=kTRUE){fWriteESDfriend=flag;}
void SetWriteAOD(Bool_t flag=kTRUE){fWriteAOD=flag;}
void SetFillTriggerESD(Bool_t flag=kTRUE){fFillTriggerESD=flag;}
Bool_t RunHLTTracking(AliESDEvent*& esd);
Bool_t RunMuonTracking(AliESDEvent*& esd);
Bool_t RunTracking(AliESDEvent*& esd);
+ Bool_t CleanESD(AliESDEvent *esd);
Bool_t FillESD(AliESDEvent*& esd, const TString& detectors);
Bool_t FillTriggerESD(AliESDEvent*& esd);
Bool_t FillRawEventHeaderESD(AliESDEvent*& esd);
Bool_t fRunMuonTracking; // run the HLT tracking
Bool_t fStopOnError; // stop or continue on errors
Bool_t fWriteAlignmentData; // write track space-points flag
+ Bool_t fCleanESD; // clean ESD flag
Bool_t fWriteESDfriend; // write ESD friend flag
Bool_t fWriteAOD; // write AOD flag
Bool_t fFillTriggerESD; // fill trigger info into ESD
TString fCDBUri; // Uri of the default CDB storage
TObjArray fSpecCDBUri; // Array with detector specific CDB storages
- ClassDef(AliReconstruction, 11) // class for running the reconstruction
+ ClassDef(AliReconstruction, 12) // class for running the reconstruction
};
#endif