|
| 1 | +#include "sbncode/CAFMaker/FillBlip.h" |
| 2 | + |
| 3 | +namespace caf |
| 4 | +{ |
| 5 | + void FillBlip( const std::vector<blip::Blip>& LAr_Blips, std::vector<caf::SRBlip>& CAF_Blips) |
| 6 | + { |
| 7 | + for(blip::Blip const& CurrentBlip: LAr_Blips) |
| 8 | + { |
| 9 | + caf::SRBlip NewBlip; |
| 10 | + NewBlip.ID = CurrentBlip.ID; |
| 11 | + NewBlip.isValid = CurrentBlip.isValid; |
| 12 | + NewBlip.cryostat = CurrentBlip.Cryostat; |
| 13 | + NewBlip.TPC = CurrentBlip.TPC; |
| 14 | + NewBlip.nPlanes = CurrentBlip.NPlanes; |
| 15 | + NewBlip.maxWireSpan = CurrentBlip.MaxWireSpan; |
| 16 | + NewBlip.timeTick = CurrentBlip.TimeTick; |
| 17 | + NewBlip.time = CurrentBlip.Time; |
| 18 | + NewBlip.charge = CurrentBlip.Charge; |
| 19 | + NewBlip.energy = CurrentBlip.Energy/1000.; //convert to GeV |
| 20 | + NewBlip.energyESTAR = CurrentBlip.EnergyESTAR/1000.; //convert to GeV |
| 21 | + NewBlip.energyPSTAR = CurrentBlip.EnergyPSTAR/1000.; //convert to GeV |
| 22 | + NewBlip.proxTrkDist = CurrentBlip.ProxTrkDist; |
| 23 | + NewBlip.proxTrkID = CurrentBlip.ProxTrkID; |
| 24 | + NewBlip.inCylinder = CurrentBlip.inCylinder; |
| 25 | + NewBlip.position.SetXYZ(CurrentBlip.Position.X(), CurrentBlip.Position.Y(), CurrentBlip.Position.Z()); |
| 26 | + NewBlip.sigmaYZ = CurrentBlip.SigmaYZ; |
| 27 | + NewBlip.dX = CurrentBlip.dX; |
| 28 | + NewBlip.dYZ = CurrentBlip.dYZ; |
| 29 | + if(CurrentBlip.truth.ID >= 0 ) //MC Blip |
| 30 | + { |
| 31 | + FillMCTruthBlip( CurrentBlip.truth, NewBlip.truthBlip ); |
| 32 | + } |
| 33 | + for(int iPlane=0; iPlane<int(blip::kNplanes); iPlane++) |
| 34 | + { |
| 35 | + FillBlipRelatedHitCluster( CurrentBlip.clusters[iPlane], NewBlip.clusters[iPlane] ); |
| 36 | + } |
| 37 | + CAF_Blips.push_back(NewBlip); |
| 38 | + } |
| 39 | + |
| 40 | + } |
| 41 | + |
| 42 | + void FillMCTruthBlip( blip::TrueBlip const & TrueLAr_Blip, caf::SRTrueBlip &TrueCAF_Blip ) |
| 43 | + { |
| 44 | + TrueCAF_Blip.ID = TrueLAr_Blip.ID; |
| 45 | + TrueCAF_Blip.cryostat = TrueLAr_Blip.Cryostat; |
| 46 | + TrueCAF_Blip.TPC = TrueLAr_Blip.TPC; |
| 47 | + TrueCAF_Blip.time = TrueLAr_Blip.Time; |
| 48 | + TrueCAF_Blip.driftTime = TrueLAr_Blip.DriftTime; |
| 49 | + TrueCAF_Blip.energy = TrueLAr_Blip.Energy; |
| 50 | + TrueCAF_Blip.depElectrons = TrueLAr_Blip.DepElectrons; |
| 51 | + TrueCAF_Blip.numElectrons = TrueLAr_Blip.NumElectrons; |
| 52 | + TrueCAF_Blip.leadG4ID = TrueLAr_Blip.LeadG4ID; |
| 53 | + TrueCAF_Blip.leadG4Index = TrueLAr_Blip.LeadG4Index; |
| 54 | + TrueCAF_Blip.leadG4PDG = TrueLAr_Blip.LeadG4PDG; |
| 55 | + TrueCAF_Blip.leadCharge = TrueLAr_Blip.LeadCharge; |
| 56 | + TrueCAF_Blip.position.SetXYZ(TrueLAr_Blip.Position.X(), TrueLAr_Blip.Position.Y(), TrueLAr_Blip.Position.Z()); |
| 57 | + TrueCAF_Blip.energy = TrueCAF_Blip.energy/1000.; //convert to GeV |
| 58 | + } |
| 59 | + |
| 60 | + void FillBlipRelatedHitCluster(blip::HitClust const & LAr_HitClust, caf::SRBlipHitClust &CAF_HitClust) |
| 61 | + { |
| 62 | + CAF_HitClust.ID = LAr_HitClust.ID; |
| 63 | + CAF_HitClust.isValid = LAr_HitClust.isValid; |
| 64 | + CAF_HitClust.centerChan = LAr_HitClust.CenterChan; |
| 65 | + CAF_HitClust.centerWire = LAr_HitClust.CenterWire; |
| 66 | + CAF_HitClust.isTruthMatched = LAr_HitClust.isTruthMatched; |
| 67 | + CAF_HitClust.isMatched = LAr_HitClust.isMatched; |
| 68 | + CAF_HitClust.deadWireSep = LAr_HitClust.DeadWireSep; |
| 69 | + CAF_HitClust.cryostat = LAr_HitClust.Cryostat; |
| 70 | + CAF_HitClust.TPC = LAr_HitClust.TPC; |
| 71 | + CAF_HitClust.plane = LAr_HitClust.Plane; |
| 72 | + CAF_HitClust.nHits = LAr_HitClust.NHits; |
| 73 | + CAF_HitClust.nWires = LAr_HitClust.NWires; |
| 74 | + CAF_HitClust.ADCs = LAr_HitClust.ADCs; |
| 75 | + CAF_HitClust.amplitude = LAr_HitClust.Amplitude; |
| 76 | + CAF_HitClust.charge = LAr_HitClust.Charge; |
| 77 | + CAF_HitClust.sigmaCharge = LAr_HitClust.SigmaCharge; |
| 78 | + CAF_HitClust.timeTick = LAr_HitClust.TimeTick; |
| 79 | + CAF_HitClust.time = LAr_HitClust.Time; |
| 80 | + CAF_HitClust.startTime = LAr_HitClust.StartTime; |
| 81 | + CAF_HitClust.endTime = LAr_HitClust.EndTime; |
| 82 | + CAF_HitClust.timespan = LAr_HitClust.Timespan; |
| 83 | + CAF_HitClust.RMS = LAr_HitClust.RMS; |
| 84 | + CAF_HitClust.startWire = LAr_HitClust.StartWire; |
| 85 | + CAF_HitClust.endWire = LAr_HitClust.EndWire; |
| 86 | + CAF_HitClust.nPulseTrainHits = LAr_HitClust.NPulseTrainHits; |
| 87 | + CAF_HitClust.goodnessOfFit = LAr_HitClust.GoodnessOfFit; |
| 88 | + CAF_HitClust.blipID = LAr_HitClust.BlipID; |
| 89 | + CAF_HitClust.edepID = LAr_HitClust.EdepID; |
| 90 | + //These are sets that need to become vectors so we need to do some loops |
| 91 | + for(auto HitID : LAr_HitClust.HitIDs) CAF_HitClust.hitIDs.push_back(HitID); |
| 92 | + for(auto Wire : LAr_HitClust.Wires) CAF_HitClust.wires.push_back(Wire); |
| 93 | + for(auto Chan : LAr_HitClust.Chans) CAF_HitClust.chans.push_back(Chan); |
| 94 | + for(auto G4ID : LAr_HitClust.G4IDs) CAF_HitClust.G4IDs.push_back(G4ID); |
| 95 | + } |
| 96 | +} |
0 commit comments