class AliMCEventHandler;
class TRefArray;
class AliAODHeader;
+class AliESDtrackCuts;
class AliAnalysisTaskESDfilter : public AliAnalysisTaskSE
{
public:
AliAnalysisTaskESDfilter();
AliAnalysisTaskESDfilter(const char* name);
- virtual ~AliAnalysisTaskESDfilter() {;}
+ virtual ~AliAnalysisTaskESDfilter();
// Implementation of interface methods
virtual void UserCreateOutputObjects();
virtual void Init();
virtual void ConvertESDtoAOD();
// Setters
virtual void SetTrackFilter (AliAnalysisFilter* trackF) {fTrackFilter = trackF;}
- virtual void SetTPCOnlyFilterMask (UInt_t filterMask) {fTPCOnlyFilterMask = filterMask;}
+ virtual void SetTPCOnlyFilterMask (UInt_t filterMask) {SetTPCConstrainedFilterMask(filterMask);}
+
+ virtual void SetTPCConstrainedFilterMask (UInt_t filterMask) {fTPCConstrainedFilterMask = filterMask;}
+ virtual void SetHybridFilterMaskTPCConstrainedGlobal(UInt_t filterMask) {fHybridFilterMaskTPCCG = filterMask;}
+ virtual void SetWriteHybridTPCConstrainedOnly(bool b){fWriteHybridTPCCOnly = b;}
+
+ virtual void SetGlobalConstrainedFilterMask (UInt_t filterMask) {fGlobalConstrainedFilterMask = filterMask;}
+ virtual void SetHybridFilterMaskGlobalConstrainedGlobal(UInt_t filterMask) {fHybridFilterMaskGCG = filterMask;}
+ virtual void SetWriteHybridGlobalConstrainedOnly(bool b){fWriteHybridGCOnly = b;}
+
+
virtual void SetKinkFilter (AliAnalysisFilter* KinkF) {fKinkFilter = KinkF;}
virtual void SetV0Filter (AliAnalysisFilter* V0F) {fV0Filter = V0F;}
virtual void SetCascadeFilter (AliAnalysisFilter* CascadeF) {fCascadeFilter = CascadeF;}
virtual void SetPshape (TF1 *func) {fPtshape = func;}
virtual void SetEnableFillAOD (Bool_t b) {fEnableFillAOD = b;}
- virtual void SetAODPID(AliESDtrack *esdtrack, AliAODTrack *aodtrack, AliAODPid *detpid, Double_t bfield);
- void SetDetectorRawSignals(AliAODPid *aodpid, AliESDtrack *track, Double_t bfield);
+ virtual void SetAODPID(AliESDtrack *esdtrack, AliAODTrack *aodtrack, AliAODPid *detpid);
+ void SetDetectorRawSignals(AliAODPid *aodpid, AliESDtrack *track);
+
+ void SetV0Cuts(const Double_t cuts[7]) {for (Int_t icut = 0; icut<7; icut++) fV0Cuts[icut] = cuts[icut];}
+
+ void SetCascadeCuts(const Double_t cuts[8]) {for (Int_t icut = 0; icut<8; icut++) fCascadeCuts[icut] = cuts[icut];}
+
+ void GetV0Cuts(Double_t cuts[7]) const {for (Int_t icut = 0; icut<7; icut++) cuts[icut] = fV0Cuts[icut];}
+
+ void GetCascadeCuts(Double_t cuts[8]) const {for (Int_t icut = 0; icut<8; icut++) cuts[icut] = fCascadeCuts[icut];}
+
void PrintTask(Option_t *option="all", Int_t indent=0) const;
void DisableVZERO() { fIsVZEROEnabled = kFALSE; }
+ void DisableTZERO() { fIsTZEROEnabled = kFALSE; }
+ void DisableZDC() { fIsZDCEnabled = kFALSE; }
void DisableCascades() { fAreCascadesEnabled = kFALSE; }
void DisableV0s() { fAreV0sEnabled = kFALSE; }
void DisableKinks() { fAreKinksEnabled = kFALSE; }
void DisablePmdClusters() { fArePmdClustersEnabled = kFALSE; }
void DisableCaloClusters() { fAreCaloClustersEnabled = kFALSE; }
void DisableCells() { fAreEMCALCellsEnabled = fArePHOSCellsEnabled = kFALSE; }
+ void DisableCaloTrigger(TString calo = "PHOS") { if (calo.Contains("EMCAL")) fAreEMCALTriggerEnabled = kFALSE; else fArePHOSTriggerEnabled = kFALSE; }
void DisableTracklets() { fAreTrackletsEnabled = kFALSE; }
+ void EnableV0CascadeVerticesReco() { fIsV0CascadeRecoEnabled = kTRUE; }
+
+ void SetPropagateTrackToEMCal(Bool_t propagate) {fDoPropagateTrackToEMCal = propagate;}
+
virtual void SetTimeZeroType(AliESDpid::EStartTimeType_t tofTimeZeroType) {fTimeZeroType = tofTimeZeroType;}
private:
void ConvertCaloClusters(const AliESDEvent& esd);
void ConvertEMCALCells(const AliESDEvent& esd);
void ConvertPHOSCells(const AliESDEvent& esd);
+ void ConvertCaloTrigger(TString calo, const AliESDEvent& esd);
void ConvertTracklets(const AliESDEvent& esd);
void ConvertTPCOnlyTracks(const AliESDEvent& esd);
+ void ConvertGlobalConstrainedTracks(const AliESDEvent& esd);
void ConvertVZERO(const AliESDEvent& esd);
-
+ void ConvertTZERO(const AliESDEvent& esd);
+ void ConvertZDC(const AliESDEvent& esd);
+
TClonesArray& Tracks();
TClonesArray& V0s();
TClonesArray& Vertices();
Int_t fNumberOfKinks; // current number of kinks
Bool_t fOldESDformat; // is the ESD in old format ?
AliAODVertex* fPrimaryVertex; // pointer to primary vertex of the event
- UInt_t fTPCOnlyFilterMask; // Filter Mask used to select and store refitted TPC only tracks
+ UInt_t fTPCConstrainedFilterMask; // Filter Mask used to select and store refitted TPC only tracks
+ UInt_t fHybridFilterMaskTPCCG; // Filter Mask used to mark global tracks as hybrid
+ Bool_t fWriteHybridTPCCOnly;// write only the complent tracks not all global constrained
+
+ UInt_t fGlobalConstrainedFilterMask; // Filter Mask used to select and store refitted TPC only tracks
+ UInt_t fHybridFilterMaskGCG; // Filter Mask used to mark global tracks as hybrid
+ Bool_t fWriteHybridGCOnly;// write only the complent tracks not all global constrained
+
Bool_t fIsVZEROEnabled; // whether or not to fill the vzero branch (true by default)
+ Bool_t fIsTZEROEnabled; // whether or not to fill the tzero branch (true by default)
+ Bool_t fIsZDCEnabled; // whether or not to fill the zdc branch (true by default)
+ Bool_t fIsV0CascadeRecoEnabled; // whether or not to reconstruct again V0s and cascades (false by default)
Bool_t fAreCascadesEnabled; // whether or not to fill the cascades branch (true by default)
Bool_t fAreV0sEnabled; // whether or not to fill the v0 branch (true by default)
Bool_t fAreKinksEnabled; // whether or not to fill the kinks (true by default)
Bool_t fAreCaloClustersEnabled; // whether or not to fill the calo clusters (true by default)
Bool_t fAreEMCALCellsEnabled; // whether or not to fill the emcal cells (true by default)
Bool_t fArePHOSCellsEnabled; // whether or not to fill the phos cells (true by default)
+ Bool_t fAreEMCALTriggerEnabled; // whether or not to fill the emcal trigger (true by default)
+ Bool_t fArePHOSTriggerEnabled; // whether or not to fill the phos trigger (true by default)
Bool_t fAreTrackletsEnabled; // whether or not to fill the tracklets (true by default)
AliESDpid* fESDpid; // esd pid
Bool_t fIsPidOwner; // whether we own fESDpid
Int_t fTimeZeroType; // time zero type
+ AliESDtrackCuts* fTPCaloneTrackCuts; // TPC stand-alone track cuts
+ Double_t fV0Cuts[7]; // Array to store the values for the different reco selections V0 related
+ Double_t fCascadeCuts[8]; // Array to store the values for the different reco selections cascades related
+ Bool_t fDoPropagateTrackToEMCal; // whether or not to propagate the tracks to EMCal surface (430cm) -- true by default
+
- ClassDef(AliAnalysisTaskESDfilter, 8); // Analysis task for standard ESD filtering
+ ClassDef(AliAnalysisTaskESDfilter, 14); // Analysis task for standard ESD filtering
};
-
+
#endif