#include "Riostream.h" void Spectrum_bank2(){ ifstream inEM,inMF,inMG,inMH,inMK,inMI,inEF,inEG,inEH,inEK,inEI,inFG,inFH,inFK,inFI,inGH,inGK,inGI,inHK,inHI,inKI; inEM.open(Form("evt_bankEM.txt")); inMF.open(Form("evt_bankMF.txt")); inMG.open(Form("evt_bankMG.txt")); inMH.open(Form("evt_bankMH.txt")); inMK.open(Form("evt_bankMK.txt")); inMI.open(Form("evt_bankMI.txt")); inEF.open(Form("evt_bankEF.txt")); inEG.open(Form("evt_bankEG.txt")); inEH.open(Form("evt_bankEH.txt")); inEK.open(Form("evt_bankEK.txt")); inEI.open(Form("evt_bankEI.txt")); inFG.open(Form("evt_bankFG.txt")); inFH.open(Form("evt_bankFH.txt")); inFK.open(Form("evt_bankFK.txt")); inFI.open(Form("evt_bankFI.txt")); inGH.open(Form("evt_bankGH.txt")); inGK.open(Form("evt_bankGK.txt")); inGI.open(Form("evt_bankGI.txt")); inHK.open(Form("evt_bankHK.txt")); inHI.open(Form("evt_bankHI.txt")); inKI.open(Form("evt_bankKI.txt")); Float_t event, x_DetE, x_DetM,x_DetF,x_DetG,x_DetH,x_DetK,x_DetI; Float_t phi=0; Float_t angleEM =0.; Float_t angleMF =0.; Float_t angleMG =0.; Float_t angleMH =0.; Float_t angleMK =0.; Float_t angleMI =0.; Float_t angleEF =0.; Float_t angleEG =0.; Float_t angleEH =0.; Float_t angleEK =0.; Float_t angleEI =0.; Float_t angleFG =0.; Float_t angleFH =0.; Float_t angleFK =0.; Float_t angleFI =0.; Float_t angleGH =0.; Float_t angleGK =0.; Float_t angleGI =0.; Float_t angleHK =0.; Float_t angleHI =0.; Float_t angleKI =0.; Float_t DetF_L = 220.; Float_t DetG_L = 230.; Float_t DetH_L = 190.; Float_t DetI_L = 120.; Float_t DetM_L = 200.; Float_t DetE_L = 120.; Float_t DetK_L = 230.; Float_t DetF_mid = DetF_L/2.; Float_t DetG_mid = DetG_L/2.; Float_t DetH_mid = DetH_L/2.; Float_t DetI_mid = DetI_L/2.; Float_t DetM_mid = DetM_L/2.; Float_t DetE_mid = DetE_L/2.; Float_t DetK_mid = DetK_L/2.; Float y1y2; Int_t nlines = 0; TFile * f= new TFile("Spectrum_bank.root","RECREATE"); TH1F * h1 = new TH1F("h1","phi distribution",600,-1,360); TH1F * h2 = new TH1F("h2","theta distribution",200,0,180); TH2F * h3 = new TH2F("h3","h3",200,-5,200,100,0,90); TNtuple * ntupleEM= new TNtuple("ntupleEM","datafrom asciifile","event:x_DetE:x_DetM:angleEM"); TNtuple * ntupleMF= new TNtuple("ntupleMF","datafrom asciifile","event:x_DetM:x_DetF:angleMF"); TNtuple * ntupleMG= new TNtuple("ntupleMG","datafrom asciifile","event:x_DetM:x_DetG:angleMG"); TNtuple * ntupleMH= new TNtuple("ntupleMH","datafrom asciifile","event:x_DetM:x_DetH:angleMH"); TNtuple * ntupleMK= new TNtuple("ntupleMK","datafrom asciifile","event:x_DetM:x_DetK:angleMK"); TNtuple * ntupleMI= new TNtuple("ntupleMI","datafrom asciifile","event:x_DetM:x_DetI:angleMI"); TNtuple * ntupleEF= new TNtuple("ntupleEF","datafrom asciifile","event:x_DetE:x_DetF:angleEF"); TNtuple * ntupleEG= new TNtuple("ntupleEG","datafrom asciifile","event:x_DetE:x_DetG:angleEG"); TNtuple * ntupleEH= new TNtuple("ntupleEH","datafrom asciifile","event:x_DetE:x_DetH:angleEH"); TNtuple * ntupleEK= new TNtuple("ntupleEK","datafrom asciifile","event:x_DetE:x_DetK:angleEK"); TNtuple * ntupleEI= new TNtuple("ntupleEI","datafrom asciifile","event:x_DetE:x_DetI:angleEI"); TNtuple * ntupleFG= new TNtuple("ntupleFG","datafrom asciifile","event:x_DetF:x_DetG:angleFG"); TNtuple * ntupleFH= new TNtuple("ntupleFH","datafrom asciifile","event:x_DetF:x_DetH:angleFH"); TNtuple * ntupleFK= new TNtuple("ntupleFK","datafrom asciifile","event:x_DetF:x_DetK:angleFK"); TNtuple * ntupleFI= new TNtuple("ntupleFI","datafrom asciifile","event:x_DetF:x_DetI:angleFI"); TNtuple * ntupleGH= new TNtuple("ntupleGH","datafrom asciifile","event:x_DetG:x_DetH:angleGH"); TNtuple * ntupleGK= new TNtuple("ntupleGK","datafrom asciifile","event:x_DetG:x_DetK:angleGK"); TNtuple * ntupleGI= new TNtuple("ntupleGI","datafrom asciifile","event:x_DetG:x_DetI:angleGI"); TNtuple * ntupleHK= new TNtuple("ntupleHK","datafrom asciifile","event:x_DetH:x_DetK:angleHK"); TNtuple * ntupleHI= new TNtuple("ntupleHI","datafrom asciifile","event:x_DetH:x_DetI:angleHI"); TNtuple * ntupleKI= new TNtuple("ntupleKI","datafrom asciifile","event:x_DetK:x_DetI:angleKI"); cout<<"pow(4,2)= "<> event >> x_DetE >> x_DetM; if (!inEM.good()) break; phi=20.1; y1y2=-37.0*0.; if(x_DetEFill(angleEM,phi); h2->Fill(angleEM); } if(x_DetE>DetE_mid && x_DetM>DetM_mid) { angleEM=57.295779513*acos( (((x_DetE-DetE_mid)*(x_DetM-DetM_mid)+pow(100.9,2)) /( (sqrt(pow(37,2)+pow(100.9,2)+pow(x_DetE-DetE_mid,2) )) *(sqrt(pow(100.9,2)+pow(x_DetM-DetM_mid,2) )) ) )); h3->Fill(angleEM,phi); h2->Fill(angleEM); } if(x_DetEDetM_mid) { angleEM=57.295779513*acos( -(((DetE_mid-x_DetE)*(x_DetM-DetM_mid)-pow(100.9,2)) /( (sqrt(pow(37,2)+pow(100.9,2)+pow(DetE_mid-x_DetE,2) )) *(sqrt(pow(100.9,2)+pow(x_DetM-DetM_mid,2) )) ) )); h3->Fill(angleEM,phi); h2->Fill(angleEM); } if(x_DetE>DetE_mid && x_DetMFill(angleEM,phi); h2->Fill(angleEM); } ntupleEM->Fill(event,x_DetE,x_DetM,angleEM); nlines++; } printf(" found %d points\n",nlines); nlines=0; //MF data while (inMF.good()) { inMF >> event >> x_DetM >> x_DetF; if (!inMF.good()) break; phi=25.44; y1y2=0.*48; if(x_DetFFill(angleMF,phi); h2->Fill(angleMF); } if(x_DetF>DetF_mid && x_DetM>DetM_mid) { angleMF=57.295779513*acos( (((x_DetF-DetF_mid)*(x_DetM-DetM_mid)+pow(100.9,2)) /( (sqrt(pow(48,2)+pow(100.9,2)+pow(x_DetF-DetF_mid,2) )) *(sqrt(pow(100.9,2)+pow(x_DetM-DetM_mid,2) )) ) )); h3->Fill(angleMF,phi); h2->Fill(angleMF); } if(x_DetFDetM_mid) { angleMF=57.295779513*acos( -(((DetF_mid-x_DetF)*(x_DetM-DetM_mid)-pow(100.9,2)) /( (sqrt(pow(48,2)+pow(100.9,2)+pow(DetF_mid-x_DetF,2) )) *(sqrt(pow(100.9,2)+pow(x_DetM-DetM_mid,2) )) ) )); h3->Fill(angleMF,phi); h2->Fill(angleMF); } if(x_DetF>DetF_mid && x_DetMFill(angleMF,phi); h2->Fill(angleMF); } ntupleMF->Fill(event,x_DetM,x_DetF,angleMF); nlines++; } printf(" found %d points\n",nlines); nlines=0; while (inMG.good()) { inMG >> event >> x_DetM >> x_DetG; if (!inMG.good()) break; phi=40.44; y1y2=0.*86.; if(x_DetGFill(angleMG,phi); h2->Fill(angleMG); } if(x_DetG>DetG_mid && x_DetM>DetM_mid) { angleMG=57.295779513*acos( (((x_DetG-DetG_mid)*(x_DetM-DetM_mid)+pow(100.9,2)) /( (sqrt(pow(86,2)+pow(100.9,2)+pow(x_DetG-DetG_mid,2) )) *(sqrt(pow(100.9,2)+pow(x_DetM-DetM_mid,2) )) ) )); h3->Fill(angleMG,phi); h2->Fill(angleMG); } if(x_DetGDetM_mid) { angleMG=57.295779513*acos( -(((DetG_mid-x_DetG)*(x_DetM-DetM_mid)-pow(100.9,2)) /( (sqrt(pow(86,2)+pow(100.9,2)+pow(DetG_mid-x_DetG,2) )) *(sqrt(pow(100.9,2)+pow(x_DetM-DetM_mid,2) )) ) )); h3->Fill(angleMG,phi); h2->Fill(angleMG); } if(x_DetG>DetG_mid && x_DetMFill(angleMG,phi); h2->Fill(angleMG); } ntupleMG->Fill(event,x_DetM,x_DetG,angleMG); nlines++; } printf(" found %d points\n",nlines); nlines=0; //MH data while (inMH.good()) { inMH >> event >> x_DetM >> x_DetH; if (!inMH.good()) break; phi=53.42; if(x_DetHFill(angleMH,phi); h2->Fill(angleMH); } if(x_DetH>DetH_mid && x_DetM>DetM_mid) { angleMH=57.295779513*acos( (((x_DetH-DetH_mid)*(x_DetM-DetM_mid)+pow(100.9,2)) /( (sqrt(pow(136,2)+pow(100.9,2)+pow(x_DetH-DetH_mid,2) )) *(sqrt(pow(100.9,2)+pow(x_DetM-DetM_mid,2) )) ) )); h3->Fill(angleMH,phi); h2->Fill(angleMH); } if(x_DetHDetM_mid) { angleMH=57.295779513*acos( -(((DetH_mid-x_DetH)*(x_DetM-DetM_mid)-pow(100.9,2)) /( (sqrt(pow(136,2)+pow(100.9,2)+pow(DetH_mid-x_DetH,2) )) *(sqrt(pow(100.9,2)+pow(x_DetM-DetM_mid,2) )) ) )); h3->Fill(angleMH,phi); h2->Fill(angleMH); } if(x_DetH>DetH_mid && x_DetMFill(angleMH,phi); h2->Fill(angleMH); } ntupleMH->Fill(event,x_DetM,x_DetH,angleMH); nlines++; } printf(" found %d points\n",nlines); nlines=0; //MK data while (inMK.good()) { inMK >> event >> x_DetM >> x_DetK; if (!inMK.good()) break; phi=61.12; if(x_DetKFill(angleMK,phi); h2->Fill(angleMK); } if(x_DetK>DetK_mid && x_DetM>DetM_mid) { angleMK=57.295779513*acos( (((x_DetK-DetK_mid)*(x_DetM-DetM_mid)+pow(100.9,2)) /( (sqrt(pow(183,2)+pow(100.9,2)+pow(x_DetK-DetK_mid,2) )) *(sqrt(pow(100.9,2)+pow(x_DetM-DetM_mid,2) )) ) )); h3->Fill(angleMK,phi); h2->Fill(angleMK); } if(x_DetKDetM_mid) { angleMK=57.295779513*acos( -(((DetK_mid-x_DetK)*(x_DetM-DetM_mid)-pow(100.9,2)) /( (sqrt(pow(183,2)+pow(100.9,2)+pow(DetK_mid-x_DetK,2) )) *(sqrt(pow(100.9,2)+pow(x_DetM-DetM_mid,2) )) ) )); h3->Fill(angleMK,phi); h2->Fill(angleMK); } if(x_DetK>DetK_mid && x_DetMFill(angleMK,phi); h2->Fill(angleMK); } ntupleMK->Fill(event,x_DetM,x_DetK,angleMK); nlines++; } printf(" found %d points\n",nlines); nlines=0; //MI data while (inMI.good()) { inMI >> event >> x_DetM >> x_DetI; if (!inMI.good()) break; phi=66.5; if(x_DetIFill(angleMI,phi); h2->Fill(angleMI); } if(x_DetI>DetI_mid && x_DetM>DetM_mid) { angleMI=57.295779513*acos( (((x_DetI-DetI_mid)*(x_DetM-DetM_mid)+pow(100.9,2)) /( (sqrt(pow(232,2)+pow(100.9,2)+pow(x_DetI-DetI_mid,2) )) *(sqrt(pow(100.9,2)+pow(x_DetM-DetM_mid,2) )) ) )); h3->Fill(angleMI,phi); h2->Fill(angleMI); } if(x_DetIDetM_mid) { angleMI=57.295779513*acos( -(((DetI_mid-x_DetI)*(x_DetM-DetM_mid)-pow(100.9,2)) /( (sqrt(pow(232,2)+pow(100.9,2)+pow(DetI_mid-x_DetI,2) )) *(sqrt(pow(100.9,2)+pow(x_DetM-DetM_mid,2) )) ) )); h3->Fill(angleMI,phi); h2->Fill(angleMI); } if(x_DetI>DetI_mid && x_DetMFill(angleMI,phi); h2->Fill(angleMI); } ntupleMI->Fill(event,x_DetM,x_DetI,angleMI); nlines++; } printf(" found %d points\n",nlines); nlines=0; //EF data while (inEF.good()) { inEF >> event >> x_DetE >> x_DetF; if (!inEF.good()) break; phi=45.54; if(x_DetEFill(angleEF,phi); h2->Fill(angleEF); } if(x_DetE>DetE_mid && x_DetF>DetF_mid) { angleEF=57.295779513*acos( ( ((x_DetE-DetE_mid)*(x_DetF-DetF_mid)+pow(100.9,2)-37*48) /( (sqrt(pow(37,2)+pow(100.9,2)+pow(x_DetE-DetE_mid,2) )) *(sqrt(pow(48,2)+pow(100.9,2)+pow(x_DetF-DetF_mid,2) )) ) )); h3->Fill(angleEF,phi); h2->Fill(angleEF); } if(x_DetEDetF_mid) { angleEF=57.295779513*acos(-( ((DetE_mid-x_DetE)*(x_DetF-DetF_mid)-pow(100.9,2)+37*48) /( (sqrt(pow(37,2)+pow(100.9,2)+pow(DetE_mid-x_DetE,2) )) *(sqrt(pow(48,2)+pow(100.9,2)+pow(x_DetF-DetF_mid,2) )) ) )); h3->Fill(angleEF,phi); h2->Fill(angleEF); } if(x_DetE>DetE_mid && x_DetFFill(angleEF,phi); h2->Fill(angleEF); } ntupleEF->Fill(event,x_DetE,x_DetF,angleEF); nlines++; } printf(" found %d points\n",nlines); nlines=0; //EG data while (inEG.good()) { inEG >> event >> x_DetE >> x_DetG; if (!inEG.good()) break; phi=60.54; if(x_DetEFill(angleEG,phi); h2->Fill(angleEG); } if(x_DetE>DetE_mid && x_DetG>DetG_mid) { angleEG=57.295779513*acos( ( ((x_DetE-DetE_mid)*(x_DetG-DetG_mid)+pow(100.9,2)-37*86) /( (sqrt(pow(37,2)+pow(100.9,2)+pow(x_DetE-DetE_mid,2) )) *(sqrt(pow(86,2)+pow(100.9,2)+pow(x_DetG-DetG_mid,2) )) ) )); h3->Fill(angleEG,phi); h2->Fill(angleEG); } if(x_DetEDetG_mid) { angleEG=57.295779513*acos(-( ((DetE_mid-x_DetE)*(x_DetG-DetG_mid)-pow(100.9,2)+37*86) /( (sqrt(pow(37,2)+pow(100.9,2)+pow(DetE_mid-x_DetE,2) )) *(sqrt(pow(86,2)+pow(100.9,2)+pow(x_DetG-DetG_mid,2) )) ) )); h3->Fill(angleEG,phi); h2->Fill(angleEG); } if(x_DetE>DetE_mid && x_DetGFill(angleEG,phi); h2->Fill(angleEG); } ntupleEG->Fill(event,x_DetE,x_DetG,angleEG); nlines++; } printf(" found %d points\n",nlines); nlines=0; //EH data while (inEH.good()) { inEH >> event >> x_DetE >> x_DetH; if (!inEH.good()) break; phi=73.52; if(x_DetEFill(angleEH,phi); h2->Fill(angleEH); } if(x_DetE>DetE_mid && x_DetH>DetH_mid) { angleEH=57.295779513*acos( ( ((x_DetE-DetE_mid)*(x_DetH-DetH_mid)+pow(100.9,2)-37*136) /( (sqrt(pow(37,2)+pow(100.9,2)+pow(x_DetE-DetE_mid,2) )) *(sqrt(pow(136,2)+pow(100.9,2)+pow(x_DetH-DetH_mid,2) )) ) )); h3->Fill(angleEH,phi); h2->Fill(angleEH); } if(x_DetEDetH_mid) { angleEH=57.295779513*acos(-( ((DetE_mid-x_DetE)*(x_DetH-DetH_mid)-pow(100.9,2)+37*136) /( (sqrt(pow(37,2)+pow(100.9,2)+pow(DetE_mid-x_DetE,2) )) *(sqrt(pow(136,2)+pow(100.9,2)+pow(x_DetH-DetH_mid,2) )) ) )); h3->Fill(angleEH,phi); h2->Fill(angleEH); } if(x_DetE>DetE_mid && x_DetHFill(angleEH,phi); h2->Fill(angleEH); } ntupleEH->Fill(event,x_DetE,x_DetH,angleEH); nlines++; } printf(" found %d points\n",nlines); nlines=0; //EK data while (inEK.good()) { inEK >> event >> x_DetE >> x_DetK; if (!inEK.good()) break; phi=82.2; if(x_DetEFill(angleEK,phi); h2->Fill(angleEK); } if(x_DetE>DetE_mid && x_DetK>DetK_mid) { angleEK=57.295779513*acos( ( ((x_DetE-DetE_mid)*(x_DetK-DetK_mid)+pow(100.9,2)-37*183) /( (sqrt(pow(37,2)+pow(100.9,2)+pow(x_DetE-DetE_mid,2) )) *(sqrt(pow(183,2)+pow(100.9,2)+pow(x_DetK-DetK_mid,2) )) ) )); h3->Fill(angleEK,phi); h2->Fill(angleEK); } if(x_DetEDetK_mid) { angleEK=57.295779513*acos(-( ((DetE_mid-x_DetE)*(x_DetK-DetK_mid)-pow(100.9,2)+37*183) /( (sqrt(pow(37,2)+pow(100.9,2)+pow(DetE_mid-x_DetE,2) )) *(sqrt(pow(183,2)+pow(100.9,2)+pow(x_DetK-DetK_mid,2) )) ) )); h3->Fill(angleEK,phi); h2->Fill(angleEK); } if(x_DetE>DetE_mid && x_DetKFill(angleEK,phi); h2->Fill(angleEK); } ntupleEK->Fill(event,x_DetE,x_DetK,angleEK); nlines++; } printf(" found %d points\n",nlines); nlines=0; //EI data while (inEI.good()) { inEI >> event >> x_DetE >> x_DetI; if (!inEI.good()) break; phi=86.6; if(x_DetEFill(angleEI,phi); h2->Fill(angleEI); } if(x_DetE>DetE_mid && x_DetI>DetI_mid) { angleEI=57.295779513*acos( ( ((x_DetE-DetE_mid)*(x_DetI-DetI_mid)+pow(100.9,2)-37*232) /( (sqrt(pow(37,2)+pow(100.9,2)+pow(x_DetE-DetE_mid,2) )) *(sqrt(pow(232,2)+pow(100.9,2)+pow(x_DetI-DetI_mid,2) )) ) )); h3->Fill(angleEI,phi); h2->Fill(angleEI); } if(x_DetEDetI_mid) { angleEI=57.295779513*acos(-( ((DetE_mid-x_DetE)*(x_DetI-DetI_mid)-pow(100.9,2)+37*232) /( (sqrt(pow(37,2)+pow(100.9,2)+pow(DetE_mid-x_DetE,2) )) *(sqrt(pow(232,2)+pow(100.9,2)+pow(x_DetI-DetI_mid,2) )) ) )); h3->Fill(angleEI,phi); h2->Fill(angleEI); } if(x_DetE>DetE_mid && x_DetIFill(angleEI,phi); h2->Fill(angleEI); } ntupleEI->Fill(event,x_DetE,x_DetI,angleEI); nlines++; } printf(" found %d points\n",nlines); nlines=0; //FG data while (inFG.good()) { inFG >> event >> x_DetF >> x_DetG; if (!inFG.good()) break; phi=15.04; if(x_DetFFill(angleFG,phi); h2->Fill(angleFG); } if(x_DetF>DetF_mid && x_DetG>DetG_mid) { angleFG=57.295779513*acos( ( ((x_DetF-DetF_mid)*(x_DetG-DetG_mid)+pow(100.9,2)+48*86) /( (sqrt(pow(48,2)+pow(100.9,2)+pow(x_DetF-DetF_mid,2) )) *(sqrt(pow(86,2)+pow(100.9,2)+pow(x_DetG-DetG_mid,2) )) ) )); h3->Fill(angleFG,phi); h2->Fill(angleFG); } if(x_DetFDetG_mid) { angleFG=57.295779513*acos(-( ((DetF_mid-x_DetF)*(x_DetG-DetG_mid)-pow(100.9,2)-48*86) /( (sqrt(pow(48,2)+pow(100.9,2)+pow(DetF_mid-x_DetF,2) )) *(sqrt(pow(86,2)+pow(100.9,2)+pow(x_DetG-DetG_mid,2) )) ) )); h3->Fill(angleFG,phi); h2->Fill(angleFG); } if(x_DetF>DetF_mid && x_DetGFill(angleFG,phi); h2->Fill(angleFG); } ntupleFG->Fill(event,x_DetF,x_DetG,angleFG); nlines++; } printf(" found %d points\n",nlines); nlines=0; //FH data while (inFH.good()) { inFH >> event >> x_DetF >> x_DetH; if (!inFH.good()) break; phi=27.98; if(x_DetFFill(angleFH,phi); h2->Fill(angleFH); } if(x_DetF>DetF_mid && x_DetH>DetH_mid) { angleFH=57.295779513*acos( ( ((x_DetF-DetF_mid)*(x_DetH-DetH_mid)+pow(100.9,2)+48*136) /( (sqrt(pow(48,2)+pow(100.9,2)+pow(x_DetF-DetF_mid,2) )) *(sqrt(pow(136,2)+pow(100.9,2)+pow(x_DetH-DetH_mid,2) )) ) )); h3->Fill(angleFH,phi); h2->Fill(angleFH); } if(x_DetFDetH_mid) { angleFH=57.295779513*acos(-( ((DetF_mid-x_DetF)*(x_DetH-DetH_mid)-pow(100.9,2)-48*136) /( (sqrt(pow(48,2)+pow(100.9,2)+pow(DetF_mid-x_DetF,2) )) *(sqrt(pow(136,2)+pow(100.9,2)+pow(x_DetH-DetH_mid,2) )) ) )); h3->Fill(angleFH,phi); h2->Fill(angleFH); } if(x_DetF>DetF_mid && x_DetHFill(angleFH,phi); h2->Fill(angleFH); } ntupleFH->Fill(event,x_DetF,x_DetH,angleFH); nlines++; } printf(" found %d points\n",nlines); nlines=0; //FK data while (inFK.good()) { inFK >> event >> x_DetF >> x_DetK; if (!inFK.good()) break; phi=35.7; if(x_DetFFill(angleFK,phi); h2->Fill(angleFK); } if(x_DetF>DetF_mid && x_DetK>DetK_mid) { angleFK=57.295779513*acos( ( ((x_DetF-DetF_mid)*(x_DetK-DetK_mid)+pow(100.9,2)+48*183) /( (sqrt(pow(48,2)+pow(100.9,2)+pow(x_DetF-DetF_mid,2) )) *(sqrt(pow(183,2)+pow(100.9,2)+pow(x_DetK-DetK_mid,2) )) ) )); h3->Fill(angleFK,phi); h2->Fill(angleFK); } if(x_DetFDetK_mid) { angleFK=57.295779513*acos(-( ((DetF_mid-x_DetF)*(x_DetK-DetK_mid)-pow(100.9,2)-48*183) /( (sqrt(pow(48,2)+pow(100.9,2)+pow(DetF_mid-x_DetF,2) )) *(sqrt(pow(183,2)+pow(100.9,2)+pow(x_DetK-DetK_mid,2) )) ) )); h3->Fill(angleFK,phi); h2->Fill(angleFK); } if(x_DetF>DetF_mid && x_DetKFill(angleFK,phi); h2->Fill(angleFK); } ntupleFK->Fill(event,x_DetF,x_DetK,angleFK); nlines++; } printf(" found %d points\n",nlines); nlines=0; //FI data while (inFI.good()) { inFI >> event >> x_DetF >> x_DetI; if (!inFI.good()) break; phi=41.05; if(x_DetFFill(angleFI,phi); h2->Fill(angleFI); } if(x_DetF>DetF_mid && x_DetI>DetI_mid) { angleFI=57.295779513*acos( ( ((x_DetF-DetF_mid)*(x_DetI-DetI_mid)+pow(100.9,2)+48*232) /( (sqrt(pow(48,2)+pow(100.9,2)+pow(x_DetF-DetF_mid,2) )) *(sqrt(pow(232,2)+pow(100.9,2)+pow(x_DetI-DetI_mid,2) )) ) )); h3->Fill(angleFI,phi); h2->Fill(angleFI); } if(x_DetFDetI_mid) { angleFI=57.295779513*acos(-( ((DetF_mid-x_DetF)*(x_DetI-DetI_mid)-pow(100.9,2)-48*232) /( (sqrt(pow(48,2)+pow(100.9,2)+pow(DetF_mid-x_DetF,2) )) *(sqrt(pow(232,2)+pow(100.9,2)+pow(x_DetI-DetI_mid,2) )) ) )); h3->Fill(angleFI,phi); h2->Fill(angleFI); } if(x_DetF>DetF_mid && x_DetIFill(angleFI,phi); h2->Fill(angleFI); } ntupleFI->Fill(event,x_DetF,x_DetI,angleFI); nlines++; } printf(" found %d points\n",nlines); nlines=0; //GH data while (inGH.good()) { inGH >> event >> x_DetG >> x_DetH; if (!inGH.good()) break; phi=12.98; if(x_DetGFill(angleGH,phi); h2->Fill(angleGH); } if(x_DetG>DetG_mid && x_DetH>DetH_mid) { angleGH=57.295779513*acos( ( ((x_DetG-DetG_mid)*(x_DetH-DetH_mid)+pow(100.9,2)+86*136) /( (sqrt(pow(86,2)+pow(100.9,2)+pow(x_DetG-DetG_mid,2) )) *(sqrt(pow(136,2)+pow(100.9,2)+pow(x_DetH-DetH_mid,2) )) ) )); h3->Fill(angleGH,phi); h2->Fill(angleGH); } if(x_DetGDetH_mid) { angleGH=57.295779513*acos(-( ((DetG_mid-x_DetG)*(x_DetH-DetH_mid)-pow(100.9,2)-86*136) /( (sqrt(pow(86,2)+pow(100.9,2)+pow(DetG_mid-x_DetG,2) )) *(sqrt(pow(136,2)+pow(100.9,2)+pow(x_DetH-DetH_mid,2) )) ) )); h3->Fill(angleGH,phi); h2->Fill(angleGH); } if(x_DetG>DetG_mid && x_DetHFill(angleGH,phi); h2->Fill(angleGH); } ntupleGH->Fill(event,x_DetG,x_DetH,angleGH); nlines++; } printf(" found %d points\n",nlines); nlines=0; //GK data while (inGK.good()) { inGK >> event >> x_DetG >> x_DetK; if (!inGK.good()) break; phi=20.68; if(x_DetGFill(angleGK,phi); h2->Fill(angleGK); } if(x_DetG>DetG_mid && x_DetK>DetK_mid) { angleGK=57.295779513*acos( ( ((x_DetG-DetG_mid)*(x_DetK-DetK_mid)+pow(100.9,2)+86*183) /( (sqrt(pow(86,2)+pow(100.9,2)+pow(x_DetG-DetG_mid,2) )) *(sqrt(pow(183,2)+pow(100.9,2)+pow(x_DetK-DetK_mid,2) )) ) )); h3->Fill(angleGK,phi); h2->Fill(angleGK); } if(x_DetGDetK_mid) { angleGK=57.295779513*acos(-( ((DetG_mid-x_DetG)*(x_DetK-DetK_mid)-pow(100.9,2)-86*183) /( (sqrt(pow(86,2)+pow(100.9,2)+pow(DetG_mid-x_DetG,2) )) *(sqrt(pow(183,2)+pow(100.9,2)+pow(x_DetK-DetK_mid,2) )) ) )); h3->Fill(angleGK,phi); h2->Fill(angleGK); } if(x_DetG>DetG_mid && x_DetKFill(angleGK,phi); h2->Fill(angleGK); } ntupleGK->Fill(event,x_DetG,x_DetK,angleGK); nlines++; } printf(" found %d points\n",nlines); nlines=0; //GI data while (inGI.good()) { inGI >> event >> x_DetG >> x_DetI; if (!inGI.good()) break; phi=26.05; if(x_DetGFill(angleGI,phi); h2->Fill(angleGI); } if(x_DetG>DetG_mid && x_DetI>DetI_mid) { angleGI=57.295779513*acos( ( ((x_DetG-DetG_mid)*(x_DetI-DetI_mid)+pow(100.9,2)+86*232) /( (sqrt(pow(86,2)+pow(100.9,2)+pow(x_DetG-DetG_mid,2) )) *(sqrt(pow(232,2)+pow(100.9,2)+pow(x_DetI-DetI_mid,2) )) ) )); h3->Fill(angleGI,phi); h2->Fill(angleGI); } if(x_DetGDetI_mid) { angleGI=57.295779513*acos(-( ((DetG_mid-x_DetG)*(x_DetI-DetI_mid)-pow(100.9,2)-86*232) /( (sqrt(pow(86,2)+pow(100.9,2)+pow(DetG_mid-x_DetG,2) )) *(sqrt(pow(232,2)+pow(100.9,2)+pow(x_DetI-DetI_mid,2) )) ) )); h3->Fill(angleGI,phi); h2->Fill(angleGI); } if(x_DetG>DetG_mid && x_DetIFill(angleGI,phi); h2->Fill(angleGI); } ntupleGI->Fill(event,x_DetG,x_DetI,angleGI); nlines++; } printf(" found %d points\n",nlines); nlines=0; //HK data while (inHK.good()) { inHK >> event >> x_DetH >> x_DetK; if (!inHK.good()) break; phi=7.7; if(x_DetHFill(angleHK,phi); h2->Fill(angleHK); } if(x_DetH>DetH_mid && x_DetK>DetK_mid) { angleHK=57.295779513*acos( ( ((x_DetH-DetH_mid)*(x_DetK-DetK_mid)+pow(100.9,2)+136*183) /( (sqrt(pow(136,2)+pow(100.9,2)+pow(x_DetH-DetH_mid,2) )) *(sqrt(pow(183,2)+pow(100.9,2)+pow(x_DetK-DetK_mid,2) )) ) )); h3->Fill(angleHK,phi); h2->Fill(angleHK); } if(x_DetHDetK_mid) { angleHK=57.295779513*acos(-( ((DetH_mid-x_DetH)*(x_DetK-DetK_mid)-pow(100.9,2)-136*183) /( (sqrt(pow(136,2)+pow(100.9,2)+pow(DetH_mid-x_DetH,2) )) *(sqrt(pow(183,2)+pow(100.9,2)+pow(x_DetK-DetK_mid,2) )) ) )); h3->Fill(angleHK,phi); h2->Fill(angleHK); } if(x_DetH>DetH_mid && x_DetKFill(angleHK,phi); h2->Fill(angleHK); } ntupleHK->Fill(event,x_DetH,x_DetK,angleHK); nlines++; } printf(" found %d points\n",nlines); nlines=0; //HI data while (inHI.good()) { inHI >> event >> x_DetH >> x_DetI; if (!inHI.good()) break; phi=13.067; if(x_DetHFill(angleHI,phi); h2->Fill(angleHI); } if(x_DetH>DetH_mid && x_DetI>DetI_mid) { angleHI=57.295779513*acos( ( ((x_DetH-DetH_mid)*(x_DetI-DetI_mid)+pow(100.9,2)+136*232) /( (sqrt(pow(136,2)+pow(100.9,2)+pow(x_DetH-DetH_mid,2) )) *(sqrt(pow(232,2)+pow(100.9,2)+pow(x_DetI-DetI_mid,2) )) ) )); h3->Fill(angleHI,phi); h2->Fill(angleHI); } if(x_DetHDetI_mid) { angleHI=57.295779513*acos(-( ((DetH_mid-x_DetH)*(x_DetI-DetI_mid)-pow(100.9,2)-136*232) /( (sqrt(pow(136,2)+pow(100.9,2)+pow(DetH_mid-x_DetH,2) )) *(sqrt(pow(232,2)+pow(100.9,2)+pow(x_DetI-DetI_mid,2) )) ) )); h3->Fill(angleHI,phi); h2->Fill(angleHI); } if(x_DetH>DetH_mid && x_DetIFill(angleHI,phi); h2->Fill(angleHI); } ntupleHI->Fill(event,x_DetH,x_DetI,angleHI); nlines++; } printf(" found %d points\n",nlines); nlines=0; //KI data while (inKI.good()) { inKI >> event >> x_DetK >> x_DetI; if (!inKI.good()) break; phi=5.36; if(x_DetKFill(angleKI,phi); h2->Fill(angleKI); } if(x_DetK>DetK_mid && x_DetI>DetI_mid) { angleKI=57.295779513*acos( ( ((x_DetK-DetK_mid)*(x_DetI-DetI_mid)+pow(100.9,2)+183*232) /( (sqrt(pow(183,2)+pow(100.9,2)+pow(x_DetK-DetK_mid,2) )) *(sqrt(pow(232,2)+pow(100.9,2)+pow(x_DetI-DetI_mid,2) )) ) )); h3->Fill(angleKI,phi); h2->Fill(angleKI); } if(x_DetKDetI_mid) { angleKI=57.295779513*acos(-( ((DetK_mid-x_DetK)*(x_DetI-DetI_mid)-pow(100.9,2)-183*232) /( (sqrt(pow(183,2)+pow(100.9,2)+pow(DetK_mid-x_DetK,2) )) *(sqrt(pow(232,2)+pow(100.9,2)+pow(x_DetI-DetI_mid,2) )) ) )); h3->Fill(angleKI,phi); h2->Fill(angleKI); } if(x_DetK>DetK_mid && x_DetIFill(angleKI,phi); h2->Fill(angleKI); } ntupleKI->Fill(event,x_DetK,x_DetI,angleKI); nlines++; } printf(" found %d points\n",nlines); nlines=0; inEM.close(); inMF.close(); inMG.close(); inMH.close(); inMK.close(); inMI.close(); inEF.close(); inEG.close(); inEH.close(); inEK.close(); inEI.close(); inFG.close(); inFH.close(); inFK.close(); inFI.close(); inGH.close(); inGK.close(); inGI.close(); inHK.close(); inHI.close(); inKI.close(); f->Write(); f->Close(); }