// ------------------------------------------------------------------------- // ----- CbmD0Candidates header file ----- // ----- Created 09/02/07 by C. Dritsa ----- // ------------------------------------------------------------------------- /** CbmD0Candidates.h *@author C.Dritsa * * Selection of candidate pairs * for D0 reconstruction * **/ #ifndef CBMD0CANDIDATES_H #define CBMD0CANDIDATES_H #include "FairTask.h" #include "CbmMCTrack.h" #include "TH1F.h" #include "TH2F.h" #include "TString.h" #include "CbmD0TrackCandidate.h" #include "TNtuple.h" #include "FairField.h" class TClonesArray; class CbmStsKFSecondaryVertexFinder; class CbmStsKFTrackFitter; class CbmStsTrack; class CbmVertex; class FairTrackParam; class CbmD0Candidates : public FairTask { public: CbmD0Candidates(); CbmD0Candidates(char* name, Int_t iVerbose, Double_t cutIPD, Double_t cutSVZ); virtual ~CbmD0Candidates(); virtual InitStatus Init(); virtual void Exec(Option_t* option); /* virtual void KminusReFit(CbmStsTrack* track); Double_t GetImpactParameterRadius(FairTrackParam *etrack); Double_t GetImpactParameterX(FairTrackParam *etrack); Double_t GetImpactParameterY(FairTrackParam *etrack); Double_t GetTransverseMom(FairTrackParam *etrack); Double_t GetMom(FairTrackParam *etrack); //void SetParContainers() {; }; */ void SetHistoFileName( TString name ){ fHistoFileName = name; }; Double_t SetKFParticle(Bool_t useKFparticle) { fUseKF = useKFparticle;}; private: Int_t fEventNumber; TClonesArray* fListRCD0; TClonesArray* fListMCTracks; TClonesArray* fListD0TrackCandidate; TClonesArray* fStsTrackArray; TClonesArray* fD0TrackArray; TClonesArray* fInfoArray; TClonesArray* fStsTrackMatches; TClonesArray* fPosStsTracks; TClonesArray* fNegStsTracks; CbmStsKFTrackFitter* fFit; CbmStsKFSecondaryVertexFinder* fSVF; CbmVertex* fPrimVtx; CbmVertex* fSecVtx; FairField* fMF; TString fHistoFileName; Double_t GetPairImpactParameterR( Double_t Pair_Tx, Double_t Pair_Ty, Double_t SvX, Double_t SvY, Double_t SvZ, Double_t PvZ ); Double_t GetPairPt(CbmD0TrackCandidate* tr1, CbmD0TrackCandidate* tr2); Double_t GetPairPz(CbmD0TrackCandidate* tr1, CbmD0TrackCandidate* tr2); Double_t GetPairTx(CbmD0TrackCandidate* tr1, CbmD0TrackCandidate* tr2); Double_t GetPairTy(CbmD0TrackCandidate* tr1, CbmD0TrackCandidate* tr2); Double_t GetMomentum(CbmD0TrackCandidate* tr1); Double_t GetPairMomentum(CbmD0TrackCandidate* tr1, CbmD0TrackCandidate* tr2); Double_t GetEnergy(CbmD0TrackCandidate* tr1); Double_t GetPairEnergy( CbmD0TrackCandidate* tr1, CbmD0TrackCandidate* tr2 ); Double_t GetIM(CbmD0TrackCandidate* tr1, CbmD0TrackCandidate* tr2); Double_t GetCos12(CbmD0TrackCandidate* tr1, CbmD0TrackCandidate* tr2 ); Double_t GetIPAngle(CbmD0TrackCandidate* tr1, CbmD0TrackCandidate* tr2 ); Double_t GetChi2Topo(CbmD0TrackCandidate* tr1, CbmD0TrackCandidate* tr2 ); Double_t GetAPalpha(CbmD0TrackCandidate* tr1, CbmD0TrackCandidate* tr2 ); Double_t GetAPptt(CbmD0TrackCandidate* tr1, CbmD0TrackCandidate* tr2 ); TNtuple* fTrackPairNtuple; TH1F* test; Double_t fcutIPD0, fcutSVZ; Bool_t fUseKF; void SetCuts(Double_t ipD0, Double_t SVZ); /** Register the output arrays to the IOManager **/ void Register(); void Finish(); ClassDef(CbmD0Candidates,1); }; #endif