diff --git a/Detectors/TPC/qc/include/TPCQC/Clusters.h b/Detectors/TPC/qc/include/TPCQC/Clusters.h index ca9c53a43b3f6..1e3ee2f407ff4 100644 --- a/Detectors/TPC/qc/include/TPCQC/Clusters.h +++ b/Detectors/TPC/qc/include/TPCQC/Clusters.h @@ -17,10 +17,10 @@ #ifndef AliceO2_TPC_CLUSTERS_H #define AliceO2_TPC_CLUSTERS_H -//root includes +// root includes #include "TCanvas.h" -//o2 includes +// o2 includes #include "TPCBase/CalDet.h" #include "TPCBase/Sector.h" #include "DataFormatsTPC/Defs.h" @@ -49,9 +49,9 @@ class Clusters void fillADCValue(int cru, int rowInSector, int padInRow, int timeBin, float adcValue); - void normalize(); + void normalize(const float nHBFPerTF = 128); - inline void analyse() { Clusters::normalize(); } + inline void analyse() { Clusters::normalize(); } // deprecated void denormalize(); @@ -61,12 +61,16 @@ class Clusters void dumpToFile(std::string filename, int type = 0); + void setnHBFperTF(float nHBFPerTF){ + mNHBFperTF = nHBFPerTF; + } const CalPad& getNClusters() const { return mNClusters; } const CalPad& getQMax() const { return mQMax; } const CalPad& getQTot() const { return mQTot; } const CalPad& getSigmaTime() const { return mSigmaTime; } const CalPad& getSigmaPad() const { return mSigmaPad; } const CalPad& getTimeBin() const { return mTimeBin; } + const CalPad& getOccupancy() const { return mOccupancy; } CalPad& getNClusters() { return mNClusters; } CalPad& getQMax() { return mQMax; } @@ -74,6 +78,7 @@ class Clusters CalPad& getSigmaTime() { return mSigmaTime; } CalPad& getSigmaPad() { return mSigmaPad; } CalPad& getTimeBin() { return mTimeBin; } + CalPad& getOccupancy() { return mOccupancy; } void endTF() { ++mProcessedTFs; } @@ -86,8 +91,10 @@ class Clusters CalPad mSigmaTime{"Sigma_Time"}; CalPad mSigmaPad{"Sigma_Pad"}; CalPad mTimeBin{"Time_Bin"}; + CalPad mOccupancy{"Occupancy"}; size_t mProcessedTFs{0}; bool mIsNormalized{false}; + float mNHBFperTF{128}; ClassDefNV(Clusters, 1) }; diff --git a/Detectors/TPC/qc/src/Clusters.cxx b/Detectors/TPC/qc/src/Clusters.cxx index 3a7b1d8481b16..421dafae7d2c1 100644 --- a/Detectors/TPC/qc/src/Clusters.cxx +++ b/Detectors/TPC/qc/src/Clusters.cxx @@ -22,8 +22,10 @@ #include "TPCBase/ROC.h" #include "TPCBase/CRU.h" #include "TPCBase/Mapper.h" +#include "TPCBase/ParameterElectronics.h" #include "DataFormatsTPC/ClusterNative.h" #include "DataFormatsTPC/KrCluster.h" +#include "CommonConstants/LHCConstants.h" ClassImp(o2::tpc::qc::Clusters); @@ -107,7 +109,7 @@ void Clusters::fillADCValue(int cru, int rowInSector, int padInRow, int timeBin, } //______________________________________________________________________________ -void Clusters::normalize() +void Clusters::normalize(const float nHBFPerTF) { if (mIsNormalized) { return; @@ -119,7 +121,11 @@ void Clusters::normalize() mSigmaPad /= mNClusters; mTimeBin /= mNClusters; + mOccupancy = mNClusters; + mOccupancy /= float(mProcessedTFs * (o2::constants::lhc::LHCMaxBunches * nHBFPerTF) / float(o2::tpc::ParameterElectronics::TIMEBININBC)); + mIsNormalized = true; + mOccupancy.setName("Occupancy"); } //______________________________________________________________________________ @@ -134,6 +140,7 @@ void Clusters::denormalize() mSigmaTime *= mNClusters; mSigmaPad *= mNClusters; mTimeBin *= mNClusters; + mOccupancy = mNClusters; mIsNormalized = false; } @@ -171,12 +178,13 @@ void Clusters::merge(Clusters& clusters) mSigmaTime += clusters.mSigmaTime; mSigmaPad += clusters.mSigmaPad; mTimeBin += clusters.mTimeBin; + mProcessedTFs += clusters.mProcessedTFs; if (isThisNormalized) { - normalize(); + normalize(mNHBFperTF); } if (isOtherNormalized) { - clusters.normalize(); + clusters.normalize(mNHBFperTF); } } @@ -196,6 +204,7 @@ void Clusters::dumpToFile(std::string filename, int type) f->WriteObject(o2::tpc::painter::draw(mSigmaTime), mSigmaTime.getName().data()); f->WriteObject(o2::tpc::painter::draw(mSigmaPad), mSigmaPad.getName().data()); f->WriteObject(o2::tpc::painter::draw(mTimeBin), mTimeBin.getName().data()); + f->WriteObject(o2::tpc::painter::draw(mOccupancy), mOccupancy.getName().data()); f->Close(); } @@ -209,6 +218,7 @@ void Clusters::dumpToFile(std::string filename, int type) f->WriteObject(&mSigmaTime, mSigmaTime.getName().data()); f->WriteObject(&mSigmaPad, mSigmaPad.getName().data()); f->WriteObject(&mTimeBin, mTimeBin.getName().data()); + f->WriteObject(&mOccupancy, mOccupancy.getName().data()); nTFs.Write(); f->Close(); }