-
Notifications
You must be signed in to change notification settings - Fork 433
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* TDC calib * Please consider the following formatting changes * TDC calib 2.0 * Modified white spaces * TDC calib white spaces 2.0 * Final TDC calib commit * Please consider the following formatting changes Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
- Loading branch information
1 parent
6602092
commit fe09b8b
Showing
22 changed files
with
1,395 additions
and
25 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
// Copyright 2019-2020 CERN and copyright holders of ALICE O2. | ||
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. | ||
// All rights not expressly granted are reserved. | ||
// | ||
// This software is distributed under the terms of the GNU General Public | ||
// License v3 (GPL Version 3), copied verbatim in the file "COPYING". | ||
// | ||
// In applying this license CERN does not waive the privileges and immunities | ||
// granted to it by virtue of its status as an Intergovernmental Organization | ||
// or submit itself to any jurisdiction. | ||
|
||
#ifndef _ZDC_TDCCALIB_DATA_H | ||
#define _ZDC_TDCCALIB_DATA_H | ||
|
||
#include "ZDCBase/Constants.h" | ||
#include <array> | ||
#include <Rtypes.h> | ||
|
||
/// \file TDCCalibData.h | ||
/// \brief TDC calibration intermediate data | ||
/// \author luca.quaglia@cern.ch | ||
|
||
namespace o2 | ||
{ | ||
namespace zdc | ||
{ | ||
|
||
struct TDCCalibData { | ||
static constexpr int NTDC = 10; /// ZNAC, ZNAS, ZPAC, ZPAS, ZEM1, ZEM2, ZNCC, ZNCS, ZPCC, ZPCS | ||
uint64_t mCTimeBeg = 0; /// Time of processed time frame | ||
uint64_t mCTimeEnd = 0; /// Time of processed time frame | ||
static constexpr const char* CTDC[NTDC] = {"ZNAC", "ZNAS", "ZPAC", "ZPAS", "ZEM1", "ZEM2", "ZNCC", "ZNCS", "ZPCC", "ZPCS"}; | ||
int entries[NTDC] = {0}; | ||
TDCCalibData& operator+=(const TDCCalibData& other); | ||
int getEntries(int ih) const; | ||
void print() const; | ||
void setCreationTime(uint64_t ctime); | ||
ClassDefNV(TDCCalibData, 1); | ||
}; | ||
|
||
} // namespace zdc | ||
} // namespace o2 | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
// Copyright 2019-2020 CERN and copyright holders of ALICE O2. | ||
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. | ||
// All rights not expressly granted are reserved. | ||
// | ||
// This software is distributed under the terms of the GNU General Public | ||
// License v3 (GPL Version 3), copied verbatim in the file "COPYING". | ||
// | ||
// In applying this license CERN does not waive the privileges and immunities | ||
// granted to it by virtue of its status as an Intergovernmental Organization | ||
// or submit itself to any jurisdiction. | ||
|
||
#include <mutex> | ||
#include <memory> | ||
#include <TH1.h> | ||
#include <TH2.h> | ||
#include <THnBase.h> | ||
#include <THnSparse.h> | ||
#include <TMinuit.h> | ||
#include "ZDCBase/Constants.h" | ||
#include "CommonDataFormat/FlatHisto1D.h" | ||
#include "CommonDataFormat/FlatHisto2D.h" | ||
#include "DataFormatsZDC/RecEvent.h" | ||
#include "ZDCReconstruction/ZDCEnergyParam.h" | ||
#include "ZDCReconstruction/ZDCTowerParam.h" | ||
#include "ZDCReconstruction/ZDCTDCParam.h" //added by me | ||
#include "ZDCCalib/TDCCalibData.h" | ||
#include "ZDCCalib/TDCCalibConfig.h" | ||
|
||
#ifndef ALICEO2_ZDC_TDCCALIBEPN_H_ | ||
#define ALICEO2_ZDC_TDCCALIBEPN_H_ | ||
namespace o2 | ||
{ | ||
namespace zdc | ||
{ | ||
class TDCCalibEPN | ||
{ | ||
public: | ||
TDCCalibEPN() = default; | ||
int init(); | ||
static constexpr int HtdcZNAC = 0; | ||
static constexpr int HtdcZNAS = 1; | ||
static constexpr int HtdcZPAC = 2; | ||
static constexpr int HtdcZPAS = 3; | ||
static constexpr int HtdcZEM1 = 4; | ||
static constexpr int HtdcZEM2 = 5; | ||
static constexpr int HtdcZNCC = 6; | ||
static constexpr int HtdcZNCS = 7; | ||
static constexpr int HtdcZPCC = 8; | ||
static constexpr int HtdcZPCS = 9; | ||
static constexpr int NTDC = TDCCalibData::NTDC; | ||
void clear(int ih = -1); | ||
int process(const gsl::span<const o2::zdc::BCRecData>& bcrec, | ||
const gsl::span<const o2::zdc::ZDCEnergy>& energy, | ||
const gsl::span<const o2::zdc::ZDCTDCData>& tdc, | ||
const gsl::span<const uint16_t>& info); // Calibration of RUN3 data | ||
int endOfRun(); // End of TDCCalib | ||
int write(const std::string fn = "ZDCTDCCalibEPN.root"); | ||
|
||
void fill1D(int iTDC, int nHits, o2::zdc::RecEventFlat ev); //function to fill histograms; | ||
|
||
void setTDCCalibConfig(const TDCCalibConfig* param) { mTDCCalibConfig = param; }; | ||
const TDCCalibConfig* getTDCCalibConfig() const { return mTDCCalibConfig; }; | ||
void setSaveDebugHistos() { mSaveDebugHistos = true; } | ||
void setDontSaveDebugHistos() { mSaveDebugHistos = false; } | ||
void setVerbosity(int val) { mVerbosity = val; } | ||
TDCCalibData mData; | ||
TDCCalibData& getData() { return mData; } | ||
std::array<o2::dataformats::FlatHisto1D<float>*, NTDC> mTDC{}; | ||
|
||
private: | ||
bool mInitDone = false; | ||
bool mSaveDebugHistos = true; | ||
int32_t mVerbosity = DbgMinimal; | ||
const TDCCalibConfig* mTDCCalibConfig = nullptr; /// Configuration of intercalibration | ||
}; | ||
} // namespace zdc | ||
} // namespace o2 | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
// Copyright 2019-2020 CERN and copyright holders of ALICE O2. | ||
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. | ||
// All rights not expressly granted are reserved. | ||
// | ||
// This software is distributed under the terms of the GNU General Public | ||
// License v3 (GPL Version 3), copied verbatim in the file "COPYING". | ||
// | ||
// In applying this license CERN does not waive the privileges and immunities | ||
// granted to it by virtue of its status as an Intergovernmental Organization | ||
// or submit itself to any jurisdiction. | ||
|
||
/// @file TDCCalibEPNSpec.h | ||
/// @brief ZDC TDC calibration pre-processing on EPN | ||
/// @author luca.quaglia@cern.ch | ||
|
||
#ifndef O2_ZDC_TDCCALIBEPN_SPEC | ||
#define O2_ZDC_TDCCALIBEPN_SPEC | ||
|
||
#include <TStopwatch.h> | ||
#include "Framework/Logger.h" | ||
#include "Framework/DataProcessorSpec.h" | ||
#include "Framework/Task.h" | ||
#include "CommonUtils/NameConf.h" | ||
#include "DataFormatsZDC/ZDCTDCData.h" | ||
#include "ZDCCalib/TDCCalibData.h" | ||
#include "ZDCCalib/TDCCalibEPN.h" | ||
#include "ZDCCalib/TDCCalibConfig.h" | ||
|
||
namespace o2 | ||
{ | ||
namespace zdc | ||
{ | ||
|
||
class TDCCalibEPNSpec : public o2::framework::Task | ||
{ | ||
public: | ||
TDCCalibEPNSpec(); | ||
TDCCalibEPNSpec(const int verbosity); | ||
~TDCCalibEPNSpec() override = default; | ||
void init(o2::framework::InitContext& ic) final; | ||
void updateTimeDependentParams(o2::framework::ProcessingContext& pc); | ||
void finaliseCCDB(o2::framework::ConcreteDataMatcher& matcher, void* obj) final; | ||
void run(o2::framework::ProcessingContext& pc) final; | ||
void endOfStream(o2::framework::EndOfStreamContext& ec) final; | ||
|
||
private: | ||
int mVerbosity = DbgMinimal; // Verbosity level | ||
bool mInitialized = false; // Connect once to CCDB during initialization | ||
TDCCalibEPN mWorker; // TDC calibration object (was mTDCCalibEPN, modified after discussion with Pietro 20 June 2022) | ||
TStopwatch mTimer; | ||
}; | ||
|
||
framework::DataProcessorSpec getTDCCalibEPNSpec(); | ||
|
||
} // namespace zdc | ||
} // namespace o2 | ||
|
||
#endif |
Oops, something went wrong.