FairRoot/PandaRoot
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
PndFsmAbsDet Class Referenceabstract

#include <PndFsmAbsDet.h>

Inheritance diagram for PndFsmAbsDet:
PndFsmCmpDet PndFsmCombiDet PndFsmDetTemplate PndFsmDrcBarrel PndFsmDrcDisc PndFsmEffTracker PndFsmEmcBarrel PndFsmEmcBwCap PndFsmEmcFS PndFsmEmcFwCap PndFsmEmcPid PndFsmIdealPid PndFsmMdcFS PndFsmMdcTS PndFsmMdtPid PndFsmMvd PndFsmMvd2 PndFsmMvdPid PndFsmRich PndFsmSimpleTracker PndFsmSimpleVtx PndFsmStt PndFsmSttPid PndFsmTof

Public Member Functions

 PndFsmAbsDet ()
 
 PndFsmAbsDet (ArgList &par)
 
virtual ~PndFsmAbsDet ()
 
virtual PndFsmResponserespond (PndFsmTrack *t)=0
 
virtual void print (std::ostream &o)
 
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, double value)
 
virtual bool setParameter (std::string &name, std::string &value)
 
virtual void initParameters ()
 
void parseParameterList (ArgList &par)
 

Protected Attributes

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

Detailed Description

Definition at line 49 of file PndFsmAbsDet.h.

Constructor & Destructor Documentation

PndFsmAbsDet::PndFsmAbsDet ( )

Definition at line 56 of file PndFsmAbsDet.cxx.

References _doesPid, _fdbPDG, _rand, initParameters(), PndFsmRandom::Instance(), par, and parseParameterList().

57 {
59 
60  ArgList par;
61  //set default parameter values and parses a parameter list
62  parseParameterList(par);
64  _fdbPDG = TDatabasePDG::Instance();
65  _doesPid=kFALSE;
66 }
TDatabasePDG * _fdbPDG
Definition: PndFsmAbsDet.h:95
std::list< std::string > ArgList
Definition: ArgList.h:7
virtual void initParameters()
Double_t par[3]
void parseParameterList(ArgList &par)
Bool_t _doesPid
Definition: PndFsmAbsDet.h:96
TRandom3 * _rand
Definition: PndFsmAbsDet.h:94
static TRandom3 * Instance()
Definition: PndFsmRandom.cxx:4
PndFsmAbsDet::PndFsmAbsDet ( ArgList par)

Definition at line 68 of file PndFsmAbsDet.cxx.

References _doesPid, _fdbPDG, _rand, initParameters(), and parseParameterList().

69 {
71  //set default parameter values and parses a parameter list
72  //i.e. std::list<std::string> of the form
73  //"a=1" "b=2" "c=3"
75  _rand=new TRandom3();
76  _fdbPDG = TDatabasePDG::Instance();
77  _doesPid=kFALSE;
78 }
TDatabasePDG * _fdbPDG
Definition: PndFsmAbsDet.h:95
virtual void initParameters()
Double_t par[3]
void parseParameterList(ArgList &par)
Bool_t _doesPid
Definition: PndFsmAbsDet.h:96
TRandom3 * _rand
Definition: PndFsmAbsDet.h:94
PndFsmAbsDet::~PndFsmAbsDet ( )
virtual

Definition at line 84 of file PndFsmAbsDet.cxx.

85 {
86 }

Member Function Documentation

const std::string& PndFsmAbsDet::detName ( )
inline
Bool_t PndFsmAbsDet::doesPid ( ) const
inline

Definition at line 76 of file PndFsmAbsDet.h.

References _doesPid.

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

76 {return _doesPid;};
Bool_t _doesPid
Definition: PndFsmAbsDet.h:96
void PndFsmAbsDet::initParameters ( )
protectedvirtual
void PndFsmAbsDet::parseParameterList ( ArgList par)
protected

Definition at line 119 of file PndFsmAbsDet.cxx.

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

Referenced by PndFsmAbsDet(), PndFsmCmpDet::PndFsmCmpDet(), PndFsmCombiDet::PndFsmCombiDet(), PndFsmDetTemplate::PndFsmDetTemplate(), PndFsmDrcBarrel::PndFsmDrcBarrel(), PndFsmDrcDisc::PndFsmDrcDisc(), PndFsmEffTracker::PndFsmEffTracker(), PndFsmEmcBarrel::PndFsmEmcBarrel(), PndFsmEmcBwCap::PndFsmEmcBwCap(), PndFsmEmcFS::PndFsmEmcFS(), PndFsmEmcFwCap::PndFsmEmcFwCap(), PndFsmEmcPid::PndFsmEmcPid(), PndFsmIdealPid::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 PndFsmAbsDet::print ( std::ostream o)
virtual
virtual PndFsmResponse* PndFsmAbsDet::respond ( PndFsmTrack t)
pure virtual
void PndFsmAbsDet::setName ( std::string &  name)
inline

Definition at line 75 of file PndFsmAbsDet.h.

References _detName, and name.

Referenced by PndFsmDetFactory::create().

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

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

Definition at line 77 of file PndFsmAbsDet.h.

References _doesPid.

Referenced by PndFsmDetFactory::create().

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

Member Data Documentation

std::string PndFsmAbsDet::_detName
protected
Bool_t PndFsmAbsDet::_doesPid
protected

Definition at line 96 of file PndFsmAbsDet.h.

Referenced by doesPid(), PndFsmAbsDet(), and setStorePid().

double PndFsmAbsDet::_efficiency
protected

Definition at line 93 of file PndFsmAbsDet.h.

Referenced by PndFsmDetTemplate::detected(), PndFsmSimpleTracker::detected(), PndFsmEmcBwCap::detected(), PndFsmMdcFS::detected(), PndFsmSimpleVtx::detected(), PndFsmStt::detected(), PndFsmSttPid::detected(), PndFsmMdcTS::detected(), PndFsmTof::detected(), PndFsmEmcFS::detected(), PndFsmMvd::detected(), PndFsmMvd2::detected(), PndFsmEmcFwCap::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(), PndFsmMdcFS::initParameters(), PndFsmSttPid::initParameters(), PndFsmMdcTS::initParameters(), PndFsmEmcBwCap::initParameters(), PndFsmEmcFS::initParameters(), PndFsmMvd2::initParameters(), PndFsmEmcFwCap::initParameters(), PndFsmRich::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(), PndFsmSttPid::setParameter(), PndFsmMdcTS::setParameter(), PndFsmMdcFS::setParameter(), PndFsmEmcFwCap::setParameter(), PndFsmRich::setParameter(), PndFsmEmcBwCap::setParameter(), PndFsmEmcFS::setParameter(), PndFsmMvd2::setParameter(), PndFsmEmcBarrel::setParameter(), PndFsmDrcBarrel::setParameter(), PndFsmDrcDisc::setParameter(), PndFsmMvd::setParameter(), PndFsmStt::setParameter(), and PndFsmEffTracker::setParameter().

TDatabasePDG* PndFsmAbsDet::_fdbPDG
protected
TRandom3* PndFsmAbsDet::_rand
protected

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