#ifndef HMDCCLOSEPAIRCUTSPAR_H
#define HMDCCLOSEPAIRCUTSPAR_H
#include "TObject.h"
#include "TObjArray.h"
#include "hparset.h"
class HMdcDetector;
class HMdcClosePairCutsParCut : public TObject {
protected:
Float_t efficiency;
Float_t sig2back;
Float_t mdc_size_cut;
Float_t mdc_wires_cut;
Float_t rich_charge_cut;
public:
HMdcClosePairCutsParCut() : efficiency(0.F), sig2back(0.F),mdc_size_cut(0.F), mdc_wires_cut(0.F),rich_charge_cut(0.F) {;}
~HMdcClosePairCutsParCut() {;}
Float_t getEfficiency() {return efficiency;}
Float_t getSig2Back() {return sig2back;}
Float_t getMdcClsSizeCut() {return mdc_size_cut ;}
Float_t getMdcContWiresCut() {return mdc_wires_cut;}
Float_t getRichIntChargeCut(){return rich_charge_cut;}
void fill(Float_t e,Float_t s ,Float_t ms,Float_t mw, Float_t rch ) {
efficiency=e;
sig2back=s;
mdc_size_cut=ms;
mdc_wires_cut=mw;
rich_charge_cut=rch;
}
void fill(HMdcClosePairCutsParCut& r) {
efficiency=r.getEfficiency();
sig2back=r.getSig2Back();
mdc_size_cut=r.getMdcClsSizeCut();
mdc_wires_cut=r.getMdcContWiresCut();
rich_charge_cut=r.getRichIntChargeCut();
}
void setEfficiency(Float_t e) {efficiency=e;}
void setSig2Back(Float_t s) {sig2back=s;}
void setMdcClsSizeCut(Float_t ms) {mdc_size_cut=ms;}
void setMdcContWiresCut(Float_t mw) {mdc_wires_cut=mw;}
void setRichIntChargeCut(Float_t mch) {rich_charge_cut=mch;}
void clear() {
efficiency=0.0;
sig2back=0.0;
mdc_size_cut=0.0;
mdc_wires_cut=0.0;
rich_charge_cut=0.0;
}
void print(){
printf("%4.2f %6.2f %4.0f %4.0f %5.0f\n",efficiency,sig2back,mdc_size_cut,mdc_wires_cut,rich_charge_cut);
}
ClassDef(HMdcClosePairCutsParCut,1)
};
class HMdcClosePairCutsParEf : public TObject {
protected:
TObjArray* array;
public:
HMdcClosePairCutsParEf(Int_t n=4);
~HMdcClosePairCutsParEf();
HMdcClosePairCutsParCut& operator[](Int_t i) {
return *static_cast<HMdcClosePairCutsParCut*>((*array)[i]);
}
Int_t getSize();
ClassDef(HMdcClosePairCutsParEf,1)
};
class HMdcClosePairCutsParPhi : public TObject {
protected:
TObjArray* array;
public:
HMdcClosePairCutsParPhi(Int_t m=3, Int_t n = 4);
~HMdcClosePairCutsParPhi();
HMdcClosePairCutsParEf& operator[](Int_t i) {
return *static_cast<HMdcClosePairCutsParEf*>((*array)[i]);
}
Int_t getSize();
ClassDef(HMdcClosePairCutsParPhi,1)
};
class HMdcClosePairCutsParTheta : public TObject {
protected:
TObjArray* array;
public:
HMdcClosePairCutsParTheta(Int_t l=8,Int_t m=3, Int_t n = 4);
~HMdcClosePairCutsParTheta();
HMdcClosePairCutsParPhi& operator[](Int_t i) {
return *static_cast<HMdcClosePairCutsParPhi*>((*array)[i]);
}
Int_t getSize();
ClassDef(HMdcClosePairCutsParTheta,1)
};
class HMdcClosePairCutsPar : public HParSet {
protected:
TObjArray* array;
HMdcDetector *fMdc;
TString comment;
Int_t theta_bin_size,phi_bin_size,theta_nbin,phi_nbin;
public:
HMdcClosePairCutsPar(const Char_t* name="MdcClosePairCutsPar",const Char_t* title="close pair rejection parameters for Mdc-Rich",const Char_t* context="",Int_t h=3,Int_t l=8,Int_t m=3,Int_t n=4);
~HMdcClosePairCutsPar();
HMdcClosePairCutsParTheta& operator[](Int_t l) {
return *static_cast<HMdcClosePairCutsParTheta*>((*array)[l]);
}
void setContainerComment(TString mycomment){comment=mycomment;}
TString getContainerComment(){return comment;}
void printContainerComment(){printf(comment.Data());}
Int_t getSize();
Bool_t init(HParIo* input,Int_t* set);
Int_t write(HParIo* output);
void putAsciiHeader(TString&);
Bool_t writeline(Char_t *, Int_t,Int_t, Int_t, Int_t);
void readline(const Char_t*, Int_t*);
void clear();
void printParam(void);
Bool_t passCuts(Float_t mdc_level,Float_t mdc_the,Float_t mdc_phi,Float_t min_eff,Float_t mdc_clustersize,Float_t mdc_nwires,Float_t rich_intcharge);
Int_t calculateMdcThetaBin(Float_t mdc_the);
Int_t calculateMdcPhiBin(Float_t mdc_phi);
Int_t calculateMdcLevelBin(Float_t mdc_level);
Int_t calculateMdcEffBin(Float_t min_eff);
ClassDef(HMdcClosePairCutsPar,1)
};
#endif /*!HMDCCLOSEPAIRCUTSPAR_H*/
Last change: Sat May 22 13:00:57 2010
Last generated: 2010-05-22 13:00
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.