//*-- Author : Dan Magestro
//*-- Created: 06/09/01
//*-- Last modified: 07/11/01

// HCutParticle Class Header

#ifndef HCUTPARTICLE_H
#define HCUTPARTICLE_H

#include "hcut.h"

class HCategory;
class HIterator;
class HParticle;

class HCutParticle : public HCut {

public:
  HCutParticle(void);
  HCutParticle(const Text_t *name, const Text_t *title);
  ~HCutParticle() {}

  void printCutList();
  void reset();
  void setStandardCuts();

  Int_t check(HParticle *part);
  TObjArray *getAcceptedParticles(TObjArray *ParticleList);

  void setCharge(Int_t n) { kFlagCharge = kTRUE; fCharge = n; }
  void setP(Double_t x, Double_t y) { kFlagP = kTRUE;
          fMinP = x; fMaxP = y; }
  void setPt(Double_t x, Double_t y) { kFlagPt = kTRUE;
          fMinPt = x; fMaxPt = y; }
  void setTheta(Double_t x, Double_t y) { kFlagTheta = kTRUE;
          fMinTheta = x; fMaxTheta = y; }
  void setPhi(Double_t x, Double_t y) { kFlagPhi = kTRUE;
          fMinPhi = x; fMaxPhi = y; }
  void setRapidity(Double_t x, Double_t y) { kFlagRapidity = kTRUE;
          fMinRapidity = x; fMaxRapidity = y; }

  void setPCutOff() { kFlagP = kFALSE; }
  void setPtCutOff() { kFlagPt = kFALSE; }

private:
  HCategory* fPartCat;          //! Pointer to Particle data category
  HIterator* iterPart;        //! Iterator over Particle category

protected:
  Bool_t fVerbose;       //! Print cut particle statements to screen

  TObjArray *fAcceptedParticles; //! List of accepted particles after cuts

  Bool_t kFlagCharge; // flag of cut
  Int_t fnCharge; // number of not accepted tracks due to this cut
  Int_t fCharge; // -1 for neg particles +1 pos particles

  Bool_t kFlagP; // flag of cut
  Int_t fnP; // number of not accepted tracks due to this cut
  Double_t fMinP; // Minumum p
  Double_t fMaxP; // Maximum p

  Bool_t kFlagPt; // flag of cut
  Int_t  fnPt; // number of not accepted tracks due to this cut
  Double_t fMinPt; // Minumum pt
  Double_t fMaxPt; // Maximum pt

  Bool_t kFlagRapidity;  // flag of cut
  Int_t  fnRapidity;     // number of not accepted tracks due to this cut
  Double_t fMinRapidity; // Minumum rapidity
  Double_t fMaxRapidity; // Maximum rapidity

  Bool_t kFlagTheta; // flag of cut
  Int_t  fnTheta; // number of not accepted tracks due to this cut
  Double_t fMinTheta; // Minumum theta
  Double_t fMaxTheta; // Maximum theta

  Bool_t kFlagPhi; // flag of cut
  Int_t  fnPhi; // number of not accepted tracks due to this cut
  Double_t fMinPhi; // Minumum phi
  Double_t fMaxPhi; // Maximum phi

ClassDef(HCutParticle,1) // Single particle cuts

};
#endif

Last change: Sat May 22 12:54:17 2010
Last generated: 2010-05-22 12:54

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.