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

#include <PndSoftTriggerLine.h>

Public Member Functions

 PndSoftTriggerLine ()
 
 PndSoftTriggerLine (int mode, TString name, TString dec, TString pre, TString ntpname)
 
 ~PndSoftTriggerLine ()
 
void Init ()
 
void Print ()
 
void SetModeCode (int mode)
 
void SetName (TString name)
 
void SetDecay (TString dec)
 
void SetPrefix (TString pre)
 
void SetNtupleName (TString ntp)
 
void SetWriteQA (bool qa=true)
 
void SetTagActive (bool ac=true)
 
void SetQAMassWindow (double min, double max)
 
void SetMeanSigma (double mean, double sig)
 
void SetThreshold (double thr)
 
void SetTagNSig (double nsig)
 
void SetNTagged (int n)
 
int GetModeCode ()
 
TString GetName ()
 
TString GetDecay ()
 
TString GetPrefix ()
 
TString GetNTupleName ()
 
bool GetWriteQA ()
 
bool GetTagActive ()
 
bool GetCC ()
 
bool GetAuxNeeded ()
 
double GetQAMassMin ()
 
double GetQAMassMax ()
 
double GetMean ()
 
double GetSigma ()
 
double GetThreshold ()
 
double GetTagNSig ()
 
int GetNTagged ()
 
int GetMotherPdg ()
 
int GetDaughterPdg (int idx)
 
int GetNDaughters ()
 
RhoMassParticleSelectorGetQASelector ()
 
RhoMassParticleSelectorGetSelector ()
 
RhoTupleGetRhoTuple ()
 

Private Member Functions

bool ParseDecayString ()
 
void SetQASelector (double m, double w)
 
void SetSelector (double m, double w)
 
int SplitString (TString s, TString delim, TString *toks, int maxtoks)
 

Private Attributes

int fMode
 
TString fName
 
TString fDecay
 
TString fPrefix
 
TString fNTupleName
 
bool fWriteQA
 
bool fActive
 
bool fCC
 
bool fAux
 
double fQAMassMin
 
double fQAMassMax
 
double fMean
 
double fSigma
 
double fThresh
 
double fTagNSig
 
int fNTagged
 
RhoMassParticleSelectorfQASelector
 
RhoMassParticleSelectorfSelector
 
RhoTuplefNTuple
 
std::vector< int > fPdgList
 
TDatabasePDG * fPdg
 

Detailed Description

Definition at line 19 of file PndSoftTriggerLine.h.

Constructor & Destructor Documentation

PndSoftTriggerLine::PndSoftTriggerLine ( )

Definition at line 31 of file PndSoftTriggerLine.cxx.

References fPdg.

31  :
32  fMode(-1), fName(""), fDecay(""), fPrefix(""), fNTupleName(""), fWriteQA(false), fActive(true), fCC(false), fAux(false),
33  fQAMassMin(0.), fQAMassMax(20.), fMean(0.), fSigma(0.01), fThresh(0.), fTagNSig(5.),
34  fQASelector(0), fSelector(0), fNTuple(0)
35 {
36  fPdg = TDatabasePDG::Instance();
37 }
RhoMassParticleSelector * fQASelector
RhoMassParticleSelector * fSelector
PndSoftTriggerLine::PndSoftTriggerLine ( int  mode,
TString  name,
TString  dec,
TString  pre,
TString  ntpname 
)

Definition at line 42 of file PndSoftTriggerLine.cxx.

References fPdg.

42  :
43  fMode(mode), fName(name), fDecay(dec), fPrefix(pre), fNTupleName(ntpname), fWriteQA(false), fActive(true), fCC(false), fAux(false),
44  fQAMassMin(0.), fQAMassMax(20.), fMean(0.), fSigma(0.01), fThresh(0.), fTagNSig(5.),
45  fQASelector(0), fSelector(0), fNTuple(0)
46 {
47  fPdg = TDatabasePDG::Instance();
48 }
RhoMassParticleSelector * fQASelector
TString ntpname[10]
Definition: full_core_ntp.C:43
Int_t mode
Definition: autocutx.C:47
RhoMassParticleSelector * fSelector
TString name
PndSoftTriggerLine::~PndSoftTriggerLine ( )

Definition at line 53 of file PndSoftTriggerLine.cxx.

References fQASelector, and fSelector.

54 {
55  if (fQASelector) delete fQASelector;
56  if (fSelector) delete fSelector;
57 }
RhoMassParticleSelector * fQASelector
RhoMassParticleSelector * fSelector

Member Function Documentation

bool PndSoftTriggerLine::GetAuxNeeded ( )
inline

Definition at line 60 of file PndSoftTriggerLine.h.

References fAux.

Referenced by PndSoftTriggerTask::DoCombinatorics().

60 {return fAux;}
bool PndSoftTriggerLine::GetCC ( )
inline

Definition at line 59 of file PndSoftTriggerLine.h.

References fCC.

Referenced by PndSoftTriggerTask::DoCombinatorics().

59 {return fCC;}
int PndSoftTriggerLine::GetDaughterPdg ( int  idx)
inline

Definition at line 72 of file PndSoftTriggerLine.h.

References fPdgList.

Referenced by PndSoftTriggerTask::DoCombinatorics().

72 {if ((int)fPdgList.size()>idx+1) return fPdgList[idx+1]; return -1;}
int idx[MAX]
Definition: autocutx.C:38
std::vector< int > fPdgList
TString PndSoftTriggerLine::GetDecay ( )
inline

Definition at line 53 of file PndSoftTriggerLine.h.

References fDecay.

53 {return fDecay;}
double PndSoftTriggerLine::GetMean ( )
inline

Definition at line 64 of file PndSoftTriggerLine.h.

References fMean.

Referenced by PndSoftTriggerTask::TagMode().

64 {return fMean;}
int PndSoftTriggerLine::GetModeCode ( )
inline

Definition at line 51 of file PndSoftTriggerLine.h.

References fMode.

Referenced by PndSoftTriggerTask::Exec(), and PndSoftTriggerTask::TagMode().

51 {return fMode;}
int PndSoftTriggerLine::GetMotherPdg ( )
inline

Definition at line 71 of file PndSoftTriggerLine.h.

References fPdgList.

Referenced by PndSoftTriggerTask::DoCombinatorics().

71 {if (fPdgList.size()>0) return fPdgList[0]; return -1;}
std::vector< int > fPdgList
TString PndSoftTriggerLine::GetName ( )
inline

Definition at line 52 of file PndSoftTriggerLine.h.

References fName.

52 {return fName;}
int PndSoftTriggerLine::GetNDaughters ( )
inline

Definition at line 73 of file PndSoftTriggerLine.h.

References fPdgList.

Referenced by PndSoftTriggerTask::DoCombinatorics().

73 {return fPdgList.size()-1;}
std::vector< int > fPdgList
int PndSoftTriggerLine::GetNTagged ( )
inline

Definition at line 69 of file PndSoftTriggerLine.h.

References fNTagged.

Referenced by PndSoftTriggerTask::Exec().

69 {return fNTagged;}
TString PndSoftTriggerLine::GetNTupleName ( )
inline

Definition at line 55 of file PndSoftTriggerLine.h.

References fNTupleName.

55 {return fNTupleName;}
TString PndSoftTriggerLine::GetPrefix ( )
inline

Definition at line 54 of file PndSoftTriggerLine.h.

References fPrefix.

Referenced by PndSoftTriggerTask::TagMode().

54 {return fPrefix;}
double PndSoftTriggerLine::GetQAMassMax ( )
inline

Definition at line 63 of file PndSoftTriggerLine.h.

References fQAMassMax.

63 {return fQAMassMax;}
double PndSoftTriggerLine::GetQAMassMin ( )
inline

Definition at line 62 of file PndSoftTriggerLine.h.

References fQAMassMin.

62 {return fQAMassMin;}
RhoMassParticleSelector* PndSoftTriggerLine::GetQASelector ( )
inline

Definition at line 75 of file PndSoftTriggerLine.h.

References fQASelector.

Referenced by PndSoftTriggerTask::TagMode().

75 {return fQASelector;}
RhoMassParticleSelector * fQASelector
RhoTuple* PndSoftTriggerLine::GetRhoTuple ( )
inline

Definition at line 77 of file PndSoftTriggerLine.h.

References fNTuple.

Referenced by PndSoftTriggerTask::Finish(), PndSoftTriggerTask::Init(), and PndSoftTriggerTask::TagMode().

77 {return fNTuple;}
RhoMassParticleSelector* PndSoftTriggerLine::GetSelector ( )
inline

Definition at line 76 of file PndSoftTriggerLine.h.

References fSelector.

Referenced by PndSoftTriggerTask::TagMode().

76 {return fSelector;}
RhoMassParticleSelector * fSelector
double PndSoftTriggerLine::GetSigma ( )
inline

Definition at line 65 of file PndSoftTriggerLine.h.

References fSigma.

Referenced by PndSoftTriggerTask::TagMode().

65 {return fSigma;}
bool PndSoftTriggerLine::GetTagActive ( )
inline

Definition at line 58 of file PndSoftTriggerLine.h.

References fActive.

Referenced by PndSoftTriggerTask::Exec(), and PndSoftTriggerTask::TagMode().

58 {return fActive;}
double PndSoftTriggerLine::GetTagNSig ( )
inline

Definition at line 67 of file PndSoftTriggerLine.h.

References fTagNSig.

67 {return fTagNSig;}
double PndSoftTriggerLine::GetThreshold ( )
inline

Definition at line 66 of file PndSoftTriggerLine.h.

References fThresh.

Referenced by PndSoftTriggerTask::Exec(), and PndSoftTriggerTask::Init().

66 {return fThresh;}
bool PndSoftTriggerLine::GetWriteQA ( )
inline

Definition at line 57 of file PndSoftTriggerLine.h.

References fWriteQA.

57 {return fWriteQA;}
void PndSoftTriggerLine::Init ( )

Definition at line 62 of file PndSoftTriggerLine.cxx.

References fDecay, fMean, fNTuple, fNTupleName, fQAMassMax, fQAMassMin, fSigma, fTagNSig, fWriteQA, ParseDecayString(), SetQASelector(), and SetSelector().

Referenced by PndSoftTriggerTask::Init().

63 {
64  // initialize RhoTuple according to flag
66 
67  // parse the decay pattern string and transform to fPdgList
69 
70  // create the selectors
73 }
void SetSelector(double m, double w)
void SetQASelector(double m, double w)
bool PndSoftTriggerLine::ParseDecayString ( )
private

Definition at line 81 of file PndSoftTriggerLine.cxx.

References fAux, fCC, fDecay, fPdg, fPdgList, i, n, SplitString(), and TString.

Referenced by Init(), and SetDecay().

82 {
83  if (fDecay=="") return false;
84 
85  fPdgList.clear();
86 
87  TString toks[20];
88  int n=SplitString(fDecay," ",toks,20);
89 
90  if (toks[1]!="->" || n<4)
91  {
92  cout <<"[PndSoftTriggerLine] **** Invalid decay pattern '"<<fDecay.Data()<<"'"<<endl;
93  return false;
94  }
95 
96  bool flag=false; // store if end of aux list codes
97 
98  for (int i=0;i<n;++i)
99  {
100  if (toks[i] == "cc") {fCC = true; continue;} // switch charged conjugation
101  if (toks[i] == "->") continue; // ignore the arrow
102  if (toks[i] == "pbp0") {fPdgList.push_back(88880); continue;} // treat shortcut for pbarpSystem0
103  if (toks[i] == "pbp") {fPdgList.push_back(88888); continue;} // treat shortcut for pbarpSystem
104  if (toks[i] == "[") {fPdgList.push_back(-99);fAux=true; continue;} // auxiliary resonance list starts
105  if (toks[i] == "]") {fPdgList.push_back(-98); continue;} // auxiliary resonance list ends
106 
107  if (toks[i].BeginsWith("[")) {toks[i]=toks[i](1,1000); fAux=true; fPdgList.push_back(-99);} // auxiliary resonance list starts
108  if (toks[i].EndsWith("]")) {toks[i]=toks[i](0,toks[i].Length()-1); flag = true;} // auxiliary resonance list ends
109 
110  TParticlePDG *part = fPdg->GetParticle(toks[i]);
111  if (part) fPdgList.push_back(part->PdgCode());
112  else
113  {
114  cout <<"[PndSoftTriggerLine] **** Unknown particle name '"<<toks[i].Data()<<"'"<<endl;
115  return false;
116  }
117  if (flag) {fPdgList.push_back(-98); flag = false;} // auxiliary resonance list ends
118  }
119 
120  return true;
121 }
Int_t i
Definition: run_full.C:25
int n
std::vector< int > fPdgList
int SplitString(TString s, TString delim, TString *toks, int maxtoks)
void PndSoftTriggerLine::Print ( )

Definition at line 159 of file PndSoftTriggerLine.cxx.

References fActive, fCC, fDecay, fMean, fMode, fName, fPdgList, fPrefix, fQAMassMax, fQAMassMin, fSigma, fTagNSig, fThresh, fWriteQA, and i.

Referenced by PndSoftTriggerTask::Init().

160 {
161  cout << "PndSoftTriggerLine: " << fName.Data() << " ("<<fPrefix.Data()<<")"<< endl;
162  cout << " Mode code : " << fMode << endl;
163  cout << " Decay pattern : " << fDecay.Data();
164  if ( fPdgList.size()>0 )
165  {
166  cout << " ( " << fPdgList[0]<<" -> ";
167  for (size_t i=1;i<fPdgList.size();++i)
168  {
169  if (fPdgList[i]==-99) cout <<" [";
170  else if (fPdgList[i]==-98) cout <<" ]";
171  else cout <<" "<<fPdgList[i];
172  }
173  if (fCC) cout <<" (+cc)";
174  cout <<" )"<< endl;
175  }else cout <<endl;
176  cout << " QA Window : " << fQAMassMin << " < m < " << fQAMassMax << endl;
177  cout << " Selector Window : " << "| m - " << fMean << " | < " << fTagNSig << " x " << fSigma << endl;
178  cout << " Tag threshold : " << fThresh << endl;
179  cout << " QA enabled : " << fWriteQA << endl;
180  cout << " Tag active : " << fActive << endl;
181 }
Int_t i
Definition: run_full.C:25
std::vector< int > fPdgList
void PndSoftTriggerLine::SetDecay ( TString  dec)
inline

Definition at line 36 of file PndSoftTriggerLine.h.

References fDecay, and ParseDecayString().

void PndSoftTriggerLine::SetMeanSigma ( double  mean,
double  sig 
)
inline

Definition at line 44 of file PndSoftTriggerLine.h.

References fMean, fSigma, and mean.

Referenced by PndSoftTriggerTask::ReadTriggerLines().

44 {fMean = mean; fSigma = sig; }
Double_t mean[nsteps]
Definition: dedx_bands.C:65
void PndSoftTriggerLine::SetModeCode ( int  mode)
inline

Definition at line 34 of file PndSoftTriggerLine.h.

References fMode, and mode.

34 {fMode = mode;}
Int_t mode
Definition: autocutx.C:47
void PndSoftTriggerLine::SetName ( TString  name)
inline

Definition at line 35 of file PndSoftTriggerLine.h.

References fName, and name.

35 {fName = name;}
TString name
void PndSoftTriggerLine::SetNTagged ( int  n)
inline

Definition at line 48 of file PndSoftTriggerLine.h.

References fNTagged, and n.

Referenced by PndSoftTriggerTask::Exec().

48 {fNTagged = n; }
int n
void PndSoftTriggerLine::SetNtupleName ( TString  ntp)
inline

Definition at line 38 of file PndSoftTriggerLine.h.

References fNTupleName.

38 {fNTupleName = ntp;}
void PndSoftTriggerLine::SetPrefix ( TString  pre)
inline

Definition at line 37 of file PndSoftTriggerLine.h.

References fPrefix.

37 {fPrefix = pre;}
void PndSoftTriggerLine::SetQAMassWindow ( double  min,
double  max 
)
inline

Definition at line 43 of file PndSoftTriggerLine.h.

References fQAMassMax, fQAMassMin, max(), and min().

Referenced by PndSoftTriggerTask::ReadTriggerLines().

friend F32vec4 max(const F32vec4 &a, const F32vec4 &b)
Definition: P4_F32vec4.h:26
friend F32vec4 min(const F32vec4 &a, const F32vec4 &b)
Definition: P4_F32vec4.h:25
void PndSoftTriggerLine::SetQASelector ( double  m,
double  w 
)
private

Definition at line 127 of file PndSoftTriggerLine.cxx.

References fName, and fQASelector.

Referenced by Init().

128 {
129  if (fQASelector) delete fQASelector;
130  fQASelector = new RhoMassParticleSelector("QASel"+fName, m, w);
131 }
__m128 m
Definition: P4_F32vec4.h:28
RhoMassParticleSelector * fQASelector
void PndSoftTriggerLine::SetSelector ( double  m,
double  w 
)
private

Definition at line 137 of file PndSoftTriggerLine.cxx.

References fName, and fSelector.

Referenced by Init().

138 {
139  if (fSelector) delete fSelector;
140  fSelector = new RhoMassParticleSelector("Sel"+fName, m, w);
141 }
__m128 m
Definition: P4_F32vec4.h:28
RhoMassParticleSelector * fSelector
void PndSoftTriggerLine::SetTagActive ( bool  ac = true)
inline

Definition at line 41 of file PndSoftTriggerLine.h.

References fActive.

Referenced by PndSoftTriggerTask::ReadTriggerLines().

41 {fActive = ac;}
void PndSoftTriggerLine::SetTagNSig ( double  nsig)
inline

Definition at line 46 of file PndSoftTriggerLine.h.

References fTagNSig, and nsig.

Referenced by PndSoftTriggerTask::ReadTriggerLines().

46 {fTagNSig = nsig; }
int nsig
Definition: toy_core.C:46
void PndSoftTriggerLine::SetThreshold ( double  thr)
inline

Definition at line 45 of file PndSoftTriggerLine.h.

References fThresh.

Referenced by PndSoftTriggerTask::ReadTriggerLines().

45 {fThresh = thr;}
void PndSoftTriggerLine::SetWriteQA ( bool  qa = true)
inline

Definition at line 40 of file PndSoftTriggerLine.h.

References fWriteQA.

Referenced by PndSoftTriggerTask::ReadTriggerLines().

40 {fWriteQA = qa;}
int PndSoftTriggerLine::SplitString ( TString  s,
TString  delim,
TString toks,
int  maxtoks 
)
private

Definition at line 147 of file PndSoftTriggerLine.cxx.

References i.

Referenced by ParseDecayString().

148 {
149  TObjArray *tok = s.Tokenize(delim);
150  int N = tok->GetEntries();
151  for (int i=0;i<N;++i) if (i<maxtoks) toks[i] = (((TObjString*)tok->At(i))->String()).Strip(TString::kBoth);
152  return N;
153 }
Int_t i
Definition: run_full.C:25
TLorentzVector s
Definition: Pnd2DStar.C:50

Member Data Documentation

bool PndSoftTriggerLine::fActive
private

Definition at line 92 of file PndSoftTriggerLine.h.

Referenced by GetTagActive(), Print(), and SetTagActive().

bool PndSoftTriggerLine::fAux
private

Definition at line 94 of file PndSoftTriggerLine.h.

Referenced by GetAuxNeeded(), and ParseDecayString().

bool PndSoftTriggerLine::fCC
private

Definition at line 93 of file PndSoftTriggerLine.h.

Referenced by GetCC(), ParseDecayString(), and Print().

TString PndSoftTriggerLine::fDecay
private

Definition at line 88 of file PndSoftTriggerLine.h.

Referenced by GetDecay(), Init(), ParseDecayString(), Print(), and SetDecay().

double PndSoftTriggerLine::fMean
private

Definition at line 98 of file PndSoftTriggerLine.h.

Referenced by GetMean(), Init(), Print(), and SetMeanSigma().

int PndSoftTriggerLine::fMode
private

Definition at line 86 of file PndSoftTriggerLine.h.

Referenced by GetModeCode(), Print(), and SetModeCode().

TString PndSoftTriggerLine::fName
private

Definition at line 87 of file PndSoftTriggerLine.h.

Referenced by GetName(), Print(), SetName(), SetQASelector(), and SetSelector().

int PndSoftTriggerLine::fNTagged
private

Definition at line 103 of file PndSoftTriggerLine.h.

Referenced by GetNTagged(), and SetNTagged().

RhoTuple* PndSoftTriggerLine::fNTuple
private

Definition at line 107 of file PndSoftTriggerLine.h.

Referenced by GetRhoTuple(), and Init().

TString PndSoftTriggerLine::fNTupleName
private

Definition at line 90 of file PndSoftTriggerLine.h.

Referenced by GetNTupleName(), Init(), and SetNtupleName().

TDatabasePDG* PndSoftTriggerLine::fPdg
private

Definition at line 110 of file PndSoftTriggerLine.h.

Referenced by ParseDecayString(), and PndSoftTriggerLine().

std::vector<int> PndSoftTriggerLine::fPdgList
private
TString PndSoftTriggerLine::fPrefix
private

Definition at line 89 of file PndSoftTriggerLine.h.

Referenced by GetPrefix(), Print(), and SetPrefix().

double PndSoftTriggerLine::fQAMassMax
private

Definition at line 97 of file PndSoftTriggerLine.h.

Referenced by GetQAMassMax(), Init(), Print(), and SetQAMassWindow().

double PndSoftTriggerLine::fQAMassMin
private

Definition at line 96 of file PndSoftTriggerLine.h.

Referenced by GetQAMassMin(), Init(), Print(), and SetQAMassWindow().

RhoMassParticleSelector* PndSoftTriggerLine::fQASelector
private

Definition at line 105 of file PndSoftTriggerLine.h.

Referenced by GetQASelector(), SetQASelector(), and ~PndSoftTriggerLine().

RhoMassParticleSelector* PndSoftTriggerLine::fSelector
private

Definition at line 106 of file PndSoftTriggerLine.h.

Referenced by GetSelector(), SetSelector(), and ~PndSoftTriggerLine().

double PndSoftTriggerLine::fSigma
private

Definition at line 99 of file PndSoftTriggerLine.h.

Referenced by GetSigma(), Init(), Print(), and SetMeanSigma().

double PndSoftTriggerLine::fTagNSig
private

Definition at line 101 of file PndSoftTriggerLine.h.

Referenced by GetTagNSig(), Init(), Print(), and SetTagNSig().

double PndSoftTriggerLine::fThresh
private

Definition at line 100 of file PndSoftTriggerLine.h.

Referenced by GetThreshold(), Print(), and SetThreshold().

bool PndSoftTriggerLine::fWriteQA
private

Definition at line 91 of file PndSoftTriggerLine.h.

Referenced by GetWriteQA(), Init(), Print(), and SetWriteQA().


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