//----------------------------------------------------------- // File and Version Information: // $Id$ // // Description: // TPC-CDC Matching Routine // // // Environment: // Software developed for the Prototype Detector at FOPI // // Author List: // Robert Münzer TUM // //----------------------------------------------------------- #ifndef TPCHELMATCHPHIPSTASK_H #define TPCHELMATCHPHIPSTASK_H //Base class #include "FairTask.h" #include "TClonesArray.h" #include "TString.h" #include "TVector3.h" #include "FairGeanePro.h" class TpcDigiPar; // Collaborating Class Declarations -------------------------------------- class TpcHelMatchingTaskPhilipp : public FairTask { public: // Constructor ---------------------------------------------- TpcHelMatchingTaskPhilipp(); //default constructor ~TpcHelMatchingTaskPhilipp(); virtual InitStatus Init(); virtual void Exec(Option_t* opt); virtual void SetParContainers(); // Modifiers -------------------------------------------------- void SetPersistence(Bool_t opt=kTRUE) {fPersistence=opt;} void SetTpcClusterBranchName(TString cln) {fTpcClusterBranchName=cln;} void SetTpcTrackBranchName(TString tn) {fTpcTrackBranchName=tn;} void SetTpcTrackFitBranchName(TString tn) {fTpcTrackFitBranchName=tn;} void SetHelHitAllBranchName(TString hhfbr) {fHelHitAllBranchName=hhfbr;} void SetHelHitBranchName(TString hhbr) {fHelHitBranchName=hhbr;} void SetHelTrackBranchName(TString htbr) {fHelTrackBranchName=htbr;} void SetPlaHitAllBranchName(TString ptbr) {fPlaHitAllBranchName=ptbr;} void SetPlaTrackBranchName(TString ptbr) {fPlaTrackBranchName=ptbr;} void SetSecondarySuppression(Bool_t opt=kTRUE) {fSecondarySupp=opt;} void SetNumberOfTrackReps(unsigned int n) {fNumReps=n;} void SetMaxMatDistance(double max) {fmaxmatdistance=max;} void SetMaxMatPhi(double max) {fmaxmatphi=max;} void SetMinHitsperLength(double mhpl) {fminhitsperlength=mhpl;} void SetPosErr(Double_t xerr,Double_t yerr,Double_t zerr) { fPosErr = TVector3(xerr,yerr,zerr);} void SetMomErr(Double_t xerr,Double_t yerr,Double_t zerr) { fMomErr = TVector3(xerr,yerr,zerr);} void SetHHitRes(double HResX, double HResY, double HResZ) {fHResX=HResX; fHResY=HResY; fHResZ=HResZ;} void SetPminmatch(double Pminmat) {fminPmatch=Pminmat;} void SetPHitRes(double PResX, double PResY, double PResZ) {fPResX=PResX; fPResY=PResY; fPResZ=PResZ;} void SetResScale(double scalefac) {fResScaleFac=scalefac;} void SetHHitSCale(Bool_t opt=kTRUE) {fHHitScale=opt;} private: Float_t fRad; Double_t fHHScale; TVector3 fPosErr; TVector3 fMomErr; Double_t fHResX,fHResY,fHResZ; Double_t fPResX,fPResY,fPResZ; Double_t fminPmatch; Double_t fResScaleFac; Bool_t fPersistence; Bool_t fSecondarySupp; Bool_t fHHitScale; // branch names TString fFopiEvBranchName; TString fTpcClusterBranchName; TString fTpcTrackBranchName; TString fTpcTrackFitBranchName; TString fHelHitAllBranchName; TString fHelHitBranchName; TString fHelTrackBranchName; TString fPlaHitAllBranchName; TString fPlaTrackBranchName; TString fTPCHelTrackBranchName; TString fTPCHelMatchParsBranchName; // clones arrays for branches TClonesArray* fFopiEventArray; TClonesArray* fTpcClusterArray; TClonesArray* fTpcTrackArray; TClonesArray* fTpcTrackFitArray; TClonesArray* fTpcTrackHitsArray; TClonesArray* fHelHitAllArray; TClonesArray* fHelHitArray; TClonesArray* fHelTrackArray; TClonesArray* fPlaHitAllArray; TClonesArray* fPlaTrackArray; TClonesArray* fFitStatArray; Double_t fmaxmatdistance; Double_t fmaxmatphi; Double_t fminhitsperlength; TpcDigiPar* fPar; FairGeanePro* gPro; std::map fOutArrayMap; unsigned int fNumReps; // variables for output TClonesArray* fTPCHelTracks; TClonesArray* fMatchingPars; Double_t *MatchingPars; TVectorD *MatchingParsVec; /* TClonesArray* fHelHitAngles; Double_t *HelHitAngles; TVectorD *HelHitAnglesVec; */ public: ClassDef(TpcHelMatchingTaskPhilipp,3) }; #endif