#ifndef ALIHFENONPHOTONICELECTRON_H #define ALIHFENONPHOTONICELECTRON_H /************************************************************************************ * * * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * * See cxx source for full Copyright notice * * * * * * * * Task for the Selection of Non-photonic Electron study * * * * Author: R.Bailhache, C.A.Schmidt * * * ************************************************************************************/ #ifndef ROOT_TNamed #include #endif class AliESDtrackCuts; class AliHFEpid; class AliHFEpidQAmanager; class AliMCEvent; class AliVEvent; class AliVParticle; class THnSparse; class TClonesArray; class TList; class AliHFENonPhotonicElectron : public TNamed { public: typedef enum{ kElectronfromconversion = 0, kElectronfromconversionboth = 1, kElectronfrompi0 = 2, kElectronfrompi0both = 3, kElectronfrometa = 4, kElectronfrometaboth = 5, kElectronfromC = 6, kElectronfromB = 7, kElectronfromother = 8, kNoElectron = 9 } Source_t; typedef enum{ kS = 0, kOp = 1 } Sign_t; AliHFENonPhotonicElectron(); AliHFENonPhotonicElectron(const char *name, const Char_t *title); AliHFENonPhotonicElectron &operator=(const AliHFENonPhotonicElectron &ref); virtual ~AliHFENonPhotonicElectron(); void SetMCEvent (AliMCEvent *mcEvent) {fMCEvent = mcEvent; }; void SetAODArrayMCInfo (TClonesArray *aodArrayMCInfo) {fAODArrayMCInfo = aodArrayMCInfo; }; void SetUseFilterAOD(Bool_t useFilterAOD) { fUseFilterAOD = useFilterAOD; }; void SetFilter(UInt_t filter) { fFilter = filter; }; void SetHFEBackgroundCuts(AliESDtrackCuts * const cuts) { fHFEBackgroundCuts = cuts; }; AliHFEpid *GetPIDBackground() const { return fPIDBackground; }; AliHFEpidQAmanager *GetPIDBackgroundQAManager() const { return fPIDBackgroundQA; }; void SetMaxInvMass (Double_t MaxInvMass) { fMaxInvMass = MaxInvMass; }; void SetMaxOpening3D (Double_t MaxOpening3D) { fMaxOpening3D = MaxOpening3D; }; void SetMaxOpeningTheta (Double_t MaxOpeningTheta) { fMaxOpeningTheta = MaxOpeningTheta; }; void SetMaxOpeningPhi (Double_t MaxOpeningPhi) { fMaxOpeningPhi = MaxOpeningPhi; }; void SetAlgorithmMA (Bool_t algorithmMA) { fAlgorithmMA = algorithmMA; }; void SetMassConstraint (Bool_t MassConstraint) { fSetMassConstraint = MassConstraint; }; TList *GetListOutput() const { return fListOutput; }; THnSparseF *GetMCSourceeeHisto() const { return fMCSourceee; }; THnSparseF *GetUSigneeHisto() const { return fUSignee; }; THnSparseF *GetLSigneeHisto() const { return fLSignee; }; THnSparseF *GetUSignAngleHisto() const { return fUSignAngle; }; THnSparseF *GetLSignAngleHisto() const { return fLSignAngle; }; void Init (); void InitRun (const AliVEvent *inputEvent,const AliPIDResponse *pidResponse); Int_t FillPoolAssociatedTracks (AliVEvent *inputEvent,Int_t binct=-1); Int_t LookAtNonHFE (Int_t iTrack1, AliVTrack *track1, AliVEvent *vEvent ,Double_t weight=1.,Int_t binct=-1,Double_t deltaphi=-1,Int_t source=-1,Int_t indexmother=-1); Int_t FindMother (Int_t tr, Int_t &indexmother); Int_t CheckPdg (Int_t tr); Int_t IsMotherGamma (Int_t tr); Int_t IsMotherPi0 (Int_t tr); Int_t IsMotherC (Int_t tr); Int_t IsMotherB (Int_t tr); Int_t IsMotherEta (Int_t tr); private: AliMCEvent *fMCEvent; //! MC event esd TClonesArray *fAODArrayMCInfo; //! MC info particle AOD AliESDtrackCuts *fHFEBackgroundCuts; // HFE background cuts AliHFEpid *fPIDBackground; // PID background cuts AliHFEpidQAmanager *fPIDBackgroundQA; // QA Manager Background Bool_t fAlgorithmMA; // algorithm MA Bool_t fUseFilterAOD; // Use the preselected AOD track UInt_t fFilter; // filter AOD status Double_t fChi2OverNDFCut; // Limit chi2 Double_t fMaxDCA; // Limit dca Double_t fMaxOpeningTheta; // Limit opening angle in theta Double_t fMaxOpeningPhi; // Limit opening angle in phi Double_t fMaxOpening3D; // Limit opening 3D Double_t fMaxInvMass; // Limit invariant mass Bool_t fSetMassConstraint; // Set mass constraint TArrayI *fArraytrack; //! list of tracks Int_t fCounterPoolBackground; // number of tracks TList *fListOutput; // List of histos THnSparseF *fMCSourceee; //! centrality, pt, Source MC THnSparseF *fUSignee; //! delta phi, c, pt, inv, source THnSparseF *fLSignee; //! delta phi, c, pt, inv, source THnSparseF *fUSignAngle; //! angle, c, source THnSparseF *fLSignAngle; //! angle, c, source AliHFENonPhotonicElectron(const AliHFENonPhotonicElectron&); // not implemented ClassDef(AliHFENonPhotonicElectron, 1); //!example of analysis }; #endif