#define MyronModeAna_cxx # #include "MyronModeAna.h" #include "TClonesArray.h" #include "TH2.h" #include "TProfile.h" //----------------------------------------------------------------------------- // Loop1 //----------------------------------------------------------------------------- void MyronModeAna::Loop1(int nevents){ // In a Root session, you can do: // Root > .L MyronModeAna.C // Root > MyronModeAna t // Root > t.GetEntry(12); // Fill t data members with entry number 12 // Root > t.Show(); // Show values of entry 12 // Root > t.Show(16); // Read and show values of entry 16 // Root > t.Loop(); // Loop on all entries // // This is the loop skeleton // To read only selected branches, Insert statements like: // METHOD1: // fTree->SetBranchStatus("*",0); // disable all branches TH1F* h_cal_had_energy[4]; TH1F* h_cal_em_energy [4]; char name[200], title[200]; for (int i=0; i<4; i++) { sprintf(name,"h_cal_had_energy_%i",i); sprintf(title,"cal HAD energy for basket %i",i); h_cal_had_energy[i] = new TH1F(name,title,125,-5,20); sprintf(name,"h_cal_em_energy_%i",i); sprintf(title,"cal EM energy for basket %i",i); h_cal_em_energy[i] = new TH1F(name,title,250,-5,20); } if (fTree == 0) return; Int_t nentries = Int_t(fTree->GetEntries()); if (nevents > 0) nentries = nevents; Int_t nbytes = 0, nb = 0; // do not recreate the "common-blocks" for every // event b_MyronData->SetAutoDelete(kFALSE); b_Basket0->SetAutoDelete(kFALSE); b_Basket1->SetAutoDelete(kFALSE); b_Basket2->SetAutoDelete(kFALSE); b_Basket3->SetAutoDelete(kFALSE); for (Int_t ientry=0; ientryClear(); nb = fTree->GetEntry(ientry); nbytes += nb; for (int i=0; i<4; i++) { TCalData* cal_data = fMyronData->CalorData(i); h_cal_had_energy[i]->Fill(cal_data->HadEnergy()); h_cal_em_energy [i]->Fill(cal_data->EmEnergy ()); if (i == 1) { if (cal_data->HadEnergy() > 0) { // printf(" ientry = %i\n",ientry); } } } } } //----------------------------------------------------------------------------- // Loop2 //----------------------------------------------------------------------------- void MyronModeAna::Loop2(float ehad_min, int nevents){ // In a Root session, you can do: // Root > .L MyronModeAna.C // Root > MyronModeAna t // Root > t.GetEntry(12); // Fill t data members with entry number 12 // Root > t.Show(); // Show values of entry 12 // Root > t.Show(16); // Read and show values of entry 16 // Root > t.Loop(); // Loop on all entries // // This is the loop skeleton // To read only selected branches, Insert statements like: // METHOD1: char name[200], title[200]; TH1F* h_em = new TH1F("h_em","tower EM energy (all towers)",200,-1.,9.); TH1F* h_em01 = new TH1F("h_em01","tower EM energy (all towers) 01",200,-1.,9.); TH1F* h_em02 = new TH1F("h_em02","tower EM energy (all towers) 02",200,-1.,9.); TH1F* h_em03 = new TH1F("h_em03","tower EM energy (all towers) 03",200,-1.,9.); TH1F* h_had = new TH1F("h_had","tower HAD energy (all towers)",200,-1.,9.); TH2F* h_eta_phi = new TH2F("h_eta_phi","phi(y) vs eta(x)",60,0,60,50,0,50); TH2F* h_eta_phi01 = new TH2F("h_eta_phi01","phi(y) vs eta(x)/01",60,0,60,50,0,50); TH2F* h_eta_phi02 = new TH2F("h_eta_phi02","phi(y) vs eta(x)/02",60,0,60,50,0,50); TH2F* h_eta_phi03 = new TH2F("h_eta_phi03","phi(y) vs eta(x)/03",60,0,60,50,0,50); TH2F* h_eta_phi1 = new TH2F("h_eta_phi1","phi(y) vs eta(x)/1",60,0,60,50,0,50); TH2F* h_20_32 = new TH2F("h_20_32","32:1:0(y) vs 20:2:1(x)",50,30,80,50,30,80); if (fTree == 0) return; Int_t nentries = Int_t(fTree->GetEntries()); for (int ieta=0; ieta<48; ieta++) { for (int iphi=0; iphi<48; iphi++) { for (int i=0; i<2; i++) { sprintf(name,"h_em_%02i_%02i%i",ieta,iphi,i); sprintf(title,"h_em_%02i_%02i%i",ieta,iphi,i); fHem[ieta][iphi][i] = new TH1F(name,title,200,-10,190); } } } if (nevents > 0) nentries = nevents; // do not recreate the "common-blocks" for every // event b_MyronData->SetAutoDelete(kFALSE); b_Basket0->SetAutoDelete(kFALSE); b_Basket1->SetAutoDelete(kFALSE); b_Basket2->SetAutoDelete(kFALSE); b_Basket3->SetAutoDelete(kFALSE); int nb; float x20, x32; for (Int_t ientry=0; ientryClear(); nb = b_MyronData->GetEntry(ientry); nb = b_Basket0->GetEntry(ientry); nb = b_Basket1->GetEntry(ientry); TCalData* cal_data_0 = fMyronData->CalorData(0); int ntowers = cal_data_0->NTowers(); float e_em_0 = cal_data_0->EmEnergy(); for (int i=0; iTower(i); Double_t ieta = tower->IEta(); Double_t iphi = tower->IPhi(); h_eta_phi->Fill(ieta, iphi); h_em->Fill(tower->EmEnergy()); h_had->Fill(tower->HadEnergy()); if (e_em_0 < -2.5) { h_em01->Fill(tower->EmEnergy()); } fHem[tower->IEta()][tower->IPhi()][0]->Fill(tower->EmPmt(0)); fHem[tower->IEta()][tower->IPhi()][1]->Fill(tower->EmPmt(1)); if (( tower->IEta()==20) && (tower->IPhi() == 2) ) { x20 = tower->EmPmt(1); } else if (( tower->IEta()==32) && (tower->IPhi() == 1) ) { x32 = tower->EmPmt(1); } } h_20_32->Fill(x32,x20,1.); TCalData* cal_data_1 = fMyronData->CalorData(1); if (cal_data_1->HadEnergy() > 0.5) { int nt1 = cal_data_1->NTowers(); for (int i=0; iTower(i); if (t1->HadEnergy() > ehad_min) { Double_t ieta = t1->IEta(); Double_t iphi = t1->IPhi(); h_eta_phi1->Fill(ieta, iphi); } } } } }