3 gROOT->LoadMacro(
"$VMCWORKDIR/gconfig/rootlogon.C");
5 TString inPidFile =
"pid_sttcombi.root";
8 TFile *
inFile = TFile::Open(inPidFile,
"READ");
10 TTree *
tree=(TTree *) inFile->Get(
"pndsim") ;
11 tree->AddFriend(
"pndsim",inSimFile);
13 TClonesArray* cand_array=
new TClonesArray(
"PndPidCandidate");
14 tree->SetBranchAddress(
"PidChargedCand", &cand_array);
16 TClonesArray*
mc_array=
new TClonesArray(
"PndMCTrack");
17 tree->SetBranchAddress(
"MCTrack", &mc_array);
19 TClonesArray* mdt_array=
new TClonesArray(
"PndPidProbability");
20 tree->SetBranchAddress(
"PidAlgoMdtHardCuts", &mdt_array);
22 TFile *
out = TFile::Open(
"out_test2.root",
"RECREATE");
24 TNtuple *ee =
new TNtuple(
"ee",
"ee",
"p1:theta1:phi1:p2:theta2:phi2:pid1:emc1:emc_ene1:muo1:muo_mod1:muo_iron1:muo_mom1:muo_prob1:pid2:emc2:emc_ene2:muo2:muo_mod2:muo_iron2:muo_mom2:muo_prob2:mass_ee:mass_mu:mass_pi");
25 TNtuple *nt4 =
new TNtuple(
"nt4",
"nt4",
"p1:theta1:phi1:p2:theta2:phi2:pid1:emc1:emc_ene1:muo1:muo_mod1:muo_iron1:muo_mom1:muo_prob1:pid2:emc2:emc_ene2:muo2:muo_mod2:muo_iron2:muo_mom2:muo_prob2:mass_ee:mass_mu:mass_pi:p3:theta3:phi3:p4:theta4:phi4:pid3:emc3:emc_ene3:muo3:muo_mod3:muo_iron3:muo_mom3:muo_prob3:pid4:emc4:emc_ene4:muo4:muo_mod4:muo_iron4:muo_mom4:muo_prob4:mass2_ee:mass2_mu:mass2_pi:X_e:X_mu");
28 TH1F *m1=
new TH1F(
"m1",
"m1",100,0,4);
29 TH1F *
m2=
new TH1F(
"m2",
"m2",100,0,4);
30 TH1F *m3=
new TH1F(
"m3",
"m3",100,0,4);
31 TH1F *m4=
new TH1F(
"m4",
"m4",100,0,6);
32 TH1F *m5=
new TH1F(
"m5",
"m5",100,0,6);
33 TH1F *mc1=
new TH1F(
"mc1",
"mc1",100,0,4);
34 TH1F *mc2=
new TH1F(
"mc2",
"mc2",100,0,4);
35 TH1F *mc3=
new TH1F(
"mc3",
"mc3",100,0,4);
36 TH1F *mc4=
new TH1F(
"mc4",
"mc4",100,0,6);
37 TH1F *mc5=
new TH1F(
"mc5",
"mc5",100,0,6);
39 TH2F *ps1 =
new TH2F(
"ps1",
"ps1",100,0,7,100,0,180);
40 TH2F *ps2 =
new TH2F(
"ps2",
"ps2",100,0,7,100,0,1.5);
41 TH2F *ps3 =
new TH2F(
"ps3",
"ps3",100,0,7,100,0,100);
42 TH2F *ps4 =
new TH2F(
"ps4",
"ps4",100,0,7,100,0,100);
43 TNtuple *
hit =
new TNtuple(
"hit",
"hit",
"q:p:theta:phi:pid:emc:emc_ene:muo:muo_mod:muo_iron:muo_mom:muo_prob");
45 TLorentzVector ini(0., 0., 6.98840096, 7.98937619);
46 if (nEntries==0) nEntries = tree->GetEntriesFast();
47 for (Int_t j=0; j< nEntries; j++){
50 cout <<
"processing event " << j <<
"\n";
52 TLorentzVector ep[15], em[15], pip[15], pim[15],
mup[15], mum[15], jpsi_e, jpsi_mu;
53 TLorentzVector mep[15], mem[15], mpip[15], mpim[15], mmup[15], mmum[15], mjpsi_e, mjpsi_mu;
54 Int_t ep_count = 0, em_count = 0, pip_count = 0, pim_count = 0, mup_count = 0, mum_count = 0;
55 Int_t ep_mcount = 0, em_mcount = 0, pip_mcount = 0, pim_mcount = 0, mup_mcount = 0, mum_mcount = 0;
56 for (Int_t pp=0; pp<cand_array->GetEntriesFast(); pp++)
73 hit->Fill(hit_ntuple1);
74 for (Int_t
mm=0;
mm<cand_array->GetEntriesFast();
mm++)
91 hit->Fill(hit_ntuple2);
99 Float_t ee_ntuple[] = {
100 lorep.P(), lorep.Theta()*TMath::RadToDeg(), lorep.Phi()*TMath::RadToDeg(),
101 lorem.P(), lorem.Theta()*TMath::RadToDeg(), lorem.Phi()*TMath::RadToDeg(),
106 (lorep+lorem).M(), (lormup+lormum).M(), (ini-(lorpip+lorpim)).M()
110 for (Int_t pp2=0; pp2<cand_array->GetEntriesFast(); pp2++)
124 for (Int_t mm2=0; mm2<cand_array->GetEntriesFast(); mm2++)
145 Float_t p4_ntuple[] = {
146 lorep.P(), lorep.Theta()*TMath::RadToDeg(), lorep.Phi()*TMath::RadToDeg(),
147 lorem.P(), lorem.Theta()*TMath::RadToDeg(), lorem.Phi()*TMath::RadToDeg(),
152 (lorep+lorem).M(), (lormup+lormum).M(), (ini-(lorpip+lorpim)).M() ,
153 lor2ep.P(), lor2ep.Theta()*TMath::RadToDeg(), lor2ep.Phi()*TMath::RadToDeg(),
154 lor2em.P(), lor2em.Theta()*TMath::RadToDeg(), lor2em.Phi()*TMath::RadToDeg(),
159 (lor2ep+lor2em).M(), (lor2mup+lor2mum).M(), (ini-(lor2pip+lor2pim)).M(),(lorpip+lorpim+lor2ep+lor2em).M(),(lorpip+lorpim+lor2mup+lor2mum).M()
161 nt4->Fill(p4_ntuple);
Float_t GetEmcRawEnergy() const
friend F32vec4 sqrt(const F32vec4 &a)
Float_t GetMuoIron() const
Float_t GetMuoMomentumIn() const
Int_t GetMuoIndex() const
Int_t GetEmcIndex() const
TString m2(TString pts, TString exts="e px py pz")
Double_t GetMuonPidProb(PndPidProbability *flux=NULL) const
Int_t GetMuoModule() const
Int_t GetMotherID() const
TVector3 GetMomentum() const