Int_t Centrality; Int_t Ntracks; Float_t SumET_HF; Int_t HLTriggers; Int_t Reco_QQ_size; Int_t Reco_QQ_sign[45]; //[Reco_QQ_size] TClonesArray *Reco_QQ_4mom; TClonesArray *Reco_QQ_mupl_4mom; TClonesArray *Reco_QQ_mumi_4mom; Int_t Reco_QQ_trig[45]; //[Reco_QQ_size] Float_t Reco_QQ_VtxProb[45]; //[Reco_QQ_size] Bool_t Reco_QQ_mupl_isGoodMuon[45]; //[Reco_QQ_size] Bool_t Reco_QQ_mumi_isGoodMuon[45]; //[Reco_QQ_size] Int_t Reco_QQ_mupl_nPixWMea[45]; //[Reco_QQ_size] Int_t Reco_QQ_mumi_nPixWMea[45]; //[Reco_QQ_size] Int_t Reco_QQ_mupl_nTrkWMea[45]; //[Reco_QQ_size] Int_t Reco_QQ_mumi_nTrkWMea[45]; //[Reco_QQ_size] Float_t Reco_QQ_mupl_dxy[45]; //[Reco_QQ_size] Float_t Reco_QQ_mumi_dxy[45]; //[Reco_QQ_size] Float_t Reco_QQ_mupl_dz[45]; //[Reco_QQ_size] Float_t Reco_QQ_mumi_dz[45]; //[Reco_QQ_size] Int_t Gen_QQ_size; Int_t Gen_QQ_sign[45]; //[Gen_QQ_size] TClonesArray *Gen_QQ_4mom; TClonesArray *Gen_QQ_mupl_4mom; TClonesArray *Gen_QQ_mumi_4mom; Float_t Gen_QQ_VtxProb[45]; //[Gen_QQ_size] Bool_t Gen_QQ_mupl_isGoodMuon[45]; //[Gen_QQ_size] Bool_t Gen_QQ_mumi_isGoodMuon[45]; //[Gen_QQ_size] Int_t Gen_QQ_mupl_nPixWMea[45]; //[Gen_QQ_size] Int_t Gen_QQ_mumi_nPixWMea[45]; //[Gen_QQ_size] Int_t Gen_QQ_mupl_nTrkWMea[45]; //[Gen_QQ_size] Int_t Gen_QQ_mumi_nTrkWMea[45]; //[Gen_QQ_size] Float_t Gen_QQ_mupl_dxy[45]; //[Gen_QQ_size] Float_t Gen_QQ_mumi_dxy[45]; //[Gen_QQ_size] Float_t Gen_QQ_mupl_dz[45]; //[Gen_QQ_size] Float_t Gen_QQ_mumi_dz[45]; //[Gen_QQ_size] void trimTree(TChain &myTree, bool isData){ TBranch *b_SumET_HF; //! TBranch *b_Ntracks; //! TBranch *b_Centrality; //! TBranch *b_HLTriggers; //! TBranch *b_Reco_QQ_size; //! TBranch *b_Reco_QQ_sign; //! TBranch *b_Reco_QQ_4mom; //! TBranch *b_Reco_QQ_mupl_4mom; //! TBranch *b_Reco_QQ_mumi_4mom; //! TBranch *b_Reco_QQ_trig; //! TBranch *b_Reco_QQ_VtxProb; //! TBranch *b_Reco_QQ_mupl_isGoodMuon; //! TBranch *b_Reco_QQ_mumi_isGoodMuon; //! TBranch *b_Reco_QQ_mupl_nPixWMea; //! TBranch *b_Reco_QQ_mumi_nPixWMea; //! TBranch *b_Reco_QQ_mupl_nTrkWMea; //! TBranch *b_Reco_QQ_mumi_nTrkWMea; //! TBranch *b_Reco_QQ_mupl_dxy; //! TBranch *b_Reco_QQ_mumi_dxy; //! TBranch *b_Reco_QQ_mupl_dz; //! TBranch *b_Reco_QQ_mumi_dz; //! TBranch *b_Gen_QQ_size; // TBranch *b_Gen_QQ_4mom; //! TBranch *b_Gen_QQ_mupl_4mom; //! TBranch *b_Gen_QQ_mumi_4mom; //! //Set object pointer, Initialize Reco_QQ_4mom = 0; Reco_QQ_mupl_4mom = 0; Reco_QQ_mumi_4mom = 0; Gen_QQ_4mom = 0; Gen_QQ_mupl_4mom = 0; Gen_QQ_mumi_4mom = 0; myTree.SetBranchAddress("SumET_HF", &SumET_HF, &b_SumET_HF); myTree.SetBranchAddress("Ntracks", &Ntracks, &b_Ntracks); myTree.SetBranchAddress("Centrality", &Centrality, &b_Centrality); myTree.SetBranchAddress("HLTriggers", &HLTriggers, &b_HLTriggers); myTree.SetBranchAddress("Reco_QQ_size", &Reco_QQ_size, &b_Reco_QQ_size); myTree.SetBranchAddress("Reco_QQ_sign", Reco_QQ_sign, &b_Reco_QQ_sign); myTree.SetBranchAddress("Reco_QQ_4mom", &Reco_QQ_4mom, &b_Reco_QQ_4mom); myTree.SetBranchAddress("Reco_QQ_mupl_4mom", &Reco_QQ_mupl_4mom, &b_Reco_QQ_mupl_4mom); myTree.SetBranchAddress("Reco_QQ_mumi_4mom", &Reco_QQ_mumi_4mom, &b_Reco_QQ_mumi_4mom); myTree.SetBranchAddress("Reco_QQ_trig", Reco_QQ_trig, &b_Reco_QQ_trig); myTree.SetBranchAddress("Reco_QQ_VtxProb", Reco_QQ_VtxProb, &b_Reco_QQ_VtxProb); // myTree.SetBranchAddress("Reco_QQ_mupl_isGoodMuon", Reco_QQ_mupl_isGoodMuon, &b_Reco_QQ_mupl_isGoodMuon); // myTree.SetBranchAddress("Reco_QQ_mumi_isGoodMuon", Reco_QQ_mumi_isGoodMuon, &b_Reco_QQ_mumi_isGoodMuon); myTree.SetBranchAddress("Reco_QQ_mupl_nPixWMea", Reco_QQ_mupl_nPixWMea, &b_Reco_QQ_mupl_nPixWMea); myTree.SetBranchAddress("Reco_QQ_mumi_nPixWMea", Reco_QQ_mumi_nPixWMea, &b_Reco_QQ_mumi_nPixWMea); myTree.SetBranchAddress("Reco_QQ_mupl_nTrkWMea", Reco_QQ_mupl_nTrkWMea, &b_Reco_QQ_mupl_nTrkWMea); myTree.SetBranchAddress("Reco_QQ_mumi_nTrkWMea", Reco_QQ_mumi_nTrkWMea, &b_Reco_QQ_mumi_nTrkWMea); myTree.SetBranchAddress("Reco_QQ_mupl_dxy", Reco_QQ_mupl_dxy, &b_Reco_QQ_mupl_dxy); myTree.SetBranchAddress("Reco_QQ_mumi_dxy", Reco_QQ_mumi_dxy, &b_Reco_QQ_mumi_dxy); myTree.SetBranchAddress("Reco_QQ_mupl_dz", Reco_QQ_mupl_dz, &b_Reco_QQ_mupl_dz); myTree.SetBranchAddress("Reco_QQ_mumi_dz", Reco_QQ_mumi_dz, &b_Reco_QQ_mumi_dz); myTree.SetBranchStatus("*", 0); myTree.SetBranchStatus("SumET_HF", 1); myTree.SetBranchStatus("Ntracks", 1); myTree.SetBranchStatus("Centrality", 1); myTree.SetBranchStatus("HLTriggers", 1); myTree.SetBranchStatus("Reco_QQ_size", 1); myTree.SetBranchStatus("Reco_QQ_sign", 1); myTree.SetBranchStatus("Reco_QQ_4mom", 1); myTree.SetBranchStatus("Reco_QQ_mupl_4mom", 1); myTree.SetBranchStatus("Reco_QQ_mumi_4mom", 1); myTree.SetBranchStatus("Reco_QQ_trig", 1); myTree.SetBranchStatus("Reco_QQ_VtxProb", 1); // myTree.SetBranchStatus("Reco_QQ_mupl_isGoodMuon", 1); // myTree.SetBranchStatus("Reco_QQ_mumi_isGoodMuon", 1); myTree.SetBranchStatus("Reco_QQ_mupl_nPixWMea", 1); myTree.SetBranchStatus("Reco_QQ_mumi_nPixWMea", 1); myTree.SetBranchStatus("Reco_QQ_mupl_nTrkWMea", 1); myTree.SetBranchStatus("Reco_QQ_mumi_nTrkWMea", 1); myTree.SetBranchStatus("Reco_QQ_mupl_dxy", 1); myTree.SetBranchStatus("Reco_QQ_mumi_dxy", 1); myTree.SetBranchStatus("Reco_QQ_mupl_dz", 1); myTree.SetBranchStatus("Reco_QQ_mumi_dz", 1); if(!isData){ myTree.SetBranchAddress("Gen_QQ_size", &Gen_QQ_size, &b_Gen_QQ_size); myTree.SetBranchAddress("Gen_QQ_4mom", &Gen_QQ_4mom, &b_Gen_QQ_4mom); myTree.SetBranchAddress("Gen_QQ_mupl_4mom", &Gen_QQ_mupl_4mom, &b_Gen_QQ_mupl_4mom); myTree.SetBranchAddress("Gen_QQ_mumi_4mom", &Gen_QQ_mumi_4mom, &b_Gen_QQ_mumi_4mom); myTree.SetBranchStatus("Gen_QQ_size", 1); myTree.SetBranchStatus("Gen_QQ_4mom", 1); myTree.SetBranchStatus("Gen_QQ_mupl_4mom", 1); myTree.SetBranchStatus("Gen_QQ_mumi_4mom", 1); } Long64_t nentries = myTree.GetEntries(); cout << nentries << endl; for (Long64_t jentry = 0; jentry < 10000; jentry++){ myTree.GetEntry(jentry); if(jentry%1000 == 0){ cout<<"--Processing Event: "<At(iQQ); TLorentzVector *g_mumi4mom = (TLorentzVector*)Gen_QQ_mumi_4mom->At(iQQ); TLorentzVector *g_mupl4mom = (TLorentzVector*)Gen_QQ_mupl_4mom->At(iQQ); bool acceptMu = 0; bool PtCutPass = 0; bool MassCutPass = 0; //check if muons are in acceptance if (IsAccept(g_mupl4mom) && IsAccept(g_mumi4mom)){ acceptMu = 1; } if (PtCut(g_mupl4mom) && PtCut(g_mumi4mom)){ PtCutPass = 1; } MassCutPass = MassCut(g_qq4mom, massLow, massHigh); } } } } void getHFWeight(){ //Get Data Trees TChain myTree_Data("myTree"); myTree_Data.Add("/scratch_menkar/CMS_Trees/OniaTrees_2013_5TeV02_pPb/pPb_Data/RD2013_pa_1st_run_merged.root"); cout<<"Entries in Data Tree = "<Branch("pass_Ntracks_MC",&pass_Ntracks_MC); endTree->Branch("pass_SumET_HF_MC",&pass_SumET_HF_MC); endTree->Branch("pass_Ntracks_Data",&pass_Ntracks_Data); endTree->Branch("pass_SumET_HF_Data",&pass_SumET_HF_Data); trimTree(myTree_MC,0); trimTree(myTree_Data,1); }