//_____________________________________________________________________
AliCaloCalibPedestal::~AliCaloCalibPedestal()
{
+ //dtor
+
if (fReference) delete fReference;//Delete the reference object, if it has been loaded
-
+
// delete also TObjArray's
- fPedestalLowGain.Delete();
+ fPedestalLowGain.Delete();
fPedestalHighGain.Delete();
fPedestalLEDRefLowGain.Delete();
fPedestalLEDRefHighGain.Delete();
fPeakMinusPedLowGainRatio.Delete();
fPeakMinusPedHighGainRatio.Delete();
fDeadMap.Delete();
-
+
}
// copy ctor
//_____________________________________________________________________
void AliCaloCalibPedestal::Reset()
-{
+{ // Reset all arrays/histograms
ValidateProfiles(); // make sure histos/profiles exist
- // Reset all arrays/histograms
for (int i = 0; i < fModules; i++) {
GetPedProfileLowGain(i)->Reset();
GetPedProfileHighGain(i)->Reset();
for (int i = 0; i < fModules; i++) {
GetPedProfileLowGain(i)->Add( ped->GetPedProfileLowGain(i) );
GetPedProfileHighGain(i)->Add( ped->GetPedProfileHighGain(i) );
+ GetPedLEDRefProfileLowGain(i)->Add( ped->GetPedLEDRefProfileLowGain(i) );
+ GetPedLEDRefProfileHighGain(i)->Add( ped->GetPedLEDRefProfileHighGain(i) );
GetPeakProfileLowGain(i)->Add( ped->GetPeakProfileLowGain(i) );
GetPeakProfileHighGain(i)->Add( ped->GetPeakProfileHighGain(i) );
GetPeakHighGainHisto(i)->Add( ped->GetPeakHighGainHisto(i) );
}//end for nModules
+ // We should also copy other pieces of info: counters and parameters
+ // (not number of columns and rows etc which should be the same)
+ // note that I just assign them here rather than Add them, but we
+ // normally just Add (e.g. in Preprocessor) one object so this should be fine.
+ fNEvents = ped->GetNEvents();
+ fNChanFills = ped->GetNChanFills();
+ fDeadTowers = ped->GetDeadTowerCount();
+ fNewDeadTowers = ped->GetDeadTowerNew();
+ fResurrectedTowers = ped->GetDeadTowerResurrected();
+ fRunNumber = ped->GetRunNumber();
+ fSelectPedestalSamples = ped->GetSelectPedestalSamples();
+ fFirstPedestalSample = ped->GetFirstPedestalSample();
+ fLastPedestalSample = ped->GetLastPedestalSample();
+ fDeadThreshold = ped->GetDeadThreshold();
+ fWarningThreshold = ped->GetWarningThreshold();
+ fWarningFraction = ped->GetWarningFraction();
+ fHotSigma = ped->GetHotSigma();
+
// DeadMap; Diff profiles etc would need to be redone after this operation
return kTRUE;//We succesfully added info from the supplied object
{
// Method to process=analyze one event in the data stream
if (!in) return kFALSE; //Return right away if there's a null pointer
+ in->Reset(); // just in case the next customer forgets to check if the stream was reset..
+
fNEvents++; // one more event
if (fNEvents==1) ValidateProfiles(); // 1st event, make sure histos/profiles exist
}// end while over channel
}//end while over DDL's, of input stream
- in->Reset(); // just in case the next customer forgets to check if the stream was reset..
return kTRUE;
}
//_____________________________________________________________________
Bool_t AliCaloCalibPedestal::SetReference(AliCaloCalibPedestal *ref)
-{
+{ // set reference object
if (fReference) delete fReference;//Delete the reference object, if it already exists
fReference = 0;
//_____________________________________________________________________
void AliCaloCalibPedestal::ComputeDiffAndRatio()
-{
- // calculate differences and ratios relative to a reference
+{ // calculate differences and ratios relative to a reference
ValidateProfiles(); // make sure histos/profiles exist
ValidateComparisonProfiles();//Make sure the comparison histos exist
}
if (!diff->is_open()) {
delete diff;
- fout = 0;//Set the pointer to empty if the file was not opened
+ diff = 0;//Set the pointer to empty if the file was not opened
}
}