#include "hpidalghardcuts.h"

HPidAlgHardCuts


class description - source file - inheritance tree (.pdf)

class HPidAlgHardCuts : public HPidAlgorithm

Inheritance Chart:
TObject
<-
HPidAlgorithm
<-
HPidAlgHardCuts

    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()

Data Members

    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

Class Description

                                                                            
 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.