#ifndef HKICKPLANE2_H
#define HKICKPLANE2_H

#include "hsurface.h"
#include "hkickgrid.h"
#include "hparset.h"

class HKickPlane2 : public HParSet {
protected:
  friend class HKickParOraIo;
  HSurface *fSurface; //Kick plane's surface.
  Double_t fScaleFactor;    //Field scaling
  HKickGrid fGridA;        //Grid for Pt
  HKickGrid fGridB;        //Grid for Pt
  HKickGrid fGridC;
  HKickGrid fGridANeg;     //Grid for Pt and neg. parts
  HKickGrid fGridBNeg;     //Grid for Pt and neg. parts
  HKickGrid fGridCNeg;     //Grid for Pt and neg. parts

public:
  HKickPlane2(const Char_t *name="KickPlane2",
	      const Char_t *title="Parameter container for kickplane v2",
	      const Char_t *context="KickPlane2Production");
  HKickPlane2(const HKickPlane2 &pl);
  virtual ~HKickPlane2(void);
  static HKickPlane2 *getMDC3(void);
  static HKickPlane2 *getMeta(void);
  void clear(void);
  void readFrom(const HKickPlane2 &pl);
  Bool_t init(HParIo *inp, Int_t *set);
  Int_t write(HParIo *io);
  Int_t writeFile(fstream *pFile);
  Bool_t read(fstream *pFile,Int_t* set,Int_t inputNumber);
  inline Double_t distanceTo(const HGeomVector &v);
  Float_t getFieldStrength() const { return fScaleFactor; }
  inline Bool_t calcIntersection(const HGeomVector &r,const HGeomVector &alpha,
				 HGeomVector &out) const;
  Double_t getP(const HGeomVector &pos, Double_t theta,const Int_t polarity);
  HSurface *getSurface(void) { return fSurface; }

  ClassDef(HKickPlane2,1)
};

//*********** Inlines
inline Bool_t HKickPlane2::calcIntersection(const HGeomVector &r,const HGeomVector &alpha,
				    HGeomVector &out) const {
  //FIXME: Devolver kFALSE para trazas que no cortan al plano.
  fSurface->calcIntersection(r,alpha,out);
  return kTRUE;
}

inline Double_t  HKickPlane2::distanceTo(const HGeomVector &v) {
  return fSurface->distanceTo( v );
}

#endif

Last change: Sat May 22 12:58:31 2010
Last generated: 2010-05-22 12:58

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.