#ifndef TS_RESOLVEFUNCS_H
#define TS_RESOLVEFUNCS_H

#include <sdb.h>
#include <arAstromCalib.h>
#include <arFramesPipeRun.h>
#include <arSegment.h>
#include <arChunk.h>

void
tsRunsChainDelete(CHAIN *ch);
int
tsRowToMu(const ooHandle(arAstromCalib)& astrom,
	  int camCol,
	  int field,
	  double row,
	  int colsPerField,
	  double node,
	  double incl,
	  int southern);
void tsMuInRange(double &mu, int southern);
RET_CODE
tsPrimarySegmentResolve(ooHandle(arFramesPipeRun) run,
			int startMu,
			int endMu,
			double lambdaMin,
			double lambdaMax,
			double etaMin,
			double etaMax,
			const ooHandle(ooContObj)& segmentsContainer,
			ooTVArray(ooHandle(arSegment))& segments);
RET_CODE
tsSegmentResolve(ooHandle(arFramesPipeRun) run,
		 int startMu,
		 int endMu,
		 double lambdaMin,
		 double lambdaMax,
		 double etaMin,
		 double etaMax,
		 TSSEGMENTSTATUS status,
		 const ooHandle(ooContObj)& segmentsContainer,
		 ooTVArray(ooHandle(arSegment))& segments,
		 ooHandle(arSegment)* startMatch,
		 ooHandle(arSegment)* endMatch);

#endif
