#include <DigiSignal.h>
Public Types | |
| typedef Int_t | DigiPmtTruth_t |
| typedef std::vector< const DigiPE * > | PEList_t |
| typedef std::vector< TRef > | HitList_t |
| typedef std::vector< Float_t > | HitWeightList_t |
| kUnknown = 0x00 | |
| kGenuine = 0x01 | |
| kDarkNoise = 0x02 | |
| kFibreLight = 0x04 | |
| kCrosstalk = 0x08 | |
| kCrosstalkOptical = 0x10 | |
| kLeakFromNextBucket = 0x20 | |
| kLeakFromPrevBucket = 0x40 | |
| kAfterpulse = 0x80 | |
| enum | EDigiPmtTruth { kUnknown = 0x00, kGenuine = 0x01, kDarkNoise = 0x02, kFibreLight = 0x04, kCrosstalk = 0x08, kCrosstalkOptical = 0x10, kLeakFromNextBucket = 0x20, kLeakFromPrevBucket = 0x40, kAfterpulse = 0x80 } |
Public Member Functions | |
| DigiSignal () | |
| DigiSignal (Float_t charge, PEList_t &pes, HitList_t &hits, HitWeightList_t &weights, DigiPmtTruth_t truth) | |
| DigiSignal (const DigiSignal &rhs) | |
| ~DigiSignal () | |
| UInt_t | GetId () const |
| Double_t | GetCharge () const |
| const PEList_t & | GetPes () const |
| DigiPmtTruth_t | GetTruth () const |
| Int_t | GetNumPe () const |
| UInt_t | GetNumberOfHits () const |
| const DigiScintHit * | GetHit (UInt_t hit) const |
| Float_t | GetHitWeight (UInt_t hit) const |
| Float_t | GetTotalHitWeight () const |
| const DigiScintHit * | GetBiggestHit () const |
| void | SetCharge (Double_t charge) |
| void | AddDigiPE (const DigiPE *digipe) |
| void | AddHit (const DigiScintHit *hitptr, Double_t weight=0) |
| void | SetTruth (DigiPmtTruth_t in) |
| void | SetTruthBit (DigiPmtTruth_t in) |
| void | ClearTruthBit (DigiPmtTruth_t in) |
| void | Merge (DigiSignal &other) |
| virtual void | Print (Option_t *option="") const |
| virtual const char * | AsString (Option_t *option="") const |
| virtual std::ostream & | FormatToOStream (std::ostream &os, Option_t *option="") const |
Private Member Functions | |
| ClassDef (DigiSignal, 4) | |
Private Attributes | |
| UInt_t | fSignalId |
| Float_t | fCharge |
| PEList_t | fPes |
| Int_t | fNumPe |
| HitList_t | fHits |
| HitWeightList_t | fHitWeights |
| DigiPmtTruth_t | fTruth |
Friends | |
| std::ostream & | operator<< (std::ostream &os, const DigiSignal &s) |
Definition at line 15 of file DigiSignal.h.
| typedef Int_t DigiSignal::DigiPmtTruth_t |
Definition at line 31 of file DigiSignal.h.
| typedef std::vector<TRef> DigiSignal::HitList_t |
Definition at line 33 of file DigiSignal.h.
| typedef std::vector<Float_t> DigiSignal::HitWeightList_t |
Definition at line 34 of file DigiSignal.h.
| typedef std::vector<const DigiPE*> DigiSignal::PEList_t |
Definition at line 32 of file DigiSignal.h.
| kUnknown | |
| kGenuine | |
| kDarkNoise | |
| kFibreLight | |
| kCrosstalk | |
| kCrosstalkOptical | |
| kLeakFromNextBucket | |
| kLeakFromPrevBucket | |
| kAfterpulse |
Definition at line 18 of file DigiSignal.h.
00018 { 00019 kUnknown = 0x00, // Can happen: known cause is 0 charge 00020 // but random noise passes sparsification thresh. 00021 kGenuine = 0x01, // A real hit from real gosh-darn physics. 00022 kDarkNoise = 0x02, // Dark noise from the tube. 00023 kFibreLight = 0x04, // Random [singles] from a fibre. 00024 kCrosstalk = 0x08, // A generic crosstalk hit. 00025 kCrosstalkOptical = 0x10, // A crosstalk hit, specifically from 00026 kLeakFromNextBucket = 0x20, // The next bucket leaked charge back to this one 00027 kLeakFromPrevBucket = 0x40, // The prev bucket leaked charge forward to this one 00028 kAfterpulse = 0x80 // This PE is an afterpulse 00029 };
| DigiSignal::DigiSignal | ( | ) |
Definition at line 12 of file DigiSignal.cxx.
References fSignalId, and sSignalIdCounter.
00012 : 00013 fCharge(0), 00014 fPes(0), 00015 fNumPe(0), 00016 fHits(0), 00017 fHitWeights(0), 00018 fTruth(kUnknown) 00019 { 00020 fSignalId = sSignalIdCounter++; 00021 }
| DigiSignal::DigiSignal | ( | Float_t | charge, | |
| PEList_t & | pes, | |||
| HitList_t & | hits, | |||
| HitWeightList_t & | weights, | |||
| DigiPmtTruth_t | truth | |||
| ) |
Definition at line 23 of file DigiSignal.cxx.
References fSignalId, and sSignalIdCounter.
00027 : 00028 fCharge(charge), 00029 fPes(pes), 00030 fNumPe((int)pes.size()), 00031 fHits(hits), 00032 fHitWeights(weights), 00033 fTruth(truth) 00034 { 00035 fSignalId = sSignalIdCounter++; 00036 }
| DigiSignal::DigiSignal | ( | const DigiSignal & | rhs | ) |
| DigiSignal::~DigiSignal | ( | ) |
| void DigiSignal::AddDigiPE | ( | const DigiPE * | digipe | ) |
Definition at line 57 of file DigiSignal.cxx.
References AddHit(), fNumPe, and fPes.
00058 { 00059 if(digipe) { 00060 fPes.push_back(digipe); 00061 const DigiScintHit* hit = digipe->GetHitPointer(); 00062 fNumPe+=1; 00063 if(hit) AddHit(hit, 1.0); 00064 } 00065 }
| void DigiSignal::AddHit | ( | const DigiScintHit * | hitptr, | |
| Double_t | weight = 0 | |||
| ) |
Definition at line 67 of file DigiSignal.cxx.
References fHits, fHitWeights, and GetHit().
Referenced by AddDigiPE(), and Merge().
00068 { 00069 //Make sure we don't already have this hit. 00070 UInt_t n = fHits.size(); 00071 for(UInt_t i=0; i<n; i++) { 00072 const DigiScintHit* oldhit = GetHit(i); 00073 if (oldhit->GetUniqueID() == hitptr->GetUniqueID()) { 00074 // Add this weight. 00075 fHitWeights[i] += weight; 00076 return; 00077 } 00078 } 00079 00080 // Add it onto the list 00081 TRef ref((TObject*)hitptr); 00082 fHits.push_back(ref); 00083 fHitWeights.push_back(weight); 00084 }
| const char * DigiSignal::AsString | ( | Option_t * | option = "" |
) | const [virtual] |
Definition at line 139 of file DigiSignal.cxx.
References Munits::fC, Form(), GetCharge(), GetId(), GetNumberOfHits(), GetNumPe(), and GetTruth().
Referenced by FormatToOStream(), and Print().
00140 { 00141 const char* fmt_default = 00142 "DigiSignal [%d] %s Q=%.1ffC Npe=%d Nhits=%d"; 00143 const char* fmt_extended = 00144 "DigiSignal ID=%d Truth=%s Charge=%.1ffC Npe=%d Nhits=%d"; 00145 00146 const char* fmt = fmt_default; 00147 00148 switch(option[0]) { 00149 case 'e': // (E)xtended printout. 00150 case 'E': 00151 fmt = fmt_extended; 00152 break; 00153 default: 00154 fmt = fmt_default; 00155 } 00156 00157 DigiSignal::DigiPmtTruth_t truth = GetTruth(); 00158 const char* truthstr = ::AsString(truth); 00159 return Form(fmt, 00160 GetId(), 00161 truthstr, 00162 GetCharge()/Munits::fC, 00163 GetNumPe(), 00164 GetNumberOfHits() 00165 ); 00166 00167 }
| DigiSignal::ClassDef | ( | DigiSignal | , | |
| 4 | ||||
| ) | [private] |
| void DigiSignal::ClearTruthBit | ( | DigiPmtTruth_t | in | ) | [inline] |
| std::ostream & DigiSignal::FormatToOStream | ( | std::ostream & | os, | |
| Option_t * | option = "" | |||
| ) | const [virtual] |
| const DigiScintHit * DigiSignal::GetBiggestHit | ( | ) | const [inline] |
Definition at line 121 of file DigiSignal.h.
References fHits, fHitWeights, and GetHit().
Referenced by Truthifier::GetBiggestHit().
00122 { 00123 UInt_t n = fHits.size(); 00124 if(n==0) return 0; 00125 float biggest_weight = fHitWeights[0]; 00126 UInt_t index =0; 00127 for(UInt_t i=0; i<n; i++) { 00128 if(fHitWeights[i] > biggest_weight) index = i; 00129 } 00130 00131 return GetHit(index); 00132 }
| Double_t DigiSignal::GetCharge | ( | ) | const [inline] |
Definition at line 47 of file DigiSignal.h.
References fCharge.
Referenced by CustomLightInjector::Ana(), and AsString().
00047 { return fCharge; }; // in Munits
| const DigiScintHit * DigiSignal::GetHit | ( | UInt_t | hit | ) | const [inline] |
Definition at line 101 of file DigiSignal.h.
References fHits.
Referenced by AddHit(), SimCheck::Ana(), MCAnalysis::Ana(), Truthifier::BestSEIdOfDigit(), TruthHelper::EventCompletenessImp(), TruthHelper::EventPurity(), Truthifier::GetAllScintHits(), TruthHelper::GetBestEventNeuMatch(), TruthHelper::GetBestNeuMatch(), TruthHelper::GetBestShowerNeuMatch(), TruthHelper::GetBestSliceNeuMatch(), TruthHelper::GetBestTrackIdMatch(), GetBiggestHit(), TruthHelper::GetStripNeuIndex(), TruthHelper::GetTrackMaxE(), TruthHelper::GetTrackMinE(), Truthifier::IsSignalFromNeutrino(), Truthifier::IsSignalFromParticle(), Truthifier::IsSignalFromTrack(), Merge(), TruthHelper::NumNeu(), Truthifier::Reset(), AlgRmMu::RunAlg(), TruthHelper::secondNEU(), TruthHelper::ShowerCompletenessImp(), TruthHelper::ShowerPurity(), TruthHelper::SliceCompleteness(), TruthHelper::SliceCompleteness_MaxTimeGap(), TruthHelper::SliceCompleteness_xtalk(), TruthHelper::SlicePurity(), TruthHelper::SlicePurity_MaxTimeGap(), TruthHelper::SlicePurity_xtalk(), TruthHelper::SliceTrueStrip(), TruthHelper::SliceTrueStripxtalk(), TruthHelper::StripPurity(), TruthHelper::TrackCompleteness(), TruthHelper::TrackPurity(), and TruthHelper::TruthSliceNum().
| Float_t DigiSignal::GetHitWeight | ( | UInt_t | hit | ) | const [inline] |
Definition at line 107 of file DigiSignal.h.
References fHitWeights.
Referenced by Truthifier::BestSEIdOfDigit(), Truthifier::IsSignalFromNeutrino(), Truthifier::IsSignalFromParticle(), Truthifier::IsSignalFromTrack(), and Merge().
00108 { 00109 return fHitWeights[hit]; 00110 }
| UInt_t DigiSignal::GetId | ( | ) | const [inline] |
Definition at line 46 of file DigiSignal.h.
References fSignalId.
Referenced by AsString(), and Truthifier::Reset().
00046 { return fSignalId; };
| UInt_t DigiSignal::GetNumberOfHits | ( | ) | const [inline] |
Definition at line 95 of file DigiSignal.h.
References fHits.
Referenced by SimCheck::Ana(), MCAnalysis::Ana(), AsString(), Truthifier::BestSEIdOfDigit(), TruthHelper::EventPurity(), Truthifier::GetAllScintHits(), TruthHelper::GetBestEventNeuMatch(), TruthHelper::GetBestNeuMatch(), TruthHelper::GetBestShowerNeuMatch(), TruthHelper::GetBestSliceNeuMatch(), TruthHelper::GetBestTrackIdMatch(), TruthHelper::GetTrackMaxE(), TruthHelper::GetTrackMinE(), Truthifier::IsSignalFromNeutrino(), Truthifier::IsSignalFromParticle(), Truthifier::IsSignalFromTrack(), Merge(), TruthHelper::NumNeu(), Truthifier::Reset(), AlgRmMu::RunAlg(), TruthHelper::ShowerPurity(), TruthHelper::SliceCompleteness_xtalk(), TruthHelper::SlicePurity_xtalk(), TruthHelper::SliceTrueStripxtalk(), and TruthHelper::TrackPurity().
00096 { 00097 return fHits.size(); 00098 }
| Int_t DigiSignal::GetNumPe | ( | ) | const [inline] |
Definition at line 52 of file DigiSignal.h.
References fNumPe.
Referenced by AsString(), GetTotalHitWeight(), and Merge().
00052 { return fNumPe; };
| const PEList_t& DigiSignal::GetPes | ( | ) | const [inline] |
| Float_t DigiSignal::GetTotalHitWeight | ( | ) | const [inline] |
Definition at line 113 of file DigiSignal.h.
References GetNumPe().
00114 { 00115 return (Float_t) GetNumPe(); 00116 }
| DigiPmtTruth_t DigiSignal::GetTruth | ( | ) | const [inline] |
Definition at line 49 of file DigiSignal.h.
References fTruth.
Referenced by MCAnalysis::Ana(), SimDigit::AsString(), AsString(), Truthifier::GetSignalTruthFlags(), and AlgRmMu::RunAlg().
00049 { return fTruth; };
| void DigiSignal::Merge | ( | DigiSignal & | other | ) |
Definition at line 86 of file DigiSignal.cxx.
References AddHit(), fCharge, fNumPe, fPes, fTruth, GetHit(), GetHitWeight(), GetNumberOfHits(), and GetNumPe().
Referenced by SimVaTimedElectronics::ReadoutPmt(), and SimQieElectronics::ReadoutPmt().
00087 { 00088 fCharge += other.fCharge; 00089 fPes.insert(fPes.end(),other.fPes.begin(),other.fPes.end()); 00090 fNumPe+=other.GetNumPe(); 00091 00092 UInt_t n = other.GetNumberOfHits(); 00093 for(UInt_t i=0; i<n; i++) { 00094 AddHit(other.GetHit(i), other.GetHitWeight(i)); 00095 } 00096 00097 fTruth |= other.fTruth; 00098 }
| void DigiSignal::Print | ( | Option_t * | option = "" |
) | const [virtual] |
| void DigiSignal::SetCharge | ( | Double_t | charge | ) | [inline] |
| void DigiSignal::SetTruth | ( | DigiPmtTruth_t | in | ) | [inline] |
| void DigiSignal::SetTruthBit | ( | DigiPmtTruth_t | in | ) | [inline] |
| std::ostream& operator<< | ( | std::ostream & | os, | |
| const DigiSignal & | s | |||
| ) | [friend] |
Float_t DigiSignal::fCharge [private] |
HitList_t DigiSignal::fHits [private] |
Definition at line 81 of file DigiSignal.h.
Referenced by AddHit(), GetBiggestHit(), GetHit(), and GetNumberOfHits().
HitWeightList_t DigiSignal::fHitWeights [private] |
Definition at line 82 of file DigiSignal.h.
Referenced by AddHit(), GetBiggestHit(), and GetHitWeight().
Int_t DigiSignal::fNumPe [private] |
PEList_t DigiSignal::fPes [private] |
UInt_t DigiSignal::fSignalId [private] |
DigiPmtTruth_t DigiSignal::fTruth [private] |
Definition at line 83 of file DigiSignal.h.
Referenced by ClearTruthBit(), GetTruth(), Merge(), SetTruth(), and SetTruthBit().
1.4.7