diff --git a/TNeAnalysis.cxx b/TNeAnalysis.cxx index e457c0cd89b2f516e8c91b92adc51fd3e6fec3b2..8b3b04559fa99455db4e8867f1d0e4cb16bffd64 100644 --- a/TNeAnalysis.cxx +++ b/TNeAnalysis.cxx @@ -31,11 +31,13 @@ TNeAnalysis::TNeAnalysis() ,p_Lya(0) ,p_Rxa(0) ,p_Rya(0) - ,p_RVa(0) - ,p_R60a(0) + ,p_Rva(0) + ,p_R20a(0) ,p_AnSa(0) ,p_AnRa(0) ,p_AnVa(0) + ,p_Rcsa(0) + ,p_Lcsa(0) { } //*********************************************************** @@ -50,11 +52,13 @@ TNeAnalysis::TNeAnalysis(int argc, char** argv) ,p_Lya(0) ,p_Rxa(0) ,p_Rya(0) - ,p_RVa(0) - ,p_R60a(0) + ,p_Rva(0) + ,p_R20a(0) ,p_AnSa(0) ,p_AnRa(0) ,p_AnVa(0) + ,p_Rcsa(0) + ,p_Lcsa(0) { cout << "**** Create TNeAnalysis name: " << argv[0] << endl; @@ -102,20 +106,24 @@ TNeAnalysis::TNeAnalysis(int argc, char** argv) p_Lya = new TNeDet16("Lya"); p_Rxa = new TNeDet16("Rxa"); p_Rya = new TNeDet16("Rya"); - p_RVa = new TNeDet16("RVa"); - p_R60a = new TNeDet16("R60a"); + p_Rva = new TNeDet16("Rva"); + p_R20a = new TNeDet16("R20a"); p_AnSa = new TNeDet16("AnSa"); p_AnRa = new TNeDet16("AnRa"); p_AnVa = new TNeDet16("AnVa"); + p_Rcsa = new TNeDet16("Rcsa"); + p_Lcsa = new TNeDet16("Lcsa"); AddParameter(p_Lxa); AddParameter(p_Lya); AddParameter(p_Rxa); AddParameter(p_Rya); - AddParameter(p_RVa); - AddParameter(p_R60a); + AddParameter(p_Rva); + AddParameter(p_R20a); AddParameter(p_AnSa); AddParameter(p_AnRa); AddParameter(p_AnVa); + AddParameter(p_Rcsa); + AddParameter(p_Lcsa); // pMTracks = new TNeMParms("MTRACKS"); // AddParameter(pMTracks); @@ -158,11 +166,13 @@ Int_t TNeAnalysis::UserPreLoop() p_Lya->ReadData(); p_Rxa->ReadData(); p_Rya->ReadData(); - p_RVa->ReadData(); - p_R60a->ReadData(); + p_Rva->ReadData(); + p_R20a->ReadData(); p_AnSa->ReadData(); p_AnRa->ReadData(); p_AnVa->ReadData(); + p_Rcsa->ReadData(); + p_Lcsa->ReadData(); return 0; diff --git a/TNeAnalysis.h b/TNeAnalysis.h index 1494e4fcaa93e6014e57d3cd08f6b91bd1e50e6f..3d0040d8d5dea5395caf019279e6122edc99fad7 100644 --- a/TNeAnalysis.h +++ b/TNeAnalysis.h @@ -33,11 +33,13 @@ public: TNeDet16* p_Lya; TNeDet16* p_Rxa; TNeDet16* p_Rya; - TNeDet16* p_RVa; - TNeDet16* p_R60a; + TNeDet16* p_Rva; + TNeDet16* p_R20a; TNeDet16* p_AnSa; TNeDet16* p_AnRa; TNeDet16* p_AnVa; + TNeDet16* p_Rcsa; + TNeDet16* p_Lcsa; // TNeMParms* pMTracks; ClassDef(TNeAnalysis,1) diff --git a/TNeEvent.cxx b/TNeEvent.cxx index b6100d32937cb114233081d9a08b32592e90ad69..b6bc56b49502c28ab6d6e6582b2332a464842617 100644 --- a/TNeEvent.cxx +++ b/TNeEvent.cxx @@ -42,8 +42,8 @@ void TNeEvent::Clear(Option_t *t) memset(Rxt, 0, sizeof(Rxt)); memset(Rya, 0, sizeof(Rya)); memset(Ryt, 0, sizeof(Ryt)); - memset(RVa, 0, sizeof(RVa)); - memset(RVt, 0, sizeof(RVt)); + memset(Rva, 0, sizeof(Rva)); + memset(Rvt, 0, sizeof(Rvt)); memset(R20a, 0, sizeof(R20a)); memset(R20t, 0, sizeof(R20t)); memset(AnSa, 0, sizeof(AnSa)); diff --git a/TNeEvent.h b/TNeEvent.h index 0df56609f8f0bdc92f45d4faf9586ecc5513f5cc..151f8f13a65ef8faee315db408072aba7d1e8d60 100644 --- a/TNeEvent.h +++ b/TNeEvent.h @@ -22,26 +22,47 @@ public: //-----Si----- unsigned short Lxa[16]; unsigned short Lxt[16]; + unsigned short Lxc[16]; + unsigned short Lya[16]; unsigned short Lyt[16]; + unsigned short Lyc[16]; + unsigned short Rxa[16]; unsigned short Rxt[16]; + unsigned short Rxc[16]; + unsigned short Rya[16]; unsigned short Ryt[16]; - unsigned short RVa[16]; - unsigned short RVt[16]; + unsigned short Ryc[16]; + + unsigned short Rva[16]; + unsigned short Rvt[16]; + unsigned short Rvc[16]; + unsigned short R20a[16]; unsigned short R20t[16]; + unsigned short R20c[16]; + unsigned short AnSa[16]; unsigned short AnSt[16]; + unsigned short AnSc[16]; + unsigned short AnRa[16]; unsigned short AnRt[16]; + unsigned short AnRc[16]; + unsigned short AnVa[16]; unsigned short AnVt[16]; + unsigned short AnVc[16]; + unsigned short Rcsa[16]; unsigned short Rcst[16]; + unsigned short Rcsc[16]; + unsigned short Lcsa[16]; unsigned short Lcst[16]; + unsigned short Lcsc[16]; unsigned short F3[4]; unsigned short tF3[4]; diff --git a/TNeProc.cxx b/TNeProc.cxx index 23745f965f8b57d947028618a56e0aca26fe4861..d51d27b152109dfcb84bdd100484d1cf2624b75c 100644 --- a/TNeProc.cxx +++ b/TNeProc.cxx @@ -76,6 +76,9 @@ TNeProc::TNeProc() : TGo4EventProcessor() d1Rya[i] = NULL; d1Ryt[i] = NULL; d1Ryc[i] = NULL; + d1Rva[i] = NULL; + d1Rvt[i] = NULL; + d1Rvc[i] = NULL; } //_________________________________Neutrons // @@ -100,6 +103,7 @@ TNeProc::TNeProc() : TGo4EventProcessor() d1CY1 = NULL; d1CX2 = NULL; d1CY2 = NULL; + d2XYbeamOnTar = NULL; } //------------------------------------------------------------------- @@ -131,45 +135,60 @@ TNeProc::TNeProc(const char* name) : TGo4EventProcessor(name) d1Lyc[i] = MakeTH1('D', Form("Lyc/Lycs_%2.2d",i) // , Form("L x energy MeV %2.2d",i), 4000, -2., 98.); - d1Rxa[i] = MakeTH1('I', Form("Rxa/Rxas_%2.2d",i) //указывать не повторяющуюся структуру папок и уникальные имена + d1Rxa[i] = MakeTH1('I', Form("Rxa/Rxas_%2.2d",i) , Form("R x amp CH %2.2d",i), 8192, 0., 8192.); d1Rxt[i] = MakeTH1('I', Form("Rxt/Rxts_%2.2d",i) , Form("R x time CH %2.2d",i), 4096, 1., 4096); d1Rxc[i] = MakeTH1('D', Form("Rxc/Rxcs_%2.2d",i) , Form("R x energy MeV %2.2d",i), 4000, -2., 98.); // - d1Rya[i] = MakeTH1('I', Form("Rya/Ryas_%2.2d",i) //указывать не повторяющуюся структуру папок и уникальные имена + d1Rya[i] = MakeTH1('I', Form("Rya/Ryas_%2.2d",i) , Form("R x amp CH %2.2d",i), 8192, 0., 8192.); d1Ryt[i] = MakeTH1('I', Form("Ryt/Ryts_%2.2d",i) , Form("R x time CH %2.2d",i), 4096, 1, 4096); d1Ryc[i] = MakeTH1('D', Form("Ryc/Rycs_%2.2d",i) , Form("R x energy MeV %2.2d",i), 4000, -2., 98.); // - d1AnSa[i] = MakeTH1('I', Form("AnSa/AnSas_%2.2d",i) //указывать не повторяющуюся структуру папок и уникальные имена + d1Rva[i] = MakeTH1('I', Form("Rva/Rvas_%2.2d",i) + , Form("R veto amp CH %2.2d",i), 8192, 0., 8192.); + d1Rvt[i] = MakeTH1('I', Form("Rvt/Rvts_%2.2d",i) + , Form("R veto time CH %2.2d",i), 4096, 1, 4096); + d1Rvc[i] = MakeTH1('D', Form("Rvc/Rvcs_%2.2d",i) + , Form("R veto energy MeV %2.2d",i), 4000, -2., 98.); +// + d1AnSa[i] = MakeTH1('I', Form("AnSa/AnSas_%2.2d",i) , Form("Sect amp CH %2.2d",i), 8192, 0., 8192.); d1AnSt[i] = MakeTH1('I', Form("AnSt/AnSts_%2.2d",i) , Form("Sect time CH %2.2d",i), 4096, 1, 4096); d1AnSc[i] = MakeTH1('D', Form("AnSc/AnScs_%2.2d",i) , Form("Sect energy MeV %2.2d",i), 4000, -2., 98.); // - d1AnRa[i] = MakeTH1('I', Form("AnRa/AnRas_%2.2d",i) //указывать не повторяющуюся структуру папок и уникальные имена + d1AnRa[i] = MakeTH1('I', Form("AnRa/AnRas_%2.2d",i) , Form("Ring amp CH %2.2d",i), 8192, 0., 8192.); d1AnRt[i] = MakeTH1('I', Form("AnRt/AnRts_%2.2d",i) , Form("Ring time CH %2.2d",i), 4096, 1, 4096); d1AnRc[i] = MakeTH1('D', Form("AnRc/AnRcs_%2.2d",i) , Form("Ring energy MeV %2.2d",i), 4000, -2., 98.); + + d1AnVa[i] = MakeTH1('I', Form("AnVa/AnVas_%2.2d",i) + , Form("Veto amp CH %2.2d",i), 8192, 0., 8192.); + d1AnVt[i] = MakeTH1('I', Form("AnVt/AnVts_%2.2d",i) + , Form("Veto time CH %2.2d",i), 4096, 1, 4096); + d1AnVc[i] = MakeTH1('D', Form("AnVc/AnVcs_%2.2d",i) + , Form("Veto energy MeV %2.2d",i), 4000, -2., 98.); +// } for (int i = 0; i < 16; ++i) { d1Lcsa[i] = MakeTH1('I', Form("Lcsa/Lcsa_%02d",i), - Form("Lcs amp CH %02d",i), 4096, 0., 4096); + Form("Lcs amp CH %02d",i), 8192, 0., 8192); d1Lcst[i] = MakeTH1('I', Form("Lcst/Lcst_%02d",i) , Form("Lcs time CH %02d",i), 4096, 1., 4095); d1Lcsc[i] = MakeTH1('D', Form("Lcsc/Lcsc_%02d",i), - Form("Lcs energy MeV %2.2d",i), 4000, -2., 98.); + Form("Lcs energy MeV %2.2d",i), 4000, 0., 8192.); } for (int i = 0; i < 16; ++i) { d1Rcsa[i] = MakeTH1('I', Form("Rcsa/Rcsa_%02d",i), - Form("Rcs amp CH %02d",i), 4096, 0., 4096); + Form("Rcs amp CH %02d",i), 8192, 0., 8192); d1Rcst[i] = MakeTH1('I', Form("Rcst/Rcst_%02d",i) , Form("Rcs time CH %02d",i), 4096, 1., 4095); d1Rcsc[i] = MakeTH1('D', Form("Rcsc/Rcsc_%02d",i), @@ -177,13 +196,33 @@ TNeProc::TNeProc(const char* name) : TGo4EventProcessor(name) } for (int i = 0; i < 16; ++i) { d1R20a[i] = MakeTH1('I', Form("R20a/R20a_%02d",i), - Form("R20 amp CH %02d",i), 4096, 0., 4096); + Form("R20 amp CH %02d",i), 8192, 0., 8192); d1R20t[i] = MakeTH1('I', Form("R20t/R20t_%02d",i) , Form("R20 time CH %02d",i), 4096, 1., 4095); d1R20c[i] = MakeTH1('D', Form("R20c/R20c_%02d",i), Form("R20 energy MeV %2.2d",i), 4000, -2., 98.); } + + d2ede = MakeTH2('D', "ede", "ede", 200,0.,20.,200,0.,20.,"e","de"); + + d2LyLcs1 = MakeTH2('D', "2D/LyLcs1", "Ly vs Lcs", 200,0.,8200.,200,0.,80.,"Lcs","Ly"); + d2LyLcs2 = MakeTH2('D', "2D/LyLcs2", "Ly vs Lcs", 200,0.,8200.,200,0.,80.,"Lcs","Ly"); + d2LyLcs3 = MakeTH2('D', "2D/LyLcs3", "Ly vs Lcs", 200,0.,8200.,200,0.,80.,"Lcs","Ly"); + d2LyLcs4 = MakeTH2('D', "2D/LyLcs4", "Ly vs Lcs", 200,0.,8200.,200,0.,80.,"Lcs","Ly"); + d2LyLcs5 = MakeTH2('D', "2D/LyLcs5", "Ly vs Lcs", 200,0.,8200.,200,0.,80.,"Lcs","Ly"); + d2LyLcs6 = MakeTH2('D', "2D/LyLcs6", "Ly vs Lcs", 200,0.,8200.,200,0.,80.,"Lcs","Ly"); + d2LyLcs7 = MakeTH2('D', "2D/LyLcs7", "Ly vs Lcs", 200,0.,8200.,200,0.,80.,"Lcs","Ly"); + d2LyLcs8 = MakeTH2('D', "2D/LyLcs8", "Ly vs Lcs", 200,0.,8200.,200,0.,80.,"Lcs","Ly"); + d2LyLcs9 = MakeTH2('D', "2D/LyLcs9", "Lx vs Lcs", 200,0.,8200.,200,0.,80.,"Lcs","Ly"); + d2LyLcs10 = MakeTH2('D', "2D/LyLcs10", "Ly vs Lcs", 200,0.,8200.,200,0.,80.,"Lcs","Ly"); + d2LyLcs11 = MakeTH2('D', "2D/LyLcs11", "Ly vs Lcs", 200,0.,8200.,200,0.,80.,"Lcs","Ly"); + d2LyLcs12 = MakeTH2('D', "2D/LyLcs12", "Ly vs Lcs", 200,0.,8200.,200,0.,80.,"Lcs","Ly"); + d2LyLcs13 = MakeTH2('D', "2D/LyLcs13", "Ly vs Lcs", 200,0.,8200.,200,0.,80.,"Lcs","Ly"); + d2LyLcs14 = MakeTH2('D', "2D/LyLcs14", "Ly vs Lcs", 200,0.,8200.,200,0.,80.,"Lcs","Ly"); + d2LyLcs15 = MakeTH2('D', "2D/LyLcs15", "Ly vs Lcs", 200,0.,8200.,200,0.,80.,"Lcs","Ly"); + d2LyLcs16 = MakeTH2('D', "2D/LyLcs16", "Ly vs Lcs", 200,0.,8200.,200,0.,80.,"Lcs","Ly"); + // d1F3[0] = MakeTH1('I',"F3/QDC/F3_QDC_L","F3 QDC left", 4096, 0., 4095.); d1F3[1] = MakeTH1('I',"F3/QDC/F3_QDC_R","F3 QDC right", 4096, 0., 4095.); @@ -217,7 +256,8 @@ TNeProc::TNeProc(const char* name) : TGo4EventProcessor(name) //-----MWPC----- d2XY1 = MakeTH2('I', "MWPC/XY1", "WIRES 1 Y1 vs X1", 32,0.,32.,32,0.,32.,"X1","Y1"); d2XY2 = MakeTH2('I', "MWPC/XY2", "WIRES 2 Y2 vs X2", 32,0.,32.,32,0.,32.,"X2","Y2"); - + d2XYbeamOnTar = MakeTH2('f', "MWPC/XY_beamOnTar", "beam profile at target", 200,-50.0,50.0,200,-50,50,"X(Z=-70.0mm)","Y(Z=-70.0mm)"); + d1X1 = MakeTH1('I', "MWPC/X1","WIRES X1",32,0.,32.); d1Y1 = MakeTH1('I', "MWPC/Y1","WIRES Y1",32,0.,32.); d1X2 = MakeTH1('I', "MWPC/X2","WIRES X2",32,0.,32.); @@ -248,7 +288,7 @@ Bool_t TNeProc::BuildEvent(TGo4EventElement* target) { // called by framework from TNeEvent to fill it -// TGo4Analysis *go4 = TGo4Analysis::Instance(); + TGo4Analysis *go4 = TGo4Analysis::Instance(); TNeEvent* NeEvent = (TNeEvent*) target; target->Clear(); @@ -260,9 +300,10 @@ Bool_t TNeProc::BuildEvent(TGo4EventElement* target) return false; } bool dooutput = false; -// double value1, value2; -// double eLxa,eLya; -// int mLxa,mLya; + double value1, value2; + double eLxa = 0,eLya = 0, eRxa = 0, eRya = 0, eR20a = 0, eRva = 0, eAnSa = 0, eAnRa = 0, eRcsa = 0, eLcsa = 0; + int mLxa = 0, mLya = 0, mRxa = 0, mRya = 0, mR20a = 0, mRva = 0, mAnSa = 0, mAnRa = 0, mRcsa = 0, mLcsa = 0; + int nLxa = -1, nLya = -1, nRxa = -1, nRya = -1, nR20a = -1, nRva = -1, nAnSa = -1, nAnRa = -1, nRcsa = -1, nLcsa = -1; // int num = 0, sz = 0; int i, n, geo, typ, header,caen_header, module_id=0, crate=-1, cnt, chnl, evnt /*,gch*/; @@ -353,7 +394,7 @@ Bool_t TNeProc::BuildEvent(TGo4EventElement* target) case 9: // mADC: amp Lx & Ly chnl= (idata[n] >> 16)&0x1f; - adc = idata[n] & 0xfff; //only 12 bits + adc = idata[n] & 0x1fff; //only 12 bits if(chnl<16) { NeEvent->Lxa[chnl] = adc; } else { @@ -373,7 +414,7 @@ Bool_t TNeProc::BuildEvent(TGo4EventElement* target) case 11: // mADC: amp Rx & Ry chnl= (idata[n] >> 16)&0x1f; - adc = idata[n] & 0xfff; //only 12 bits + adc = idata[n] & 0x1fff; //only 12 bits if(chnl<16) { NeEvent->Rxa[chnl] = adc; } else { @@ -393,7 +434,7 @@ Bool_t TNeProc::BuildEvent(TGo4EventElement* target) case 13: // mADC: amp An S & R chnl= (idata[n] >> 16)&0x1f; - adc = idata[n] & 0xfff; //only 12 bits + adc = idata[n] & 0x1fff; //only 12 bits if(chnl<16) { NeEvent->AnSa[chnl] = adc; } else { @@ -413,7 +454,7 @@ Bool_t TNeProc::BuildEvent(TGo4EventElement* target) case 15: // mADC: amp R20 & AnV chnl= (idata[n] >> 16)&0x1f; - adc = idata[n] & 0xfff; //only 12 bits + adc = idata[n] & 0x1fff; //only 12 bits if(chnl<16) { NeEvent->AnVa[chnl] = adc; } else { @@ -421,10 +462,7 @@ Bool_t TNeProc::BuildEvent(TGo4EventElement* target) } break; - } - break; - - case 16: // mTDC: time Rcs & Lcs + case 2: // mTDC: time Rcs & Lcs chnl= (idata[n] >> 16)&0x3f; adc = idata[n] & 0xfff; //only 12 bits if(chnl<16) { @@ -434,9 +472,9 @@ Bool_t TNeProc::BuildEvent(TGo4EventElement* target) } break; - case 17: // mADC: amp Rcs & Lcs + case 3: // mADC: amp Rcs & Lcs chnl= (idata[n] >> 16)&0x1f; - adc = idata[n] & 0xfff; //only 12 bits + adc = idata[n] & 0x1fff; //only 12 bits if(chnl<16) { NeEvent->Lcsa[chnl] = adc; } else { @@ -444,6 +482,21 @@ Bool_t TNeProc::BuildEvent(TGo4EventElement* target) } break; + case 4: // mTDC: time Rvt + chnl= (idata[n] >> 16)&0x3f; + adc = idata[n] & 0xfff; //only 12 bits + if(chnl<16) NeEvent->Rvt[chnl] = adc; + break; + + case 5: // mADC: amp Ra + chnl= (idata[n] >> 16)&0x1f; + adc = idata[n] & 0x1fff; //only 12 bits + if(chnl<16) NeEvent->Rva[chnl] = adc; + break; + + } + break; + case 3: //-----MESYTEC footer----- m_bool=false; break; @@ -762,43 +815,65 @@ ToF = (tf5 - tf3)*0.015625 + 68.475; } } for (int n=0; n<16; ++n) { - if(NeEvent->Lxt[n]>0){ +// if(NeEvent->Lxt[n]>0) + { d1Lxa[n]->Fill(NeEvent->Lxa[n]); d1Lxt[n]->Fill(NeEvent->Lxt[n]); } - if(NeEvent->Lyt[n]>0){ +// if(NeEvent->Lyt[n]>0) + { d1Lya[n]->Fill(NeEvent->Lya[n]); d1Lyt[n]->Fill(NeEvent->Lyt[n]); } - if(NeEvent->Rxt[n]>0){ +// if(NeEvent->Rxt[n]>0) + { d1Rxa[n]->Fill(NeEvent->Rxa[n]); d1Rxt[n]->Fill(NeEvent->Rxt[n]); } - if(NeEvent->Ryt[n]>0){ +// if(NeEvent->Ryt[n]>0) + { d1Rya[n]->Fill(NeEvent->Rya[n]); d1Ryt[n]->Fill(NeEvent->Ryt[n]); } - if(NeEvent->R20t[n]>0){ +// if(NeEvent->R20t[n]>0) + { d1R20a[n]->Fill(NeEvent->R20a[n]); d1R20t[n]->Fill(NeEvent->R20t[n]); } - if(NeEvent->AnSt[n]>0){ +// if(NeEvent->AnSt[n]>0) + { d1AnSa[n]->Fill(NeEvent->AnSa[n]); d1AnSt[n]->Fill(NeEvent->AnSt[n]); } - if(NeEvent->AnRt[n]>0){ +// if(NeEvent->AnRt[n]>0) + { d1AnRa[n]->Fill(NeEvent->AnRa[n]); d1AnRt[n]->Fill(NeEvent->AnRt[n]); } - if(NeEvent->Rcst[n]>0){ + +// if(NeEvent->AnVt[n]>0) + { + d1AnVa[n]->Fill(NeEvent->AnVa[n]); + d1AnVt[n]->Fill(NeEvent->AnVt[n]); + } + +// if(NeEvent->Rcst[n]>0) + { d1Rcsa[n]->Fill(NeEvent->Rcsa[n]); d1Rcst[n]->Fill(NeEvent->Rcst[n]); } - if(NeEvent->Lcst[n]>0){ +// if(NeEvent->Lcst[n]>0) + { d1Lcsa[n]->Fill(NeEvent->Lcsa[n]); d1Lcst[n]->Fill(NeEvent->Lcst[n]); } +// if(NeEvent->Rvt[n]>0) + { + d1Rva[n]->Fill(NeEvent->Rva[n]); + d1Rvt[n]->Fill(NeEvent->Rvt[n]); + } + } @@ -816,18 +891,274 @@ ToF = (tf5 - tf3)*0.015625 + 68.475; if(NeEvent->tp1s[n] > 0) d1_p1s[n]->Fill(NeEvent->tp1s[n]); } - +*/ //______ calibrated spectra __________________________ for (n=0; n<16; ++n) { - value1 = (double)NeEvent->p1s[n] + gRandom->Uniform(); - value2 = ((TNeAnalysis*)go4)->p_p1s->Energy(value1, n); - d1_Lxa_c[n]->Fill(value2); - mp1s++; - ep1s = value2; + if(NeEvent->Lxt[n]>0){ + value1 = (double)NeEvent->Lxa[n] + gRandom->Uniform(); + value2 = ((TNeAnalysis*)go4)->p_Lxa->Energy(value1, n); + d1Lxc[n]->Fill(value2); + mLxa++; + eLxa = value2; + } + + if(NeEvent->Lyt[n]>0){ + value1 = (double)NeEvent->Lya[n] + gRandom->Uniform(); + value2 = ((TNeAnalysis*)go4)->p_Lya->Energy(value1, n); + d1Lyc[n]->Fill(value2); + mLya++; + eLya = value2; + } + + if(NeEvent->Rxt[n]>0){ + value1 = (double)NeEvent->Rxa[n] + gRandom->Uniform(); + value2 = ((TNeAnalysis*)go4)->p_Rxa->Energy(value1, n); + d1Rxc[n]->Fill(value2); + mRxa++; + eRxa = value2; + } + + if(NeEvent->Ryt[n]>0){ + value1 = (double)NeEvent->Rya[n] + gRandom->Uniform(); + value2 = ((TNeAnalysis*)go4)->p_Rya->Energy(value1, n); + d1Ryc[n]->Fill(value2); + mRya++; + eRya = value2; + } + + if(NeEvent->R20t[n]>0){ + value1 = (double)NeEvent->R20a[n] + gRandom->Uniform(); + value2 = ((TNeAnalysis*)go4)->p_R20a->Energy(value1, n); + d1R20c[n]->Fill(value2); + mR20a++; + eR20a = value2; + } + + if(NeEvent->Rvt[n]>0){ + value1 = (double)NeEvent->Rva[n] + gRandom->Uniform(); + value2 = ((TNeAnalysis*)go4)->p_Rva->Energy(value1, n); + d1Rvc[n]->Fill(value2); + mRva++; + eRva = value2; + } + + if(NeEvent->AnSt[n]>0){ + value1 = (double)NeEvent->AnSa[n] + gRandom->Uniform(); + value2 = ((TNeAnalysis*)go4)->p_AnSa->Energy(value1, n); + d1AnSc[n]->Fill(value2); + mAnSa++; + eAnSa = value2; + } + + if(NeEvent->AnRt[n]>0){ + value1 = (double)NeEvent->AnRa[n] + gRandom->Uniform(); + value2 = ((TNeAnalysis*)go4)->p_AnRa->Energy(value1, n); + d1AnRc[n]->Fill(value2); + mAnRa++; + eAnRa = value2; + } + + if(NeEvent->Rcst[n]>0){ + value1 = (double)NeEvent->Rcsa[n] + gRandom->Uniform(); + value2 = ((TNeAnalysis*)go4)->p_Rcsa->Energy(value1, n); + d1Rcsc[n]->Fill(value2); + mRcsa++; + eRcsa = value2; + } + + if(NeEvent->Lcst[n]>0 && NeEvent->Lcsa[n]>2500){ + value1 = (double)NeEvent->Lcsa[n] + gRandom->Uniform(); + value2 = ((TNeAnalysis*)go4)->p_Lcsa->Energy(value1, n); + d1Lcsc[n]->Fill(value2); + mLcsa++; + nLcsa = n; + eLcsa = value2; + } } + if(mRya==1 && mR20a==1) + { + d2ede->Fill(eRya,eR20a); + } + + if(mLya==1 && mLcsa==1) + { + if(nLcsa == 0) d2LyLcs1->Fill(eLcsa,eLya); + else if(nLcsa == 1) d2LyLcs2->Fill(eLcsa,eLya); + else if(nLcsa == 2) d2LyLcs3->Fill(eLcsa,eLya); + else if(nLcsa == 3) d2LyLcs4->Fill(eLcsa,eLya); + else if(nLcsa == 4) d2LyLcs5->Fill(eLcsa,eLya); + else if(nLcsa == 5) d2LyLcs6->Fill(eLcsa,eLya); + else if(nLcsa == 6) d2LyLcs7->Fill(eLcsa,eLya); + else if(nLcsa == 7) d2LyLcs8->Fill(eLcsa,eLya); + else if(nLcsa == 8) d2LyLcs9->Fill(eLcsa,eLya); + else if(nLcsa == 9) d2LyLcs10->Fill(eLcsa,eLya); + else if(nLcsa == 10) d2LyLcs11->Fill(eLcsa,eLya); + else if(nLcsa == 11) d2LyLcs12->Fill(eLcsa,eLya); + else if(nLcsa == 12) d2LyLcs13->Fill(eLcsa,eLya); + else if(nLcsa == 13) d2LyLcs14->Fill(eLcsa,eLya); + else if(nLcsa == 14) d2LyLcs15->Fill(eLcsa,eLya); + else if(nLcsa == 15) d2LyLcs16->Fill(eLcsa,eLya); + } + +//---------------------start of MWPC---------------------------------------- +// if(NeEvent->trigger == 1 && ToF > 165 && ToF <185) +// { + + for(i = 0; i < NeEvent->nx1; ++i) d1X1->Fill(NeEvent->x1[i]); + for(i = 0; i < NeEvent->ny1; ++i) d1Y1->Fill(NeEvent->y1[i]); + for(i = 0; i < NeEvent->nx2; ++i) d1X2->Fill(NeEvent->x2[i]); + for(i = 0; i < NeEvent->ny2; ++i) d1Y2->Fill(NeEvent->y2[i]); +// } + + if(NeEvent->nx1 > 0) d1NX1->Fill(NeEvent->nx1); + + if(NeEvent->ny1 > 0) d1NY1->Fill(NeEvent->ny1); + + if(NeEvent->nx2 > 0) d1NX2->Fill(NeEvent->nx2); + + if(NeEvent->ny2 > 0) d1NY2->Fill(NeEvent->ny2); + + if(NeEvent->nx1 > 0) + d1CX1->Fill(GetClasters(NeEvent->nx1, NeEvent->x1)); + + if(NeEvent->ny1 > 0) + d1CY1->Fill(GetClasters(NeEvent->ny1, NeEvent->y1)); + + if(NeEvent->nx2 > 0) + d1CX2->Fill(GetClasters(NeEvent->nx2, NeEvent->x2)); + + if(NeEvent->ny2 > 0) + d1CY2->Fill(GetClasters(NeEvent->ny2, NeEvent->y2)); + +// Li9 +// if (NeEvent->nx1*NeEvent->ny1*NeEvent->nx2*NeEvent->ny2 == 1 && 162nx1*NeEvent->ny1*NeEvent->nx2*NeEvent->ny2 == 1 && ToF>158 && ToF<168 && af3>500 && af3<1100) + if (NeEvent->nx1*NeEvent->ny1*NeEvent->nx2*NeEvent->ny2 == 1) + { + mwz1 = -816; + mwx1 = (16 - NeEvent->x1[0] + gRandom->Uniform())*1.25; + mwy1 = (NeEvent->y1[0] - 16 + gRandom->Uniform())*1.25; + + mwz2 = -270; + mwx2 = (16 - NeEvent->x2[0] + gRandom->Uniform())*1.25; + mwy2 = (NeEvent->y2[0] - 16 + gRandom->Uniform())*1.25; + + zbt = -70; + xbt = mwx2 + (mwx2 - mwx1)*(zbt-mwz2)/(mwz2-mwz1); + ybt = mwy2 + (mwy2 - mwy1)*(zbt-mwz2)/(mwz2-mwz1); + +// if (NeEvent->trigger == 1) + { + d2XYbeamOnTar->Fill(xbt, ybt); + } + + /*if (NeEvent->trigger == 2, NeEvent->trigger == 3, NeEvent->trigger == 4, NeEvent->trigger == 5) + { + d2XYbeamOnTar_trig2->Fill(xbt, ybt); + } + + if (NeEvent->tF6[0]*NeEvent->tF6[1]*NeEvent->tF6[2]*NeEvent->tF6[3]>0) + { + d2XYbeamOnTar_F6->Fill(xbt, ybt); + } +*/ + } + + +// + if(NeEvent->nx1 > 0 && NeEvent->ny1 > 0 && (GetClasters(NeEvent->nx1, NeEvent->x1)) == 1 && (GetClasters(NeEvent->ny1, NeEvent->y1)) == 1) + { + d2XY1->Fill(NeEvent->x1[0],NeEvent->y1[0]); +// if(NeEvent->tF6[2] >100) d2XY1beam->Fill(NeEvent->x1[0],NeEvent->y1[0]); +// if(NeEvent->trigger == 1) d2XY1beam->Fill(NeEvent->x1[0],NeEvent->y1[0]); +// else d2XY1->Fill(NeEvent->x1[0],NeEvent->y1[0]); + } + + if(NeEvent->nx2 > 0 && NeEvent->ny2 > 0 && (GetClasters(NeEvent->nx2, NeEvent->x2)) == 1 && (GetClasters(NeEvent->ny2, NeEvent->y2)) == 1) + { + d2XY2->Fill(NeEvent->x2[0],NeEvent->y2[0]); +// if(NeEvent->tF6[2] >100) d2XY2beam->Fill(NeEvent->x2[0],NeEvent->y2[0]); +// if(NeEvent->trigger == 1) d2XY2beam->Fill(NeEvent->x2[0],NeEvent->y2[0]); +// else d2XY2->Fill(NeEvent->x2[0],NeEvent->y2[0]); + } + +/* + if(NeEvent->nx1 == 1 && NeEvent->ny1 == 1 && NeEvent->trigger == 1) + { + d2XY1->Fill(NeEvent->x1[0],NeEvent->y1[0]); + } + + if(NeEvent->nx2 == 1 && NeEvent->ny2 == 1 && NeEvent->trigger == 1) + { + d2XY2->Fill(NeEvent->x2[0],NeEvent->y2[0]); + } + */ + +//---Pictures--- +/* + if(NeEvent->nx1 == 1 && NeEvent->nx2 == 1) + { + ya1 = -0.5*pya1 + dx1 + (pya1 / 32.)*NeEvent->x1[0]; + ya2 = -0.5*pya2 + dx2 + (pya2 / 32.)*NeEvent->x2[0]; + ya3 = ya1 + dtx + (ya2 - ya1) * (pxa3 - pxa1) / (pxa2 - pxa1); + + if(ya3 > -0.5*pya1 && ya3 < 0.5*pya1) + { + if(((TNeAnalysis*)go4)->pMTracks->mtracksx != ntrackx) + { + ntrackx = ((TNeAnalysis*)go4)->pMTracks->mtracksx; + fTracksX->Set(3*ntrackx); + itrackAX = 0; + for(i = 0; i < fTracksX->GetN(); ++i) + fTracksX->SetPoint(i,pxb1,0.); + } + if(itrackAX == fTracksX->GetN()) itrackAX = 0; + + fTracksX->SetPoint(itrackAX++,pxa1,ya1); + fTracksX->SetPoint(itrackAX++,pxa3,ya3); + fTracksX->SetPoint(itrackAX++,pxa1,ya1); + } + } + + if(NeEvent->ny1 == 1 && NeEvent->ny2 == 1) + { + yb1 = -0.5*pyb1 + dy1+ (pyb1 / 32.)*NeEvent->y1[0]; + yb2 = -0.5*pyb2 + dy2+ (pyb2 / 32.)*NeEvent->y2[0]; + + yb3 = yb1 + dty + (yb2 - yb1) * (pxb3 - pxb1) / (pxb2 - pxb1); + + if(yb3 > -0.5*pyb1 && yb3 < 0.5*pyb1) + { + if(((TNeAnalysis*)go4)->pMTracks->mtracksy != ntracky) + { + ntracky = ((TNeAnalysis*)go4)->pMTracks->mtracksy; + fTracksY->Set(3*ntracky); + itrackBX = 0; + for(i = 0; i < fTracksY->GetN(); ++i) + fTracksY->SetPoint(i,pxb1,0.); + } + if(itrackBX == fTracksY->GetN()) itrackBX = 0; + + fTracksY->SetPoint(itrackBX++,pxb1,yb1); + fTracksY->SetPoint(itrackBX++,pxb3,yb3); + fTracksY->SetPoint(itrackBX++,pxb1,yb1); + } + } + if(NeEvent->nx1 == 1 && NeEvent->nx2 == 1 && NeEvent->ny1 == 1 && NeEvent->ny2 == 1 ) + { + + d2Target->Fill(ya3,yb3); + }*/ + +//--------------------end of MWPC---------------------------------------- + + + NeEvent->SetValid(kTRUE); // to store return kTRUE; } //------------------------------------------------------------------- diff --git a/TNeProc.h b/TNeProc.h index da4c249e856895184fed72fd9f6df759f477ea37..fd4f7d2b3da8cb7f1ce39810140980a2a4a22883 100644 --- a/TNeProc.h +++ b/TNeProc.h @@ -38,6 +38,9 @@ private: TH1 *d1Rya[16]; TH1 *d1Ryt[16]; TH1 *d1Ryc[16]; + TH1 *d1Rva[16]; + TH1 *d1Rvt[16]; + TH1 *d1Rvc[16]; TH1 *d1AnSa[16]; TH1 *d1AnSt[16]; TH1 *d1AnSc[16]; @@ -60,6 +63,25 @@ private: TH1 *d1Lcsa[16]; TH1 *d1Lcst[16]; TH1 *d1Lcsc[16]; +//______________ 2 dim + TH2 *d2ede; + + TH2 *d2LyLcs1; + TH2 *d2LyLcs2; + TH2 *d2LyLcs3; + TH2 *d2LyLcs4; + TH2 *d2LyLcs5; + TH2 *d2LyLcs6; + TH2 *d2LyLcs7; + TH2 *d2LyLcs8; + TH2 *d2LyLcs9; + TH2 *d2LyLcs10; + TH2 *d2LyLcs11; + TH2 *d2LyLcs12; + TH2 *d2LyLcs13; + TH2 *d2LyLcs14; + TH2 *d2LyLcs15; + TH2 *d2LyLcs16; //-----clb----- TH1 *d1sq1_x_c[16]; @@ -94,6 +116,12 @@ private: TH1 *d1CY1; TH1 *d1CX2; TH1 *d1CY2; + TH2 *d2XYbeamOnTar; + + double mwz1, mwx1, mwy1; + double mwz2, mwx2, mwy2; + double zbt, xbt, ybt; + ClassDef(TNeProc,1) }; diff --git a/clb/anra.clb b/clb/anra.clb new file mode 100644 index 0000000000000000000000000000000000000000..498c251cf0e89732672ff80a708c7d037636dd4f --- /dev/null +++ b/clb/anra.clb @@ -0,0 +1,18 @@ +2 +16 +-0.9921 0.006043 0 +-1.295 0.006109 0 +-1.034 0.006167 0 +-1.226 0.005974 0 +-1.087 0.006062 0 +-1.293 0.006128 0 +-1.117 0.006241 0 +-1.569 0.006415 0 +-0.9381 0.005942 0 +-1.331 0.005939 0 +-1.029 0.00602 0 +-1.252 0.006154 0 +-0.9552 0.006104 0 +-1.25 0.005964 0 +-0.9905 0.005939 0 +-1.24 0.006108 0 diff --git a/clb/ansa.clb b/clb/ansa.clb new file mode 100644 index 0000000000000000000000000000000000000000..f913bc8d1bbd93f2d9d59b07f779cbf9aaebde0f --- /dev/null +++ b/clb/ansa.clb @@ -0,0 +1,18 @@ +2 +16 +-1.042 0.006175 0 +-1.175 0.005682 0 +-0.956 0.006046 0 +-1.212 0.00593 0 +-1.005 0.006027 0 +-1.249 0.005907 0 +-1.035 0.005957 0 +-1.215 0.005924 0 +-1.064 0.006153 0 +-1.337 0.00598 0 +-1.073 0.005888 0 +-1.235 0.005878 0 +-1.054 0.006009 0 +-1.005 0.005548 0 +-1.112 0.006079 0 +-1.28 0.005843 0 diff --git a/clb/anva.clb b/clb/anva.clb new file mode 100644 index 0000000000000000000000000000000000000000..2400af4b70711344bf0fac3de2c4bf9eebae25a7 --- /dev/null +++ b/clb/anva.clb @@ -0,0 +1,18 @@ +2 +16 +-0.2076 0.005729 0 +-0.1873 0.00575 0 +-0.1988 0.005828 0 +-0.197 0.005838 0 +-0.2144 0.00588 0 +-0.1965 0.005734 0 +-0.215 0.005697 0 +-0.1958 0.005678 0 +-0.2061 0.005712 0 +-0.2116 0.005771 0 +-0.2041 0.005894 0 +-0.2219 0.005869 0 +-0.2133 0.005625 0 +-0.2355 0.005817 0 +-0.2177 0.005723 0 +-0.2396 0.005987 0 diff --git a/clb/lxa.clb b/clb/lxa.clb new file mode 100644 index 0000000000000000000000000000000000000000..9f1d0d9ca748f314c6418633d7f9fe96b46997b0 --- /dev/null +++ b/clb/lxa.clb @@ -0,0 +1,18 @@ +2 +16 +-0.331 0.01068 0 +-0.3837 0.01094 0 +-0.3164 0.01119 0 +-0.3824 0.01105 0 +-0.3201 0.01086 0 +-0.3969 0.01076 0 +-0.3262 0.01092 0 +-0.4261 0.01109 0 +-0.4124 0.01064 0 +-0.4005 0.01113 0 +-0.4111 0.01112 0 +-0.3407 0.01073 0 +-0.4172 0.01071 0 +-0.3712 0.01063 1 +-0.4475 0.01099 0 +-0.362 0.01077 0 diff --git a/clb/lya.clb b/clb/lya.clb new file mode 100644 index 0000000000000000000000000000000000000000..781aa4fe5bbdbc27c23b38d38eb74bba6dcc7789 --- /dev/null +++ b/clb/lya.clb @@ -0,0 +1,18 @@ +2 +16 +-0.4061 0.01084 0 +-0.3753 0.01097 0 +-0.4124 0.01095 0 +-0.374 0.01086 0 +-0.4033 0.01121 0 +-0.3717 0.01077 0 +-0.4068 0.01111 0 +-0.3854 0.01101 0 +-0.346 0.01082 0 +-0.4533 0.01102 0 +-0.3497 0.01072 0 +-0.451 0.01108 0 +-0.3556 0.01093 0 +-0.4478 0.01118 0 +-0.364 0.01093 0 +-0.4304 0.01064 0 diff --git a/clb/p1s.clb b/clb/p1s.clb deleted file mode 100644 index c6bc6604df02f36ffa6c0ef96fca87df3207dadf..0000000000000000000000000000000000000000 --- a/clb/p1s.clb +++ /dev/null @@ -1,18 +0,0 @@ -2 -16 --0.08733 0.004911 0 --0.08709 0.004893 0 --0.08096 0.004951 0 --0.07999 0.004812 0 --0.08556 0.004968 0 --0.08162 0.004784 0 --0.08238 0.004891 0 --0.0817 0.004798 0 --0.09605 0.005018 0 --0.06971 0.004917 0 --0.09164 0.004982 0 --0.07341 0.005013 0 --0.08384 0.005046 0 --0.07682 0.004999 0 --0.08593 0.005024 0 --0.07198 0.004797 0 diff --git a/clb/r20a.clb b/clb/r20a.clb new file mode 100644 index 0000000000000000000000000000000000000000..e7012a6ad4fc91a2784cf2156acb22247f046ecf --- /dev/null +++ b/clb/r20a.clb @@ -0,0 +1,18 @@ +2 +16 +-1.74 0.0113 0 +-2.397 0.01151 0 +-1.672 0.01104 0 +-2.264 0.01115 0 +-1.733 0.01108 0 +-2.363 0.01142 0 +-1.671 0.01109 0 +-2.288 0.01127 0 +-1.639 0.01128 0 +-2.422 0.01203 0 +-1.685 0.01139 0 +-2.207 0.01111 0 +-1.72 0.01121 0 +-2.242 0.0114 0 +-1.707 0.01082 0 +-2.294 0.01155 0 diff --git a/clb/rva.clb b/clb/rva.clb new file mode 100644 index 0000000000000000000000000000000000000000..b3e7fd66f49d9c5747dc5217e9f396160bafdc26 --- /dev/null +++ b/clb/rva.clb @@ -0,0 +1,18 @@ +2 +16 +-1.717 0.01114 0 +-2.412 0.01145 0 +-1.638 0.01085 0 +-2.253 0.01104 0 +-1.764 0.011 0 +-2.403 0.01143 0 +-1.654 0.01095 0 +-2.305 0.01121 0 +-1.63 0.01117 0 +-2.329 0.01142 0 +-1.659 0.01126 0 +-2.202 0.01097 0 +-1.698 0.01104 0 +-2.253 0.0113 0 +-1.699 0.01069 0 +-2.305 0.01146 0 diff --git a/clb/rxa.clb b/clb/rxa.clb new file mode 100644 index 0000000000000000000000000000000000000000..bcdb3da280278e2f4255f00efac2efb2dc1de581 --- /dev/null +++ b/clb/rxa.clb @@ -0,0 +1,18 @@ +2 +16 +-0.4585 0.01085 0 +-0.4486 0.01123 0 +-0.4754 0.01117 0 +-0.2406 0.01096 0 +-0.481 0.01117 0 +-0.495 0.01145 0 +-0.492 0.01093 0 +-0.5018 0.01105 0 +-0.4927 0.01129 0 +-0.4857 0.01117 0 +-0.4859 0.01083 0 +-0.4279 0.01095 0 +-0.4331 0.01089 0 +-0.4436 0.01121 0 +-0.4329 0.0113 0 +-0.4325 0.01129 0 diff --git a/clb/rya.clb b/clb/rya.clb new file mode 100644 index 0000000000000000000000000000000000000000..89ce2e9b474ec3f405fac60456828d7b7613ce85 --- /dev/null +++ b/clb/rya.clb @@ -0,0 +1,18 @@ +2 +16 +-0.477 0.01132 0 +-0.4198 0.01142 0 +-0.4798 0.01101 0 +-0.3945 0.01124 0 +-0.4799 0.01149 0 +-0.3777 0.01094 0 +-0.4694 0.01119 0 +-0.4171 0.01127 0 +-0.4655 0.01118 0 +-0.4153 0.01118 0 +-0.46 0.01105 0 +-0.4163 0.01102 0 +-0.4773 0.0109 0 +-0.427 0.01087 0 +-0.4686 0.01112 0 +-0.4137 0.01091 0 diff --git a/clb/t1xa.clb b/clb/t1xa.clb deleted file mode 100644 index c6bc6604df02f36ffa6c0ef96fca87df3207dadf..0000000000000000000000000000000000000000 --- a/clb/t1xa.clb +++ /dev/null @@ -1,18 +0,0 @@ -2 -16 --0.08733 0.004911 0 --0.08709 0.004893 0 --0.08096 0.004951 0 --0.07999 0.004812 0 --0.08556 0.004968 0 --0.08162 0.004784 0 --0.08238 0.004891 0 --0.0817 0.004798 0 --0.09605 0.005018 0 --0.06971 0.004917 0 --0.09164 0.004982 0 --0.07341 0.005013 0 --0.08384 0.005046 0 --0.07682 0.004999 0 --0.08593 0.005024 0 --0.07198 0.004797 0