fPeakMinusPedLowGainRatio(),
fPeakMinusPedHighGainRatio(),
fDeadMap(),
+ fNEvents(0),
+ fNChanFills(0),
fDeadTowers(0),
fNewDeadTowers(0),
fResurrectedTowers(0),
fPeakMinusPedLowGainRatio(),
fPeakMinusPedHighGainRatio(),
fDeadMap(),
+ fNEvents(ped.GetNEvents()),
+ fNChanFills(ped.GetNChanFills()),
fDeadTowers(ped.GetDeadTowerCount()),
fNewDeadTowers(ped.GetDeadTowerNew()),
fResurrectedTowers(ped.GetDeadTowerResurrected()),
GetPeakProfileHighGainRatio(i)->Reset();
}
}
+ fNEvents = 0;
+ fNChanFills = 0;
fDeadTowers = 0;
fNewDeadTowers = 0;
fResurrectedTowers = 0;
//To think about: should fReference be deleted too?... let's not do it this time, at least...
}
+//_____________________________________________________________________
+Bool_t AliCaloCalibPedestal::AddInfo(const AliCaloCalibPedestal *ped)
+{
+ // just do this for the basic histograms/profiles that get filled in ProcessEvent
+ // may not have data for all modules, but let's just Add everything..
+ for (int i = 0; i < fModules; i++) {
+ fPedestalLowGain.Add( ped->GetPedProfileLowGain(i) );
+ fPedestalHighGain.Add( ped->GetPedProfileHighGain(i) );
+ fPeakMinusPedLowGain.Add( ped->GetPeakProfileLowGain(i) );
+ fPeakMinusPedHighGain.Add( ped->GetPeakProfileHighGain(i) );
+ }//end for nModules
+
+ // DeadMap; Diff profiles etc would need to be redone after this operation
+
+ return kTRUE;//We succesfully added info from the supplied object
+}
+
//_____________________________________________________________________
Bool_t AliCaloCalibPedestal::ProcessEvent(AliCaloRawStream *in)
{
// Method to process=analyze one event in the data stream
if (!in) return kFALSE; //Return right away if there's a null pointer
+ fNEvents++; // one more event
int sample, i = 0; //The sample temp, and the sample number in current event.
int max = fgkSampleMin, min = fgkSampleMax;//Use these for picking the pedestal
int gain = 0;
printf("Oh no: arrayPos = %i.\n", arrayPos);
}
+ fNChanFills++; // one more channel found, and profile to be filled
//NOTE: coordinates are (column, row) for the profiles
if (gain == 0) {
//fill the low gain histograms
((TProfile2D*)fPedestalHighGain[arrayPos])->Fill(in->GetColumn(), -in->GetRow() - 1, min);
((TProfile2D*)fPeakMinusPedHighGain[arrayPos])->Fill(in->GetColumn(), -in->GetRow() - 1, max - min);
}//end if gain
-
+
max = fgkSampleMin; min = fgkSampleMax;
i = 0;
void SetRunNumber(int runNo) {fRunNumber = runNo;};
int GetRunNumber() const {return fRunNumber;};
int GetRefRunNumber() const {if (fReference) return fReference->GetRunNumber(); else return -1;};
+
+ // Basic counters
+ int GetNEvents() const {return fNEvents;};
+ int GetNChanFills() const {return fNChanFills;};
/////////////////////////////
//Analysis functions
double GetDeadTowerRatio() const {return fDeadTowers/(double)(fRows*fColumns);}; //returns the percentage of dead towers, relative to a full module
int GetDeadTowerNew() const {return fNewDeadTowers;}; //return the new dead towers compared to the reference
int GetDeadTowerResurrected() const {return fResurrectedTowers;}; //The the towers resurrected since the reference run
+
void Reset();//Resets the whole class.
+ Bool_t AddInfo(const AliCaloCalibPedestal *ped);//picks up new info from supplied argument
//////////////////////////////////////////////////////
//Functions related to comparing this with another (reference) run.
TObjArray fPeakMinusPedHighGainRatio; //!
TObjArray fDeadMap;//The deadmap
-
+
+ // status counters
+ int fNEvents; //# total events processed,
+ int fNChanFills; //# total channel fills (NChan * NEvents if not zero-suppressed)
+
//The dead tower counts
int fDeadTowers; //!
int fNewDeadTowers; //! Towers that have died since the reference run