Changeset 5307 for trunk/MagicSoft/Mars/mcalib
- Timestamp:
- 10/22/04 15:59:02 (21 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/MagicSoft/Mars/mcalib/MCalibrateRelTimes.cc
r3841 r5307 138 138 Int_t MCalibrateRelTimes::Process() 139 139 { 140 /* 141 if (fCalibrations->GetNumPixels() != (UInt_t)fSignals->GetSize()) 142 { 143 // FIXME: MArrivalTime must be of variable size - 144 // like MCerPhotEvt - because we must be able 145 // to reduce size by zero supression 146 // For the moment this check could be done in ReInit... 147 *fLog << err << "MArrivalTime and MCalibrationCam have different sizes... abort." << endl; 148 return kFALSE; 149 } 150 */ 140 151 141 /* 142 if (fCalibrations->GetNumPixels() != (UInt_t)fSignals->GetSize()) 152 const UInt_t npix = fSignals->GetSize(); 153 154 for (UInt_t pixidx=0; pixidx<npix; pixidx++) 143 155 { 144 // FIXME: MArrivalTime must be of variable size - 145 // like MCerPhotEvt - because we must be able 146 // to reduce size by zero supression 147 // For the moment this check could be done in ReInit... 148 *fLog << err << "MArrivalTime and MCalibrationCam have different sizes... abort." << endl; 149 return kFALSE; 150 } 151 */ 156 MCalibrationRelTimePix &pix = (MCalibrationRelTimePix&)(*fCalibrations)[pixidx]; 152 157 153 UInt_t npix = fSignals->GetSize(); 158 if (fBadPixels && (*fBadPixels)[pixidx].IsUnsuitable()) 159 continue; 154 160 155 Float_t offset = 0.; 156 Float_t precision = 0.; 157 158 for (UInt_t pixidx=0; pixidx<npix; pixidx++) 159 { 161 const Float_t offset = pix.GetTimeOffset(); 162 const Float_t precision = pix.GetTimePrecision(); 160 163 161 MCalibrationRelTimePix &pix = (MCalibrationRelTimePix&)(*fCalibrations)[pixidx]; 162 163 if (fBadPixels) 164 MArrivalTimePix &sig = (*fSignals)[pixidx]; 165 166 Float_t signal; 167 Float_t sigerr; 168 169 if (sig.IsLoGainUsed()) 164 170 { 165 MBadPixelsPix &bad = (*fBadPixels)[pixidx]; 166 if (bad.IsUnsuitable(MBadPixelsPix::kUnsuitableRun)) 167 continue; 171 signal = sig.GetArrivalTimeLoGain(); 172 sigerr = sig.GetArrivalTimeLoGainError(); 168 173 } 169 170 offset = pix.GetTimeOffset(); 171 precision = pix.GetTimePrecision(); 172 173 MArrivalTimePix &sig = (*fSignals)[pixidx]; 174 175 Float_t signal; 176 Float_t sigerr; 177 178 if (sig.IsLoGainUsed()) 174 else 179 175 { 180 signal = sig.GetArrivalTimeLoGain();181 sigerr = sig.GetArrivalTimeLoGainError();176 signal = sig.GetArrivalTimeHiGain(); 177 sigerr = sig.GetArrivalTimeHiGainError(); 182 178 } 183 else184 {185 signal = sig.GetArrivalTimeHiGain();186 sigerr = sig.GetArrivalTimeHiGainError();187 }188 189 const Float_t time = signal - offset;190 Float_t err = sigerr*sigerr + precision*precision;191 if (err > 0)192 err = TMath::Sqrt(err);193 179 194 fArrivalTime->SetTime(pixidx,time); 195 fArrivalTime->SetTimeErr(pixidx,err); 180 const Float_t time = signal - offset; 181 const Float_t err = sigerr*sigerr + precision*precision; 182 183 fArrivalTime->SetTime(pixidx, time); 184 fArrivalTime->SetTimeErr(pixidx, err>0 ? TMath::Sqrt(err) : 0); 196 185 197 186 } /* for (UInt_t pixidx=0; pixidx<npix; pixidx++) */ 198 199 fArrivalTime->SetReadyToSave();200 201 return kTRUE;187 188 fArrivalTime->SetReadyToSave(); 189 190 return kTRUE; 202 191 }
Note:
See TracChangeset
for help on using the changeset viewer.