//----------------------------------------------------------- // File and Version Information: // $Id$ // // Description: // Implementation of resCalc // Uses existing GFTracks as reference and calculates // residua in XY for TpcClusters. // Developped for Test Bench tracking systems using the // RK track representation // // Environment: // Software developed for the PANDA Detector at FAIR. // // Author List: // Felix Boehmer (original author) // Maxence Vandenbroucke (Application of TpcCdcFit2DResCalc to GFTracks) // Physik Department E18, TUM // //----------------------------------------------------------- #ifndef TPCREFGFTRKTPCCLUSTERRES_ALIGN_HH #define TPCREFGFTRKTPCCLUSTERRES_ALIGN_HH #include #include "AbsRefTrackResCalc.h" #include "TString.h" #include #include #include class GFRecoHitFactory; class TpcRefGFTrkTpcClusterResCalc_Alignment : public AbsRefTrackResCalc { public: TpcRefGFTrkTpcClusterResCalc_Alignment(); virtual ~TpcRefGFTrkTpcClusterResCalc_Alignment(); virtual int calc(); virtual bool init(); void setClusterBranchName(const TString& name) {fTpcClusterBranchName=name;} void setGFTrackBranchName(const TString& name) {fGFTrackBranchName=name;} void setTpcSPHitBranchName(const TString& name) {fTpcSPHitBranchName=name;} void setTrackRepId(const int id){fNRep=id;} void setRequireGoodFit(bool opt=true) {fRequireGoodFit = opt;} void writeHists(); void setMomCutRefTrack(double momCut){fMomCutRefTrack=momCut;} void setIdealMC(bool opt=true){fIdealTpcTrackTpcClusterMatching=opt;} void setSimulateTrackMatching(bool opt=true){fSimulateTrackMatching=opt;} void setMatchOnCylinder(bool opt=true){fMatchOnCylinder=opt;} void setDebug(bool opt=true){fdebug=opt;} private: TClonesArray* fGFTrackArray; TClonesArray* fTpcClusterArray; TClonesArray* fTpcSPHitArray; TString fGFTrackBranchName; TString fTpcClusterBranchName; TString fTpcSPHitBranchName; int fNRep; //which rep to use int fDetID; bool fRequireGoodFit; bool fSimulateTrackMatching; bool fMatchOnCylinder; double fdPhiCut; std::map hists; TString fQAFileName; double fMomCutRefTrack; double fPosCutRefTrack; bool fdebug; bool fIdealTpcTrackTpcClusterMatching; //zSlicing double zStart; double zEnd; int zSlices; std::vector sliceNamesPlusPos; std::vector sliceNamesPlusMom; std::vector sliceNamesMinusPos; std::vector sliceNamesMinusMom; public: ClassDef(TpcRefGFTrkTpcClusterResCalc_Alignment,3) }; #endif