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

#include <PndPidDiscAssociatorTask.h>

Inheritance diagram for PndPidDiscAssociatorTask:

Public Member Functions

virtual void Exec (Option_t *option)
 
virtual InitStatus Init ()
 
void Register ()
 
void Reset ()
 
 PndPidDiscAssociatorTask (const char *name, const char *title="Pnd Task")
 
 PndPidDiscAssociatorTask ()
 
virtual ~PndPidDiscAssociatorTask ()
 
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 PndPidDiscAssociatorTask.h.

Constructor & Destructor Documentation

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

Definition at line 25 of file PndPidDiscAssociatorTask.cxx.

References fPidChargedProb, fTrackBranchNamePidHypo, and SetTitle().

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

Definition at line 18 of file PndPidDiscAssociatorTask.cxx.

References fPidChargedProb, and fTrackBranchNamePidHypo.

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

Definition at line 11 of file PndPidDiscAssociatorTask.cxx.

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

Member Function Documentation

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

Definition at line 75 of file PndPidDiscAssociatorTask.cxx.

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

Referenced by Exec().

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

Definition at line 58 of file PndPidDiscAssociatorTask.cxx.

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

58  {
59  if (fPidChargedProb->GetEntriesFast() != 0) fPidChargedProb->Clear();
60  if(fVerbose>1) std::cout << "-I- Start PndPidDiscAssociatorTask. "<<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->GetDiscIndex()==-1) continue;
70  DoPidMatch(pidcand,prob);
71  }
72 
73 }
int fVerbose
Definition: poormantracks.C:24
Int_t i
Definition: run_full.C:25
Int_t GetDiscIndex() const
void DoPidMatch(PndPidCandidate *pidcand, PndPidProbability *prob)
TClonesArray * fPidChargedProb
PndPidCandidate TCA for charged particles.
void SetIndex(Int_t idx)
void PndPidDiscAssociatorTask::Finish ( )
virtual

Definition at line 144 of file PndPidDiscAssociatorTask.cxx.

144  {
145 }
Double_t PndPidDiscAssociatorTask::GetPdf ( Double_t  thetaC,
Double_t  mom,
Double_t  mass,
Double_t  sigma 
)
protected

Definition at line 114 of file PndPidDiscAssociatorTask.cxx.

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

Referenced by DoPidMatch().

115 {
116 
117  Double_t beta = mom / TMath::Sqrt(mom*mom + mass*mass);
118  if ( (beta>0.) && ((1./1.47/beta)<1.) )
119  {
120  Double_t center = 1./1.47/beta;
121  TF1 *gausPdf = new TF1("gausPdf","gausn",0,1);
122  gausPdf->SetParameter(0,1);
123  gausPdf->SetParameter(1,center);
124  gausPdf->SetParameter(2,sigma);
125  Double_t val = gausPdf->Eval(TMath::Cos(thetaC));
126  delete gausPdf;
127  return val;
128  }
129  else
130  {
131  // FIXME: Don't write zeros to that pdf!
132  return 0.;
133  }
134 }
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
static T Cos(const T &x)
Definition: PndCAMath.h:43
Double_t
Double_t thetaC
Definition: plot_dirc.C:16
InitStatus PndPidDiscAssociatorTask::Init ( )
virtual

Definition at line 34 of file PndPidDiscAssociatorTask.cxx.

References fPidChargedCand, fTrackBranchNamePidHypo, and Register().

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

Definition at line 137 of file PndPidDiscAssociatorTask.cxx.

References fPidChargedProb, and fTrackBranchNamePidHypo.

Referenced by Init().

137  {
138  //---
139  FairRootManager::Instance()->
140  Register("PidAlgoDisc"+fTrackBranchNamePidHypo,"Pid", fPidChargedProb, kTRUE);
141 }
TClonesArray * fPidChargedProb
PndPidCandidate TCA for charged particles.
TString fTrackBranchNamePidHypo
PndPidProbability TCA for charged particles.
void PndPidDiscAssociatorTask::Reset ( )

Definition at line 148 of file PndPidDiscAssociatorTask.cxx.

148  {
149  //---
150 }
void PndPidDiscAssociatorTask::SetOutputBranch ( TString  branch)
inline

Definition at line 51 of file PndPidDiscAssociatorTask.h.

Referenced by PndMasterMultiPidTask::PndMasterMultiPidTask().

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

Get parameter containers

Definition at line 54 of file PndPidDiscAssociatorTask.cxx.

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

Definition at line 45 of file PndPidDiscAssociatorTask.h.

References fVerbose.

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

Member Data Documentation

TClonesArray* PndPidDiscAssociatorTask::fPidChargedCand
protected

Definition at line 24 of file PndPidDiscAssociatorTask.h.

Referenced by Exec(), and Init().

TClonesArray* PndPidDiscAssociatorTask::fPidChargedProb
protected

PndPidCandidate TCA for charged particles.

Definition at line 25 of file PndPidDiscAssociatorTask.h.

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

TString PndPidDiscAssociatorTask::fTrackBranchNamePidHypo
protected

PndPidProbability TCA for charged particles.

Definition at line 27 of file PndPidDiscAssociatorTask.h.

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


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