]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/totEt/macros/trackMatchingEff.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / totEt / macros / trackMatchingEff.C
CommitLineData
a369b78d 1#ifndef __CINT__
2#include "TTree.h"
3#include "TFile.h"
4#include "TList.h"
5#include <iostream>
6#endif
7
8int trackMatchingEff(TString file = "Et.ESD.simPbPb.PHOS.root")
9{
10 TFile *f = TFile::Open(file, "READ");
11 if(!f)
12 {
13 std::cout << "Could not open file: " << file << " !" << std::endl;
14 return -1;
15 }
16
17 TList *l = (TList*)(f->Get("out1"));
18
19 if(!l)
20 {
21 std::cout << "Could not find list!" << std::endl;
22 return -1;
23 }
24
25 TTree *primTree = (TTree*)(l->FindObject("fPrimaryTreePhosMC"));
26
27 if(!primTree)
28 {
29 std::cout << "Could not find tree!" << std::endl;
30 return -1;
31 }
32
33
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)";
40
41 TString matchedSelect = "fPrimaryMatched==1&&";
42 TString notMatchedSelect = "fPrimaryMatched==0&&";
43
44
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;
48
49 n = primTree->Draw("fDepositedEt", notMatchedSelect+ chargeSelect);
50 nRemoved = primTree->Draw("fDepositedEt", matchedSelect + chargeSelect);
51 std::cout << "Charged: " << float(n)/(n+nRemoved) << std::endl;
52
53 n = primTree->Draw("fDepositedEt", notMatchedSelect+ neutralSelect);
54 nRemoved = primTree->Draw("fDepositedEt", matchedSelect + neutralSelect);
55 std::cout << "Neutral: " << float(n)/(n+nRemoved) << std::endl;
56
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;
61 return 0;
62
63
64}