#include "hpidalghardcuts.h" |
HPidAlgHardCuts
class description - source file - inheritance tree (.pdf)
public:
HPidAlgHardCuts(TString InParamFile, TString outFileName)
HPidAlgHardCuts(Float_t fWeight, TString InParamFile, TString outFileName)
HPidAlgHardCuts(const HPidAlgHardCuts&)
~HPidAlgHardCuts()
Bool_t buildOutNtuple()
virtual Bool_t calculateCL(HPidTrackCand* pTrack, Float_t* afReturn, Short_t& nCatIndex)
virtual Bool_t calculatePDF(HPidTrackCand* pTrack, Float_t* afReturn, Short_t& nCatIndex)
static TClass* Class()
Bool_t fillOutNtuple(Int_t iPid, HPidTrackCandSim* pTrack)
virtual Bool_t finalize()
Int_t getPid(HPidTrackCand* pTrack, Int_t nAlg)
virtual Bool_t init()
virtual TClass* IsA() const
Bool_t isLepInRich(Int_t iPid, HPidHitData* pHitData)
Bool_t isPiM(Int_t iPid, HPidTrackData* pTrackData, Int_t iSelectedMomAlg)
Bool_t isPiP(Int_t iPid, HPidTrackData* pTrackData, Int_t iSelectedMomAlg)
Bool_t isProton(Int_t iPid, HPidTrackData* pTrackData, Int_t iSelectedMomAlg)
Bool_t openOutFile()
HPidAlgHardCuts& operator=(const HPidAlgHardCuts&)
virtual void print() const
virtual Bool_t reinit()
void setOutput(TString fname)
void setSimulation()
virtual void ShowMembers(TMemberInspector& insp, char* parent)
virtual void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
Bool_t writeOutFile()
private:
HPidAlgStandCutsPar* pParams
HPidAlgHardCutsPar* pParams2
TString sInFileName input file for the graphical cut
TString sOutFileName output file for debug ntuple
TFile* pOutFile output file
TNtuple* pNtuple control ntuple
Bool_t bSim check experiment or simulation
TCutG* GCut_8 Graphical cut for pi+
TCutG* GCut_9 Graphical cut for pi-
TCutG* GCut_14 Graphical cut for p
Bool_t bCut8
Bool_t bCut9
Bool_t bCut14
HPidAlgHardCuts
Algorythm for Particle Identification using graphical cuts for hadrons,
and only ring quality selection on leptons.
Two possible uses: as PID algorythm, and as a function.
*** PID Algorythm ***
HPidAlgHardCuts *pidAlgHardCuts = new HPidAlgHardCuts(inputFile);
HPidReconstructor *pidReconstructor = new HPidReconstructor(options);
pidReconstructor->addAlgorithm(pidAlgHardCuts);
Short_t pidPart[5]={2,3,8,9,14};
pidReconstructor->setParticleIds(pidPart,sizeof(pidPart)/sizeof(Short_t));
HPidParticleFiller *pidParticleFiller = new HPidParticleFiller(options);
pidParticleFiller->setAlgorithm(9);
*** Function ***
HPidAlgHardCuts *pidAlgHardCuts = new HPidAlgHardCuts(inputFile);
Int_t pid = pidAlgHardCut->getPid(pidTrackCand, nAlgorythm);
Where inputFile is a ROOT file with the graphical cuts for protons
(name of the TCutG "cut_14"), pi+ ("cut_8") and pi- ("cut_9"). The lepton
ID is made using HPidAlgStandCutsPar selections on RICH ring quality.
If it is used as function it has to be created with the input namefile;
when the function is called, with the HPidTrackCand object and the number
of the tracking algorythm, the output is the particle index (0 if the
PID failed). No lepton ID when it's used as a function.
HPidAlgHardCuts(TString InParamFile, TString outFileName)
: HPidAlgorithm("HardCuts", algHardCuts)
constructor
HPidAlgHardCuts(Float_t fWeight, TString InParamFile, TString outFileName)
: HPidAlgorithm("HardCuts", algHardCuts, fWeight)
constructor with weight
Bool_t init(void)
init parameters
Bool_t openOutFile()
open output ntuple file
Bool_t buildOutNtuple()
Bool_t writeOutFile(void)
write output ntuple to file
Bool_t reinit(void)
Check if parameter context corresponds to the
appropriate momentum algorithm index
If not -> return kFALSE (analysis can not be done in such case)
and print error message
Bool_t finalize(void)
write output file
Bool_t isLepInRich(Int_t iPid,HPidHitData *pHitData)
Check RICH ring quality by using standard cuts
Bool_t isProton(Int_t iPid, HPidTrackData *pTrackData, Int_t iSelectedMomAlg)
serach for tracks inside the proton graphical selection
Bool_t isPiP(Int_t iPid, HPidTrackData *pTrackData, Int_t iSelectedMomAlg)
serach for tracks inside the pi+ graphical selection
Bool_t isPiM(Int_t iPid, HPidTrackData *pTrackData, Int_t iSelectedMomAlg)
serach for tracks inside the pi- graphical selection
Bool_t fillOutNtuple(Int_t iPid,HPidTrackCandSim *pTrack)
fill ntuple in experiment and in simulation
Bool_t calculatePDF(HPidTrackCand *pTrack,
Float_t afReturn[], Short_t &nCatIndex)
Calculate PDF from data (return 1 in case of lepton in the window)
Bool_t calculateCL(HPidTrackCand *pTrack,
Float_t afReturn[], Short_t &nCatIndex)
Int_t getPid(HPidTrackCand *pTrack, Int_t nAlg)
function which get the pid of a given HPidTrackCand
void print(void) const
Empty function for printing info of the algorithm
Inline Functions
void ~HPidAlgHardCuts()
void setOutput(TString fname)
void setSimulation()
TClass* Class()
TClass* IsA() const
void ShowMembers(TMemberInspector& insp, char* parent)
void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
HPidAlgHardCuts HPidAlgHardCuts(const HPidAlgHardCuts&)
HPidAlgHardCuts& operator=(const HPidAlgHardCuts&)
Author: Stefano Spataro 19/07/2005
Last update: Fri Jan 26 12:21:17 2007
ROOT page - Class index - Class Hierarchy - Top of the page
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.