***********************************************************************
ALGORITHMS
***********************************************************************

 - The following is a list of the algorithms with a list of the options
	and parameters that can be set.

------------------------------------
 - ATLAS - fastkt  (aachen option)
------------------------------------
	Constructors
		atlas::FastKtTool(std::string name)

	Functions
		void simple_config(std::string findername, double param);
		void set_other_propery(std::string name, float val);
		void set_exclusiveN(int N);        // if running exclusive mode with fixed Jet num 
		void set_exclusiveD(double ycut);  // if running exclusive mode with fixed y cut:

------------------------------------
 - ATLAS - cone
------------------------------------

	Constructors
		atlas::JetConeFinderTool( const std::string& name ="jconefindertool" );

	Parameters           		Default
		m_ptcut        		0.0
		m_eps         		0.05
		m_seedPt      		2 GeV
		m_etaMax      		5
		
------------------------------------
 - CDF - JetClustering
------------------------------------
	Constructors
		cdf::JetClustFinder(std::string name = "myJetClust") 

	Parameters				Default
   		double	seedThreshold      	1GeV;
		double  coneRadius         	0.7;
		int     adjacencyCut      	2;
		int     maxIterations      	100;
		int     iratch             	1;
		double  overlapThreshold   	0.75;
		string  m_name 			myJetClust;

	Functions
		void configure( double  seedThreshold,
				double  coneRadius,
				int     adjacencyCut,
				int     maxIterations,
				int     iratch,
				double  overlapThreshold);
		void set_seedThreshold(double)
		void set_coneRadius(double)
		void set_adjacencyCut(int)
		void set_maxIterations(int)
		void set_iratch(int) 
		void set_overlapThreshold(double)
		void set_name(std::string)

------------------------------------
 - CDF - MidPoint
------------------------------------

	Constructors
		cdf::MidPointFinder(std::string name = "myMidPoint",bool secondpass = false)

	Parameters			Default
		string name			myMidPoint
		double  seedThreshold		1;
		double  coneRadius    		0.7;
		double  coneAreaFraction   	0.25;
		int     maxPairSize        	2;
		int     maxIterations      	100;
		double  overlapThreshold   	0.75;
		int     reduceConeSize     	0;
		bool    savePassNum        	false;  // controls saving of pass_num branch in TTree
		bool    do_second_pass		false;

	Functions
		void configure( bool    do_second_pass,
				double  seedThreshold,
				double  coneRadius,
				double  coneAreaFraction,
				int     maxPairSize,
				int     maxIterations,
				double  overlapThreshold,
				int     reduceConeSize);
		void set_second_pass(bool)
		void set_seedThreshold(double)
		void set_coneRadius(double)
		void set_coneAreaFraction(double)
		void set_maxPairSize(int)
		void set_maxIterations(int)
		void set_overlapThreshold(double)
		void set_reduceConeSize(int)
		void set_name(std::string)
		void set_savePassNum(bool)

------------------------------------
 - D0 - improved legacy cone algorithm (midpoint)
------------------------------------

	Constructors
		D0::D0RunIIConeFinder(std::string name = "myD0cone",bool ssecondpass = false)

	Parameters				Default
		string name			myD0Cone
		bool   savePassNum		false
		bool   do_second_pass		false
		
		float  cone_radius		0.5
		float  min_jet_Et		0.0
		float  split_ratio		0.5
		float  far_ratio		0.5
		float  Et_min_ratio		0.5
		bool   kill_duplicate		true
		float  duplicate_dR		0.005
		float  duplicate_dPT		0.01
		float  search_factor		1.0
		float  pT_min_leading_protojet	0.0
		float  pT_min_second_protojet	0.0
		int    merge_max		10000
		float  pT_min_nomerge		0.0

		float  Item_ET_Threshold	0.0
		float  Zvertex			0.0

	Functions

		void configure( bool   do_second_pass,
				float  cone_radius,
				float  min_jet_Et,
				float  split_ratio,
				float  far_ratio,
				float  Et_min_ratio,
				bool   kill_duplicate,
				float  duplicate_dR,
				float  duplicate_dPT,
				float  search_factor,
				float  pT_min_leading_protojet,
				float  pT_min_second_protojet,
				int    merge_max,
				float  pT_min_nomerge,
				float  Item_ET_Threshold,
				float  Zvertex);
		void set_second_pass(bool)
		void set_name(std::string)
		void set_savePassNum(bool)

		void set_coneRadius(float)
		void set_minJetEt(float)  
		void set_splitRatio(float)
		void set_farRatio(float)  
		void set_EtMinRatio(float)
		void set_killDuplicate(bool)
		void set_duplicate_dR(float)
		void set_duplicate_dPT(float)
		void set_searchFactor(float)
		void set_pTMinLeadingProtojet(float)
		void set_pTMinSecondProtojet(float)
		void set_mergeMax(int)           
		void set_pTMinNoMerge(float)     
		void set_itemEtTreshold(float)   
		void set_Zvertex(float)          
------------------------------------
 - FastJet - fastkt (aachen option)
------------------------------------

	Constructors
		fastjet::FastJetFinder( std::string name = "myFastJet",
					bool aachen = false,
					bool area = true)

	Parameters			Default
		string  name		myFastJet
		bool    aachen		false
		bool    area		true       // area calculation is fast enough to be default
		bool    inclusive	true       // includes inclusive jets in output
		bool    exclusive	false      // includes exclusive jets in output

		int     strategy	fastjet::Best
		double  Rparam		1.0
		double  ptmin		5.0
		double  dcut		25.0
  
		double  ghost_etamax	6.0
		int     repeat		5
		double  ghost_area	0.01
		double  grid_scatter	1E-4
		double  kt_scatter	0.01
		double  mean_ghost_kt	1E-100

	Functions
		void set_strategy(int)
		void set_name(std::string)

		void configure( bool    aachen,
				bool    area,
				bool    inclusive,
				bool    exclusive,
				double  Rparam,
				double  ptmin,
				double  dcut);
		void set_aachen(bool)
		void set_area(bool)
		void set_inclusive(bool)
		void set_exclusive(bool)
		void set_Rparam(double)
		void set_ptmin(double)
		void set_dcut(double)

		void configure_area(double  ghost_etamax,
				    int     repeat,
				    double  ghost_area,
				    double  grid_scatter,
				    double  kt_scatter,
				    double  mean_ghost_kt);
		void set_ghost_etamax(double)
		void set_repeat(int)
		void set_ghost_area(double)
		void set_grid_scatter(double)
		void set_kt_scatter(double)
		void set_mean_ghost_kt(double)

------------------------------------
 - FastJet - SISCone
------------------------------------

	Constructors
		fastjet::SISConeFinder( std::string name = "mySISCone",
					bool area = false)

		fastjet::SISConeFinder( bool area)
	
		fastjet::SISConeFinder( char* name,
					bool area = false)


	Parameters				Default
		string  name			mySISCone
		bool    area			false      // area is fairly slow in SISCone
		bool    inclusive		true       // includes inclusive jets in output
		bool    exclusive		false      // includes exclusive jets in output
		double	coneRadius      	0.7
		double	overlapThreshold	0.75
		int	nPassMax        	0
		double	protojetptmin   	0.0
		int	caching         	0

		double  ghost_etamax		6.0
		int     repeat			5
		double  ghost_area		0.1
		double  grid_scatter		1E-4
		double  kt_scatter		0.01
		double  mean_ghost_kt		1E-100

	Functions
		void set_strategy(int)
		void set_name(std::string)


		void configure( bool    area,
				bool    inclusive,
				bool    exclusive,
				double  coneRadius,
				double  overlapThreshold,
				int     npassMax,
				double  protojetptmin,
				int     caching);
		void set_area(bool)
		void set_inclusive(bool)
		void set_exclusive(bool)
		void set_coneRadius(double)
		void set_overlapThreshold(double)
		void set_nPassMax(int)
		void set_ptmin(double)
		void set_caching(int)

		void configure_area( double  ghost_etamax,
				     int     repeat,
				     double  ghost_area,
				     double  grid_scatter,
				     double  kt_scatter,
				     double  mean_ghost_kt);
		void set_ghost_etamax(double)
		void set_repeat(int)
		void set_ghost_area(double)
		void set_grid_scatter(double)
		void set_kt_scatter(double)
		void set_mean_ghost_kt(double)

------------------------------------
 - Pythia - CellJet
------------------------------------
 - NOTE: constituent finding does not currently work for celljet.
	If you have it turned on, blank branches will be produced in the TTree

	Constructors
		celljet::CellJetFinder(std::string name = "myCellJet")		

	Parameters			Default
		string  name		myCellJet
		double  eTjetMinIn      0.0
		double  coneRadiusIn	0.7
		double  eTseedIn	1.5

	Functions
		void configure( double  eTjetMinIn,
				double  coneRadiusIn,
				double  eTseedIn);
		void set_minEt(double)
		void set_coneRadius(double)
		void set_seedEt(double)
		void set_name(std::string)
