//----------------------------------------------------------- // File and Version Information: // $Id$ // // Description: // TPC-Helitron Matching Routine // // // Environment: // Software developed for the Prototype Detector at FOPI // // Author List: // Robert Muenzer TUM // Paul Buehler SMI //----------------------------------------------------------- #ifndef TPCHELMATTASK_H #define TPCHELMATTASK_H //Base class #include "FairTask.h" #include "TClonesArray.h" #include "TString.h" #include "TVector3.h" //#include "FairGeanePro.h" class TpcDigiPar; // Collaborating Class Declarations -------------------------------------- class TpcHelMatchingTask : public FairTask { public: // Constructor ---------------------------------------------- TpcHelMatchingTask(); //default constructor ~TpcHelMatchingTask(); virtual InitStatus Init(); virtual void Exec(Option_t* opt); virtual void SetParContainers(); // Modifiers -------------------------------------------------- void SetPersistence(Bool_t opt=kTRUE) {fPersistence=opt;} void SetVerbose(Bool_t opt=kTRUE) {fVerbose=opt;} void SetSmoothing(Bool_t opt=kTRUE) {fSmoothing=opt;} void SetEventBranchName(TString tn) {fFopiEvBranchName=tn;} void SetTpcTrackFitBranchName(TString tn) {fTpcTrackBranchName=tn;} void SetHelHitBranchName(TString hhbr) {fHelHitBranchName=hhbr;} void SetHelTrackBranchName(TString htbr) {fHelTrackBranchName=htbr;} void SetPlaTrackBranchName(TString ptbr) {fPlaTrackBranchName=ptbr;} void SetTpcHelMatchParsBranchName(TString mpbr) {fTpcHelMatchParsBranchName=mpbr;} void SetOutBranchName(TString obr) {fOutBranchName=obr;} void setNHeliHits(Int_t nhhit) {fNHeliHitstoAdd = nhhit;} void setWithPlawaHit(Bool_t wph) {fWithPlawaHit = wph;} void SetHeliZshift(Double_t Zshift) {fZshift = Zshift;} 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_t resx, Double_t resy, Double_t resz) { fHRes = TVector3(resx,resy,resz); } void SetPHitRes(Double_t resx, Double_t resy, Double_t resz) { fPRes = TVector3(resx,resy,resz); } void SetResScale(Double_t scalefac, Bool_t wivscale=kTRUE) { fResScaleFac = scalefac; fwivScale = wivscale; } void SetdrMax(Double_t drmax) {fdrMax = drmax;} void SetminHPmatch(Double_t minHPmatch) {fminHPmatch = minHPmatch;} private: Bool_t matching (Double_t *mpars); Float_t fRad; Bool_t fPersistence; Bool_t fVerbose; Bool_t fwivScale; Double_t fResScaleFac; Double_t fdrMax; Int_t fNHeliHitstoAdd; Bool_t fWithPlawaHit; Double_t fminHPmatch; // branch names TString fFopiEvBranchName; TString fTpcClusterBranchName; TString fTpcTrackBranchName; TString fHelHitBranchName; TString fHelTrackBranchName; TString fPlaTrackBranchName; TString fTpcHelMatchParsBranchName; TString fOutBranchName; // clones arrays for branches TClonesArray* fFopiEventArray; TClonesArray* fTpcClusterArray; TClonesArray* fTpcTrackArray; TClonesArray* fHelHitArray; TClonesArray* fHelTrackArray; TClonesArray* fPlaTrackArray; // variables for output Bool_t fSmoothing; TClonesArray* fMatchingPars; TClonesArray* fTpcHelTracks; Double_t fZshift; Double_t *MatchingPars; TVectorD *MatchingParsVec; TVector3 fPosErr; TVector3 fMomErr; TVector3 fHRes; TVector3 fPRes; public: ClassDef(TpcHelMatchingTask,3) }; #endif