8 int trackMatchingEff(TString file = "Et.ESD.simPbPb.PHOS.root")
10 TFile *f = TFile::Open(file, "READ");
13 std::cout << "Could not open file: " << file << " !" << std::endl;
17 TList *l = (TList*)(f->Get("out1"));
21 std::cout << "Could not find list!" << std::endl;
25 TTree *primTree = (TTree*)(l->FindObject("fPrimaryTreePhosMC"));
29 std::cout << "Could not find tree!" << std::endl;
34 TString emSelect = "(fPrimaryCode==22||fPrimaryCode==221||TMath::Abs(fPrimaryCode)==11)";
35 TString chargeSelect = "(fPrimaryCharge!=0 && TMath::Abs(fPrimaryCode)!=11)";
36 TString neutralSelect = "(!"+emSelect+")&&fPrimaryCharge==0&&(!fSecondary)";
37 TString secondarySelect = "(fSecondary)";
38 emSelect += "&&(!fSecondary)";
39 chargeSelect += "&&(!fSecondary)";
41 TString matchedSelect = "fPrimaryMatched==1&&";
42 TString notMatchedSelect = "fPrimaryMatched==0&&";
45 int n = primTree->Draw("fDepositedEt", notMatchedSelect+ emSelect);
46 int nRemoved = primTree->Draw("fDepositedEt", matchedSelect + emSelect);
47 std::cout << "EM: " << float(n)/(n+nRemoved) << std::endl;
49 n = primTree->Draw("fDepositedEt", notMatchedSelect+ chargeSelect);
50 nRemoved = primTree->Draw("fDepositedEt", matchedSelect + chargeSelect);
51 std::cout << "Charged: " << float(n)/(n+nRemoved) << std::endl;
53 n = primTree->Draw("fDepositedEt", notMatchedSelect+ neutralSelect);
54 nRemoved = primTree->Draw("fDepositedEt", matchedSelect + neutralSelect);
55 std::cout << "Neutral: " << float(n)/(n+nRemoved) << std::endl;
57 n = primTree->Draw("fDepositedEt", notMatchedSelect+ secondarySelect);
58 nRemoved = primTree->Draw("fDepositedEt", matchedSelect + secondarySelect);
59 if(n+nRemoved) std::cout << "Secondary: " << float(n)/(n+nRemoved) << std::endl;
60 else std::cout << "No secondaries" << std::endl;