// ClusterSystem.h
// The class that fills the Cluster class from the MCparticle history
// read from a GISMO ascii file.

#ifndef LCDCLUSTERSYSTEM_H
#define LCDCLUSTERSYSTEM_H

#include "TMap.h"
 
#include "LCDRecModule.h"
#include "LCDEvent.h"
#include "LCDCluster.h"
#include "LCDGetParameters.h"

class LCDClusterSystem : public LCDRecModule {

public:
  LCDClusterSystem();
  LCDClusterSystem(LCDGetParameters* gp);
  ~LCDClusterSystem();

  void CalcProperties(TObjArray* cal_digi, LCDCluster* kal);
  void Cleanup(LCDEvent* event);
  void Doit(   LCDEvent* event);
  void FillClustersCheat(TObjArray* cal_digi,TClonesArray* Cluster_list,
			 TObjArray* mclist);
  void SetDetectorParameters(LCDGetParameters* gp);
  void SetEThreshold(Double_t a) { m_ethreshold=a; }

private:
  LCDGetParameters* m_parameters;
  TMap*             m_reference_em_b;
  TMap*             m_reference_em_e;
  TMap*             m_reference_hd_b;
  TMap*             m_reference_hd_e;
  TMap*             m_reference_mu_b;
  TMap*             m_reference_mu_e;
  TMap*             m_reference_lm  ;
  Float_t           m_ethreshold;

  Float_t m_hitEscale[4];
  Float_t m_hitThetaSeg[4];
  Float_t m_hitphiSeg[4];

  Float_t m_barrelThick[4]; 
  Float_t m_endcapThick[4]; 
  Float_t m_barrelInner[4]; 
  Float_t m_endcapInner[4]; 

  void Init();

public:
  ClassDef(LCDClusterSystem,1)

};




#endif
