//----------------------------------------------------------- // 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 SHIELDTRKRES_ALIGN_HH #define SHIELDTRKRES_ALIGN_HH #include #include #include #include #include #include "AbsRefTrackResCalc.h" #include "TpcAlignmentManager.h" #include "CdcTpcMatchingQA.h" class GFRecoHitFactory; class TpcShieldPointTpcHitResCalc : public AbsRefTrackResCalc { public: TpcShieldPointTpcHitResCalc(); virtual ~TpcShieldPointTpcHitResCalc(); virtual int calc(); virtual bool init(); void setTpcSPHitBranchName(const TString& name) {fTpcSPHitBranchName=name;} void setTpcTrackBranchName(const TString& name) {fTpcTrackBranchName=name;} void setShieldPointBranchName(const TString& name) {fShieldPointBranchName=name;} void setMCTrackBranchName(const TString& name){fMCTrackBranchName=name;} void setTrackRepId(const int id){fNRep=id;} //void setUseClusters(bool opt=true){fUseClusters=opt;} void setOrigTransfName(TString opt){fOrigTransfName=opt;} void setShieldPtCut(double pt){fShieldTrackPtCut=pt;} void setTpcPtCut(double pt){fTpcTrackPtCut=pt;} void initHists(); void writeHists(); static double phiDifference(double angle1,double angle2); private: TClonesArray* fTpcSPHitArray; TClonesArray* fTpcTrackArray; TClonesArray* fShieldPointArray; TClonesArray* fMCTrackArray; TString fTpcTrackBranchName; TString fTpcSPHitBranchName; TString fShieldPointBranchName; TString fMCTrackBranchName; TpcAlignmentManager* fAlMan; TString fOrigTransfName; TString fQAFileName; int fNRep; //which rep to use int fDetID; bool fAlignedMatching; double fTrackdPhiCut; double fShieldTrackPtCut; double fTpcTrackPtCut; bool fDistortShield; //phase, magnitude, offset std::vector fMomPhiDistortions; std::vector fPosPhiDistortions; TDatabasePDG* fPdg; std::map histMap; std::map folderNameMap; //sector 0 has middle point phi=0 (in the range -180