fLatestHour(0),
fUseAverage(kTRUE),
fSecInAverage(1800),
+ fDownscale(10),
fNEvents(0),
fNAcceptedEvents(0),
fTreeAmpVsTime(NULL),
// fLatestHour(sig.GetLatestHour()),
// fUseAverage(sig.GetUseAverage()),
// fSecInAverage(sig.GetSecInAverage()),
+// fDownscale(sig.GetDownscale()),
// fNEvents(sig.GetNEvents()),
// fNAcceptedEvents(sig.GetNAcceptedEvents()),
// fTreeAmpVsTime(),
// if the key matches with something we expect, we assign the new value
if ( (key == "fAmpCut") || (key == "fReqFractionAboveAmpCutVal") ||
- (key == "fAmpCutLEDRef") || (key == "fSecInAverage") ) {
+ (key == "fAmpCutLEDRef") || (key == "fSecInAverage") ||
+ (key == "fDownscale") ) {
istringstream iss(value);
printf("AliCaloCalibSignal::SetParametersFromFile - key %s value %s\n", key.c_str(), value.c_str());
else if (key == "fSecInAverage") {
iss >> fSecInAverage;
}
+ else if (key == "fDownscale") {
+ iss >> fDownscale;
+ }
} // some match found/expected
}
out << "fReqFractionAboveAmpCutVal" << "::" << fReqFractionAboveAmpCutVal << endl;
out << "fAmpCutLEDRef" << "::" << fAmpCutLEDRef << endl;
out << "fSecInAverage" << "::" << fSecInAverage << endl;
+ out << "fDownscale" << "::" << fDownscale << endl;
out.close();
return;
fLatestHour = sig->GetLatestHour();
fUseAverage = sig->GetUseAverage();
fSecInAverage = sig->GetSecInAverage();
+ fDownscale = sig->GetDownscale();
fNEvents = sig->GetNEvents();
fNAcceptedEvents = sig->GetNAcceptedEvents();
fNEvents++; // one more event
+ if ( (fNEvents%fDownscale)!=0 ) return kFALSE; // mechanism to skip some of the input events, if we want
+
// use maximum numbers to set array sizes
int iAmpValHighGain[fgkMaxTowers];
int iAmpValLowGain[fgkMaxTowers];
void SetSecInAverage(int secInAverage) {fSecInAverage = secInAverage;}; // length of the interval that should be used for the average calculation (determines number of bins in TProfile)
int GetSecInAverage() const {return fSecInAverage;}; //!
+ void SetDownscale(int i) {fDownscale = i;}; //!
+ int GetDownscale() const {return fDownscale;}; //!
+
// Info on time since start of run
double GetHour() const { return fHour; }; // time info for current event
double GetCurrentHour() const { return fHour; }; // time info for current event (same as GetHour(), just more explicitly named)
bool fUseAverage; // flag to average graph points into over a time interval
int fSecInAverage; // time interval for the graph averaging
+ int fDownscale; // to select 1 out every N (fDownscale) events
+
// status counters
int fNEvents; // # events processed
int fNAcceptedEvents; // # events accepted
int fNLowGain[fgkMaxTowers]; // same, for low gain
int fNRef[fgkMaxRefs * 2]; // same, for LED refs; *2 for both gains
- ClassDef(AliCaloCalibSignal, 6) // don't forget to change version if you change class member list..
+ ClassDef(AliCaloCalibSignal, 7) // don't forget to change version if you change class member list..
};