#ifndef TApplyAlign_hxx #define TApplyAlign_hxx #include #include #include #include #include #include "COMETGeomId.hxx" #include "IGenericAlignmentLookup.hxx" #include #include #include #include #include #include #include class IApplyAlign{ protected: IGenericAlignmentLookup fAligTable; private: std::map subDetId; std::string subDetName; std::map surveyTransConst; std::map > surveyRotConst; double fgdIntTransConst[44]; TVector3 tpcMmTransConst[3][2][12]; double tpcMmRotConst[3][2][12]; COMET::IGeometryId fgdLayerId[44]; COMET::IGeometryId tpcMMId[3][2][12]; COMET::IGeometryId superP0Dule[4]; COMET::IGeometryId p0dule[40]; COMET::IGeometryId dsEcalLayer[34]; double trackerRotMatrix[9]; double transX; double transY; double transZ; double axisX; double axisY; double axisZ; double thetaMRad; TVector3 axis1; TVector3 axis2; double offsetX; double offsetY; double offsetZ; bool applyTrackerSurvey; bool applyFGDInternal; bool applyMMSurvey; const char* inputFGDIntAlignTxt; const char* inputMMSurveyAlignTxt; const char* inputSurveyAlignTxt; std::ifstream alignLookupTracker; std::ifstream alignLookupMM; std::ifstream alignLookupFGD; // Helper methods void ApplyFGDInternalAlign(); void ApplyMMSurveyAlign(); void ApplyMMSurveyAlignGlobal(); void ApplyTrackerSurveyAlign(); public: IApplyAlign(); virtual ~IApplyAlign(); // Method that does alignment. bool AlignGeometry(); // Methods to control alignment parameters void ApplyTrackerSurvey(bool on){applyTrackerSurvey = on;} void ApplyFGDInternal(bool on){applyFGDInternal = on;} void ApplyMMSurvey(bool on){applyMMSurvey = on;} }; #endif