#include "AliRawReaderRoot.h"
#include "AliRawEventHeaderBase.h"
#include "AliESDEvent.h"
+#include "AliESDMuonTrack.h"
#include "AliESDfriend.h"
#include "AliESDVertex.h"
+#include "AliESDcascade.h"
+#include "AliESDkink.h"
+#include "AliESDtrack.h"
+#include "AliESDCaloCluster.h"
#include "AliMultiplicity.h"
#include "AliTracker.h"
#include "AliVertexer.h"
#include "AliESDpid.h"
#include "AliESDtrack.h"
-#include "AliTagCreator.h"
+#include "AliESDTagCreator.h"
#include "AliGeomManager.h"
#include "AliTrackPointArray.h"
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);
// Create tags for the events in the ESD tree (the ESD tree is always present)
// In case of empty events the tags will contain dummy values
- AliTagCreator *tagCreator = new AliTagCreator();
- tagCreator->CreateESDTags(fFirstEvent,fLastEvent);
- if (fWriteAOD) tagCreator->CreateAODTags(fFirstEvent,fLastEvent);
+ AliESDTagCreator *esdtagCreator = new AliESDTagCreator();
+ esdtagCreator->CreateESDTags(fFirstEvent,fLastEvent);
+ //if (fWriteAOD) tagCreator->CreateAODTags(fFirstEvent,fLastEvent);
return kTRUE;
}
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)
{
0, // no ITSClusterMap
pid,
primary,
- kTRUE, // check if this is right
- kTRUE, // not used for vertex fit
+ kFALSE, // muon tracks are not used to fit the primary vtx
+ kFALSE, // not used for vertex fit
AliAODTrack::kPrimary)
);
}