37 double pbarmom = 9.808065;
39 TLorentzVector ini(0,0,pbarmom,
sqrt(pbarmom*pbarmom+mp*mp)+mp);
42 FairRunAna *
fRun=
new FairRunAna();
49 inParFile =
"simparams.root";
51 fRun->SetInputFile(pref);
56 OutFile = TString::Format(
"%s_ana_%d_%d.root",pref.Data(),
min,
max);
57 inParFile = TString::Format(
"%s_%d_par.root",pref.Data(),
min);
63 TString pidParFile =
TString(gSystem->Getenv(
"VMCWORKDIR"))+
"/macro/params/all.par";
66 FairLogger::GetLogger()->SetLogToFile(kFALSE);
67 FairRuntimeDb*
rtdb = fRun->GetRuntimeDb();
70 FairParRootFileIo* parIO =
new FairParRootFileIo();
71 parIO->open(inParFile);
72 FairParAsciiFileIo* parIOPid =
new FairParAsciiFileIo();
73 parIOPid->open(pidParFile.Data(),
"in");
75 rtdb->setFirstInput(parIO);
76 rtdb->setSecondInput(parIOPid);
77 rtdb->setOutput(parIO);
79 fRun->SetOutputFile(
"dummyout.root");
83 TFile *
out = TFile::Open(OutFile,
"RECREATE");
87 if (nevts==0) nevts= theAnalysis->
GetEntries();
92 TString pidsel =
"PidAlgoEmcBayes;PidAlgoDrc;PidAlgoDisc;PidAlgoStt;PidAlgoMdtHardCuts";
100 while (theAnalysis->
GetEvent() && i++<nevts)
102 if ((i%100)==0) cout<<
"evt " << i << endl;
107 theAnalysis->
FillList( kp,
"KaonAllPlus", pidsel);
108 theAnalysis->
FillList( km,
"KaonAllMinus", pidsel);
109 theAnalysis->
FillList( pip,
"PionAllPlus", pidsel);
110 theAnalysis->
FillList( pim,
"PionAllMinus", pidsel);
128 TLorentzVector d0cm = d0[j]->P4();
129 TLorentzVector kacm = dka->
P4();
130 TLorentzVector picm = dpi->
P4();
131 d0cm.Boost(-ini.BoostVector());
132 kacm.Boost(-ini.BoostVector());
133 picm.Boost(-ini.BoostVector());
138 double qavtx = fVtxPoca.
GetPocaVtx(vtx, d0[j]);
140 nd0->
Column(
"ev", (Float_t) i);
141 nd0->
Column(
"cand", (Float_t) j);
142 nd0->
Column(
"pdg", (Float_t) d0[j]->PdgCode());
143 nd0->
Column(
"mct", (Float_t) mct);
145 nd0->
Column(
"d0m", (Float_t) d0[j]->M());
146 nd0->
Column(
"d0p", (Float_t) d0[j]->
P());
147 nd0->
Column(
"d0tht", (Float_t) d0[j]->P3().Theta());
148 nd0->
Column(
"d0phi", (Float_t) d0[j]->P3().Phi());
149 nd0->
Column(
"d0pt", (Float_t) d0[j]->P3().Pt());
150 nd0->
Column(
"d0pcm", (Float_t) d0cm.P());
151 nd0->
Column(
"d0thtcm", (Float_t) d0cm.Theta());
152 nd0->
Column(
"d0miss", (Float_t) (ini-(d0[j]->P4())).M());
154 nd0->
Column(
"d0vx", (Float_t) vtx.X());
155 nd0->
Column(
"d0vy", (Float_t) vtx.Y());
156 nd0->
Column(
"d0vz", (Float_t) vtx.Z());
157 nd0->
Column(
"d0vqa", (Float_t) qavtx);
160 nd0->
Column(
"kp", (Float_t) dka->
P());
161 nd0->
Column(
"ktht", (Float_t) dka->
P3().Theta());
162 nd0->
Column(
"kphi", (Float_t) dka->
P3().Phi());
163 nd0->
Column(
"kpt", (Float_t) dka->
P3().Pt());
165 nd0->
Column(
"kapcm", (Float_t) kacm.P());
166 nd0->
Column(
"kathtcm", (Float_t) kacm.Theta());
169 nd0->
Column(
"pip", (Float_t) dpi->
P());
170 nd0->
Column(
"pitht", (Float_t) dpi->
P3().Theta());
171 nd0->
Column(
"piphi", (Float_t) dpi->
P3().Phi());
172 nd0->
Column(
"pit", (Float_t) dpi->
P3().Pt());
174 nd0->
Column(
"pipcm", (Float_t) picm.P());
175 nd0->
Column(
"pithtcm", (Float_t) picm.Theta());
void Append(const RhoCandidate *c)
friend F32vec4 sqrt(const F32vec4 &a)
Bool_t FillList(RhoCandList &l, TString listkey="All", TString pidTcaNames="", int trackHypothesis=-1)
PndPidCandidate * GetRecoCandidate() const
friend F32vec4 max(const F32vec4 &a, const F32vec4 &b)
void Combine(RhoCandList &l1, RhoCandList &l2)
void attachFiles(FairRunAna *fRun, TString pref, int min, int max)
Double_t GetPocaVtx(TVector3 &vertex, RhoCandidate *composite)
void Select(RhoParticleSelectorBase *pidmgr)
TLorentzVector P4() const
void Column(const char *label, Bool_t value, Bool_t defval=0, const char *block=0)
friend F32vec4 min(const F32vec4 &a, const F32vec4 &b)
void SetType(const TParticlePDG *pdt, int start=0)
TTree * GetInternalTree()
Bool_t McTruthMatch(RhoCandidate *cand, Int_t level=2, bool verbose=false)
Int_t GetEvent(Int_t n=-1)
double GetPidInfo(int hypo)