diff --git a/NPLib/Detectors/ComptonTelescope/TComptonTelescopePhysics.cxx b/NPLib/Detectors/ComptonTelescope/TComptonTelescopePhysics.cxx index 815308b7843d19f80b1399b65067189433ba0de1..2d0fa83e0f350883fe3ab1ceb58d0c30355cef18 100644 --- a/NPLib/Detectors/ComptonTelescope/TComptonTelescopePhysics.cxx +++ b/NPLib/Detectors/ComptonTelescope/TComptonTelescopePhysics.cxx @@ -52,12 +52,12 @@ TComptonTelescopePhysics::TComptonTelescopePhysics() m_nCounterEvt(50), m_nCounterHit(50), m_MaximumStripMultiplicityAllowed(32), - m_StripEnergyMatchingSigma(0.060), // MeV - m_StripEnergyMatchingNumberOfSigma(3), // MeV + m_StripEnergyMatchingSigma(0.006), // MeV + m_StripEnergyMatchingNumberOfSigma(3), m_StripFront_E_RAW_Threshold(0), - m_StripFront_E_Threshold(0), + m_StripFront_E_Threshold(0), // MeV m_StripBack_E_RAW_Threshold(0), - m_StripBack_E_Threshold(0), + m_StripBack_E_Threshold(0), // MeV m_Calorimeter_E_RAW_Threshold(0), // Before pedestal subtraction (ADC) m_Calorimeter_E_Threshold(0), // After pedestal subtraction (ADC) m_Take_E_Front(true), // p-side @@ -80,6 +80,7 @@ void TComptonTelescopePhysics::BuildPhysicalEvent() /////////////////////////////////////////////////////////////////////////// void TComptonTelescopePhysics::BuildSimplePhysicalEvent() { + //cout << "\nBegin event treatment" << endl; m_CounterEvt[0] = 1; // total nb of events // select active channels and apply threhsolds @@ -92,39 +93,94 @@ void TComptonTelescopePhysics::BuildSimplePhysicalEvent() if (evtType == 1) m_CounterEvt[8] = 1; // nb of pretreated events with mult F = mult B if (evtType == 2) m_CounterEvt[9] = 1; // nb of pretreated events with mult F = mult B +- 1 if (evtType == -1) m_CounterEvt[10] = 1; // nb of pretreated events with mult F != mult B or mult B +- 1 + //cout << "event type = " << evtType << endl; // Remove: do general case -// if (CheckEvent() == 1) { // case where multiplicity front = multiplicity back + //if (CheckEvent() == 1) { // case where multiplicity front = multiplicity back vector<TVector2> couple = Match_Front_Back(); EventMultiplicity = couple.size(); + //cout << "event multiplicity = " << couple.size() << endl; + + // keep only mult 1 couples + //if (couple.size() == 1) { // pb if done here, so done in Match_Front_Back() + for (UShort_t i = 0; i < couple.size(); ++i) { // loop on selected events + m_CounterEvt[16] = 1; // nb of physics events + m_CounterHit[10] += 1; // nb of physics hits + + // Event type + if (evtType == 1) m_CounterEvt[17] = 1; // nb of physics events with mult F = mult B + if (evtType == 2) m_CounterEvt[18] = 1; // nb of physics events with mult F = mult B +- 1 + if (evtType == -1) m_CounterEvt[19] = 1; // nb of physics events with mult F != mult B or mult B +- 1 + + // Energy + Int_t Tower = m_PreTreatedData->GetCTTrackerFrontETowerNbr(couple[i].X()); + Int_t N = m_PreTreatedData->GetCTTrackerFrontEDetectorNbr(couple[i].X()); + Int_t Front = m_PreTreatedData->GetCTTrackerFrontEStripNbr(couple[i].X()); + Int_t Back = m_PreTreatedData->GetCTTrackerBackEStripNbr(couple[i].Y()); + Double_t Front_E = m_PreTreatedData->GetCTTrackerFrontEEnergy(couple[i].X()); + Double_t Back_E = m_PreTreatedData->GetCTTrackerBackEEnergy(couple[i].Y()); + //cout << "couple " << i << " CT" << Tower << " D" << N << " SF" << Front << " SB" << Back << " EF " << Front_E << " EB " << Back_E << endl; + //cout << "Time F before association = " << m_PreTreatedData->GetCTTrackerFrontTTime(i) << endl; + + // Time + // Front + //cout << "time front multiplicity = " << m_PreTreatedData->GetCTTrackerFrontTMult() << endl; + Double_t Front_T = -1000.; + for (UShort_t t = 0; t < m_PreTreatedData->GetCTTrackerFrontTMult(); t++) { + //cout << "couple Time F "<< t << " T before association = " << m_PreTreatedData->GetCTTrackerFrontTTime(t) << endl; + if (m_PreTreatedData->GetCTTrackerFrontETowerNbr(couple[i].X()) == m_PreTreatedData->GetCTTrackerFrontTTowerNbr(t) && m_PreTreatedData->GetCTTrackerFrontEDetectorNbr(couple[i].X()) == m_PreTreatedData->GetCTTrackerFrontTDetectorNbr(t)) { + m_CounterEvt[42] = 1; // nb of physics events with front time + m_CounterHit[42] += 1; // nb of physics hits with front time + Front_T = m_PreTreatedData->GetCTTrackerFrontTTime(t); + //cout << "E F: Tower" << m_PreTreatedData->GetCTTrackerFrontETowerNbr(couple[i].X()) << " D" << m_PreTreatedData->GetCTTrackerFrontEDetectorNbr(couple[i].X()) << endl; + //cout << "Time F: Tower" << m_PreTreatedData->GetCTTrackerFrontTTowerNbr(t) << " D" << m_PreTreatedData->GetCTTrackerFrontTDetectorNbr(t) << " T = " << Front_T << endl; + } + } + // Back + //cout << "time back multiplicity = " << m_PreTreatedData->GetCTTrackerBackTMult() << endl; + Double_t Back_T = -1000; + for (UShort_t t = 0; t < m_PreTreatedData->GetCTTrackerBackTMult(); t++) { + if (m_PreTreatedData->GetCTTrackerBackETowerNbr(couple[i].Y()) == m_PreTreatedData->GetCTTrackerBackTTowerNbr(t) && m_PreTreatedData->GetCTTrackerBackEDetectorNbr(couple[i].Y()) == m_PreTreatedData->GetCTTrackerBackTDetectorNbr(t)) { + m_CounterEvt[43] = 1; // nb of physics events with back time + m_CounterHit[43] += 1; // nb of physics hits with back time + Back_T = m_PreTreatedData->GetCTTrackerBackTTime(t); + //cout << "E B: Tower" << m_PreTreatedData->GetCTTrackerBackETowerNbr(couple[i].Y()) << " D" << m_PreTreatedData->GetCTTrackerBackEDetectorNbr(couple[i].Y()) << endl; + //cout << "Time B: Tower" << m_PreTreatedData->GetCTTrackerBackTTowerNbr(t) << " D" << m_PreTreatedData->GetCTTrackerBackTDetectorNbr(t) << " T = " << Back_T << endl; + } + } + // check time + bool Same_T = false; + if (Front_T == Back_T) { + //cout << "same T" << endl; + Same_T = true; + m_CounterEvt[44] = 1; // nb of physics events with same FB time + m_CounterHit[44] += 1; // nb of physics hits with same FB time + } - for (UShort_t i = 0; i < couple.size(); ++i) { // loop on selected events - m_CounterHit[10] += 1; // nb of hits in selected couples - Int_t Tower = m_PreTreatedData->GetCTTrackerFrontETowerNbr(couple[i]. X()); - Int_t N = m_PreTreatedData->GetCTTrackerFrontEDetectorNbr(couple[i].X()); - Int_t Front = m_PreTreatedData->GetCTTrackerFrontEStripNbr(couple[i].X()); - Int_t Back = m_PreTreatedData->GetCTTrackerBackEStripNbr(couple[i].Y()); - Double_t Front_E = m_PreTreatedData->GetCTTrackerFrontEEnergy(couple[i].X()); - Double_t Back_E = m_PreTreatedData->GetCTTrackerBackEEnergy(couple[i].Y()); - - // Fill TComptonTelescopePhysics members - EventType.push_back(evtType); - TowerNumber.push_back(Tower); - DetectorNumber.push_back(N); - Strip_Front.push_back(Front); - Strip_Back.push_back(Back); - Front_Energy.push_back(Front_E); - Back_Energy.push_back(Back_E); - Half_Energy.push_back((Front_E+Back_E)/2); - - if (m_Take_E_Front) - Strip_E.push_back(Front_E); - else - Strip_E.push_back(Back_E); - - //Strip_T = ? - + //cout << "couple " << i << " CT" << Tower << " D" << N << " SF" << Front << " SB" << Back << " EF " << Front_E << " EB " << Back_E << " TF " << Front_T << " TB " << Back_T << endl; + + // Fill TComptonTelescopePhysics members + EventType.push_back(evtType); + TowerNumber.push_back(Tower); + DetectorNumber.push_back(N); + Strip_Front.push_back(Front); + Strip_Back.push_back(Back); + Front_Energy.push_back(Front_E); + Back_Energy.push_back(Back_E); + Half_Energy.push_back((Front_E+Back_E)/2); + Front_Time.push_back(Front_T); + Back_Time.push_back(Back_T); + Same_FBTime.push_back(Same_T); + + if (m_Take_E_Front) + Strip_E.push_back(Front_E); + else + Strip_E.push_back(Back_E); + + //Strip_T = ? + + //} } // } // end check event @@ -174,16 +230,16 @@ void TComptonTelescopePhysics::PreTreat() for (UShort_t i = 0; i < m_EventData->GetCTTrackerFrontEMult(); ++i) { m_CounterEvt[1] = 1; // nb of events with at least one EF raw recorded m_CounterHit[0] += 1; // nb of hits with EF raw -// cout << "Det = " << m_EventData->GetCTTrackerFrontEDetectorNbr(i) << " ; strip = " << m_EventData->GetCTTrackerFrontEStripNbr(i) << " ; E raw = " << m_EventData->GetCTTrackerFrontEEnergy(i) << endl; + //cout << "Raw: DetF = " << m_EventData->GetCTTrackerFrontEDetectorNbr(i) << " ; stripF = " << m_EventData->GetCTTrackerFrontEStripNbr(i) << " ; EF raw = " << m_EventData->GetCTTrackerFrontEEnergy(i) << endl; if (m_EventData->GetCTTrackerFrontEEnergy(i) > m_StripFront_E_RAW_Threshold && IsValidChannel("Front", m_EventData->GetCTTrackerFrontEDetectorNbr(i), m_EventData->GetCTTrackerFrontEStripNbr(i))) { m_CounterEvt[2] = 1; // nb of events with at least one EF raw > threshold m_CounterHit[1] += 1; // nb of hits with EF raw > threshold Double_t E = fStrip_Front_E(m_EventData, i);//Calibration happens here -// cout << "Det = " << m_EventData->GetCTTrackerFrontEDetectorNbr(i) << " ; strip = " << m_EventData->GetCTTrackerFrontEStripNbr(i) << " ; E cal = " << E << endl; if (E > m_StripFront_E_Threshold) { + //cout << "CalF: Det = " << m_EventData->GetCTTrackerFrontEDetectorNbr(i) << " ; strip = " << m_EventData->GetCTTrackerFrontEStripNbr(i) << " ; E cal = " << E << endl; m_CounterEvt[3] = 1; // nb of events with at least one EF cal > threshold m_CounterHit[2] += 1; // nb of hits with EF cal > threshold m_PreTreatedData->SetFrontE( @@ -197,7 +253,6 @@ void TComptonTelescopePhysics::PreTreat() m_PreTreatedData->SetCTTrackerFrontEEnergy(E); */ } -// cout << "Det = " << m_PreTreatedData->GetCTTrackerFrontEDetectorNbr(i) << " ; strip = " << m_PreTreatedData->GetCTTrackerFrontEStripNbr(i) << " ; E pretreat = " << m_PreTreatedData->GetCTTrackerFrontEEnergy(i) << endl; } } @@ -205,6 +260,7 @@ void TComptonTelescopePhysics::PreTreat() for (UShort_t i = 0; i < m_EventData->GetCTTrackerBackEMult(); ++i) { m_CounterEvt[4] = 1; // nb of events with at least one EB raw recorded m_CounterHit[3] += 1; // nb of hits with EB raw + //cout << "Raw: DetB = " << m_EventData->GetCTTrackerBackEDetectorNbr(i) << " ; stripB = " << m_EventData->GetCTTrackerBackEStripNbr(i) << " ; EB raw = " << m_EventData->GetCTTrackerFrontEEnergy(i) << endl; if (m_EventData->GetCTTrackerBackEEnergy(i) > m_StripBack_E_RAW_Threshold && IsValidChannel("Back", m_EventData->GetCTTrackerBackEDetectorNbr(i), m_EventData->GetCTTrackerBackEStripNbr(i))) { @@ -213,6 +269,7 @@ void TComptonTelescopePhysics::PreTreat() Double_t E = fStrip_Back_E(m_EventData, i);//Calibration happens here if (E > m_StripBack_E_Threshold) { + //cout << "CalB: Det = " << m_EventData->GetCTTrackerBackEDetectorNbr(i) << " ; stripB = " << m_EventData->GetCTTrackerBackEStripNbr(i) << " ; EB cal = " << E << endl; m_CounterEvt[6] = 1; // nb of events with at least one EB cal > threshold m_CounterHit[5] += 1; // nb of hits with EB cal > threshold m_PreTreatedData->SetBackE( @@ -239,6 +296,7 @@ void TComptonTelescopePhysics::PreTreat() m_EventData->GetCTTrackerFrontTDetectorNbr(i), m_EventData->GetCTTrackerFrontTStripNbr(i), m_EventData->GetCTTrackerFrontTTime(i)); + //cout << "Pretreat time front : T" << m_EventData->GetCTTrackerFrontTTowerNbr(i) << " D" << m_EventData->GetCTTrackerFrontTDetectorNbr(i) << " Strip " << m_EventData->GetCTTrackerFrontTStripNbr(i) << " time " << m_EventData->GetCTTrackerFrontTTime(i) << endl; /* m_PreTreatedData->SetCTTrackerFrontTTowerNbr(m_EventData->GetCTTrackerFrontTTowerNbr(i)); m_PreTreatedData->SetCTTrackerFrontTDetectorNbr(m_EventData->GetCTTrackerFrontTDetectorNbr(i)); @@ -256,6 +314,7 @@ void TComptonTelescopePhysics::PreTreat() m_EventData->GetCTTrackerBackTDetectorNbr(i), m_EventData->GetCTTrackerBackTStripNbr(i), m_EventData->GetCTTrackerBackTTime(i)); + //cout << "Pretreat time back : T" << m_EventData->GetCTTrackerBackTTowerNbr(i) << " D" << m_EventData->GetCTTrackerBackTDetectorNbr(i) << " Strip " << m_EventData->GetCTTrackerBackTStripNbr(i) << " time " << m_EventData->GetCTTrackerBackTTime(i) << endl; /* m_PreTreatedData->SetCTTrackerBackTTowerNbr(m_EventData->GetCTTrackerBackTTowerNbr(i)); m_PreTreatedData->SetCTTrackerBackTDetectorNbr(m_EventData->GetCTTrackerBackTDetectorNbr(i)); @@ -341,6 +400,8 @@ vector<TVector2> TComptonTelescopePhysics::Match_Front_Back() } // end test same tower and detector } // end loop back multiplicity } // end loop front multiplicity + + //cout << "ArrayOfGoodCouple initial size = " << ArrayOfGoodCouple.size() << endl; // prevent treating event with ambiguous matching beetween X and Y if (ArrayOfGoodCouple.size() > m_PreTreatedData->GetCTTrackerFrontEMult()) { @@ -348,6 +409,12 @@ vector<TVector2> TComptonTelescopePhysics::Match_Front_Back() //ArrayOfGoodCouple.clear(); } + // keep only mult = 1 + if (ArrayOfGoodCouple.size() > 1) { + m_CounterEvt[15] = 1; // nb of events with couple size > 1 + ArrayOfGoodCouple.clear(); + } + return ArrayOfGoodCouple; } @@ -536,8 +603,9 @@ void TComptonTelescopePhysics::Clear() Front_Energy.clear(); Back_Energy.clear(); Half_Energy.clear(); - StripFront_T.clear(); - StripBack_T.clear(); + Front_Time.clear(); + Back_Time.clear(); + Same_FBTime.clear(); // counters for (Int_t i = 0; i < m_nCounterEvt; i++) m_CounterEvt[i] = 0; @@ -645,8 +713,9 @@ void TComptonTelescopePhysics::InitializeRootInputPhysics() inputChain->SetBranchStatus("Front_Energy", true); inputChain->SetBranchStatus("Back_Energy", true); inputChain->SetBranchStatus("Half_Energy", true); - inputChain->SetBranchStatus("StripFront_T", true); - inputChain->SetBranchStatus("StripBack_T", true); + inputChain->SetBranchStatus("Front_Time", true); + inputChain->SetBranchStatus("Back_Time", true); + inputChain->SetBranchStatus("Same_FBTime", true); inputChain->SetBranchStatus("Calor_E", true); inputChain->SetBranchStatus("Calor_T", true); inputChain->SetBranchStatus("CalorPosX", true); diff --git a/NPLib/Detectors/ComptonTelescope/TComptonTelescopePhysics.h b/NPLib/Detectors/ComptonTelescope/TComptonTelescopePhysics.h index 0429f071c9976cb08e2a46aa3fabd87a24394010..2e23243066f51bdaeed5431b25aa8e539b9aff64 100644 --- a/NPLib/Detectors/ComptonTelescope/TComptonTelescopePhysics.h +++ b/NPLib/Detectors/ComptonTelescope/TComptonTelescopePhysics.h @@ -55,7 +55,7 @@ class TComptonTelescopePhysics : public TObject, public NPL::VDetector public: // data obtained after BuildPhysicalEvent() and stored in ROOT output file // DSSD - Int_t EventMultiplicity; + int EventMultiplicity; vector<int> EventType; vector<int> DetectorNumber; vector<int> Strip_Front; @@ -64,8 +64,8 @@ class TComptonTelescopePhysics : public TObject, public NPL::VDetector vector<double> Strip_T; vector<double> Front_Energy; vector<double> Back_Energy; - vector<double> StripFront_T; - vector<double> StripBack_T; + vector<double> Front_Time; + vector<double> Back_Time; // Calorimeter vector<double> Calor_E; vector<double> Calor_T; @@ -162,6 +162,8 @@ class TComptonTelescopePhysics : public TObject, public NPL::VDetector double GetFrontEnergy(const int i) {return Front_Energy[i];}; double GetBackEnergy(const int i) {return Back_Energy[i];}; double GetHalfEnergy(const int i) {return Half_Energy[i];}; + double GetFrontTime(const int i) {return Front_Time[i];}; + double GetBackTime(const int i) {return Back_Time[i];}; TVector3 GetPositionOfInteraction(const int i) const; TVector3 GetDetectorNormal(const int i) const; @@ -229,7 +231,7 @@ class TComptonTelescopePhysics : public TObject, public NPL::VDetector // physical events vector<int> TowerNumber; vector<double> Half_Energy; - + vector<bool> Same_FBTime; }; diff --git a/NPLib/Detectors/ComptonTelescope/TComptonTelescopeSpectra.cxx b/NPLib/Detectors/ComptonTelescope/TComptonTelescopeSpectra.cxx index 3c633fd68058be47ade9ac245bf42de9477da1b3..2d558360ec5d4de9a22a792f214c46ba071e08a4 100644 --- a/NPLib/Detectors/ComptonTelescope/TComptonTelescopeSpectra.cxx +++ b/NPLib/Detectors/ComptonTelescope/TComptonTelescopeSpectra.cxx @@ -95,32 +95,40 @@ void TComptonTelescopeSpectra::InitRawSpectra() // FRONT_E_RAW name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_FRONT_E_RAW"; - AddHisto2D(name, name, fNumberOfStripsFront, 0, fNumberOfStripsFront, 512, 0, 1024, "COMPTONTELESCOPE/RAW/FRONTE"); + AddHisto2D(name, name, fNumberOfStripsFront, 0, fNumberOfStripsFront, 512, 0, 1024, "COMPTONTELESCOPE/RAW/ENERGY"); // BACK_E_RAW name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_BACK_E_RAW"; - AddHisto2D(name, name, fNumberOfStripsBack, 0, fNumberOfStripsBack, 512, 0, 1024, "COMPTONTELESCOPE/RAW/BACKE"); + AddHisto2D(name, name, fNumberOfStripsBack, 0, fNumberOfStripsBack, 512, 0, 1024, "COMPTONTELESCOPE/RAW/ENERGY"); // E Front and Back vs Strip name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_FRONT_BACK_E_RAW"; - AddHisto2D(name, name, ntot, 0, ntot, 512, 0, 1024, "COMPTONTELESCOPE/RAW/FRONT_BACK_E"); + AddHisto2D(name, name, ntot, 0, ntot, 512, 0, 1024, "COMPTONTELESCOPE/RAW/ENERGY"); // FRONT_T_RAW name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_FRONT_T_RAW"; - AddHisto1D(name, name, 10000, 0, 1e10, "COMPTONTELESCOPE/RAW/FRONTT"); + AddHisto1D(name, name, 5000, 0, 5e9, "COMPTONTELESCOPE/RAW/TIME"); // BACK_T_RAW name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_BACK_T_RAW"; - AddHisto1D(name, name, 10000, 0, 1e10, "COMPTONTELESCOPE/RAW/BACKT"); + AddHisto1D(name, name, 5000, 0, 5e9, "COMPTONTELESCOPE/RAW/TIME"); // FRONT_RAW_MULT name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_FRONT_RAW_MULT"; - AddHisto1D(name, name, fNumberOfStripsFront, 0, fNumberOfStripsFront+1, "COMPTONTELESCOPE/RAW/MULT"); + AddHisto1D(name, name, fNumberOfStripsFront+1, 0, fNumberOfStripsFront+1, "COMPTONTELESCOPE/RAW/MULT"); // BACK_RAW_MULT name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_BACK_RAW_MULT"; - AddHisto1D(name, name, fNumberOfStripsFront, 0, fNumberOfStripsFront+1, "COMPTONTELESCOPE/RAW/MULT"); - } + AddHisto1D(name, name, fNumberOfStripsBack+1, 0, fNumberOfStripsBack+1, "COMPTONTELESCOPE/RAW/MULT"); + + // Time multiplicity + // Front + name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_T_FRONT_RAW_MULT"; + AddHisto1D(name, name, fNumberOfStripsFront+1, 0, fNumberOfStripsFront+1, "COMPTONTELESCOPE/RAW/MULT"); + // Back + name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_T_BACK_RAW_MULT"; + AddHisto1D(name, name, fNumberOfStripsBack+1, 0, fNumberOfStripsBack+1, "COMPTONTELESCOPE/RAW/MULT"); + } // CALORIMETER name = "CT"+NPL::itoa(i+1)+"_CALOR_RAW_TRIGGER"; @@ -143,35 +151,51 @@ void TComptonTelescopeSpectra::InitPreTreatedSpectra() // FRONT_E_CAL name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_FRONT_E_CAL"; - AddHisto2D(name, name, fNumberOfStripsFront, 0, fNumberOfStripsFront, 1400, 0, 1.4, "COMPTONTELESCOPE/CAL/FRONTE"); + AddHisto2D(name, name, fNumberOfStripsFront, 0, fNumberOfStripsFront, 1400, 0, 1.4, "COMPTONTELESCOPE/CAL/ENERGY"); // BACK_E_CAL name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_BACK_E_CAL"; - AddHisto2D(name, name, fNumberOfStripsBack, 0, fNumberOfStripsBack, 1400, 0, 1.4, "COMPTONTELESCOPE/CAL/BACKE"); + AddHisto2D(name, name, fNumberOfStripsBack, 0, fNumberOfStripsBack, 1400, 0, 1.4, "COMPTONTELESCOPE/CAL/ENERGY"); // E Front and Back vs Strip name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_FRONT_BACK_E_CAL"; - AddHisto2D(name, name, ntot, 0, ntot, 1400, 0, 1.4, "COMPTONTELESCOPE/CAL/FRONT_BACK_E"); + AddHisto2D(name, name, ntot, 0, ntot, 1400, 0, 1.4, "COMPTONTELESCOPE/CAL/ENERGY"); + // Front E spectrum + name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_FRONTECAL_SPECTRUM"; + AddHisto1D(name, name, 1400, 0, 1.4, "COMPTONTELESCOPE/CAL/ENERGYSPEC"); + + // Back E spectrum + name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_BACKECAL_SPECTRUM"; + AddHisto1D(name, name, 1400, 0, 1.4, "COMPTONTELESCOPE/CAL/ENERGYSPEC"); + // FRONT_T_CAL name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_FRONT_T_CAL"; - AddHisto1D(name, name, 10000, 0, 1e10, "COMPTONTELESCOPE/CAL/FRONTT"); + AddHisto1D(name, name, 5000, 0, 5e9, "COMPTONTELESCOPE/CAL/TIME"); // BACK_T_CAL name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_BACK_T_CAL"; - AddHisto1D(name, name, 10000, 0, 1e10, "COMPTONTELESCOPE/CAL/BACKT"); + AddHisto1D(name, name, 5000, 0, 5e9, "COMPTONTELESCOPE/CAL/TIME"); // FRONT_CAL_MULT name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_FRONT_CAL_MULT"; - AddHisto1D(name, name, fNumberOfStripsFront, 0, fNumberOfStripsFront+1, "COMPTONTELESCOPE/CAL/MULT"); + AddHisto1D(name, name, fNumberOfStripsFront+1, 0, fNumberOfStripsFront+1, "COMPTONTELESCOPE/CAL/MULT"); // BACK_CAL_MULT name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_BACK_CAL_MULT"; - AddHisto1D(name, name, fNumberOfStripsFront, 0, fNumberOfStripsFront+1, "COMPTONTELESCOPE/CAL/MULT"); + AddHisto1D(name, name, fNumberOfStripsBack+1, 0, fNumberOfStripsBack+1, "COMPTONTELESCOPE/CAL/MULT"); // Front-Back Energy Correlation name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_FB_COR_CAL"; - AddHisto2D(name, name, 1400,0,1.4, 1400,0,1.4, "COMPTONTELESCOPE/CAL/FB"); + AddHisto2D(name, name, 1400,0,1.4, 1400,0,1.4, "COMPTONTELESCOPE/CAL/ENERGYCOR"); + + // Time multiplicity + // Front + name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_T_FRONT_CAL_MULT"; + AddHisto1D(name, name, fNumberOfStripsFront+1, 0, fNumberOfStripsFront+1, "COMPTONTELESCOPE/CAL/MULT"); + // Back + name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_T_BACK_CAL_MULT"; + AddHisto1D(name, name, fNumberOfStripsBack+1, 0, fNumberOfStripsBack+1, "COMPTONTELESCOPE/CAL/MULT"); } // end loop on number of detectors }// end loop on number of telescopes @@ -187,10 +211,10 @@ void TComptonTelescopeSpectra::InitPhysicsSpectra() // counters name = "CT_DSSSD_COUNTERS_EVTS"; - AddHisto1D(name, name, fNumberOfCounters, 0, fNumberOfCounters, "COMPTONTELESCOPE/PHY"); + AddHisto1D(name, name, fNumberOfCounters, 0, fNumberOfCounters, "COMPTONTELESCOPE/PHY/COUNTER"); name = "CT_DSSSD_COUNTERS_HITS"; - AddHisto1D(name, name, fNumberOfCounters, 0, fNumberOfCounters, "COMPTONTELESCOPE/PHY"); + AddHisto1D(name, name, fNumberOfCounters, 0, fNumberOfCounters, "COMPTONTELESCOPE/PHY/COUNTER"); // loop on number of telescopes for (unsigned int i = 0 ; i < fNumberOfTelescope ; i++) { @@ -201,28 +225,37 @@ void TComptonTelescopeSpectra::InitPhysicsSpectra() // E Front + Back vs Strip name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_FRONT_BACK_E_PHY"; - AddHisto2D(name, name, ntot, 0, ntot, 1400, 0, 1.4, "COMPTONTELESCOPE/PHY"); + AddHisto2D(name, name, ntot, 0, ntot, 1400, 0, 1.4, "COMPTONTELESCOPE/PHY/ENERGY"); // front back Energy Correlation name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_FB_COR_PHY"; - AddHisto2D(name, name, 1400,0,1.4, 1400,0,1.4, "COMPTONTELESCOPE/PHY"); + AddHisto2D(name, name, 1400,0,1.4, 1400,0,1.4, "COMPTONTELESCOPE/PHY/ENERGYCOR"); // Front E spectrum name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_FRONTE_SPECTRUM"; - AddHisto1D(name, name, 1400, 0, 1.4, "COMPTONTELESCOPE/PHY"); + AddHisto1D(name, name, 1400, 0, 1.4, "COMPTONTELESCOPE/PHY/ENERGYSPEC"); // Back E spectrum name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_BACKE_SPECTRUM"; - AddHisto1D(name, name, 1400, 0, 1.4, "COMPTONTELESCOPE/PHY"); + AddHisto1D(name, name, 1400, 0, 1.4, "COMPTONTELESCOPE/PHY/ENERGYSPEC"); // Half E spectrum name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_HALFE_SPECTRUM"; - AddHisto1D(name, name, 1400, 0, 1.4, "COMPTONTELESCOPE/PHY"); + AddHisto1D(name, name, 1400, 0, 1.4, "COMPTONTELESCOPE/PHY/ENERGYSPEC"); // Multiplicity int MultMax = fNumberOfStripsFront*fNumberOfStripsBack; name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_MULT_PHYS"; - AddHisto1D(name, name, MultMax, 0, MultMax, "COMPTONTELESCOPE/PHY"); + AddHisto1D(name, name, MultMax+1, 0, MultMax+1, "COMPTONTELESCOPE/PHY/MULT"); + + // Time + // Front + name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_FRONT_T_PHY"; + AddHisto1D(name, name, 5000, -2000, 5e9, "COMPTONTELESCOPE/PHY/TIME"); + // Back + name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_BACK_T_PHY"; + AddHisto1D(name, name, 5000, -2000, 5e9, "COMPTONTELESCOPE/PHY/TIME"); + // X-Y Impact Matrix // name = "CT_IMPACT_MATRIX"; @@ -256,27 +289,31 @@ void TComptonTelescopeSpectra::FillRawSpectra(TComptonTelescopeData* RawData) string family; // FRONT_E - for (unsigned int i = 0; i < RawData->GetCTTrackerFrontEMult(); i++) { + for (unsigned int i = 0; i < RawData->GetCTTrackerFrontEMult(); i++) { name = "CT"+NPL::itoa(RawData->GetCTTrackerFrontETowerNbr(i))+"_DSSSD"+NPL::itoa(RawData->GetCTTrackerFrontEDetectorNbr(i))+"_FRONT_E_RAW"; - family = "COMPTONTELESCOPE/RAW/FRONTE"; - + family = "COMPTONTELESCOPE/RAW/ENERGY"; +// if (RawData->GetCTTrackerFrontTTime(i) > 3e9) { +// if (RawData->GetCTTrackerBackEMult() == 0) { FillSpectra(family,name, RawData->GetCTTrackerFrontEStripNbr(i), RawData->GetCTTrackerFrontEEnergy(i)); +// } } // BACK_E for (unsigned int i = 0; i < RawData->GetCTTrackerBackEMult(); i++) { name = "CT"+NPL::itoa(RawData->GetCTTrackerBackETowerNbr(i))+"_DSSSD"+NPL::itoa(RawData->GetCTTrackerBackEDetectorNbr(i))+"_BACK_E_RAW"; - family = "COMPTONTELESCOPE/RAW/BACKE"; - + family = "COMPTONTELESCOPE/RAW/ENERGY"; +// if (RawData->GetCTTrackerBackTTime(i) > 3e9) { +// if (RawData->GetCTTrackerFrontEMult() == 0) { FillSpectra(family,name, RawData->GetCTTrackerBackEStripNbr(i), RawData->GetCTTrackerBackEEnergy(i)); +// } } // E Front Back vs Strip - family = "COMPTONTELESCOPE/RAW/FRONT_BACK_E"; + family = "COMPTONTELESCOPE/RAW/ENERGY"; for (unsigned int i = 0; i < RawData->GetCTTrackerFrontEMult(); i++) { name = "CT"+NPL::itoa(RawData->GetCTTrackerFrontETowerNbr(i))+"_DSSSD"+NPL::itoa(RawData->GetCTTrackerFrontEDetectorNbr(i))+"_FRONT_BACK_E_RAW"; FillSpectra(family, name, @@ -293,34 +330,27 @@ void TComptonTelescopeSpectra::FillRawSpectra(TComptonTelescopeData* RawData) // FRONT_T for (unsigned int i = 0; i < RawData->GetCTTrackerFrontTMult(); i++) { name = "CT"+NPL::itoa(RawData->GetCTTrackerFrontETowerNbr(i))+"_DSSSD"+NPL::itoa(RawData->GetCTTrackerFrontTDetectorNbr(i))+"_FRONT_T_RAW"; - family = "COMPTONTELESCOPE/RAW/FRONTT"; - + family = "COMPTONTELESCOPE/RAW/TIME"; FillSpectra(family,name,RawData->GetCTTrackerFrontTTime(i)); - //FillSpectra(family,name,RawData->GetCTTrackerFrontTStripNbr(i),RawData->GetCTTrackerFrontTTime(i)); } // BACK_T for (unsigned int i = 0; i < RawData->GetCTTrackerBackTMult(); i++) { name = "CT"+NPL::itoa(RawData->GetCTTrackerFrontETowerNbr(i))+"_DSSSD"+NPL::itoa(RawData->GetCTTrackerBackTDetectorNbr(i))+"_BACK_T_RAW"; - family = "COMPTONTELESCOPE/RAW/BACKT"; - + family = "COMPTONTELESCOPE/RAW/TIME"; FillSpectra(family,name,RawData->GetCTTrackerBackTTime(i)); - //FillSpectra(family,name,RawData->GetCTTrackerBackTStripNbr(i),RawData->GetCTTrackerBackTTime(i)); } // FRONT MULT int myMULT[fNumberOfTelescope][fNumberOfDetectors]; - //int myMULT[fNumberOfTelescope]; for (unsigned int i = 0; i < fNumberOfTelescope; i++) { for (unsigned int j = 0; j < fNumberOfDetectors; j++) { myMULT[i][j] = 0 ; } } - for (unsigned int i = 0 ; i < RawData->GetCTTrackerFrontEMult(); i++) { myMULT[RawData->GetCTTrackerFrontETowerNbr(i)-1][RawData->GetCTTrackerFrontEDetectorNbr(i)-1] += 1; //myMULT[RawData->GetCTTrackerFrontEDetectorNbr(i)-1] += 1; } - for (unsigned int i = 0; i < fNumberOfTelescope; i++) { for (unsigned int j = 0; j < fNumberOfDetectors; j++) { name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_FRONT_RAW_MULT"; @@ -335,11 +365,9 @@ void TComptonTelescopeSpectra::FillRawSpectra(TComptonTelescopeData* RawData) myMULT[i][j] = 0 ; } } - for (unsigned int i = 0 ; i < RawData->GetCTTrackerBackEMult(); i++) { myMULT[RawData->GetCTTrackerBackETowerNbr(i)-1][RawData->GetCTTrackerBackEDetectorNbr(i)-1] += 1; } - for (unsigned int i = 0; i < fNumberOfTelescope; i++) { for (unsigned int j = 0; j < fNumberOfDetectors; j++) { name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_BACK_RAW_MULT"; @@ -348,6 +376,41 @@ void TComptonTelescopeSpectra::FillRawSpectra(TComptonTelescopeData* RawData) } } + // Time Multiplicity + // Front + for (unsigned int i = 0; i < fNumberOfTelescope; i++) { + for (unsigned int j = 0; j < fNumberOfDetectors; j++) { + myMULT[i][j] = 0 ; + } + } + for (unsigned int i = 0 ; i < RawData->GetCTTrackerFrontTMult(); i++) { + myMULT[RawData->GetCTTrackerFrontTTowerNbr(i)-1][RawData->GetCTTrackerFrontTDetectorNbr(i)-1] += 1; + } + for (unsigned int i = 0; i < fNumberOfTelescope; i++) { + for (unsigned int j = 0; j < fNumberOfDetectors; j++) { + name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_T_FRONT_RAW_MULT"; + family= "COMPTONTELESCOPE/RAW/MULT"; + FillSpectra(family,name,myMULT[i][j]); + } + } + // Back + for (unsigned int i = 0; i < fNumberOfTelescope; i++) { + for (unsigned int j = 0; j < fNumberOfDetectors; j++) { + myMULT[i][j] = 0 ; + } + } + for (unsigned int i = 0 ; i < RawData->GetCTTrackerBackTMult(); i++) { + myMULT[RawData->GetCTTrackerBackTTowerNbr(i)-1][RawData->GetCTTrackerBackTDetectorNbr(i)-1] += 1; + } + for (unsigned int i = 0; i < fNumberOfTelescope; i++) { + for (unsigned int j = 0; j < fNumberOfDetectors; j++) { + name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_T_BACK_RAW_MULT"; + family= "COMPTONTELESCOPE/RAW/MULT"; + FillSpectra(family,name,myMULT[i][j]); + } + } + + // CALORIMETERĂ‚ TRIGGERS for (unsigned int i = 0; i < RawData->GetCTCalorimeterTMult(); i++) { name = "CT"+NPL::itoa(RawData->GetCTCalorimeterEDetectorNbr(i))+"_CALOR_RAW_TRIGGER"; @@ -364,26 +427,28 @@ void TComptonTelescopeSpectra::FillPreTreatedSpectra(TComptonTelescopeData* PreT // FRONT_E for (unsigned int i = 0; i < PreTreatedData->GetCTTrackerFrontEMult(); i++) { +// if (PreTreatedData->GetCTTrackerFrontTTime(i) > 3e9) { name = "CT"+NPL::itoa(PreTreatedData->GetCTTrackerFrontETowerNbr(i))+"_DSSSD"+NPL::itoa(PreTreatedData->GetCTTrackerFrontEDetectorNbr(i))+"_FRONT_E_CAL"; - family = "COMPTONTELESCOPE/CAL/FRONTE"; - + family = "COMPTONTELESCOPE/CAL/ENERGY"; FillSpectra(family,name ,PreTreatedData->GetCTTrackerFrontEStripNbr(i), PreTreatedData->GetCTTrackerFrontEEnergy(i)); +// } } // BACK_E for (unsigned int i = 0; i < PreTreatedData->GetCTTrackerBackEMult(); i++) { +// if (PreTreatedData->GetCTTrackerBackTTime(i) > 3e9) { name = "CT"+NPL::itoa(PreTreatedData->GetCTTrackerBackETowerNbr(i))+"_DSSSD"+NPL::itoa(PreTreatedData->GetCTTrackerBackEDetectorNbr(i))+"_BACK_E_CAL"; - family = "COMPTONTELESCOPE/CAL/BACKE"; - + family = "COMPTONTELESCOPE/CAL/ENERGY"; FillSpectra(family,name ,PreTreatedData->GetCTTrackerBackEStripNbr(i), PreTreatedData->GetCTTrackerBackEEnergy(i)); +// } } // E Front Back vs Strip - family = "COMPTONTELESCOPE/CAL/FRONT_BACK_E"; + family = "COMPTONTELESCOPE/CAL/ENERGY"; for (unsigned int i = 0; i < PreTreatedData->GetCTTrackerFrontEMult(); i++) { name = "CT"+NPL::itoa(PreTreatedData->GetCTTrackerFrontETowerNbr(i))+"_DSSSD"+NPL::itoa(PreTreatedData->GetCTTrackerFrontEDetectorNbr(i))+"_FRONT_BACK_E_CAL"; FillSpectra(family, name, @@ -400,25 +465,39 @@ void TComptonTelescopeSpectra::FillPreTreatedSpectra(TComptonTelescopeData* PreT // E Front Back correlation for (unsigned int i = 0; i < PreTreatedData->GetCTTrackerFrontEMult(); i++) { for (unsigned int j = 0; j < PreTreatedData->GetCTTrackerBackEMult(); j++) { - if(PreTreatedData->GetCTTrackerFrontETowerNbr(i) == PreTreatedData->GetCTTrackerBackETowerNbr(i) && - PreTreatedData->GetCTTrackerFrontEDetectorNbr(i) == PreTreatedData->GetCTTrackerBackEDetectorNbr(j)) { + if(PreTreatedData->GetCTTrackerFrontETowerNbr(i) == PreTreatedData->GetCTTrackerBackETowerNbr(j) && + PreTreatedData->GetCTTrackerFrontEDetectorNbr(i) == PreTreatedData->GetCTTrackerBackEDetectorNbr(j)) { name = "CT"+NPL::itoa(PreTreatedData->GetCTTrackerFrontETowerNbr(i))+"_DSSSD"+NPL::itoa(PreTreatedData->GetCTTrackerFrontEDetectorNbr(i))+"_FB_COR_CAL"; - family = "COMPTONTELESCOPE/CAL/FB"; + family = "COMPTONTELESCOPE/CAL/ENERGYCOR"; FillSpectra(family,name,PreTreatedData->GetCTTrackerFrontEEnergy(i), PreTreatedData->GetCTTrackerBackEEnergy(j)); } } } + // Energy spectrum + // front + for (unsigned int i = 0; i < PreTreatedData->GetCTTrackerFrontEMult(); i++) { + name = "CT"+NPL::itoa(PreTreatedData->GetCTTrackerFrontETowerNbr(i))+"_DSSSD"+NPL::itoa(PreTreatedData->GetCTTrackerFrontEDetectorNbr(i))+"_FRONTECAL_SPECTRUM"; + family= "COMPTONTELESCOPE/CAL/ENERGYSPEC"; + FillSpectra(family, name, PreTreatedData->GetCTTrackerFrontEEnergy(i)); + } + // back + for (unsigned int i = 0; i < PreTreatedData->GetCTTrackerBackEMult(); i++) { + name = "CT"+NPL::itoa(PreTreatedData->GetCTTrackerBackETowerNbr(i))+"_DSSSD"+NPL::itoa(PreTreatedData->GetCTTrackerBackEDetectorNbr(i))+"_BACKECAL_SPECTRUM"; + family= "COMPTONTELESCOPE/CAL/ENERGYSPEC"; + FillSpectra(family, name, PreTreatedData->GetCTTrackerBackEEnergy(i)); + } + // FRONT_T for (unsigned int i = 0; i < PreTreatedData->GetCTTrackerFrontTMult(); i++) { name = "CT"+NPL::itoa(PreTreatedData->GetCTTrackerBackETowerNbr(i))+"_DSSSD"+NPL::itoa(PreTreatedData->GetCTTrackerFrontTDetectorNbr(i))+"_FRONT_T_CAL"; - family = "COMPTONTELESCOPE/CAL/FRONTT"; + family = "COMPTONTELESCOPE/CAL/TIME"; FillSpectra(family,name, PreTreatedData->GetCTTrackerFrontTTime(i)); } // BACK_T for (unsigned int i = 0; i < PreTreatedData->GetCTTrackerBackTMult(); i++) { name = "CT"+NPL::itoa(PreTreatedData->GetCTTrackerBackETowerNbr(i))+"_DSSSD"+NPL::itoa(PreTreatedData->GetCTTrackerBackTDetectorNbr(i))+"_BACK_T_CAL"; - family = "COMPTONTELESCOPE/CAL/BACKT"; + family = "COMPTONTELESCOPE/CAL/TIME"; FillSpectra(family,name, PreTreatedData->GetCTTrackerBackTTime(i)); } @@ -429,11 +508,9 @@ void TComptonTelescopeSpectra::FillPreTreatedSpectra(TComptonTelescopeData* PreT myMULT[i][j] = 0 ; } } - for(unsigned int i = 0 ; i < PreTreatedData->GetCTTrackerFrontEMult();i++){ myMULT[PreTreatedData->GetCTTrackerFrontETowerNbr(i)-1][PreTreatedData->GetCTTrackerFrontEDetectorNbr(i)-1] += 1; } - for( unsigned int i = 0; i < fNumberOfTelescope; i++){ for (unsigned int j = 0; j < fNumberOfDetectors; j++) { name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_FRONT_CAL_MULT"; @@ -448,11 +525,9 @@ void TComptonTelescopeSpectra::FillPreTreatedSpectra(TComptonTelescopeData* PreT myMULT[i][j] = 0 ; } } - for(unsigned int i = 0 ; i < PreTreatedData->GetCTTrackerBackEMult();i++){ - myMULT[PreTreatedData->GetCTTrackerBackETowerNbr(i)-1][PreTreatedData->GetCTTrackerBackEDetectorNbr(i)-1] += 1; + myMULT[PreTreatedData->GetCTTrackerBackETowerNbr(i)-1][PreTreatedData->GetCTTrackerBackEDetectorNbr(i)-1] += 1; } - for( unsigned int i = 0; i < fNumberOfTelescope; i++){ for (unsigned int j = 0; j < fNumberOfDetectors; j++) { name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_BACK_CAL_MULT"; @@ -461,24 +536,60 @@ void TComptonTelescopeSpectra::FillPreTreatedSpectra(TComptonTelescopeData* PreT } } - + // Time Multiplicity + // Front + for (unsigned int i = 0; i < fNumberOfTelescope; i++) { + for (unsigned int j = 0; j < fNumberOfDetectors; j++) { + myMULT[i][j] = 0 ; + } + } + for (unsigned int i = 0 ; i < PreTreatedData->GetCTTrackerFrontTMult(); i++) { + myMULT[PreTreatedData->GetCTTrackerFrontTTowerNbr(i)-1][PreTreatedData->GetCTTrackerFrontTDetectorNbr(i)-1] += 1; + } + for (unsigned int i = 0; i < fNumberOfTelescope; i++) { + for (unsigned int j = 0; j < fNumberOfDetectors; j++) { + name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_T_FRONT_CAL_MULT"; + family= "COMPTONTELESCOPE/CAL/MULT"; + FillSpectra(family,name,myMULT[i][j]); + } + } + // Back + for (unsigned int i = 0; i < fNumberOfTelescope; i++) { + for (unsigned int j = 0; j < fNumberOfDetectors; j++) { + myMULT[i][j] = 0 ; + } + } + for (unsigned int i = 0 ; i < PreTreatedData->GetCTTrackerBackTMult(); i++) { + myMULT[PreTreatedData->GetCTTrackerBackTTowerNbr(i)-1][PreTreatedData->GetCTTrackerBackTDetectorNbr(i)-1] += 1; + } + for (unsigned int i = 0; i < fNumberOfTelescope; i++) { + for (unsigned int j = 0; j < fNumberOfDetectors; j++) { + name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_T_BACK_CAL_MULT"; + family= "COMPTONTELESCOPE/CAL/MULT"; + FillSpectra(family,name,myMULT[i][j]); + } + } + + } //////////////////////////////////////////////////////////////////////////////// void TComptonTelescopeSpectra::FillPhysicsSpectra(TComptonTelescopePhysics* Physics){ string name; - string family = "COMPTONTELESCOPE/PHY"; + string family; //// DSSSD // counters // for events name = "CT_DSSSD_COUNTERS_EVTS"; + family= "COMPTONTELESCOPE/PHY/COUNTER"; for (unsigned int i = 0; i < fNumberOfCounters; i++) { FillSpectra(family, name, i, Physics->m_CounterEvt[i]); } - // for hits + // for hits name = "CT_DSSSD_COUNTERS_HITS"; + family= "COMPTONTELESCOPE/PHY/COUNTER"; for (unsigned int i = 0; i < fNumberOfCounters; i++) { FillSpectra(family, name, i, Physics->m_CounterHit[i]); } @@ -486,6 +597,7 @@ void TComptonTelescopeSpectra::FillPhysicsSpectra(TComptonTelescopePhysics* Phys // Front + Back E per strip for (unsigned int i = 0; i < Physics->GetEventMultiplicity(); i++) { name = "CT"+NPL::itoa(Physics->GetTowerNumber(i))+"_DSSSD"+NPL::itoa(Physics->GetDetectorNumber(i))+"_FRONT_BACK_E_PHY"; + family= "COMPTONTELESCOPE/PHY/ENERGY"; FillSpectra(family, name, Physics->GetFrontStrip(i), Physics->GetFrontEnergy(i)); FillSpectra(family, name, fNumberOfStripsFront+Physics->GetBackStrip(i), Physics->GetBackEnergy(i)); } @@ -493,18 +605,27 @@ void TComptonTelescopeSpectra::FillPhysicsSpectra(TComptonTelescopePhysics* Phys // front back Energy correlation for (unsigned int i = 0; i < Physics->GetEventMultiplicity(); i++) { name = "CT"+NPL::itoa(Physics->GetTowerNumber(i))+"_DSSSD"+NPL::itoa(Physics->GetDetectorNumber(i))+"_FB_COR_PHY"; + family= "COMPTONTELESCOPE/PHY/ENERGYCOR"; FillSpectra(family, name, Physics->GetFrontEnergy(i), Physics->GetBackEnergy(i)); } // Energy spectrum + // front for (unsigned int i = 0; i < Physics->GetEventMultiplicity(); i++) { name = "CT"+NPL::itoa(Physics->GetTowerNumber(i))+"_DSSSD"+NPL::itoa(Physics->GetDetectorNumber(i))+"_FRONTE_SPECTRUM"; + family= "COMPTONTELESCOPE/PHY/ENERGYSPEC"; FillSpectra(family, name, Physics->GetFrontEnergy(i)); - + } + // back + for (unsigned int i = 0; i < Physics->GetEventMultiplicity(); i++) { name = "CT"+NPL::itoa(Physics->GetTowerNumber(i))+"_DSSSD"+NPL::itoa(Physics->GetDetectorNumber(i))+"_BACKE_SPECTRUM"; + family= "COMPTONTELESCOPE/PHY/ENERGYSPEC"; FillSpectra(family, name, Physics->GetBackEnergy(i)); - + } + // half + for (unsigned int i = 0; i < Physics->GetEventMultiplicity(); i++) { name = "CT"+NPL::itoa(Physics->GetTowerNumber(i))+"_DSSSD"+NPL::itoa(Physics->GetDetectorNumber(i))+"_HALFE_SPECTRUM"; + family= "COMPTONTELESCOPE/PHY/ENERGYSPEC"; FillSpectra(family, name, Physics->GetHalfEnergy(i)); } @@ -521,15 +642,29 @@ void TComptonTelescopeSpectra::FillPhysicsSpectra(TComptonTelescopePhysics* Phys for (unsigned int i = 0; i < fNumberOfTelescope; i++) { for (unsigned int j = 0; j < fNumberOfDetectors; j++) { name = "CT"+NPL::itoa(i+1)+"_DSSSD"+NPL::itoa(j+1)+"_MULT_PHYS"; + family= "COMPTONTELESCOPE/PHY/MULT"; FillSpectra(family, name, myMULT[i][j]); } } + // Time + // Front + for (unsigned int i = 0; i < Physics->GetEventMultiplicity(); i++) { + name = "CT"+NPL::itoa(Physics->GetTowerNumber(i))+"_DSSSD"+NPL::itoa(Physics->GetDetectorNumber(i))+"_FRONT_T_PHY"; + family= "COMPTONTELESCOPE/PHY/TIME"; + FillSpectra(family,name,Physics->GetFrontTime(i)); + } + // Back + for (unsigned int i = 0; i < Physics->GetEventMultiplicity(); i++) { + name = "CT"+NPL::itoa(Physics->GetTowerNumber(i))+"_DSSSD"+NPL::itoa(Physics->GetDetectorNumber(i))+"_BACK_T_PHY"; + family= "COMPTONTELESCOPE/PHY/TIME"; + FillSpectra(family,name,Physics->GetBackTime(i)); + } + // X-Y Impact Matrix // name = "CT_IMPACT_MATRIX"; - // T //// Calorimeter diff --git a/Projects/ComptonTelescope/online/Calibration_DSSSD/FitSpectrumCalib.C b/Projects/ComptonTelescope/online/Calibration_DSSSD/FitSpectrumCalib.C index f317627679881aefe7ee170780650a78519a694b..6e52c8034e02b5a9446a9ea5b231e5d4df1e66a7 100644 --- a/Projects/ComptonTelescope/online/Calibration_DSSSD/FitSpectrumCalib.C +++ b/Projects/ComptonTelescope/online/Calibration_DSSSD/FitSpectrumCalib.C @@ -26,6 +26,7 @@ Double_t indivFcn(Double_t*, Double_t*); Double_t indivFcn_BG(Double_t*, Double_t*); Double_t fit_pol1(Double_t*, Double_t*); Double_t fit_pol2(Double_t*, Double_t*); +Double_t fit_pol3(Double_t*, Double_t*); void AddPeak(Double_t, Double_t, Double_t); void RemovePeak(Double_t, Double_t); Double_t CalibUncertainty(Double_t, TF1*, TMatrixDSym); @@ -303,12 +304,36 @@ void FitSpectrumCalib() ////////// calibration ////////// cout << "\n" << "/////////// calibration //////////////" << endl; + // clone graph + TGraphErrors *gr_calib2 = (TGraphErrors*)gr_calib->Clone(); + TGraphErrors *gr_calib3 = (TGraphErrors*)gr_calib->Clone(); + + // fit TGraph pol1 + TF1 *fitP1 = new TF1("fitP1", fit_pol1, 0, 1000, 2); + fitP1->SetParNames("p0","p1"); + fitP1->SetParameters(0.08,0.001); + TFitResultPtr graphP1 = gr_calib->Fit(fitP1, "RS"); + graphP1->Print("V"); + + // write fit param in txt file + ofstream fitParam_fileP1("./calib/DSSSD_calibration_withPed_pol1.txt", ios::app); + fitParam_fileP1 << Form("COMPTONTELESCOPE_D1_STRIP_FRONT%d_E",k) << " " << fitP1->GetParameter(0) << " " << fitP1->GetParameter(1) << " " << endl; + fitParam_fileP1.close(); + + // write graph in root file + TFile *calibFileP1 = new TFile("./calib/graph_calib_207Bi_spectrum_withPed_pol1.root", "update"); + gr_calib->SetNameTitle(Form("grCalib_D1_Front%d", k), Form("D1_Front%d", k)); + gr_calib->GetXaxis()->SetTitle("position (channel)"); + gr_calib->GetYaxis()->SetTitle("Energy (MeV)"); + gr_calib->Write(); + calibFileP1->Close(); + // fit TGraph pol2 TF1 *fitP2 = new TF1("fitP2", fit_pol2, 0, 1000, 3); fitP2->SetParNames("p0","p1","p2"); // fitP2->SetParLimits(0, fitP2->SetParameters(-0.09,0.001,-5e-11); - TFitResultPtr graphP2 = gr_calib->Fit(fitP2, "RS"); + TFitResultPtr graphP2 = gr_calib2->Fit(fitP2, "RS"); graphP2->Print("V"); // write fit param in txt file @@ -318,12 +343,33 @@ void FitSpectrumCalib() // write graph in root file TFile *calibFileP2 = new TFile("./calib/graph_calib_207Bi_spectrum_withPed_pol2.root", "update"); - gr_calib->SetNameTitle(Form("grCalib_D1_Front%d", k), Form("D1_Front%d", k)); - gr_calib->GetXaxis()->SetTitle("position (channel)"); - gr_calib->GetYaxis()->SetTitle("Energy (MeV)"); - gr_calib->Write(); + gr_calib2->SetNameTitle(Form("grCalib_D1_Front%d", k), Form("D1_Front%d", k)); + gr_calib2->GetXaxis()->SetTitle("position (channel)"); + gr_calib2->GetYaxis()->SetTitle("Energy (MeV)"); + gr_calib2->Write(); calibFileP2->Close(); + // fit TGraph pol3 + TF1 *fitP3 = new TF1("fitP3", fit_pol3, 0, 1000, 4); + fitP3->SetParNames("p0","p1","p2", "p3"); + fitP3->SetParameters(-0.08,0.001,-6e-8,-1.5e-10); + TFitResultPtr graphP3 = gr_calib3->Fit(fitP3, "RS"); + graphP3->Print("V"); + + // write fit param in txt file + ofstream fitParam_fileP3("./calib/DSSSD_calibration_withPed_pol3.txt", ios::app); + fitParam_fileP3 << Form("COMPTONTELESCOPE_D1_STRIP_FRONT%d_E",k) << " " << fitP3->GetParameter(0) << " " << fitP3->GetParameter(1) << " " << fitP3->GetParameter(2) << " " << fitP3->GetParameter(3) << endl; + fitParam_fileP3.close(); + + // write graph in root file + TFile *calibFileP3 = new TFile("./calib/graph_calib_207Bi_spectrum_withPed_pol3.root", "update"); + gr_calib3->SetNameTitle(Form("grCalib_D1_Front%d", k), Form("D1_Front%d", k)); + gr_calib3->GetXaxis()->SetTitle("position (channel)"); + gr_calib3->GetYaxis()->SetTitle("Energy (MeV)"); + gr_calib3->Write(); + calibFileP3->Close(); + + } } @@ -568,12 +614,36 @@ void FitSpectrumCalib() ////////// calibration ////////// cout << "\n" << "/////////// calibration //////////////" << endl; + // clone graph + TGraphErrors *gr_calib2 = (TGraphErrors*)gr_calib->Clone(); + TGraphErrors *gr_calib3 = (TGraphErrors*)gr_calib->Clone(); + + // fit TGraph pol1 + TF1 *fitP1 = new TF1("fitP1", fit_pol1, 0, 1000, 2); + fitP1->SetParNames("p0","p1"); + fitP1->SetParameters(0.08,0.001); + TFitResultPtr graphP1 = gr_calib->Fit(fitP1, "RS"); + graphP1->Print("V"); + + // write fit param in txt file + ofstream fitParam_fileP1("./calib/DSSSD_calibration_withPed_pol1.txt", ios::app); + fitParam_fileP1 << Form("COMPTONTELESCOPE_D1_STRIP_BACK%d_E",k) << " " << fitP1->GetParameter(0) << " " << fitP1->GetParameter(1) << " " << endl; + fitParam_fileP1.close(); + + // write graph in root file + TFile *calibFileP1 = new TFile("./calib/graph_calib_207Bi_spectrum_withPed_pol1.root", "update"); + gr_calib->SetNameTitle(Form("grCalib_D1_Back%d", k), Form("D1_Back%d", k)); + gr_calib->GetXaxis()->SetTitle("position (channel)"); + gr_calib->GetYaxis()->SetTitle("Energy (MeV)"); + gr_calib->Write(); + calibFileP1->Close(); + // fit TGraph pol2 TF1 *fitP2 = new TF1("fitP2", fit_pol2, 0, 1000, 3); fitP2->SetParNames("p0","p1","p2"); // fitP2->SetParLimits(0, fitP2->SetParameters(-0.09,0.001,-5e-11); - TFitResultPtr graphP2 = gr_calib->Fit(fitP2, "RS"); + TFitResultPtr graphP2 = gr_calib2->Fit(fitP2, "RS"); graphP2->Print("V"); // write fit param in txt file @@ -583,12 +653,32 @@ void FitSpectrumCalib() // write graph in root file TFile *calibFileP2 = new TFile("./calib/graph_calib_207Bi_spectrum_withPed_pol2.root", "update"); - gr_calib->SetNameTitle(Form("grCalib_D1_Back%d", k), Form("D1_Back%d", k)); - gr_calib->GetXaxis()->SetTitle("position (channel)"); - gr_calib->GetYaxis()->SetTitle("Energy (MeV)"); - gr_calib->Write(); + gr_calib2->SetNameTitle(Form("grCalib_D1_Back%d", k), Form("D1_Back%d", k)); + gr_calib2->GetXaxis()->SetTitle("position (channel)"); + gr_calib2->GetYaxis()->SetTitle("Energy (MeV)"); + gr_calib2->Write(); calibFileP2->Close(); + // fit TGraph pol3 + TF1 *fitP3 = new TF1("fitP3", fit_pol3, 0, 1000, 4); + fitP3->SetParNames("p0","p1","p2", "p3"); + fitP3->SetParameters(-0.08,0.001,-6e-8,-1.5e-10); + TFitResultPtr graphP3 = gr_calib3->Fit(fitP3, "RS"); + graphP3->Print("V"); + + // write fit param in txt file + ofstream fitParam_fileP3("./calib/DSSSD_calibration_withPed_pol3.txt", ios::app); + fitParam_fileP3 << Form("COMPTONTELESCOPE_D1_STRIP_BACK%d_E",k) << " " << fitP3->GetParameter(0) << " " << fitP3->GetParameter(1) << " " << fitP3->GetParameter(2) << " " << fitP3->GetParameter(3) << endl; + fitParam_fileP3.close(); + + // write graph in root file + TFile *calibFileP3 = new TFile("./calib/graph_calib_207Bi_spectrum_withPed_pol3.root", "update"); + gr_calib3->SetNameTitle(Form("grCalib_D1_Back%d", k), Form("D1_Back%d", k)); + gr_calib3->GetXaxis()->SetTitle("position (channel)"); + gr_calib3->GetYaxis()->SetTitle("Energy (MeV)"); + gr_calib3->Write(); + calibFileP3->Close(); + } @@ -731,6 +821,14 @@ Double_t fit_pol2(Double_t *x, Double_t *par) return fit_pol2; } +//// fit polynomial degree 3 +Double_t fit_pol3(Double_t *x, Double_t *par) +{ + Double_t fit_pol3 = par[0] + par[1]*x[0] + par[2]*x[0]*x[0] + par[3]*pow(x[0],3); + return fit_pol3; +} + + Double_t CalibUncertainty(Double_t x, TF1* f, TMatrixDSym cov) { // get number of TF1 parameters diff --git a/Projects/ComptonTelescope/online/CanvasList.txt b/Projects/ComptonTelescope/online/CanvasList.txt index ec0d9584ae74cf030f469fd59682aca1281ff754..877ebc82bb5f7700751e9ec368a456a260ec2f21 100644 --- a/Projects/ComptonTelescope/online/CanvasList.txt +++ b/Projects/ComptonTelescope/online/CanvasList.txt @@ -14,12 +14,12 @@ Canvas Canvas Path= Diffuseur DSSSD@DSSSD_CAL Divide = 3 2 - Histo= CT1_DSSSD@DSSSD_FRONT_BACK_E_CAL CT1_DSSSD@DSSSD_FB_COR_CAL CT1_DSSSD@DSSSD_FRONT_T_CAL CT1_DSSSD@DSSSD_BACK_T_CAL CT1_DSSSD@DSSSD_FRONT_CAL_MULT CT1_DSSSD@DSSSD_BACK_CAL_MULT + Histo= CT1_DSSSD@DSSSD_FRONT_BACK_E_CAL CT1_DSSSD@DSSSD_FB_COR_CAL CT1_DSSSD@DSSSD_FRONT_CAL_MULT CT1_DSSSD@DSSSD_BACK_CAL_MULT CT1_DSSSD@DSSSD_FRONT_T_CAL CT1_DSSSD@DSSSD_FRONT_T_CAL_MULT Canvas Path= Diffuseur DSSSD@DSSSD_PHY Divide = 3 2 - Histo= CT1_DSSSD@DSSSD_FRONT_BACK_E_PHY CT1_DSSSD@DSSSD_FB_COR_PHY CT1_DSSSD@DSSSD_MULT_PHYS CT1_DSSSD@DSSSD_FRONTE_SPECTRUM CT1_DSSSD@DSSSD_BACKE_SPECTRUM CT1_DSSSD@DSSSD_HALFE_SPECTRUM + Histo= CT1_DSSSD@DSSSD_FRONT_BACK_E_PHY CT1_DSSSD@DSSSD_FB_COR_PHY CT1_DSSSD@DSSSD_HALFE_SPECTRUM CT1_DSSSD@DSSSD_MULT_PHYS CT1_DSSSD@DSSSD_FRONT_T_PHY Canvas Path= Calorimeter diff --git a/Projects/ComptonTelescope/online/calibrations/DSSSD_calibration.txt b/Projects/ComptonTelescope/online/calibrations/DSSSD_calibration.txt index 2a91d3260b15153a5bc502e390fb3a60138102a5..c41de93a637be9f6aa67bbc2220b92ca568aed0c 100644 --- a/Projects/ComptonTelescope/online/calibrations/DSSSD_calibration.txt +++ b/Projects/ComptonTelescope/online/calibrations/DSSSD_calibration.txt @@ -1,63 +1,63 @@ -COMPTONTELESCOPE_D1_STRIP_FRONT0_E -0.0934531 0.00180027 -5.82011e-07 -COMPTONTELESCOPE_D1_STRIP_FRONT2_E -0.0903122 0.00172711 -4.87628e-07 -COMPTONTELESCOPE_D1_STRIP_FRONT3_E -0.0874131 0.00177432 -5.44078e-07 -COMPTONTELESCOPE_D1_STRIP_FRONT4_E -0.0964319 0.00176333 -5.39491e-07 -COMPTONTELESCOPE_D1_STRIP_FRONT5_E -0.104107 0.0017885 -5.52601e-07 -COMPTONTELESCOPE_D1_STRIP_FRONT6_E -0.0987705 0.00178577 -5.58864e-07 -COMPTONTELESCOPE_D1_STRIP_FRONT7_E -0.0899375 0.00177468 -5.52249e-07 -COMPTONTELESCOPE_D1_STRIP_FRONT8_E -0.100085 0.00176717 -5.40868e-07 -COMPTONTELESCOPE_D1_STRIP_FRONT9_E -0.104419 0.00177421 -5.44883e-07 -COMPTONTELESCOPE_D1_STRIP_FRONT10_E -0.0924807 0.00177011 -5.4943e-07 -COMPTONTELESCOPE_D1_STRIP_FRONT11_E -0.0875265 0.00177471 -5.52593e-07 -COMPTONTELESCOPE_D1_STRIP_FRONT12_E -0.0992238 0.00178145 -5.53796e-07 -COMPTONTELESCOPE_D1_STRIP_FRONT13_E -0.10182 0.00169543 -4.50357e-07 -COMPTONTELESCOPE_D1_STRIP_FRONT14_E -0.100161 0.00176613 -5.37168e-07 -COMPTONTELESCOPE_D1_STRIP_FRONT15_E -0.0990803 0.00176413 -5.39536e-07 -COMPTONTELESCOPE_D1_STRIP_FRONT16_E -0.100443 0.00176957 -5.43078e-07 -COMPTONTELESCOPE_D1_STRIP_FRONT17_E -0.0878409 0.00176846 -5.49133e-07 -COMPTONTELESCOPE_D1_STRIP_FRONT18_E -0.0873921 0.00177105 -5.5044e-07 -COMPTONTELESCOPE_D1_STRIP_FRONT19_E -0.0877909 0.00176441 -5.47759e-07 -COMPTONTELESCOPE_D1_STRIP_FRONT20_E -0.0917784 0.00175944 -5.38608e-07 -COMPTONTELESCOPE_D1_STRIP_FRONT21_E -0.0981475 0.00176784 -5.40938e-07 -COMPTONTELESCOPE_D1_STRIP_FRONT22_E -0.0883559 0.00178895 -5.70329e-07 -COMPTONTELESCOPE_D1_STRIP_FRONT23_E -0.0919994 0.00177136 -5.49362e-07 -COMPTONTELESCOPE_D1_STRIP_FRONT24_E -0.0933209 0.00176455 -5.43665e-07 -COMPTONTELESCOPE_D1_STRIP_FRONT25_E -0.101271 0.00179481 -5.69405e-07 -COMPTONTELESCOPE_D1_STRIP_FRONT26_E -0.0977543 0.00178471 -5.58274e-07 -COMPTONTELESCOPE_D1_STRIP_FRONT27_E -0.0894781 0.00176341 -5.42662e-07 -COMPTONTELESCOPE_D1_STRIP_FRONT28_E -0.0923046 0.00177134 -5.49974e-07 -COMPTONTELESCOPE_D1_STRIP_FRONT29_E -0.0946486 0.00178677 -5.60364e-07 -COMPTONTELESCOPE_D1_STRIP_FRONT30_E -0.0890991 0.00178257 -5.50186e-07 -COMPTONTELESCOPE_D1_STRIP_FRONT31_E -0.0921704 0.0017889 -5.67587e-07 -COMPTONTELESCOPE_D1_STRIP_BACK0_E -0.0805337 0.00150729 -3.02333e-07 -COMPTONTELESCOPE_D1_STRIP_BACK1_E -0.0833026 0.0014947 -2.81848e-07 -COMPTONTELESCOPE_D1_STRIP_BACK2_E -0.0761666 0.00150465 -3.0708e-07 -COMPTONTELESCOPE_D1_STRIP_BACK3_E -0.0858729 0.0014684 -2.52633e-07 -COMPTONTELESCOPE_D1_STRIP_BACK4_E -0.0800133 0.0014632 -2.5448e-07 -COMPTONTELESCOPE_D1_STRIP_BACK5_E -0.0735165 0.0014649 -2.7106e-07 -COMPTONTELESCOPE_D1_STRIP_BACK6_E -0.0641379 0.00148315 -2.80243e-07 -COMPTONTELESCOPE_D1_STRIP_BACK7_E -0.0697819 0.00146174 -2.53714e-07 -COMPTONTELESCOPE_D1_STRIP_BACK8_E -0.0783108 0.00147336 -2.6112e-07 -COMPTONTELESCOPE_D1_STRIP_BACK9_E -0.085687 0.00146151 -2.46488e-07 -COMPTONTELESCOPE_D1_STRIP_BACK10_E -0.0644142 0.00143811 -2.25225e-07 -COMPTONTELESCOPE_D1_STRIP_BACK11_E -0.0796874 0.00146148 -2.51524e-07 -COMPTONTELESCOPE_D1_STRIP_BACK12_E -0.0766915 0.00145522 -2.49276e-07 -COMPTONTELESCOPE_D1_STRIP_BACK13_E -0.0668928 0.00145005 -2.4494e-07 -COMPTONTELESCOPE_D1_STRIP_BACK14_E -0.0727393 0.00145947 -2.53876e-07 -COMPTONTELESCOPE_D1_STRIP_BACK15_E -0.0725306 0.00145132 -2.49247e-07 -COMPTONTELESCOPE_D1_STRIP_BACK16_E -0.0647014 0.00146991 -2.73505e-07 -COMPTONTELESCOPE_D1_STRIP_BACK17_E -0.0853361 0.00146705 -2.69567e-07 -COMPTONTELESCOPE_D1_STRIP_BACK18_E -0.0833425 0.00150287 -2.8913e-07 -COMPTONTELESCOPE_D1_STRIP_BACK19_E -0.0853201 0.00149406 -2.83562e-07 -COMPTONTELESCOPE_D1_STRIP_BACK20_E -0.0766901 0.00146744 -2.64948e-07 -COMPTONTELESCOPE_D1_STRIP_BACK21_E -0.0762199 0.00144391 -2.28349e-07 -COMPTONTELESCOPE_D1_STRIP_BACK22_E -0.0738024 0.00146484 -2.55994e-07 -COMPTONTELESCOPE_D1_STRIP_BACK23_E -0.0768318 0.00146475 -2.66047e-07 -COMPTONTELESCOPE_D1_STRIP_BACK24_E -0.0842882 0.00146939 -2.67955e-07 -COMPTONTELESCOPE_D1_STRIP_BACK25_E -0.0704812 0.00143521 -2.42203e-07 -COMPTONTELESCOPE_D1_STRIP_BACK26_E -0.0702664 0.00149096 -2.85376e-07 -COMPTONTELESCOPE_D1_STRIP_BACK27_E -0.077033 0.00145935 -2.52349e-07 -COMPTONTELESCOPE_D1_STRIP_BACK28_E -0.0729292 0.00146908 -2.47212e-07 -COMPTONTELESCOPE_D1_STRIP_BACK29_E -0.0713691 0.00145829 -2.62199e-07 -COMPTONTELESCOPE_D1_STRIP_BACK30_E -0.0555176 0.00144809 -2.39454e-07 -COMPTONTELESCOPE_D1_STRIP_BACK31_E -0.0638031 0.00143007 -2.22057e-07 +COMPTONTELESCOPE_D1_STRIP_FRONT0_E -0.103591 0.00202937 -1.31595e-06 5.76435e-10 +COMPTONTELESCOPE_D1_STRIP_FRONT2_E -0.104106 0.00202867 -1.3036e-06 5.63485e-10 +COMPTONTELESCOPE_D1_STRIP_FRONT3_E -0.098837 0.00204093 -1.33881e-06 5.92735e-10 +COMPTONTELESCOPE_D1_STRIP_FRONT4_E -0.108476 0.00202001 -1.29333e-06 5.58686e-10 +COMPTONTELESCOPE_D1_STRIP_FRONT5_E -0.116573 0.00204149 -1.3072e-06 5.66047e-10 +COMPTONTELESCOPE_D1_STRIP_FRONT6_E -0.110589 0.00203637 -1.31396e-06 5.69446e-10 +COMPTONTELESCOPE_D1_STRIP_FRONT7_E -0.100743 0.00202155 -1.30182e-06 5.67145e-10 +COMPTONTELESCOPE_D1_STRIP_FRONT8_E -0.11252 0.00202463 -1.29808e-06 5.60844e-10 +COMPTONTELESCOPE_D1_STRIP_FRONT9_E -0.117428 0.00203499 -1.30994e-06 5.66109e-10 +COMPTONTELESCOPE_D1_STRIP_FRONT10_E -0.103673 0.00201915 -1.30198e-06 5.66642e-10 +COMPTONTELESCOPE_D1_STRIP_FRONT11_E -0.0982859 0.00202634 -1.31844e-06 5.80249e-10 +COMPTONTELESCOPE_D1_STRIP_FRONT12_E -0.111208 0.00203441 -1.32057e-06 5.79307e-10 +COMPTONTELESCOPE_D1_STRIP_FRONT13_E -0.120281 0.00205225 -1.38071e-06 6.21937e-10 +COMPTONTELESCOPE_D1_STRIP_FRONT14_E -0.112119 0.00201441 -1.28253e-06 5.59917e-10 +COMPTONTELESCOPE_D1_STRIP_FRONT15_E -0.110662 0.00200685 -1.2735e-06 5.5227e-10 +COMPTONTELESCOPE_D1_STRIP_FRONT16_E -0.112664 0.00202289 -1.3004e-06 5.66877e-10 +COMPTONTELESCOPE_D1_STRIP_FRONT17_E -0.0983501 0.00201311 -1.29979e-06 5.70893e-10 +COMPTONTELESCOPE_D1_STRIP_FRONT18_E -0.0979195 0.00201749 -1.3067e-06 5.75613e-10 +COMPTONTELESCOPE_D1_STRIP_FRONT19_E -0.0983914 0.00201083 -1.30387e-06 5.74465e-10 +COMPTONTELESCOPE_D1_STRIP_FRONT20_E -0.102963 0.00200863 -1.291e-06 5.65941e-10 +COMPTONTELESCOPE_D1_STRIP_FRONT21_E -0.109975 0.00201758 -1.28779e-06 5.59236e-10 +COMPTONTELESCOPE_D1_STRIP_FRONT22_E -0.0973036 0.00200045 -1.26058e-06 5.4656e-10 +COMPTONTELESCOPE_D1_STRIP_FRONT23_E -0.102655 0.0020103 -1.2829e-06 5.58831e-10 +COMPTONTELESCOPE_D1_STRIP_FRONT24_E -0.104804 0.00201667 -1.29217e-06 5.56727e-10 +COMPTONTELESCOPE_D1_STRIP_FRONT25_E -0.112278 0.00202614 -1.29455e-06 5.61179e-10 +COMPTONTELESCOPE_D1_STRIP_FRONT26_E -0.109317 0.00203257 -1.31645e-06 5.77175e-10 +COMPTONTELESCOPE_D1_STRIP_FRONT27_E -0.0993002 0.00198848 -1.24093e-06 5.35279e-10 +COMPTONTELESCOPE_D1_STRIP_FRONT28_E -0.103218 0.00201509 -1.29301e-06 5.64033e-10 +COMPTONTELESCOPE_D1_STRIP_FRONT29_E -0.105567 0.00202778 -1.30333e-06 5.69012e-10 +COMPTONTELESCOPE_D1_STRIP_FRONT30_E -0.100864 0.00205314 -1.34556e-06 5.88846e-10 +COMPTONTELESCOPE_D1_STRIP_FRONT31_E -0.103062 0.00203463 -1.32007e-06 5.73146e-10 +COMPTONTELESCOPE_D1_STRIP_BACK0_E -0.0755551 0.0014027 -5.46295e-08 -1.535e-10 +COMPTONTELESCOPE_D1_STRIP_BACK1_E -0.0786639 0.00139894 -3.43811e-08 -1.62293e-10 +COMPTONTELESCOPE_D1_STRIP_BACK2_E -0.0725508 0.00142445 -1.13162e-07 -1.2294e-10 +COMPTONTELESCOPE_D1_STRIP_BACK3_E -0.0822847 0.00139653 -5.58348e-08 -1.36187e-10 +COMPTONTELESCOPE_D1_STRIP_BACK4_E -0.075355 0.00136454 1.60153e-08 -1.88892e-10 +COMPTONTELESCOPE_D1_STRIP_BACK5_E -0.070324 0.00139274 -8.41426e-08 -1.22293e-10 +COMPTONTELESCOPE_D1_STRIP_BACK6_E -0.0605549 0.00139064 -3.30817e-08 -1.69143e-10 +COMPTONTELESCOPE_D1_STRIP_BACK7_E -0.0666194 0.00138605 -3.82721e-08 -1.50997e-10 +COMPTONTELESCOPE_D1_STRIP_BACK8_E -0.0741552 0.00138275 -4.00449e-09 -1.84527e-10 +COMPTONTELESCOPE_D1_STRIP_BACK9_E -0.0814244 0.0013753 4.63623e-09 -1.83339e-10 +COMPTONTELESCOPE_D1_STRIP_BACK10_E -0.0616857 0.00136842 -1.39941e-08 -1.57991e-10 +COMPTONTELESCOPE_D1_STRIP_BACK11_E -0.0762645 0.00138761 -3.01102e-08 -1.6395e-10 +COMPTONTELESCOPE_D1_STRIP_BACK12_E -0.0720235 0.00135252 4.39851e-08 -2.05899e-10 +COMPTONTELESCOPE_D1_STRIP_BACK13_E -0.0639722 0.00137769 -3.1996e-08 -1.53898e-10 +COMPTONTELESCOPE_D1_STRIP_BACK14_E -0.0693841 0.00138182 -2.65063e-08 -1.66127e-10 +COMPTONTELESCOPE_D1_STRIP_BACK15_E -0.0693754 0.0013786 -4.02883e-08 -1.47366e-10 +COMPTONTELESCOPE_D1_STRIP_BACK16_E -0.0615302 0.00139044 -5.06176e-08 -1.57946e-10 +COMPTONTELESCOPE_D1_STRIP_BACK17_E -0.0839769 0.00143972 -1.94622e-07 -5.06432e-11 +COMPTONTELESCOPE_D1_STRIP_BACK18_E -0.0787552 0.00140747 -2.03952e-08 -1.92275e-10 +COMPTONTELESCOPE_D1_STRIP_BACK19_E -0.0819682 0.001425 -8.44234e-08 -1.43258e-10 +COMPTONTELESCOPE_D1_STRIP_BACK20_E -0.0741045 0.00140995 -9.66639e-08 -1.22825e-10 +COMPTONTELESCOPE_D1_STRIP_BACK21_E -0.0726507 0.0013651 1.71355e-09 -1.67266e-10 +COMPTONTELESCOPE_D1_STRIP_BACK22_E -0.06887 0.00135476 4.29449e-08 -2.08002e-10 +COMPTONTELESCOPE_D1_STRIP_BACK23_E -0.0734823 0.00139036 -4.69954e-08 -1.59962e-10 +COMPTONTELESCOPE_D1_STRIP_BACK24_E -0.0814692 0.00141153 -1.01568e-07 -1.19993e-10 +COMPTONTELESCOPE_D1_STRIP_BACK25_E -0.0679494 0.00137581 -6.86338e-08 -1.24906e-10 +COMPTONTELESCOPE_D1_STRIP_BACK26_E -0.0634414 0.00133637 8.83812e-08 -2.36871e-10 +COMPTONTELESCOPE_D1_STRIP_BACK27_E -0.0742368 0.00139765 -7.22661e-08 -1.30621e-10 +COMPTONTELESCOPE_D1_STRIP_BACK28_E -0.0682225 0.00136177 4.89513e-08 -2.09195e-10 +COMPTONTELESCOPE_D1_STRIP_BACK29_E -0.0681408 0.00138285 -5.04957e-08 -1.46424e-10 +COMPTONTELESCOPE_D1_STRIP_BACK30_E -0.0532481 0.00138162 -3.48193e-08 -1.54458e-10 +COMPTONTELESCOPE_D1_STRIP_BACK31_E -0.0611554 0.00136231 -1.85725e-08 -1.50171e-10 diff --git a/Projects/ComptonTelescope/online/configs/ConfigComptonTelescope.dat b/Projects/ComptonTelescope/online/configs/ConfigComptonTelescope.dat index 81bb4f97660edb84c5209ce27467c84ed595536b..8018d26f37c5f402d25824cc871a5a135afa60bf 100644 --- a/Projects/ComptonTelescope/online/configs/ConfigComptonTelescope.dat +++ b/Projects/ComptonTelescope/online/configs/ConfigComptonTelescope.dat @@ -1,11 +1,11 @@ ConfigComptonTelescope MAX_STRIP_MULTIPLICITY 32 - FRONT_BACK_ENERGY_MATCHING_SIGMA 0.010 + FRONT_BACK_ENERGY_MATCHING_SIGMA 0.006 FRONT_BACK_ENERGY_MATCHING_NUMBER_OF_SIGMA 3 DISABLE_CHANNEL COMPTONTELESCOPE_D1_STRIP_FRONT1_E STRIP_FRONT_E_RAW_THRESHOLD 0 STRIP_BACK_E_RAW_THRESHOLD 0 - STRIP_FRONT_E_THRESHOLD 0.2 - STRIP_BACK_E_THRESHOLD 0.2 + STRIP_FRONT_E_THRESHOLD 0.1 + STRIP_BACK_E_THRESHOLD 0.1 CALORIMETER_E_RAW_THRESHOLD 0 CALORIMETER_E_THRESHOLD 0