diff --git a/Armory/ClassPW.h b/Armory/ClassPW.h old mode 100755 new mode 100644 diff --git a/Armory/HistPlotter.h b/Armory/HistPlotter.h index 8bba450..a0e21dc 100644 --- a/Armory/HistPlotter.h +++ b/Armory/HistPlotter.h @@ -36,7 +36,7 @@ private: inline void FillN_All_Histograms(); public: HistPlotter(std::string outfile, std::string type); - inline void FlushToDisk(); //!< Writes all objects to file before closing, nesting objects in folders as is found necessary + inline void FlushToDisk(int integral); //!< Writes all objects to file before closing, nesting objects in folders as is found necessary inline void PrintObjects(); //!< Dump objects to std::cout for inspection inline void ReadCuts(std::string); inline TCutG* FindCut(std::string cut) { @@ -117,7 +117,8 @@ void HistPlotter::FillN_All_Histograms() { } std::cout << "." << std::endl; } -void HistPlotter::FlushToDisk() { + +void HistPlotter::FlushToDisk(int min_integral=0) { /*! \fn void FlushToDisk() \brief Function that can be used at any point to exit smoothly by saving all ROOT objects in memory to the output file before closing it. Obeys the binding of histograms to separate folders, if so specified. @@ -143,7 +144,8 @@ void HistPlotter::FlushToDisk() { } else { ofile->cd(); //toplevel for all default histograms. Default setting } - it->second->Write(); + if(((TH1F*)it->second)->Integral()>min_integral) + it->second->Write(); } //Create a directory for all cuts, and save all cuts in them diff --git a/Armory/SX3Geom.h b/Armory/SX3Geom.h old mode 100755 new mode 100644 diff --git a/MakeVertex.C b/MakeVertex.C old mode 100755 new mode 100644 index 7e9e615..0ca54d5 --- a/MakeVertex.C +++ b/MakeVertex.C @@ -36,10 +36,10 @@ Int_t colors[40] = { #include bool realtime = true; -const double source_vertex = 53; //53 +double source_vertex = 53; //53 const double qqq_z = 100.0; const double anode_gain = 1.5146e-5; //channels --> MeV -std::string dataset = "26Al"; //"17F" +std::string dataset; TApplication *app=NULL; TH1F *hha=NULL,*hhc=NULL; @@ -124,6 +124,15 @@ void MakeVertex::Begin(TTree * /*tree*/) pcIntercept[i] = 0.0; // Default intercept = 0 } + if(getenv("DATASET")) + dataset = std::string(getenv("DATASET")); + if(getenv("source_vertex")) + source_vertex = (double)std::atof(std::string(getenv("source_vertex")).c_str()); + std::cout << "Dataset set to " << dataset << std::endl; + std::cout << "source_vertex set to " << source_vertex << std::endl; + + fflush(stdout); + usleep(4e5); // Load PC Calibrations std::ifstream inputFile("slope_intercept_results_"+dataset+".txt"); if (inputFile.is_open()) @@ -322,7 +331,7 @@ Bool_t MakeVertex::Process(Long64_t entry) try { Fsx3.at(id).validate(); } catch(std::exception exc) { - std::cout << "oops! anyway" << std::endl; + std::cout << "oops! anyway " << std::endl; continue; } auto det = Fsx3.at(id); @@ -336,8 +345,6 @@ Bool_t MakeVertex::Process(Long64_t entry) plotter->Fill2D("matched_be_vs_x_sx3_id_"+std::to_string(id)+"_f"+std::to_string(det.stripF),200,-30,30,800,0,8192, det.frontX*sx3FrontGain[id][det.stripF]+sx3FrontOffset[id][det.stripF],det.backE*sx3BackGain[id][det.stripF][det.stripB],"evsx_matched"); //plotter->Fill2D("fe_vs_x_sx3_id_"+std::to_string(id)+"_f"+std::to_string(det.stripF)+"_"+std::to_string(det.stripB),200,-1,1,800,0,4096,det.frontX,det.backE,"evsx"); - - plotter->Fill2D("l_vs_r_sx3_id_"+std::to_string(id)+"_f"+std::to_string(det.stripF),800,0,4096,800,0,4096,det.frontEL,det.frontER,"l_vs_r"); } if(det.valid && (id ==9 || id==7 || id == 1 || id==3) && det.stripF!=DEFAULT_NULL && det.stripB!=DEFAULT_NULL) { @@ -347,7 +354,13 @@ Bool_t MakeVertex::Process(Long64_t entry) double beta_n = 15.0 + TMath::ATan2((2*det.stripF-3)*40.30, 8.0*88.0*TMath::Cos(15.0*M_PI/180.0))*180./M_PI; //how much to add per strip to the starting position double phi_n = ((-id+0.5)*30+beta_n); phi_n+=45; - //phi_n-=120; + + if(getenv("flip180")) { + if(std::string(getenv("flip180"))=="1") { + //if(dataset=="17F") + phi_n+=180;//run 37 in 17F--> + } + } phi_n*=M_PI/180.; //starting-position phi + strip contribution Event sx3ev(TVector3(88.0*TMath::Cos(phi_n),88.0*TMath::Sin(phi_n),z),backE,-1,det.ts,-1,det.stripB+4*id,det.stripF+4*id); sx3Events.push_back(sx3ev); @@ -479,7 +492,8 @@ Bool_t MakeVertex::Process(Long64_t entry) plotter->Fill2D("DelT_Vs_QQQRingECal", 500, -2000, 2000, 1000, 0, 10, tRing - static_cast(pc.t[k]), eRingMeV, "hTiming"); plotter->Fill2D("CalibratedQQQEvsPCE_R", 1000, 0, 10, 2000, 0, 30000, eRingMeV, pc.e[k], "hPCQQQ"); plotter->Fill2D("CalibratedQQQEvsPCE_W", 1000, 0, 10, 2000, 0, 30000, eWedgeMeV, pc.e[k], "hPCQQQ"); - if (tRing - static_cast(pc.t[k]) < -150) // proton tests, 27Al + //if (tRing - static_cast(pc.t[k]) < -150) // proton tests, 27Al + if (tRing - static_cast(pc.t[k]) > 150) // proton tests, 27Al { PCAQQQTimeCut = true; } @@ -487,6 +501,8 @@ Bool_t MakeVertex::Process(Long64_t entry) if (pc.index[k] >= 24 && pc.e[k] > 10) { if (tRing - static_cast(pc.t[k]) < -200) PCCQQQTimeCut = true; + //if (tRing - static_cast(pc.t[k]) > 200) PCCQQQTimeCut = true; + plotter->Fill2D("Timing_Difference_QQQ_PC_Cathode", 500, -2000, 2000, 16, 0, 16, tRing - static_cast(pc.t[k]), chRing, "hTiming"); } } //end of pc k loop @@ -547,18 +563,27 @@ Bool_t MakeVertex::Process(Long64_t entry) { anodeT = static_cast(pc.t[i]); anodeIndex = pc.index[i]; - aWireEvents[pc.index[i]] = std::tuple(pc.index[i],pc.e[i],static_cast(pc.t[i])); + + if(getenv("flipa")) { + int flip_offset = std::atoi(getenv("flipa")); + int flipped_index = (anodeIndex+flip_offset)%24; + aWireEvents[flipped_index] = std::tuple(flipped_index,pc.e[i],static_cast(pc.t[i])); + } else + aWireEvents[pc.index[i]] = std::tuple(pc.index[i],pc.e[i],static_cast(pc.t[i])); if(realtime) hha->SetBinContent(hha->FindFixBin(anodeIndex),pc.e[i]); } else { cathodeT = static_cast(pc.t[i]); cathodeIndex = pc.index[i] - 24; + if(getenv("flipc")) { + int flip_offset = std::atoi(getenv("flipc")); + int flipped_index = (cathodeIndex+flip_offset)%24; + cWireEvents[flipped_index] = std::tuple(flipped_index,pc.e[i],static_cast(pc.t[i])); + } else { + cWireEvents[pc.index[i]-24] = std::tuple(pc.index[i]-24,pc.e[i],static_cast(pc.t[i])); + } - //int flipped_index = 23-cathodeIndex; - //cWireEvents[flipped_index] = std::tuple(flipped_index,pc.e[i],static_cast(pc.t[i])); - - cWireEvents[pc.index[i]-24] = std::tuple(pc.index[i]-24,pc.e[i],static_cast(pc.t[i])); if(realtime) hhc->SetBinContent(hhc->FindFixBin(cathodeIndex),pc.e[i]); } @@ -577,6 +602,12 @@ Bool_t MakeVertex::Process(Long64_t entry) { plotter->Fill1D("PC_Time_sx3", 200, -2000, 2000, anodeT - cathodeT, "hTiming"); } + for(auto sx3event : sx3Events) { + bool TCC = sx3event.Time1 - cathodeT < 0; + bool TCA = sx3event.Time1 - anodeT < 0; + //plotter->Fill2D("sx3_z_phi_awire"+std::to_string(anodeIndex)+"_TC"+std::to_string(TCA), 400,-100,100, 200, -200,200,sx3event.pos.Z(), sx3event.pos.Phi()*180/M_PI ); + //plotter->Fill2D("sx3_z_phi_cwire"+std::to_string(cathodeIndex)+"_TC"+std::to_string(TCC), 400,-100,100, 200, -200,200,sx3event.pos.Z(), sx3event.pos.Phi()*180/M_PI ); + } plotter->Fill1D("PC_Time", 200, -2000, 2000, anodeT - cathodeT, "hTiming"); } @@ -618,7 +649,7 @@ Bool_t MakeVertex::Process(Long64_t entry) std::sort(anodeHits.begin(),anodeHits.end(),[](std::pair a, std::pair b) { return a.first < b.first; }); - + std::sort(cathodeHits.begin(),cathodeHits.end(),[](std::pair a, std::pair b) { return a.first < b.first; }); @@ -639,13 +670,36 @@ Bool_t MakeVertex::Process(Long64_t entry) //Event PCEvent(crossover,apSumE,cpSumE,apTSMaxE,cpTSMaxE); Event PCEvent(crossover,apSumE,cpMaxE,apTSMaxE,cpTSMaxE); //run12 shows cathode-max and anode-sum provide best dE signals. //std::cout << apSumE << " " << crossover.Perp() << " " << apMaxE << " " << apTSMaxE << std::endl; - //PCEvent.multi1=aCluster.size(); - //PCEvent.multi2=cCluster.size(); + PCEvent.multi1=aCluster.size(); + PCEvent.multi2=cCluster.size(); PC_Events.push_back(PCEvent); sumE_AC.push_back(std::pair(apSumE,cpSumE)); } } } + + for(auto sx3event: sx3Events) { + for(int i=0; i<24; i++) { + if(aWireEvents.find(i) != aWireEvents.end()) { + auto awire = aWireEvents[i]; + if(sx3event.Time1 -(double)std::get<2>(awire)< -100) { + plotter->Fill2D("sx3_z_phi2_awire"+std::to_string(std::get<0>(awire)), 400,-100,100, 100, -200,200,sx3event.pos.Z(), sx3event.pos.Phi()*180/M_PI ); + plotter->Fill2D("sx3_z_strip#_awire"+std::to_string(std::get<0>(awire)), 400,-100,100, 100, -50,50,sx3event.pos.Z(), sx3event.ch2); + + //std::cout << sx3event.pos.Z() << " " << std::get<0>(awire) << " " << std::get<0>(awire) - sx3event.Time1 << std::endl; + } + } + + if(cWireEvents.find(i) != cWireEvents.end()) { + auto cwire = cWireEvents[i]; + if(sx3event.Time1 -(double)std::get<2>(cwire) < -100) { + plotter->Fill2D("sx3_z_phi2_cwire"+std::to_string(std::get<0>(cwire)),400,-100,100, 100, -200,200,sx3event.pos.Z(), sx3event.pos.Phi()*180/M_PI ); + plotter->Fill2D("sx3_z_strip#_cwire"+std::to_string(std::get<0>(cwire)),400,-100,100, 100, -50,50,sx3event.pos.Z(), sx3event.ch2 ); + } + } + } + } + if(QQQ_Events.size() && PC_Events.size()) plotter->Fill2D("PCEv_vs_QQQEv",20,0,20,20,0,20,QQQ_Events.size(),PC_Events.size()); @@ -682,10 +736,13 @@ Bool_t MakeVertex::Process(Long64_t entry) plotter->Fill1D("dt_pcA_sx3B",640,-2000,2000,sx3event.Time1 - pcevent.Time1); plotter->Fill1D("dt_pcC_sx3B",640,-2000,2000,sx3event.Time1 - pcevent.Time2); + plotter->Fill2D("dt_pcA_qqqR_vs_qqqRE",640,-2000,2000,400,0,10,sx3event.Time1-pcevent.Time1, sx3event.Energy1*0.001); plotter->Fill2D("dE_E_Anodesx3B",400,0,10,800,0,40000,sx3event.Energy1*0.001,pcevent.Energy1); plotter->Fill2D("dE_E_Cathodesx3B",400,0,10,800,0,10000,sx3event.Energy1*0.001,pcevent.Energy2); plotter->Fill2D("sx3phi_vs_pcphi"+std::to_string(sx3event.Time1 - pcevent.Time1<-150),100,-360,360,100,-360,360,sx3event.pos.Phi()*180/M_PI,pcevent.pos.Phi()*180/M_PI); if(PCSX3TimeCut) { + plotter->Fill1D("dt_pcA_sx3B_timecut",640,-2000,2000,sx3event.Time1 - pcevent.Time1); + plotter->Fill1D("dt_pcC_sx3B_timecut",640,-2000,2000,sx3event.Time1 - pcevent.Time2); plotter->Fill2D("xyplot_sx3"+std::to_string(sx3event.ch2/4),100,-100,100,100,-100,100,sx3event.pos.X(),sx3event.pos.Y()); plotter->Fill2D("xyplot_sx3"+std::to_string(sx3event.ch2/4),100,-100,100,100,-100,100,pcevent.pos.X(),pcevent.pos.Y()); plotter->Fill2D("pcz_vs_pcphi_TimeCut",600,-200,200,120,-360,360,pcevent.pos.Z(),pcevent.pos.Phi()*180/M_PI); //x-axis is all Si det, y-axis is PC anode+cathode only @@ -713,28 +770,49 @@ Bool_t MakeVertex::Process(Long64_t entry) plotter->Fill2D("pcz_vs_sx3pczguess",300,0,200,600,-200,200,pczguess,pcevent.pos.Z()); //x-axis is all Si det, y-axis is PC anode+cathode only plotter->Fill2D("pcz_vs_sx3pczguess_int",300,0,200,600,-200,200,pcz_guess_int,pcevent.pos.Z()); //x-axis is all Si det, y-axis is PC anode+cathode only //plotter->Fill2D("pcz_vs_sx3pczguess_strip"+std::to_string(sx3event.ch2),300,0,200,600,-200,200,pczguess,pcevent.pos.Z()); - plotter->Fill2D("pcz_vs_sx3pczguess_phi"+std::to_string(sx3event.pos.Phi()*180/M_PI),300,0,200,600,-200,200,pczguess,pcevent.pos.Z()); - /*for(auto cc: cClusters) + //plotter->Fill2D("pcz_vs_sx3pczguess_phi"+std::to_string(sx3event.pos.Phi()*180/M_PI),300,0,200,600,-200,200,pczguess,pcevent.pos.Z()); + plotter->Fill2D("pcz_vs_sx3z_strip="+std::to_string(sx3event.ch2),300,0,100,600,-200,200,sx3z,pcevent.pos.Z(),"sx3_vs_pc_zcorr"); + plotter->Fill2D("pcz_vs_sx3z_strip="+std::to_string(sx3event.ch2)+"_a"+std::to_string(pcevent.multi1)+"_c"+std::to_string(pcevent.multi2),300,0,100,600,-200,200,sx3z,pcevent.pos.Z(),"sx3_vs_pc_zcorr"); + + plotter->Fill2D("pcdEC_vs_sx3z_strip="+std::to_string(sx3event.ch2)+"_a"+std::to_string(pcevent.multi1)+"_c"+std::to_string(pcevent.multi2),800,0,20000,600,-200,200,pcevent.Energy2,sx3z,"sx3_vs_pc_zcorr"); + plotter->Fill2D("pcdEA_vs_sx3z_strip="+std::to_string(sx3event.ch2)+"_a"+std::to_string(pcevent.multi1)+"_c"+std::to_string(pcevent.multi2),800,0,20000,600,-200,200,pcevent.Energy1,sx3z,"sx3_vs_pc_zcorr"); + + for(auto cc: cClusters) for(auto ac: aClusters) { plotter->Fill2D("pcz_sx3_phicut_a"+std::to_string(ac.size())+"_c"+std::to_string(cc.size())+"_sx3guess",300,0,200,600,-200,200,sx3z,pcevent.pos.Z(),"hPCZSX3"); if(ac.size()==2 && cc.size()==1) { plotter->Fill2D("pcz_sx3_phicut_a("+std::to_string(std::get<0>(ac.at(0)))+","+std::to_string(std::get<0>(ac.at(1)))+")_c"+std::to_string(std::get<0>(cc.at(0)))+"_sx3guess",300,0,200,600,-200,200,sx3z,pcevent.pos.Z(),"hPCZSX3"); plotter->Fill2D("a2c1_vs_sx3_strip",24,0,24,64,0,64,0.5*(std::get<0>(ac.at(0))+std::get<0>(ac.at(1))),sx3event.ch2,"hPCZSX3"); - plotter->Fill2D("sx3phi_vs_pcphi"+std::to_string(sx3event.Time1 - pcevent.Time1<-150)+"_a("+std::to_string(std::get<0>(ac.at(0)))+","+std::to_string(std::get<0>(ac.at(1)))+")_c"+std::to_string(std::get<0>(cc.at(0))),100,-360,360,100,-360,360,sx3event.pos.Phi()*180/M_PI,pcevent.pos.Phi()*180/M_PI); + //plotter->Fill2D("sx3phi_vs_pcphi"+std::to_string(sx3event.Time1 - pcevent.Time1<-150)+"_a("+std::to_string(std::get<0>(ac.at(0)))+","+std::to_string(std::get<0>(ac.at(1)))+")_c"+std::to_string(std::get<0>(cc.at(0))),100,-360,360,100,-360,360,sx3event.pos.Phi()*180/M_PI,pcevent.pos.Phi()*180/M_PI); } if(cc.size()==2 && ac.size()==1) { plotter->Fill2D("pcz_sx3_phicut_c("+std::to_string(std::get<0>(cc.at(0)))+","+std::to_string(std::get<0>(cc.at(1)))+")_a"+std::to_string(std::get<0>(ac.at(0)))+"_sx3guess",300,0,200,600,-200,200,sx3z,pcevent.pos.Z(),"hPCZSX3"); plotter->Fill2D("c2a1_vs_sx3_strip",24,0,24,64,0,64,0.5*(std::get<0>(cc.at(0))+std::get<0>(cc.at(1))),sx3event.ch2,"hPCZSX3"); plotter->Fill2D("sx3phi_vs_pcphi"+std::to_string(sx3event.Time1 - pcevent.Time1<-150)+"_c("+std::to_string(std::get<0>(cc.at(0)))+","+std::to_string(std::get<0>(cc.at(1)))+")_a"+std::to_string(std::get<0>(ac.at(0))),100,-360,360,100,-360,360,sx3event.pos.Phi()*180/M_PI,pcevent.pos.Phi()*180/M_PI); + plotter->Fill2D("pcz_vs_sx3z_2C1A_phiCut_TC"+std::to_string(PCSX3TimeCut),300,0,200,600,-400,400,sx3z,pcevent.pos.Z()); } - }*/ + if(ac.size()==1 && cc.size()==1) { + plotter->Fill2D("pcz_sx3_phicut_a("+std::to_string(std::get<0>(ac.at(0)))+")_c"+std::to_string(std::get<0>(cc.at(0)))+"_sx3guess",300,0,200,600,-200,200,sx3z,pcevent.pos.Z(),"hPCZSX3"); + //plotter->Fill2D("a2c1_vs_sx3_strip",24,0,24,64,0,64,0.5*(std::get<0>(ac.at(0))+std::get<0>(ac.at(1))),sx3event.ch2,"hPCZSX3"); + //plotter->Fill2D("sx3phi_vs_pcphi"+std::to_string(sx3event.Time1 - pcevent.Time1<-150)+"_a("+std::to_string(std::get<0>(ac.at(0)))+")_c"+std::to_string(std::get<0>(cc.at(0))),100,-360,360,100,-360,360,sx3event.pos.Phi()*180/M_PI,pcevent.pos.Phi()*180/M_PI); + } + + } + + bool sx3PhiCut = (TMath::Abs(sx3event.pos.Phi()-pcevent.pos.Phi()) < 45.0*M_PI/180.); + plotter->Fill1D("pcz_sx3Coinc_phiCut"+std::to_string(sx3PhiCut)+"_TC"+std::to_string(PCSX3TimeCut),300,0,200,sx3z); + plotter->Fill2D("pcz_vs_sx3z_phiCut"+std::to_string(sx3PhiCut)+"_TC"+std::to_string(PCSX3TimeCut),300,0,200,600,-400,400,sx3z,pcevent.pos.Z()); - plotter->Fill2D("pcz_vs_sx3z",300,0,200,600,-400,400,sx3z,pcevent.pos.Z()); plotter->Fill2D("sx3E_vs_sx3z"+std::to_string(sx3event.ch2),400,0,10,300,0,200,sx3event.Energy1*0.001,sx3z); + plotter->Fill2D("pcdEA_vs_sx3z",800,0,20000,300,0,200,pcevent.Energy1,sx3z); - plotter->Fill2D("pcdE2A_vs_sx3z",800,0,20000,300,0,200,pcevent.Energy1*sinTheta,sx3z); plotter->Fill2D("pcdEC_vs_sx3z",800,0,20000,300,0,200,pcevent.Energy2,sx3z); + + plotter->Fill2D("pcdEA_vs_sx3z"+std::to_string(sx3event.ch2),800,0,20000,300,0,200,pcevent.Energy1,sx3z,"pcE_vs_sx3pos"); + plotter->Fill2D("pcdEC_vs_sx3z"+std::to_string(sx3event.ch2),800,0,20000,300,0,200,pcevent.Energy2,sx3z,"pcE_vs_sx3pos"); + + plotter->Fill2D("pcdE2A_vs_sx3z",800,0,20000,300,0,200,pcevent.Energy1*sinTheta,sx3z); plotter->Fill2D("pcdE2C_vs_sx3z",800,0,20000,300,0,200,pcevent.Energy2*sinTheta,sx3z); plotter->Fill2D("phi_vs_stripnum",180,-180,180,48,0,48,pcevent.pos.Phi()*180./M_PI,sx3event.ch2); plotter->Fill2D("E_theta_AnodeSX3",200,80,180,300,0,15,sx3theta*180/M_PI,sx3event.Energy1*0.001); @@ -742,16 +820,17 @@ Bool_t MakeVertex::Process(Long64_t entry) if(PCSX3TimeCut) { plotter->Fill1D("PCZ_sx3",800,-200,200,pcevent.pos.Z(),"hPCZSX3"); plotter->Fill1D("PCZ",800,-200,200,pcevent.pos.Z(),"phicut"); - for(auto cc: cClusters) + /*for(auto cc: cClusters) for(auto ac: aClusters) { plotter->Fill1D("PCZsx3_phicut_a"+std::to_string(ac.size())+"_c"+std::to_string(cc.size()),800,-200,200,pcevent.pos.Z(),"hPCZSX3"); - } + }*/ } } for(auto pcevent: PC_Events) { for(auto qqqevent: QQQ_Events) { plotter->Fill1D("dt_pcA_qqqR",640,-2000,2000,qqqevent.Time1 - pcevent.Time1); + plotter->Fill2D("dt_pcA_qqqR_vs_qqqRE",640,-2000,2000,400,0,10,qqqevent.Time1-pcevent.Time1, qqqevent.Energy1); plotter->Fill1D("dt_pcC_qqqW",640,-2000,2000,qqqevent.Time2 - pcevent.Time2); plotter->Fill2D("phiPC_vs_phiQQQ",180,-360,360,180,-360,360,qqqevent.pos.Phi()*180/M_PI,pcevent.pos.Phi()*180/M_PI); double sinTheta = TMath::Sin((qqqevent.pos - TVector3(0,0,source_vertex)).Theta());///TMath::Sin((TVector3(51.5,0,128.) - TVector3(0,0,85)).Theta()); @@ -767,10 +846,14 @@ Bool_t MakeVertex::Process(Long64_t entry) plotter->Fill2D("dE_E_CathodeQQQR_inner",400,0,10,800,0,10000,qqqevent.Energy2,pcevent.Energy2); } + //bool timecut = (qqqevent.Time1 - pcevent.Time1 < -150); bool timecut = (qqqevent.Time1 - pcevent.Time1 < -150); if(timecut) {// && qqqevent.pos.Phi() <= pcevent.pos.Phi()+TMath::Pi()/4. && qqqevent.pos.Phi() >= pcevent.pos.Phi()-TMath::Pi()/4. ) { + plotter->Fill1D("dt_pcA_qqqR_timecut",640,-2000,2000,qqqevent.Time1 - pcevent.Time1); + plotter->Fill1D("dt_pcC_qqqW_timecut",640,-2000,2000,qqqevent.Time2 - pcevent.Time2); plotter->Fill2D("dE_theta_AnodeQQQR",75,0,90,400,0,20000,(qqqevent.pos - TVector3(0,0,source_vertex)).Theta()*180/M_PI,pcevent.Energy1); plotter->Fill2D("dE2_theta_AnodeQQQR",75,0,90,400,0,20000,(qqqevent.pos - TVector3(0,0,source_vertex)).Theta()*180/M_PI,pcevent.Energy1*sinTheta); + plotter->Fill2D("phiPC_vs_phiQQQ_TimeCut",180,-360,360,180,-360,360,qqqevent.pos.Phi()*180/M_PI,pcevent.pos.Phi()*180/M_PI); plotter->Fill2D("E_theta_AnodeQQQR",75,0,90,300,0,15,(qqqevent.pos - TVector3(0,0,source_vertex)).Theta()*180/M_PI,qqqevent.Energy1); plotter->Fill2D("E2_theta_AnodeQQQR",75,0,90,300,0,15,(qqqevent.pos - TVector3(0,0,source_vertex)).Theta()*180/M_PI,qqqevent.Energy1); @@ -813,7 +896,7 @@ Bool_t MakeVertex::Process(Long64_t entry) } } //HALFTIME! Can stop here in future versions - + return kTRUE; if (anodeHits.size() >= 1 && cathodeHits.size() >= 1) { // 2. CRITICAL FIX: Define reference vector 'a' @@ -1214,10 +1297,10 @@ Bool_t MakeVertex::Process(Long64_t entry) void MakeVertex::Terminate() { plotter->FlushToDisk(); - can1->Modified(); +/* can1->Modified(); can1->Update(); can2->Modified(); can2->Update(); while(can1->WaitPrimitive()); - while(can2->WaitPrimitive()); + while(can2->WaitPrimitive());*/ } diff --git a/obj/MakeVertex_C_ACLiC_dict00d744a117_dictContent.h b/obj/MakeVertex_C_ACLiC_dict00d744a117_dictContent.h new file mode 100644 index 0000000..e69de29 diff --git a/obj/MakeVertex_C_ACLiC_dict0cba032575_dictUmbrella.h b/obj/MakeVertex_C_ACLiC_dict0cba032575_dictUmbrella.h new file mode 100644 index 0000000..e69de29 diff --git a/obj/MakeVertex_C_ACLiC_dict1e1c8054ce_dictContent.h b/obj/MakeVertex_C_ACLiC_dict1e1c8054ce_dictContent.h new file mode 100644 index 0000000..e69de29 diff --git a/obj/MakeVertex_C_ACLiC_dict420c598f02_dictContent.h b/obj/MakeVertex_C_ACLiC_dict420c598f02_dictContent.h new file mode 100644 index 0000000..e69de29 diff --git a/obj/MakeVertex_C_ACLiC_dict6800af4871_dictUmbrella.h b/obj/MakeVertex_C_ACLiC_dict6800af4871_dictUmbrella.h new file mode 100644 index 0000000..e69de29 diff --git a/obj/MakeVertex_C_ACLiC_dict7025839a08_dictContent.h b/obj/MakeVertex_C_ACLiC_dict7025839a08_dictContent.h new file mode 100644 index 0000000..e69de29 diff --git a/obj/MakeVertex_C_ACLiC_dict93d96dc0c9_dictContent.h b/obj/MakeVertex_C_ACLiC_dict93d96dc0c9_dictContent.h new file mode 100644 index 0000000..e69de29 diff --git a/obj/MakeVertex_C_ACLiC_dict985ccb0fd3_dictUmbrella.h b/obj/MakeVertex_C_ACLiC_dict985ccb0fd3_dictUmbrella.h new file mode 100644 index 0000000..e69de29 diff --git a/obj/MakeVertex_C_ACLiC_dictae7bce7cde_dictUmbrella.h b/obj/MakeVertex_C_ACLiC_dictae7bce7cde_dictUmbrella.h new file mode 100644 index 0000000..e69de29 diff --git a/obj/MakeVertex_C_ACLiC_dictd376ed6c37_dictUmbrella.h b/obj/MakeVertex_C_ACLiC_dictd376ed6c37_dictUmbrella.h new file mode 100644 index 0000000..e69de29 diff --git a/obj/MakeVertex_C_ACLiC_dicte3ad3c1ac7_dictContent.h b/obj/MakeVertex_C_ACLiC_dicte3ad3c1ac7_dictContent.h new file mode 100644 index 0000000..e69de29 diff --git a/obj/MakeVertex_C_ACLiC_dictfd8acb7d8b_dictUmbrella.h b/obj/MakeVertex_C_ACLiC_dictfd8acb7d8b_dictUmbrella.h new file mode 100644 index 0000000..e69de29 diff --git a/run_sx3.sh b/run_sx3.sh index eaddbe3..1269c84 100644 --- a/run_sx3.sh +++ b/run_sx3.sh @@ -1,35 +1,76 @@ #Alpha runs at different spacer positions #rm results_run*.root -#root -q -l -x ../ANASEN_analysis/data/27Al_Data/Run_009_mapped.root -e 'tree->Process("MakeVertex.C+")'; mv Analyzer_SX3.root results_run09.root; -#root -q -l -x ../ANASEN_analysis/data/27Al_Data/Run_001_mapped.root -e 'tree->Process("MakeVertex.C+")'; mv Analyzer_SX3.root results_run01.root; -#root -q -l -x ../ANASEN_analysis/data/27Al_Data/Run_002_mapped.root -e 'tree->Process("MakeVertex.C+")'; mv Analyzer_SX3.root results_run02.root; -#root -q -l -x ../ANASEN_analysis/data/27Al_Data/Run_003_mapped.root -e 'tree->Process("MakeVertex.C+")'; mv Analyzer_SX3.root results_run03.root; -#root -q -l -x ../ANASEN_analysis/data/27Al_Data/Run_004_mapped.root -e 'tree->Process("MakeVertex.C+")'; mv Analyzer_SX3.root results_run04.root; +#root -q -l -x ../ANASEN_analysis/data/27Al_Data/Run_009_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run09.root; +#root -q -l -x ../ANASEN_analysis/data/27Al_Data/Run_001_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run01.root; +#root -q -l -x ../ANASEN_analysis/data/27Al_Data/Run_002_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run02.root; +#root -q -l -x ../ANASEN_analysis/data/27Al_Data/Run_003_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run03.root; +#root -q -l -x ../ANASEN_analysis/data/27Al_Data/Run_004_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run04.root; #alpha+gas 27Al -root -q -b -x ../ANASEN_analysis/data/27Al_Data/Run_009_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run09.root; -root -q -b -x ../ANASEN_analysis/data/27Al_Data/Run_012_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run12.root; +export DATASET="26Al" +export flip180="0" +#root -q -b -x ../ANASEN_analysis/data/27Al_Data/Run_009_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run09.root; +#root -q -b -x ../ANASEN_analysis/data/27Al_Data/Run_012_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run12.root; +#root -q -b -x ../ANASEN_analysis/data/27Al_Data/Run_013_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run13.root; +#exit #protons+gas, 27Al -root -q -b -x ../ANASEN_analysis/data/27Al_Data/Run_022_mapped.root -e 'tree->Process("MakeVertex.C+")'; mv Analyzer_SX3.root results_run22.root; -#root -q -b -x ../ANASEN_analysis/data/27Al_Data/Run_021_mapped.root -e 'tree->Process("MakeVertex.C+")'; mv Analyzer_SX3.root results_run21.root; +export flip180="1" +#root -q -b -x ../ANASEN_analysis/data/27Al_Data/Run_015_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run15.root; +#root -q -b -x ../ANASEN_analysis/data/27Al_Data/Run_017_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run17.root; +#root -q -b -x ../ANASEN_analysis/data/27Al_Data/Run_018_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run18.root; +#root -q -b -x ../ANASEN_analysis/data/27Al_Data/Run_019_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run19.root; +#root -q -b -x ../ANASEN_analysis/data/27Al_Data/Run_020_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run20.root; +#root -q -b -x ../ANASEN_analysis/data/27Al_Data/Run_021_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run21.root; +#root -q -b -x ../ANASEN_analysis/data/27Al_Data/Run_022_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run22.root; +#exit #27Al reaction data -#root -b -q -l -x ../ANASEN_analysis/data/27Al_Data/Run_051_mapped.root -e 'tree->Process("MakeVertex.C+")'; mv Analyzer_SX3.root results_run51.root; -#root -b -q -l -x ../ANASEN_analysis/data/27Al_Data/Run_078_mapped.root -e 'tree->Process("MakeVertex.C+")'; mv Analyzer_SX3.root results_run78.root; -#root -b -q -l -x ../ANASEN_analysis/data/27Al_Data/Run_081_mapped.root -e 'tree->Process("MakeVertex.C+")'; mv Analyzer_SX3.root results_run81.root; +#root -b -q -l -x ../ANASEN_analysis/data/27Al_Data/Run_051_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run51.root; +#root -b -q -l -x ../ANASEN_analysis/data/27Al_Data/Run_078_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run78.root; +#root -b -q -l -x ../ANASEN_analysis/data/27Al_Data/Run_081_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run81.root; #root -l -x results_run19.root results_run12.root -e "new TBrowser" +#exit +export DATASET="17F" +export flip180="0" +#root -q -l -b -x ../ANASEN_analysis/data/17F_Data/Source_005_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run05.root; +#root -q -l -b -x ../ANASEN_analysis/data/17F_Data/Source_006_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run06.root; +#root -q -l -b -x ../ANASEN_analysis/data/17F_Data/Source_007_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run07.root; +#root -q -l -b -x ../ANASEN_analysis/data/17F_Data/Source_008_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run08.root; +#root -q -l -b -x ../ANASEN_analysis/data/17F_Data/Source_009_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run09.root; +#root -q -l -b -x ../ANASEN_analysis/data/17F_Data/Source_010_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run10.root; +#root -q -l -b -x ../ANASEN_analysis/data/17F_Data/Source_011_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run11.root; +#root -q -l -b -x ../ANASEN_analysis/data/17F_Data/Source_012_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run12.root; +#root -q -l -b -x ../ANASEN_analysis/data/17F_Data/Source_013_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run13.root; +#root -q -l -b -x ../ANASEN_analysis/data/17F_Data/Source_014_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run14.root; #17F pulser runs -#root -q -l -b -x ../ANASEN_analysis/data/17F_Data/PulserRun_015_mapped.root -e 'tree->Process("MakeVertex.C+")'; mv Analyzer_SX3.root results_run15.root; -#root -q -l -b -x ../ANASEN_analysis/data/17F_Data/PulserRun_016_mapped.root -e 'tree->Process("MakeVertex.C+")'; mv Analyzer_SX3.root results_run16.root; -#root -q -l -b -x ../ANASEN_analysis/data/17F_Data/PulserRun_017_mapped.root -e 'tree->Process("MakeVertex.C+")'; mv Analyzer_SX3.root results_run17.root; +#root -q -l -b -x ../ANASEN_analysis/data/17F_Data/PulserRun_015_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run15.root; +#root -q -l -b -x ../ANASEN_analysis/data/17F_Data/PulserRun_016_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run16.root; +#root -q -l -b -x ../ANASEN_analysis/data/17F_Data/PulserRun_017_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run17.root; #17F alpha run with gas -root -q -l -b -x ../ANASEN_analysis/data/17F_Data/SourceRun_018_mapped.root -e 'tree->Process("MakeVertex.C+")'; mv Analyzer_SX3.root results_run18.root; -root -q -l -b -x ../ANASEN_analysis/data/17F_Data/SourceRun_019_mapped.root -e 'tree->Process("MakeVertex.C+")'; mv Analyzer_SX3.root results_run19.root; -root -q -l -b -x ../ANASEN_analysis/data/17F_Data/SourceRun_020_mapped.root -e 'tree->Process("MakeVertex.C+")'; mv Analyzer_SX3.root results_run20.root; -root -q -l -b -x ../ANASEN_analysis/data/17F_Data/SourceRun_021_mapped.root -e 'tree->Process("MakeVertex.C+")'; mv Analyzer_SX3.root results_run21.root; -#root -q -l -b -x ../ANASEN_analysis/data/17F_Data/Run_104_mapped.root -e 'tree->Process("MakeVertex.C+")'; mv Analyzer_SX3.root results_run104.root; +#root -q -l -b -x ../ANASEN_analysis/data/17F_Data/SourceRun_018_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run18.root; +#root -q -l -b -x ../ANASEN_analysis/data/17F_Data/SourceRun_019_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run19.root; +#root -q -l -b -x ../ANASEN_analysis/data/17F_Data/SourceRun_020_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run20.root; +#root -q -l -b -x ../ANASEN_analysis/data/17F_Data/SourceRun_021_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run21.root; + +#17F reaction data +export flip180="1" +#export source_vertex=-57.28; root -q -l -b -x ../ANASEN_analysis/data/17F_Data/ProtonRun_035_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run35.root; +export source_vertex=-8.28; root -q -l -b -x ../ANASEN_analysis/data/17F_Data/ProtonRun_036_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root resulrs_run36.root; +export source_vertex=-27.88; root -q -l -b -x ../ANASEN_analysis/data/17F_Data/ProtonRun_037_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run37.root; +export source_vertex=11.32; root -q -l -b -x ../ANASEN_analysis/data/17F_Data/ProtonRun_038_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run38.root; +export source_vertex=30.92; root -q -l -b -x ../ANASEN_analysis/data/17F_Data/ProtonRun_039_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run39.root; +export source_vertex=50.52; root -q -l -b -x ../ANASEN_analysis/data/17F_Data/ProtonRun_041_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run41.root; +export source_vertex=70.12; root -q -l -b -x ../ANASEN_analysis/data/17F_Data/ProtonRun_042_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run42.root; +export source_vertex=109.32; root -q -l -b -x ../ANASEN_analysis/data/17F_Data/ProtonRun_043_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run43.root; +#root -q -l -b -x ../ANASEN_analysis/data/17F_Data/ProtonRun_043_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run43.root; +#root -q -l -b -x ../ANASEN_analysis/data/17F_Data/Run_099_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run99.root; +#root -q -l -b -x ../ANASEN_analysis/data/17F_Data/Run_104_mapped.root -e 'tree->Process("MakeVertex.C+O")'; mv Analyzer_SX3.root results_run104.root; #mv Analyzer_SX3.root results_run19.root; + +unset souce_vertex +unset DATASET +unset flip180 diff --git a/scratch/flip_anode.h b/scratch/flip_anode.h new file mode 100644 index 0000000..e69de29 diff --git a/scratch/flip_cathode.h b/scratch/flip_cathode.h new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/scratch/flip_cathode.h @@ -0,0 +1 @@ + diff --git a/scratch/flip_offset_scans/scan_offset.C b/scratch/flip_offset_scans/scan_offset.C new file mode 100644 index 0000000..4156e8e --- /dev/null +++ b/scratch/flip_offset_scans/scan_offset.C @@ -0,0 +1,38 @@ +int quit=0; +void handler(int){quit=1;} + +void scan_offset(){ + signal(SIGINT,handler); + TCanvas c("c1","c1",0,0,1600,800); + c.Divide(2,1); + for(int i=0; i<=23; i++) { + auto c1=c.cd(1); + c1->SetGrid(1,1); + TFile *f = new TFile(Form("results_run12_anodeoffset%d.root",i)); + //TH2F *h2 = (TH2F*)(f->Get("phicut/pczguess_vs_pc_int")); + TH2F *h2 = (TH2F*)(f->Get("pcz_vs_sx3z")); +// TH2F *h2 = (TH2F*)(f->Get("hPCQQQ/PC_XY_Projection_QQQ2")); + if(!h2) continue; + h2->SetTitle(Form("case%d",i)); + h2->Draw("colz"); + c1->Modified(); + c1->Update(); + + auto c2=c.cd(2); + c2->SetGrid(1,1); + + TH2F *h3 = (TH2F*)(f->Get("sx3phi_vs_pcphi1")); +// TH2F *h2 = (TH2F*)(f->Get("hPCQQQ/PC_XY_Projection_QQQ2")); + if(!h3) continue; + h3->SetTitle(Form("case%d",i)); + h3->Draw("colz"); + c2->Modified(); + c2->Update(); + + while(gPad->WaitPrimitive()); + + f->Close(); + if(i==23) i=0; + if(quit) break; + } +} diff --git a/scratch/flipscan_anode.sh b/scratch/flipscan_anode.sh new file mode 100644 index 0000000..5e86da8 --- /dev/null +++ b/scratch/flipscan_anode.sh @@ -0,0 +1,11 @@ +declare -i i=0 +while [[ $i -lt 24 ]]; do + cd .. + export flipa=$i + bash run_sx3.sh + cp results_run12.root results_run12_noflip_anodeoffset$i.root + #cp results_run21.root results_run21_anodeoffset$i.root + cd - + i=i+1 +done +unset flipa diff --git a/scratch/flipscan_cathode.sh b/scratch/flipscan_cathode.sh new file mode 100644 index 0000000..d0a90bf --- /dev/null +++ b/scratch/flipscan_cathode.sh @@ -0,0 +1,11 @@ +declare -i i=0 +while [[ $i -lt 24 ]]; do + cd .. + export flipc=$i + bash run_sx3.sh + cp results_run12.root results_run12_noflip_cathodeoffset$i.root + #cp results_run21.root results_run21_noflip_cathodeoffset$i.root + cd - + i=i+1 +done +unset flipc diff --git a/scratch/noflip_offset_scans/scan_offset.C b/scratch/noflip_offset_scans/scan_offset.C new file mode 100644 index 0000000..7437a71 --- /dev/null +++ b/scratch/noflip_offset_scans/scan_offset.C @@ -0,0 +1,22 @@ +int quit=0; +void handler(int){quit=1;} + +void scan_offset(){ + signal(SIGINT,handler); + for(int i=0; i<=23; i++) { + TFile *f = new TFile(Form("results_run12_noflip_anodeoffset%d.root",i)); + //TH2F *h2 = (TH2F*)(f->Get("phicut/pczguess_vs_pc_int")); + TH2F *h2 = (TH2F*)(f->Get("pcz_vs_sx3z")); +// TH2F *h2 = (TH2F*)(f->Get("hPCQQQ/PC_XY_Projection_QQQ2")); + if(!h2) continue; + h2->SetTitle(Form("case%d",i)); + h2->Draw("colz"); + gPad->Modified(); + gPad->Update(); + while(gPad->WaitPrimitive()); + + f->Close(); + if(i==23) i=0; + if(quit) break; + } +} diff --git a/scratch/sx3z_vs_phiz/scan_offset.C b/scratch/sx3z_vs_phiz/scan_offset.C new file mode 100644 index 0000000..2da4eb9 --- /dev/null +++ b/scratch/sx3z_vs_phiz/scan_offset.C @@ -0,0 +1,40 @@ +int quit=0; +void handler(int){quit=1;} + +void scan_offset(){ + signal(SIGINT,handler); + TCanvas c("c1","c1",0,0,1600,800); + c.Divide(2,1); + for(int i=36; i<=43; i++) { + auto c1=c.cd(1); + c1->SetGrid(1,1); + TFile *f = new TFile(Form("../../results_run%d.root",i)); + //TH2F *h2 = (TH2F*)(f->Get("phicut/pczguess_vs_pc_int")); + TH2F *h2 = (TH2F*)(f->Get("pcz_vs_sx3z_phiCut1_TC1")); +// TH2F *h2 = (TH2F*)(f->Get("pcz_vs_sx3z_2C1A_phiCut_TC1")); + //TH1F *h2 = (TH1F*)(f->Get("pcz_sx3Coinc_phiCut1_TC1")); +// TH2F *h2 = (TH2F*)(f->Get("hPCQQQ/PC_XY_Projection_QQQ2")); + if(!h2) continue; + h2->SetTitle(Form("case%d",i)); + h2->Draw("colz"); + c1->Modified(); + c1->Update(); + + auto c2=c.cd(2); + c2->SetGrid(1,1); + + TH2F *h3 = (TH2F*)(f->Get("sx3phi_vs_pcphi1")); +// TH2F *h2 = (TH2F*)(f->Get("hPCQQQ/PC_XY_Projection_QQQ2")); + if(!h3) continue; + h3->SetTitle(Form("case%d",i)); + h3->Draw("colz"); + c2->Modified(); + c2->Update(); + + while(gPad->WaitPrimitive()); + + f->Close(); + if(i==43) i=35; + if(quit) break; + } +} diff --git a/scratch/wire#_vs_sx3zphi/scan_offset.C b/scratch/wire#_vs_sx3zphi/scan_offset.C new file mode 100644 index 0000000..5973732 --- /dev/null +++ b/scratch/wire#_vs_sx3zphi/scan_offset.C @@ -0,0 +1,38 @@ +int quit=0; +void handler(int){quit=1;} + +void scan_offset(){ + signal(SIGINT,handler); + TCanvas c("c1","c1",0,0,1600,800); + c.Divide(1,1); + for(int i=0; i<=23; i++) { + auto c1=c.cd(1); + c1->SetGrid(1,1); + TFile *f = new TFile(Form("../../results_run21.root")); + //TH2F *h2 = (TH2F*)(f->Get("phicut/pczguess_vs_pc_int")); + TH2F *h2 = (TH2F*)(f->Get(std::string("sx3_z_phi2_awire"+std::to_string(i)).c_str())); +// TH2F *h2 = (TH2F*)(f->Get("hPCQQQ/PC_XY_Projection_QQQ2")); + if(!h2) continue; + h2->SetTitle(Form("anode_wire%d",i)); + h2->Draw("colz"); + c1->Modified(); + c1->Update(); + +/* auto c2=c.cd(2); + c2->SetGrid(1,1); + + TH2F *h3 = (TH2F*)(f->Get("sx3phi_vs_pcphi1")); +// TH2F *h2 = (TH2F*)(f->Get("hPCQQQ/PC_XY_Projection_QQQ2")); + if(!h3) continue; + h3->SetTitle(Form("case%d",i)); + h3->Draw("colz"); + c2->Modified(); + c2->Update();*/ + + while(gPad->WaitPrimitive()); + + f->Close(); + if(i==23) i=0; + if(quit) break; + } +} diff --git a/scratch/wire#_vs_sx3zphi/scan_offset_c.C b/scratch/wire#_vs_sx3zphi/scan_offset_c.C new file mode 100644 index 0000000..81e3bf4 --- /dev/null +++ b/scratch/wire#_vs_sx3zphi/scan_offset_c.C @@ -0,0 +1,38 @@ +int quit=0; +void handler(int){quit=1;} + +void scan_offset_c(){ + signal(SIGINT,handler); + TCanvas c("c1","c1",0,0,1600,800); + c.Divide(1,1); + for(int i=0; i<=23; i++) { + auto c1=c.cd(1); + c1->SetGrid(1,1); + TFile *f = new TFile(Form("../../results_run21.root")); + //TH2F *h2 = (TH2F*)(f->Get("phicut/pczguess_vs_pc_int")); + TH2F *h2 = (TH2F*)(f->Get(std::string("sx3_z_phi2_cwire"+std::to_string(i)).c_str())); +// TH2F *h2 = (TH2F*)(f->Get("hPCQQQ/PC_XY_Projection_QQQ2")); + if(!h2) continue; + h2->SetTitle(Form("cathode_wire%d",i)); + h2->Draw("colz"); + c1->Modified(); + c1->Update(); + +/* auto c2=c.cd(2); + c2->SetGrid(1,1); + + TH2F *h3 = (TH2F*)(f->Get("sx3phi_vs_pcphi1")); +// TH2F *h2 = (TH2F*)(f->Get("hPCQQQ/PC_XY_Projection_QQQ2")); + if(!h3) continue; + h3->SetTitle(Form("case%d",i)); + h3->Draw("colz"); + c2->Modified(); + c2->Update();*/ + + while(gPad->WaitPrimitive()); + + f->Close(); + if(i==23) i=0; + if(quit) break; + } +} diff --git a/sx3cal/17F/backgains.dat b/sx3cal/17F/backgains.dat index 11f9c8e..88dfa59 100644 --- a/sx3cal/17F/backgains.dat +++ b/sx3cal/17F/backgains.dat @@ -1,23 +1,26 @@ -1 front 1 back 2 4.4094 -1 front 1 back 1 4.4094 -1 front 2 back 2 4.4832 -1 front 3 back 2 4.52103 -1 front 3 back 1 4.5210 -3 front 1 back 2 3.63215 -3 front 1 back 1 3.70756 -3 front 2 back 2 3.68208 -3 front 2 back 1 3.86817 -3 front 3 back 2 3.7334 -3 front 3 back 1 3.70756 -7 front 1 back 2 3.60769 -7 front 1 back 1 3.46759 -7 front 2 back 2 3.58356 -7 front 2 back 1 3.49018 -7 front 3 back 2 3.60769 -7 front 3 back 1 3.46759 -9 front 1 back 2 3.58356 -9 front 1 back 1 3.44529 -9 front 2 back 2 3.58356 -9 front 2 back 1 3.46759 -9 front 3 back 2 3.63215 -9 front 3 back 1 3.46759 +1 front 0 back 2 4.1692 +1 front 1 back 2 4.13701 +1 front 2 back 2 4.26886 +1 front 3 back 2 4.26886 +3 front 1 back 2 3.31729 +3 front 1 back 1 3.33796 +3 front 2 back 2 3.35889 +3 front 2 back 1 3.49018 +3 front 3 back 2 3.38008 +3 front 3 back 1 3.35889 +7 front 0 back 2 3.25679 +7 front 0 back 1 3.08785 +7 front 1 back 2 3.25679 +7 front 1 back 1 3.14218 +7 front 2 back 2 3.29688 +7 front 2 back 1 3.16072 +7 front 3 back 2 3.29688 +7 front 3 back 1 3.12386 +9 front 0 back 2 3.25679 +9 front 0 back 1 3.10575 +9 front 1 back 2 3.27671 +9 front 1 back 1 3.12386 +9 front 2 back 2 3.29688 +9 front 2 back 1 3.14218 +9 front 3 back 2 3.29688 +9 front 3 back 1 3.10575 diff --git a/sx3cal/17F/frontgains.dat b/sx3cal/17F/frontgains.dat index 494b776..6cf56c0 100644 --- a/sx3cal/17F/frontgains.dat +++ b/sx3cal/17F/frontgains.dat @@ -1,12 +1,15 @@ -1 lengthcal front 1 1.5121 60.4839 -1 lengthcal front 2 -1.5625 62.5 -1 lengthcal front 3 2.72177 60.4839 -3 lengthcal front 1 -0.595088 59.5088 -3 lengthcal front 2 -4.53935 58.5723 -3 lengthcal front 3 4.08107 60.4603 -7 lengthcal front 1 1.14329 45.7317 -7 lengthcal front 2 0.115661 46.2646 -7 lengthcal front 3 2.90179 44.6429 -9 lengthcal front 1 0.115732 46.2928 -9 lengthcal front 2 0.799176 45.6672 -9 lengthcal front 3 1.68159 48.0453 +1 lengthcal front 0 0.302419 60.4839 +1 lengthcal front 1 0.907258 60.4839 +1 lengthcal front 2 -2.11694 60.4839 +1 lengthcal front 3 3.32661 60.4839 +3 lengthcal front 1 -0.302419 60.4839 +3 lengthcal front 2 -3.12146 59.4564 +3 lengthcal front 3 5.3066 62.4306 +7 lengthcal front 0 0.225805 45.1611 +7 lengthcal front 1 1.85157 46.2892 +7 lengthcal front 2 0.936622 46.8311 +7 lengthcal front 3 3.65527 45.6909 +9 lengthcal front 0 2.10806 46.8457 +9 lengthcal front 1 0.694127 46.2751 +9 lengthcal front 2 1.04095 46.2646 +9 lengthcal front 3 1.99048 46.8348 diff --git a/sx3cal/17F/rightgains.dat b/sx3cal/17F/rightgains.dat index 1a4f5c7..e74d0cd 100644 --- a/sx3cal/17F/rightgains.dat +++ b/sx3cal/17F/rightgains.dat @@ -1,16 +1,16 @@ -1 0 1678.38 1.0 -1 1 1678.38 1.07163 -1 2 1693.99 1.1035 -1 3 1667.9 0.975015 -3 0 1597.96 1.0 -3 1 1597.96 1.02536 -3 2 1821.48 1.29182 -3 3 1607.52 0.928543 -7 0 1773.34 1. -7 1 1773.34 1.14263 -7 2 1573.79 1.06715 -7 3 1542.41 0.956475 -9 0 1555.08 1. -9 1 1555.08 0.998252 -9 2 1559.36 1.00299 -9 3 1585.79 1.01582 +1 0 1239.16 0.649287 +1 1 1853.11 1.08968 +1 2 1852.65 1.10279 +1 3 1821.01 0.965101 +3 0 1749.6 1. +3 1 1749.6 1.01204 +3 2 1954.81 1.23687 +3 3 1751.15 0.904329 +9 0 1838.02 1.07361 +9 1 1695.51 0.971866 +9 2 1709.36 0.988575 +9 3 1719.37 0.982937 +7 0 1787.9 1.02266 +7 1 1924.89 1.10649 +7 2 1706.01 1.03175 +7 3 1685.88 0.933633 diff --git a/sx3cal/EXFit.C b/sx3cal/EXFit.C old mode 100755 new mode 100644 index c673b76..b09a547 --- a/sx3cal/EXFit.C +++ b/sx3cal/EXFit.C @@ -1,6 +1,6 @@ { - int index = 1; - TFile *f = new TFile("../results_run19.root"); + int index = 9; + TFile *f = new TFile("../results_run10.root"); TH2F *h2=NULL; TH1F *h1x=NULL, *h1y=NULL; //f->cd("evsx"); @@ -11,7 +11,7 @@ std::ofstream ofb(Form("backgains%d.dat",index)); std::ofstream off(Form("frontgains%d.dat",index)); - for(int i=1; i<4; i++) { + for(int i=0; i<4; i++) { //do it for pad#2 int backnum=2; h2 = (TH2F*)(f->Get(Form("evsx/be_vs_x_sx3_id_%d_f%d_b%d",index,i,backnum))); diff --git a/sx3cal/LRFit.C b/sx3cal/LRFit.C old mode 100755 new mode 100644 index 3ec36e1..94bd7c6 --- a/sx3cal/LRFit.C +++ b/sx3cal/LRFit.C @@ -1,10 +1,10 @@ { - TFile *f = new TFile("../results_run19.root"); + TFile *f = new TFile("../results_run10.root"); f->cd("l_vs_r"); gDirectory->ls(); - int clkpos = 13; + int clkpos = 9; std::ofstream ofile(Form("rightgains%d.dat",clkpos)); - for(int i=1; i<4; i++) { + for(int i=0; i<4; i++) { TH2F h2(*(TH2F*)(f->Get(Form("l_vs_r/l_vs_r_sx3_id_%d_f%d",clkpos,i)))); h2.Draw(); diff --git a/sx3cal/backgains.dat.unity b/sx3cal/backgains.dat.unity old mode 100755 new mode 100644 diff --git a/sx3cal/backgains1.dat b/sx3cal/backgains1.dat index bdd8d85..658e494 100644 --- a/sx3cal/backgains1.dat +++ b/sx3cal/backgains1.dat @@ -1,3 +1,4 @@ -1 front 1 back 2 4.4094 -1 front 2 back 2 4.4832 -1 front 3 back 2 4.52103 +1 front 0 back 2 4.1692 +1 front 1 back 2 4.13701 +1 front 2 back 2 4.26886 +1 front 3 back 2 4.26886 diff --git a/sx3cal/backgains3.dat b/sx3cal/backgains3.dat new file mode 100644 index 0000000..57b6e21 --- /dev/null +++ b/sx3cal/backgains3.dat @@ -0,0 +1,6 @@ +3 front 1 back 2 3.31729 +3 front 1 back 1 3.33796 +3 front 2 back 2 3.35889 +3 front 2 back 1 3.49018 +3 front 3 back 2 3.38008 +3 front 3 back 1 3.35889 diff --git a/sx3cal/backgains7.dat b/sx3cal/backgains7.dat new file mode 100644 index 0000000..da5ecb2 --- /dev/null +++ b/sx3cal/backgains7.dat @@ -0,0 +1,8 @@ +7 front 0 back 2 3.25679 +7 front 0 back 1 3.08785 +7 front 1 back 2 3.25679 +7 front 1 back 1 3.14218 +7 front 2 back 2 3.29688 +7 front 2 back 1 3.16072 +7 front 3 back 2 3.29688 +7 front 3 back 1 3.12386 diff --git a/sx3cal/backgains9.dat b/sx3cal/backgains9.dat index a062ce0..70ea9c9 100644 --- a/sx3cal/backgains9.dat +++ b/sx3cal/backgains9.dat @@ -1,6 +1,8 @@ -9 front 1 back 2 3.58356 -9 front 1 back 1 3.44529 -9 front 2 back 2 3.58356 -9 front 2 back 1 3.46759 -9 front 3 back 2 3.63215 -9 front 3 back 1 3.46759 +9 front 0 back 2 3.25679 +9 front 0 back 1 3.10575 +9 front 1 back 2 3.27671 +9 front 1 back 1 3.12386 +9 front 2 back 2 3.29688 +9 front 2 back 1 3.14218 +9 front 3 back 2 3.29688 +9 front 3 back 1 3.10575 diff --git a/sx3cal/frontgains.dat.unity b/sx3cal/frontgains.dat.unity old mode 100755 new mode 100644 diff --git a/sx3cal/frontgains1.dat b/sx3cal/frontgains1.dat index ec327e5..7098a4f 100644 --- a/sx3cal/frontgains1.dat +++ b/sx3cal/frontgains1.dat @@ -1,3 +1,4 @@ -1 lengthcal front 1 1.5121 60.4839 -1 lengthcal front 2 -1.5625 62.5 -1 lengthcal front 3 2.72177 60.4839 +1 lengthcal front 0 0.302419 60.4839 +1 lengthcal front 1 0.907258 60.4839 +1 lengthcal front 2 -2.11694 60.4839 +1 lengthcal front 3 3.32661 60.4839 diff --git a/sx3cal/frontgains3.dat b/sx3cal/frontgains3.dat new file mode 100644 index 0000000..5fcc797 --- /dev/null +++ b/sx3cal/frontgains3.dat @@ -0,0 +1,3 @@ +3 lengthcal front 1 -0.302419 60.4839 +3 lengthcal front 2 -3.12146 59.4564 +3 lengthcal front 3 5.3066 62.4306 diff --git a/sx3cal/frontgains7.dat b/sx3cal/frontgains7.dat new file mode 100644 index 0000000..af2f30a --- /dev/null +++ b/sx3cal/frontgains7.dat @@ -0,0 +1,4 @@ +7 lengthcal front 0 0.225805 45.1611 +7 lengthcal front 1 1.85157 46.2892 +7 lengthcal front 2 0.936622 46.8311 +7 lengthcal front 3 3.65527 45.6909 diff --git a/sx3cal/frontgains9.dat b/sx3cal/frontgains9.dat index e558d92..9ce48ab 100644 --- a/sx3cal/frontgains9.dat +++ b/sx3cal/frontgains9.dat @@ -1,3 +1,4 @@ -9 lengthcal front 1 0.115732 46.2928 -9 lengthcal front 2 0.799176 45.6672 -9 lengthcal front 3 1.68159 48.0453 +9 lengthcal front 0 2.10806 46.8457 +9 lengthcal front 1 0.694127 46.2751 +9 lengthcal front 2 1.04095 46.2646 +9 lengthcal front 3 1.99048 46.8348 diff --git a/sx3cal/rightgains.dat.unity b/sx3cal/rightgains.dat.unity old mode 100755 new mode 100644 diff --git a/sx3cal/rightgains1.dat b/sx3cal/rightgains1.dat index 5e93f7e..a4292cd 100644 --- a/sx3cal/rightgains1.dat +++ b/sx3cal/rightgains1.dat @@ -1,3 +1,4 @@ -1 1 1678.38 1.07163 -1 2 1693.99 1.1035 -1 3 1667.9 0.975015 +1 0 1239.16 0.649287 +1 1 1853.11 1.08968 +1 2 1852.65 1.10279 +1 3 1821.01 0.965101 diff --git a/sx3cal/rightgains3.dat b/sx3cal/rightgains3.dat new file mode 100644 index 0000000..716eb0e --- /dev/null +++ b/sx3cal/rightgains3.dat @@ -0,0 +1,3 @@ +3 1 1749.6 1.01204 +3 2 1954.81 1.23687 +3 3 1751.15 0.904329 diff --git a/sx3cal/rightgains7.dat b/sx3cal/rightgains7.dat new file mode 100644 index 0000000..e869b10 --- /dev/null +++ b/sx3cal/rightgains7.dat @@ -0,0 +1,4 @@ +7 0 1787.9 1.02266 +7 1 1924.89 1.10649 +7 2 1706.01 1.03175 +7 3 1685.88 0.933633 diff --git a/sx3cal/rightgains9.dat b/sx3cal/rightgains9.dat index 93ad2b1..d5ef843 100644 --- a/sx3cal/rightgains9.dat +++ b/sx3cal/rightgains9.dat @@ -1,3 +1,4 @@ -9 1 1555.08 0.998252 -9 2 1559.36 1.00299 -9 3 1585.79 1.01582 +9 0 1838.02 1.07361 +9 1 1695.51 0.971866 +9 2 1709.36 0.988575 +9 3 1719.37 0.982937