FairRoot/PandaRoot
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
PndPidRichAssociatorTask Class Reference

#include <PndPidRichAssociatorTask.h>

Inheritance diagram for PndPidRichAssociatorTask:

Public Member Functions

virtual void Exec (Option_t *option)
 
virtual InitStatus Init ()
 
void Register ()
 
void Reset ()
 
 PndPidRichAssociatorTask (const char *name, const char *title="Pnd Task")
 
 PndPidRichAssociatorTask ()
 
virtual ~PndPidRichAssociatorTask ()
 
void SetVerbose (Bool_t verb)
 
virtual void SetParContainers ()
 
virtual void Finish ()
 
void SetOutputBranch (TString branch)
 

Protected Member Functions

void DoPidMatch (PndPidCandidate *pidcand, PndPidProbability *prob)
 
Double_t GetPdf (Double_t thetaC, Double_t mom, Double_t mass, Double_t sigma)
 

Protected Attributes

TClonesArray * fPidChargedCand
 
TClonesArray * fPidChargedProb
 PndPidCandidate TCA for charged particles. More...
 
TString fTrackBranchNamePidHypo
 PndPidProbability TCA for charged particles. More...
 

Detailed Description

Definition at line 20 of file PndPidRichAssociatorTask.h.

Constructor & Destructor Documentation

PndPidRichAssociatorTask::PndPidRichAssociatorTask ( const char *  name,
const char *  title = "Pnd Task" 
)

Definition at line 25 of file PndPidRichAssociatorTask.cxx.

References fPidChargedProb, fTrackBranchNamePidHypo, and SetTitle().

25  :FairTask(name)
26 {
27  //---
28  fPidChargedProb = new TClonesArray("PndPidProbability");
30  SetTitle(title);
31 }
TString fTrackBranchNamePidHypo
PndPidProbability TCA for charged particles.
h_MC_angle SetTitle("MC truth: opening angle of #pi^{0}")
TClonesArray * fPidChargedProb
PndPidCandidate TCA for charged particles.
TString name
PndPidRichAssociatorTask::PndPidRichAssociatorTask ( )

Definition at line 18 of file PndPidRichAssociatorTask.cxx.

References fPidChargedProb, and fTrackBranchNamePidHypo.

18  {
19  //---
20  fPidChargedProb = new TClonesArray("PndPidProbability");
22 }
TString fTrackBranchNamePidHypo
PndPidProbability TCA for charged particles.
TClonesArray * fPidChargedProb
PndPidCandidate TCA for charged particles.
PndPidRichAssociatorTask::~PndPidRichAssociatorTask ( )
virtual

Definition at line 11 of file PndPidRichAssociatorTask.cxx.

11  {
12  //
13  FairRootManager *fManager =FairRootManager::Instance();
14  fManager->Write();
15 }

Member Function Documentation

void PndPidRichAssociatorTask::DoPidMatch ( PndPidCandidate pidcand,
PndPidProbability prob 
)
protected

Definition at line 75 of file PndPidRichAssociatorTask.cxx.

References PndPidCandidate::GetMomentum(), GetPdf(), PndPidCandidate::GetRichThetaC(), PndPidCandidate::GetRichThetaCErr(), PndPidProbability::SetElectronPdf(), PndPidProbability::SetKaonPdf(), PndPidProbability::SetMuonPdf(), PndPidProbability::SetPionPdf(), PndPidProbability::SetProtonPdf(), and sigma.

Referenced by Exec().

76 {
77  Float_t sigma = pidcand->GetRichThetaCErr();
79  // electron
80  {
81  Float_t mass = 0.0005;
82  prob->SetElectronPdf(GetPdf(pidcand->GetRichThetaC(),pidcand->GetMomentum().Mag(),mass, sigma));
83  }
84 
85  // muon
86  {
87  Float_t mass = 0.106;
88  prob->SetMuonPdf(GetPdf(pidcand->GetRichThetaC(),pidcand->GetMomentum().Mag(),mass, sigma));
89  }
90 
91  // pion
92  {
93  Float_t mass = 0.140;
94  prob->SetPionPdf(GetPdf(pidcand->GetRichThetaC(),pidcand->GetMomentum().Mag(),mass, sigma));
95  }
96 
97  // kaon
98  {
99  Float_t mass = 0.494;
100  prob->SetKaonPdf(GetPdf(pidcand->GetRichThetaC(),pidcand->GetMomentum().Mag(),mass, sigma));
101  }
102 
103  // proton
104  {
105  Float_t mass = 0.938;
106  prob->SetProtonPdf(GetPdf(pidcand->GetRichThetaC(),pidcand->GetMomentum().Mag(),mass, sigma));
107  }
108 }
Float_t GetRichThetaCErr() const
void SetPionPdf(Double_t val)
void SetKaonPdf(Double_t val)
Double_t sigma[nsteps]
Definition: dedx_bands.C:65
Float_t GetRichThetaC() const
void SetElectronPdf(Double_t val)
void SetMuonPdf(Double_t val)
Double_t GetPdf(Double_t thetaC, Double_t mom, Double_t mass, Double_t sigma)
void SetProtonPdf(Double_t val)
TVector3 GetMomentum() const
void PndPidRichAssociatorTask::Exec ( Option_t *  option)
virtual

Definition at line 58 of file PndPidRichAssociatorTask.cxx.

References DoPidMatch(), fPidChargedCand, fPidChargedProb, fVerbose, PndPidCandidate::GetRichIndex(), i, and PndPidProbability::SetIndex().

58  {
59  if (fPidChargedProb->GetEntriesFast() != 0) fPidChargedProb->Clear();
60  if(fVerbose>1) std::cout << "-I- Start PndPidRichAssociatorTask. "<<std::endl;
61 
62  // Get the Candidates
63  for(Int_t i=0; i<fPidChargedCand->GetEntriesFast(); i++)
64  {
66  TClonesArray& pidRef = *fPidChargedProb;
67  PndPidProbability* prob = new(pidRef[i]) PndPidProbability();// initializes with zeros
68  prob->SetIndex(i);
69  if (pidcand->GetRichIndex()==-1) continue;
70  DoPidMatch(pidcand,prob);
71  }
72 
73 }
Int_t GetRichIndex() const
int fVerbose
Definition: poormantracks.C:24
Int_t i
Definition: run_full.C:25
TClonesArray * fPidChargedProb
PndPidCandidate TCA for charged particles.
void DoPidMatch(PndPidCandidate *pidcand, PndPidProbability *prob)
void SetIndex(Int_t idx)
void PndPidRichAssociatorTask::Finish ( )
virtual

Definition at line 139 of file PndPidRichAssociatorTask.cxx.

139  {
140 }
Double_t PndPidRichAssociatorTask::GetPdf ( Double_t  thetaC,
Double_t  mom,
Double_t  mass,
Double_t  sigma 
)
protected

Definition at line 110 of file PndPidRichAssociatorTask.cxx.

References Double_t, CAMath::Sqrt(), thetaC, and val.

Referenced by DoPidMatch().

111 {
112  Double_t beta = mom / TMath::Sqrt(mom*mom + mass*mass);
113  if ( (beta>0.) )
114  {
115  Double_t center = thetaC;
116  TF1 *gausPdf = new TF1("gausPdf","gausn",0,1);
117  gausPdf->SetParameter(0,1);
118  gausPdf->SetParameter(1,center);
119  gausPdf->SetParameter(2,sigma);
120  Double_t val = gausPdf->Eval(beta);
121  delete gausPdf;
122  return val;
123  }
124  else
125  {
126  // FIXME: Don't write Zeros to that pdf!
127  return 0.;
128  }
129 }
Double_t val[nBoxes][nFEBox]
Definition: createCalib.C:11
static T Sqrt(const T &x)
Definition: PndCAMath.h:37
Double_t sigma[nsteps]
Definition: dedx_bands.C:65
Double_t mom
Definition: plot_dirc.C:14
Double_t
Double_t thetaC
Definition: plot_dirc.C:16
InitStatus PndPidRichAssociatorTask::Init ( )
virtual

Definition at line 34 of file PndPidRichAssociatorTask.cxx.

References fPidChargedCand, fTrackBranchNamePidHypo, and Register().

34  {
35 
36  std::cout << "InitStatus PndPidRichAssociatorTask::Init()" << std::endl;
37 
38  FairRootManager *fManager =FairRootManager::Instance();
39 
40  fPidChargedCand = (TClonesArray *)fManager->GetObject("PidChargedCand"+fTrackBranchNamePidHypo);
41  if ( ! fPidChargedCand) {
42  std::cout << "-I- PndPidRichAssociatorTask::Init: No PndPidCandidate array PidChargedCand there!" << std::endl;
43  return kERROR;
44  }
45 
46  Register();
47 
48  std::cout << "-I- PndPidRichAssociatorTask::Init: Success!" << std::endl;
49 
50  return kSUCCESS;
51 }
TString fTrackBranchNamePidHypo
PndPidProbability TCA for charged particles.
void PndPidRichAssociatorTask::Register ( )

Definition at line 132 of file PndPidRichAssociatorTask.cxx.

References fPidChargedProb, and fTrackBranchNamePidHypo.

Referenced by Init().

132  {
133  //---
134  FairRootManager::Instance()->
135  Register("PidAlgoRich"+fTrackBranchNamePidHypo,"Pid", fPidChargedProb, kTRUE);
136 }
TString fTrackBranchNamePidHypo
PndPidProbability TCA for charged particles.
TClonesArray * fPidChargedProb
PndPidCandidate TCA for charged particles.
void PndPidRichAssociatorTask::Reset ( )

Definition at line 143 of file PndPidRichAssociatorTask.cxx.

143  {
144  //---
145 }
void PndPidRichAssociatorTask::SetOutputBranch ( TString  branch)
inline

Definition at line 51 of file PndPidRichAssociatorTask.h.

Referenced by PndMasterMultiPidTask::PndMasterMultiPidTask().

51 { fTrackBranchNamePidHypo = branch; };
TString fTrackBranchNamePidHypo
PndPidProbability TCA for charged particles.
void PndPidRichAssociatorTask::SetParContainers ( )
virtual

Get parameter containers

Definition at line 54 of file PndPidRichAssociatorTask.cxx.

54  {
55  //--
56 }
void PndPidRichAssociatorTask::SetVerbose ( Bool_t  verb)
inline

Definition at line 45 of file PndPidRichAssociatorTask.h.

References fVerbose.

45 { fVerbose = verb ;};
int fVerbose
Definition: poormantracks.C:24

Member Data Documentation

TClonesArray* PndPidRichAssociatorTask::fPidChargedCand
protected

Definition at line 24 of file PndPidRichAssociatorTask.h.

Referenced by Exec(), and Init().

TClonesArray* PndPidRichAssociatorTask::fPidChargedProb
protected

PndPidCandidate TCA for charged particles.

Definition at line 25 of file PndPidRichAssociatorTask.h.

Referenced by Exec(), PndPidRichAssociatorTask(), and Register().

TString PndPidRichAssociatorTask::fTrackBranchNamePidHypo
protected

PndPidProbability TCA for charged particles.

Definition at line 27 of file PndPidRichAssociatorTask.h.

Referenced by Init(), PndPidRichAssociatorTask(), and Register().


The documentation for this class was generated from the following files: