Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions include/MGUIOptionsEventSaver.h
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,9 @@ class MGUIOptionsEventSaver : public MGUIOptions
//! Checkbutton to save or reject bad events
TGCheckButton* m_SaveBadEvents;

//! Checkbutton to save or reject quality flag events
TGCheckButton* m_SavePoorQualityEvents;

//! Checkbutton to save veto events
TGCheckButton* m_SaveVetoEvents;

Expand Down
144 changes: 73 additions & 71 deletions include/MHit.h
Original file line number Diff line number Diff line change
Expand Up @@ -58,15 +58,15 @@ class MHit
//! Return the energy
double GetEnergy() const { return m_Energy; }

//! Set the LVenergy
void SetLVEnergy(double LVEnergy) { m_LVEnergy = LVEnergy; }
//! Return the LVenergy
double GetLVEnergy() const { return m_LVEnergy; }
//! Set the LVenergy
void SetLVEnergy(double LVEnergy) { m_LVEnergy = LVEnergy; }
//! Return the LVenergy
double GetLVEnergy() const { return m_LVEnergy; }

//! Set the HVenergy
void SetHVEnergy(double HVEnergy) { m_HVEnergy = HVEnergy; }
//! Return the HVenergy
double GetHVEnergy() const { return m_HVEnergy; }
//! Set the HVenergy
void SetHVEnergy(double HVEnergy) { m_HVEnergy = HVEnergy; }
//! Return the HVenergy
double GetHVEnergy() const { return m_HVEnergy; }

//! Set the energy resolution
void SetEnergyResolution(double EnergyResolution) { m_EnergyResolution = EnergyResolution; }
Expand All @@ -89,53 +89,55 @@ class MHit
//! Remove a strip hit
void RemoveStripHit(MStripHit* StripHit);

//! set cross talk flag
void SetCrossTalkFlag(bool PossibleCrossTalk) {m_PossibleCrossTalk = PossibleCrossTalk;}
//! get cross talk flag value
bool GetCrossTalkFlag() const { return m_PossibleCrossTalk; }
//! set cross talk flag
void SetCrossTalkFlag(bool PossibleCrossTalk) {m_PossibleCrossTalk = PossibleCrossTalk;}
//! get cross talk flag value
bool GetCrossTalkFlag() const { return m_PossibleCrossTalk; }

//! Set guard ring hit flag
void SetGuardRingHitFlag(bool GuardRingHit) {m_GuardRingHit = GuardRingHit;}
//! Get guard ring hit flag
bool GetGuardRingHitFlag() const { return m_GuardRingHit; }

//! set charge loss flag
void SetChargeLossFlag(bool PossibleChargeLoss) {m_PossibleChargeLoss = PossibleChargeLoss;}
//! get charge loss flag value
bool GetChargeLossFlag() const { return m_PossibleChargeLoss; }

//! set x strip hit multiple times flag
void SetStripHitMultipleTimesX(bool stripHitMultipleTimesX) {m_StripHitMultipleTimesX = stripHitMultipleTimesX;}
//! get m_StripHitMultipleTimesX
bool GetStripHitMultipleTimesX() const { return m_StripHitMultipleTimesX; }
//! set y strip hit multiple times flag
void SetStripHitMultipleTimesY(bool stripHitMultipleTimesY) {m_StripHitMultipleTimesY = stripHitMultipleTimesY;}
//! get m_StripHitMultipleTimesY
bool GetStripHitMultipleTimesY() const { return m_StripHitMultipleTimesY; }

//! set charge sharing flag for LV side
void SetChargeSharingLV(bool chargeSharingLV) {m_ChargeSharingLV = chargeSharingLV; }
//! get m_ChargeSharingLV
bool GetChargeSharingLV() const { return m_ChargeSharingLV; }
//! set charge sharing flag for HV side
void SetChargeSharingHV(bool chargeSharingHV) {m_ChargeSharingHV = chargeSharingHV; }
//! get m_ChargeSharingHV
bool GetChargeSharingHV() const { return m_ChargeSharingHV; }
//! Keeping general charge sharing flags because Greedy strip pairing relies on it
void SetChargeSharing(bool chargeSharing) {m_ChargeSharing = chargeSharing; }
//! get m_ChargeSharing
bool GetChargeSharing() const { return m_ChargeSharing; }
//! set m_NoDepth
void SetNoDepth(bool X = true) { m_NoDepth = X;}
//! get m_NoDepth
bool GetNoDepth(void) const { return m_NoDepth; }
//! set m_IsNonDominantNeighborStrip
void SetIsNondominantNeighborStrip(bool X = true) {m_IsNonDominantNeighborStrip = X;}
//! get m_IsNonDominantNeighborStrip
bool GetIsNondominantNeighborStrip(void) const {return m_IsNonDominantNeighborStrip;}
//! Set guard ring hit flag
void SetGuardRingHitFlag(bool GuardRingHit) {m_GuardRingHit = GuardRingHit;}
//! Get guard ring hit flag
bool GetGuardRingHitFlag() const { return m_GuardRingHit; }

//! set charge loss flag
void SetChargeLossFlag(bool PossibleChargeLoss) {m_PossibleChargeLoss = PossibleChargeLoss;}
//! get charge loss flag value
bool GetChargeLossFlag() const { return m_PossibleChargeLoss; }

//! set x strip hit multiple times flag
void SetStripHitMultipleTimesX(bool stripHitMultipleTimesX) {m_StripHitMultipleTimesX = stripHitMultipleTimesX;}
//! get m_StripHitMultipleTimesX
bool GetStripHitMultipleTimesX() const { return m_StripHitMultipleTimesX; }
//! set y strip hit multiple times flag
void SetStripHitMultipleTimesY(bool stripHitMultipleTimesY) {m_StripHitMultipleTimesY = stripHitMultipleTimesY;}
//! get m_StripHitMultipleTimesY
bool GetStripHitMultipleTimesY() const { return m_StripHitMultipleTimesY; }

//! set charge sharing flag for LV side
void SetChargeSharingLV(bool chargeSharingLV) {m_ChargeSharingLV = chargeSharingLV; }
//! get m_ChargeSharingLV
bool GetChargeSharingLV() const { return m_ChargeSharingLV; }
//! set charge sharing flag for HV side
void SetChargeSharingHV(bool chargeSharingHV) {m_ChargeSharingHV = chargeSharingHV; }
//! get m_ChargeSharingHV
bool GetChargeSharingHV() const { return m_ChargeSharingHV; }
//! Keeping general charge sharing flags because Greedy strip pairing relies on it
void SetChargeSharing(bool chargeSharing) {m_ChargeSharing = chargeSharing; }
//! get m_ChargeSharing
bool GetChargeSharing() const { return m_ChargeSharing; }

//! set m_NoDepth
void SetNoDepth(bool X = true) { m_NoDepth = X;}
//! get m_NoDepth
bool GetNoDepth(void) const { return m_NoDepth; }

//! set m_IsNonDominantNeighborStrip
void SetIsNondominantNeighborStrip(bool X = true) {m_IsNonDominantNeighborStrip = X;}
//! get m_IsNonDominantNeighborStrip
bool GetIsNondominantNeighborStrip(void) const {return m_IsNonDominantNeighborStrip;}

//! Set the origins from the simulations (take care of duplicates)
void AddOrigins(vector<int> Origins);
//! Set the origins from the simulations (take care of duplicates)
void AddOrigins(vector<int> Origins);
//! Get the origins from the simulation
vector<int> GetOrigins() const { return m_Origins; }

Expand Down Expand Up @@ -186,28 +188,28 @@ class MHit
//! List of strip hits
vector<MStripHit*> m_StripHits;

//! Flag: possible cross talk
bool m_PossibleCrossTalk;
//! Flag: possible charge loss
bool m_PossibleChargeLoss;
//! Flag: hit containing guard ring strip
bool m_GuardRingHit;
//! Flag: possible cross talk
bool m_PossibleCrossTalk;
//! Flag: possible charge loss
bool m_PossibleChargeLoss;
//! Flag: hit containing guard ring strip
bool m_GuardRingHit;

//! true if hit contains strip that was hit multiple times on X
bool m_StripHitMultipleTimesX = false;
//! true if hit contains strip that was hit multiple times on Y
bool m_StripHitMultipleTimesY = false;
//! true if hit contains strip that was hit multiple times on X
bool m_StripHitMultipleTimesX = false;
//! true if hit contains strip that was hit multiple times on Y
bool m_StripHitMultipleTimesY = false;

//! true if hit contains charge sharing
bool m_ChargeSharing;
bool m_ChargeSharingLV;
bool m_ChargeSharingHV;
//! true if hit contains charge sharing
bool m_ChargeSharing;
bool m_ChargeSharingLV;
bool m_ChargeSharingHV;

//! true if depth is invalid, either because the pixel depth was uncalibrated, the hit was mapped too far out of the detector,or there was no timing data
bool m_NoDepth;
//! true if depth is invalid, either because the pixel depth was uncalibrated, the hit was mapped too far out of the detector,or there was no timing data
bool m_NoDepth;

//! true if hit was made from a charge sharing event using a neighbor strip that had the lowere energy fraction
bool m_IsNonDominantNeighborStrip;
//! true if hit was made from a charge sharing event using a neighbor strip that had the lowere energy fraction
bool m_IsNonDominantNeighborStrip;

//! Origin IAs from simulations
vector<int> m_Origins;
Expand Down
1 change: 1 addition & 0 deletions include/MModuleDepthCalibration.h
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,7 @@ class MModuleDepthCalibration : public MModule
uint64_t m_ErrorNullSH;
uint64_t m_ErrorNoE;
unordered_map<int, MDDetector*> m_Detectors;
unordered_map<int, MDDetector*> m_GRDetectors;
vector<unsigned int> m_DetectorIDs;
MModuleEnergyCalibration* m_EnergyCalibration;
MGUIExpoDepthCalibration* m_ExpoDepthCalibration;
Expand Down
8 changes: 8 additions & 0 deletions include/MModuleEventSaver.h
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,11 @@ class MModuleEventSaver : public MModule
//! Set whether the Bad events should be saved
void SetSaveBadEvents(bool SaveBadEvents) { m_SaveBadEvents = SaveBadEvents; }

//! Return true if the Poor Quality events should be saved
bool GetSavePoorQualityEvents() const { return m_SavePoorQualityEvents; }
//! Set whether the Poor Quality events should be saved
void SetSavePoorQualityEvents(bool SavePoorQualityEvents) { m_SavePoorQualityEvents = SavePoorQualityEvents; }

//! Return true if the Veto events should be saved
bool GetSaveVetoEvents() const { return m_SaveVetoEvents; }
//! Set whether the Veto events should be saved
Expand Down Expand Up @@ -193,6 +198,9 @@ class MModuleEventSaver : public MModule
//! Save bad events
bool m_SaveBadEvents;

//! Save poor quality events
bool m_SavePoorQualityEvents;

//! Save Veto events
bool m_SaveVetoEvents;

Expand Down
2 changes: 2 additions & 0 deletions include/MReadOutAssembly.h
Original file line number Diff line number Diff line change
Expand Up @@ -249,6 +249,8 @@ class MReadOutAssembly : public MReadOutSequence
bool IsGood() const;
//! Returns true if any of the "bad" or "Error" flags has been set
bool IsBad() const;
//! Returns true if any of the Quality flags have been set
bool IsPoorQuality() const;

//! Set a specific analysis progress
void SetAnalysisProgress(uint64_t Progress) { m_AnalysisProgress |= Progress; }
Expand Down
5 changes: 5 additions & 0 deletions src/MGUIOptionsEventSaver.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,10 @@ void MGUIOptionsEventSaver::Create()
m_SaveBadEvents->SetOn(dynamic_cast<MModuleEventSaver*>(m_Module)->GetSaveBadEvents());
GeneralFrame->AddFrame(m_SaveBadEvents, FirstLabelLayout);

m_SavePoorQualityEvents = new TGCheckButton(GeneralFrame, "Save events with quality flag (QA)", 1);
m_SavePoorQualityEvents->SetOn(dynamic_cast<MModuleEventSaver*>(m_Module)->GetSavePoorQualityEvents());
GeneralFrame->AddFrame(m_SavePoorQualityEvents, FirstLabelLayout);

m_SaveVetoEvents = new TGCheckButton(GeneralFrame, "Save guard ring and shield veto events (Veto)", 1);
m_SaveVetoEvents->SetOn(dynamic_cast<MModuleEventSaver*>(m_Module)->GetSaveVetoEvents());
GeneralFrame->AddFrame(m_SaveVetoEvents, TightButtonLayout);
Expand Down Expand Up @@ -229,6 +233,7 @@ bool MGUIOptionsEventSaver::OnApply()
dynamic_cast<MModuleEventSaver*>(m_Module)->SetFileName(m_FileSelector->GetFileName());

dynamic_cast<MModuleEventSaver*>(m_Module)->SetSaveBadEvents(m_SaveBadEvents->IsOn());
dynamic_cast<MModuleEventSaver*>(m_Module)->SetSavePoorQualityEvents(m_SavePoorQualityEvents->IsOn());
dynamic_cast<MModuleEventSaver*>(m_Module)->SetSaveVetoEvents(m_SaveVetoEvents->IsOn());
dynamic_cast<MModuleEventSaver*>(m_Module)->SetAddTimeTag(m_AddTimeTag->IsOn());
dynamic_cast<MModuleEventSaver*>(m_Module)->SetSplitFile(m_SplitFile->IsOn());
Expand Down
Loading