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

#include <PndFsmIdealPid.h>

Inheritance diagram for PndFsmIdealPid:
PndFsmAbsDet

Public Member Functions

 PndFsmIdealPid ()
 
 PndFsmIdealPid (ArgList &par)
 
virtual ~PndFsmIdealPid ()
 
virtual PndFsmResponserespond (PndFsmTrack *t)
 
const std::string & detName ()
 
void setName (std::string &name)
 
Bool_t doesPid () const
 
void setStorePid (Bool_t doespid=kTRUE)
 

Protected Member Functions

virtual bool setParameter (std::string &name, std::string &value)
 
void parseParameterList (ArgList &par)
 

Protected Attributes

std::string _detName
 
double _efficiency
 
TRandom3 * _rand
 
TDatabasePDG * _fdbPDG
 
Bool_t _doesPid
 

Private Member Functions

bool detected (PndFsmTrack *t) const
 
void initParameters ()
 
void print (std::ostream &o)
 
bool setParameter (std::string &name, double value)
 
bool readParameters ()
 

Detailed Description

Definition at line 41 of file PndFsmIdealPid.h.

Constructor & Destructor Documentation

PndFsmIdealPid::PndFsmIdealPid ( )

Default ctor.

Definition at line 57 of file PndFsmIdealPid.cxx.

References initParameters(), and readParameters().

58 {
61  //print(std::cout);
62 }
PndFsmIdealPid::PndFsmIdealPid ( ArgList par)

Definition at line 64 of file PndFsmIdealPid.cxx.

References initParameters(), PndFsmAbsDet::parseParameterList(), and readParameters().

65 {
69  //print(std::cout);
70 }
Double_t par[3]
void parseParameterList(ArgList &par)
PndFsmIdealPid::~PndFsmIdealPid ( )
virtual

Destructor

Definition at line 76 of file PndFsmIdealPid.cxx.

77 {
78 }

Member Function Documentation

bool PndFsmIdealPid::detected ( PndFsmTrack t) const
private

Definition at line 120 of file PndFsmIdealPid.cxx.

Referenced by respond().

121 {
122  if(t) return true;
123  else return false;
124 }
const std::string& PndFsmAbsDet::detName ( )
inlineinherited
Bool_t PndFsmAbsDet::doesPid ( ) const
inlineinherited

Definition at line 76 of file PndFsmAbsDet.h.

References PndFsmAbsDet::_doesPid.

Referenced by PndFastSim::Register(), and PndFastSim::smearTrack().

76 {return _doesPid;};
Bool_t _doesPid
Definition: PndFsmAbsDet.h:96
void PndFsmIdealPid::initParameters ( )
privatevirtual

Reimplemented from PndFsmAbsDet.

Definition at line 133 of file PndFsmIdealPid.cxx.

References PndFsmAbsDet::_detName.

Referenced by PndFsmIdealPid().

134 {
135  _detName="IdealPid";
136  return;
137 }
std::string _detName
Definition: PndFsmAbsDet.h:92
void PndFsmAbsDet::parseParameterList ( ArgList par)
protectedinherited

Definition at line 119 of file PndFsmAbsDet.cxx.

References CStrTok::GetFirst(), CStrTok::GetNext(), name, and PndFsmAbsDet::setParameter().

Referenced by PndFsmAbsDet::PndFsmAbsDet(), PndFsmCmpDet::PndFsmCmpDet(), PndFsmCombiDet::PndFsmCombiDet(), PndFsmDetTemplate::PndFsmDetTemplate(), PndFsmDrcBarrel::PndFsmDrcBarrel(), PndFsmDrcDisc::PndFsmDrcDisc(), PndFsmEffTracker::PndFsmEffTracker(), PndFsmEmcBarrel::PndFsmEmcBarrel(), PndFsmEmcBwCap::PndFsmEmcBwCap(), PndFsmEmcFS::PndFsmEmcFS(), PndFsmEmcFwCap::PndFsmEmcFwCap(), PndFsmEmcPid::PndFsmEmcPid(), PndFsmIdealPid(), PndFsmMdcFS::PndFsmMdcFS(), PndFsmMdcTS::PndFsmMdcTS(), PndFsmMdtPid::PndFsmMdtPid(), PndFsmMvd::PndFsmMvd(), PndFsmMvd2::PndFsmMvd2(), PndFsmMvdPid::PndFsmMvdPid(), PndFsmRich::PndFsmRich(), PndFsmSimpleTracker::PndFsmSimpleTracker(), PndFsmSimpleVtx::PndFsmSimpleVtx(), PndFsmStt::PndFsmStt(), PndFsmSttPid::PndFsmSttPid(), and PndFsmTof::PndFsmTof().

120 {
121  // ArgList is a std::list<std::string> of the form ("a=1","b=2","c=3","d=4")
122 
123  // Default values for the parameters
124 
125  CStrTok tokenizer;
126  char csrc[200];
127 
128  if (par.size() != 0) {
129 
130  //cout <<"Parameters for detector <"<<_detName<<">"<<endl;
131  for(ArgList::const_iterator argIt=par.begin(); argIt!=par.end();argIt++) {
132 
133  const char *src=argIt->data();
134  strcpy(csrc,src);
135 
136  char* token = tokenizer.GetFirst(csrc,"=");
137  string name(token);
138  //cout <<"variable: -" << name << "- ";
139  token = tokenizer.GetNext("=");
140 
141  double value = atof(token);
142  string strvalue(token);
143 
144  //cout <<"value: -"<<value<<"- "<<endl;
145 
146  if (value!=0 || strvalue=="0" || strvalue=="0.0" || strvalue=="0.")
147  {
148  if (!setParameter(name,value))
149  cout <<" -W- (PndFsmAbsDet::parseParameterList) Unknown Parameter: <"<<name<< endl;
150  }
151  else
152  {
153  if (!setParameter(name,strvalue))
154  cout <<" -W- (PndFsmAbsDet::parseParameterList) Unknown Parameter: <"<<name<< endl;
155  }
156 
157  }
158  }
159 
160  /*
161  if (par.size() != 0) {
162 
163  //cout <<"Parameters for detector <"<<_detName<<">"<<endl;
164  for(ArgList::const_iterator argIt=par.begin(); argIt!=par.end();argIt++) {
165  typedef boost::tokenizer<boost::char_separator<char> > tokenizer;
166  boost::char_separator<char> sep("=");
167  tokenizer tokens(*argIt, sep);
168  tokenizer::iterator tok_iter = tokens.begin();
169  string name(*tok_iter);
170  ++tok_iter;
171  double value=atof((*tok_iter).c_str());
172 
173  //cout <<"<"<<name<<"> = "<<value<<endl;
174 
175  string name("efficiency");
176  double value=0.99;
177  if (!setParameter(name,value))
178  cout <<" -W- Unknown Parameter: <"<<name<<"> in PndFsmAbsDet::parseParameterList" << endl;
179  }
180  }
181  */
182  //print(std::cout);
183 
184 }
Double_t par[3]
char * GetFirst(char *lpsz, const char *lpcszDelimiters)
Definition: StrTok.cxx:29
TString name
Definition: StrTok.h:11
virtual bool setParameter(std::string &name, double value)
char * GetNext(const char *lpcszDelimiters)
Definition: StrTok.cxx:37
void PndFsmIdealPid::print ( std::ostream o)
privatevirtual

Reimplemented from PndFsmAbsDet.

Definition at line 127 of file PndFsmIdealPid.cxx.

References PndFsmAbsDet::detName().

128 {
129  o <<"Parameters for detector <"<<detName()<<">"<<endl;
130 }
const std::string & detName()
Definition: PndFsmAbsDet.h:74
bool PndFsmIdealPid::readParameters ( )
private

Definition at line 145 of file PndFsmIdealPid.cxx.

Referenced by PndFsmIdealPid().

146 {
147  return true;
148 }
PndFsmResponse * PndFsmIdealPid::respond ( PndFsmTrack t)
virtual

Accessors to contained information

Implements PndFsmAbsDet.

Definition at line 85 of file PndFsmIdealPid.cxx.

References detected(), PndFsmTrack::pdt(), PndFsmResponse::setDetected(), PndFsmResponse::setDetector(), PndFsmResponse::setLHElectron(), PndFsmResponse::setLHKaon(), PndFsmResponse::setLHMuon(), PndFsmResponse::setLHPion(), and PndFsmResponse::setLHProton().

86 {
87  PndFsmResponse *result=new PndFsmResponse();
88 
89  result->setDetector(this);
90  bool wasDetected=detected(t);
91  result->setDetected(wasDetected);
92 
93  if (wasDetected)
94  {
95  int type = abs(t->pdt());
96 
97  result->setLHElectron(0.);
98  result->setLHMuon(0.);
99  result->setLHPion(0.);
100  result->setLHKaon(0.);
101  result->setLHProton(0.);
102 
103  if (abs(type)==11) result->setLHElectron(1.);
104  else if (abs(type)==13) result->setLHMuon(1.);
105  else if (abs(type)==211) result->setLHPion(1.);
106  else if (abs(type)==321) result->setLHKaon(1.);
107  else if (type==2212) result->setLHProton(1.);
108  else {
109  result->setLHElectron(0.2);
110  result->setLHMuon(0.2);
111  result->setLHPion(0.2);
112  result->setLHKaon(0.2);
113  result->setLHProton(0.2);
114  }
115  }
116  return result;
117 }
void setLHElectron(double val)
void setLHProton(double val)
void setLHMuon(double val)
void setDetector(PndFsmAbsDet *detector)
void setLHKaon(double val)
bool detected(PndFsmTrack *t) const
void setDetected(bool isdet)
void setLHPion(double val)
void PndFsmAbsDet::setName ( std::string &  name)
inlineinherited

Definition at line 75 of file PndFsmAbsDet.h.

References PndFsmAbsDet::_detName, and name.

Referenced by PndFsmDetFactory::create().

75 {_detName = name;};
TString name
std::string _detName
Definition: PndFsmAbsDet.h:92
bool PndFsmIdealPid::setParameter ( std::string &  name,
double  value 
)
privatevirtual

Reimplemented from PndFsmAbsDet.

Definition at line 140 of file PndFsmIdealPid.cxx.

141 {
142  return true;
143 }
bool PndFsmAbsDet::setParameter ( std::string &  name,
std::string &  value 
)
protectedvirtualinherited

Reimplemented in PndFsmDrcBarrel, PndFsmDrcDisc, PndFsmCombiDet, and PndFsmCmpDet.

Definition at line 99 of file PndFsmAbsDet.cxx.

100 {
101  return false;
102 }
void PndFsmAbsDet::setStorePid ( Bool_t  doespid = kTRUE)
inlineinherited

Definition at line 77 of file PndFsmAbsDet.h.

References PndFsmAbsDet::_doesPid.

Referenced by PndFsmDetFactory::create().

77 {_doesPid=doespid;};
Bool_t _doesPid
Definition: PndFsmAbsDet.h:96

Member Data Documentation

std::string PndFsmAbsDet::_detName
protectedinherited
Bool_t PndFsmAbsDet::_doesPid
protectedinherited
double PndFsmAbsDet::_efficiency
protectedinherited

Definition at line 93 of file PndFsmAbsDet.h.

Referenced by PndFsmDetTemplate::detected(), PndFsmSimpleTracker::detected(), PndFsmMdcFS::detected(), PndFsmMdcTS::detected(), PndFsmTof::detected(), PndFsmSimpleVtx::detected(), PndFsmEmcFS::detected(), PndFsmMvd::detected(), PndFsmEmcBwCap::detected(), PndFsmStt::detected(), PndFsmMvd2::detected(), PndFsmEmcFwCap::detected(), PndFsmSttPid::detected(), PndFsmMvdPid::detected(), PndFsmRich::detected(), PndFsmEmcBarrel::detected(), PndFsmDrcDisc::detected(), PndFsmMdtPid::detected(), PndFsmDrcBarrel::detected(), PndFsmEmcPid::detected(), PndFsmEffTracker::detected(), PndFsmSimpleTracker::initParameters(), PndFsmSimpleVtx::initParameters(), PndFsmDetTemplate::initParameters(), PndFsmMvdPid::initParameters(), PndFsmTof::initParameters(), PndFsmMdtPid::initParameters(), PndFsmEmcPid::initParameters(), PndFsmEmcFS::initParameters(), PndFsmMvd2::initParameters(), PndFsmEmcFwCap::initParameters(), PndFsmRich::initParameters(), PndFsmMdcFS::initParameters(), PndFsmSttPid::initParameters(), PndFsmMdcTS::initParameters(), PndFsmEmcBwCap::initParameters(), PndFsmEmcBarrel::initParameters(), PndFsmDrcDisc::initParameters(), PndFsmDrcBarrel::initParameters(), PndFsmStt::initParameters(), PndFsmMvd::initParameters(), PndFsmEffTracker::initParameters(), PndFsmSimpleTracker::print(), PndFsmSimpleVtx::print(), PndFsmDetTemplate::print(), PndFsmMvdPid::print(), PndFsmTof::print(), PndFsmMdtPid::print(), PndFsmEmcPid::print(), PndFsmSttPid::print(), PndFsmMdcFS::print(), PndFsmMdcTS::print(), PndFsmEmcBwCap::print(), PndFsmMvd2::print(), PndFsmEmcFS::print(), PndFsmEmcFwCap::print(), PndFsmRich::print(), PndFsmEmcBarrel::print(), PndFsmDrcDisc::print(), PndFsmDrcBarrel::print(), PndFsmStt::print(), PndFsmMvd::print(), PndFsmEffTracker::print(), PndFsmSimpleTracker::setParameter(), PndFsmSimpleVtx::setParameter(), PndFsmDetTemplate::setParameter(), PndFsmMvdPid::setParameter(), PndFsmMdtPid::setParameter(), PndFsmTof::setParameter(), PndFsmEmcPid::setParameter(), PndFsmEmcBwCap::setParameter(), PndFsmRich::setParameter(), PndFsmMvd2::setParameter(), PndFsmEmcFS::setParameter(), PndFsmMdcTS::setParameter(), PndFsmSttPid::setParameter(), PndFsmEmcFwCap::setParameter(), PndFsmMdcFS::setParameter(), PndFsmEmcBarrel::setParameter(), PndFsmDrcBarrel::setParameter(), PndFsmDrcDisc::setParameter(), PndFsmMvd::setParameter(), PndFsmStt::setParameter(), and PndFsmEffTracker::setParameter().

TDatabasePDG* PndFsmAbsDet::_fdbPDG
protectedinherited
TRandom3* PndFsmAbsDet::_rand
protectedinherited

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