43#ifndef TILEREC_TILEAANTUPLE_H
44#define TILEREC_TILEAANTUPLE_H
64#include "GaudiKernel/ToolHandle.h"
65#include "GaudiKernel/ServiceHandle.h"
66#include "GaudiKernel/IFileMgr.h"
81#define N_TMDBDECISIONS 4
98 TileAANtuple(
const std::string& name, ISvcLocator* pSvcLocator);
140 StatusCode
storeLaser(
const EventContext& ctx);
143 StatusCode
initNTuple(
const EventContext& ctx);
161 return (abs(
m_cabling->channel2hole(fragType, chan)) - 1);
167 if (((
header >> 31 & 0x1) == 1) && ((
header >> 17 & 0x1) == 0))
178 for (
int i = 0; i < 32; ++i)
179 parity +=
header >> i & 0x1;
181 if ((parity % 2) == 1)
330 float m_HV[4][64][48] = {{{0}}};
398 "FileMgr",
"FileMgr",
"The File manager service" };
412 ToolHandle<ITileDCSTool>
m_tileDCS{
this,
"TileDCSTool",
"TileDCSTool",
"Tile DCS tool"};
435 "TileCablingSvc",
"TileCablingSvc",
"The Tile cabling service" };
438 "ROBDataProviderSvc",
"ROBDataProviderSvc",
"The ROB data provider service" };
441 "TileDQstatus",
"TileDQstatus",
"TileDQstatus key" };
444 "TileHid2RESrcID",
"TileHid2RESrcID",
"TileHid2RESrcID key"};
Property holding a SG store/key/clid from which a ReadHandle is made.
#define N_ROS
Filename : TileAANtuple.h Author : Alexander Solodkov (based on TileTBAANtuple) Created : April,...
Information produced by TileDQstatusAlg (used to be done by TileBeamInfoProvider).
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
Property holding a SG store/key/clid from which a ReadHandle is made.
int m_l1ID[N_RODS]
Level1 ID from ROD header.
float m_sumEt_yy[N_DRAWERS]
Sum Et calcualted inside DSP.
StatusCode storeTMDBDigits(const EventContext &ctx)
float m_sumEt_zz[N_DRAWERS]
Sum Et recalculated offline using offline OF.
bool m_pmtOrder
change channel ordering to pmt ordering in ntuple
StatusCode storeRawChannels(const EventContext &ctx, const SG::ReadHandleKey< TileRawChannelContainer > &containerKey, float ene[N_ROS2][N_MODULES][N_CHANS], float time[N_ROS2][N_MODULES][N_CHANS], float chi2[N_ROS2][N_MODULES][N_CHANS], float ped[N_ROS2][N_MODULES][N_CHANS], bool fillAll)
/ Fill ntuple with data from TRC.
StatusCode storeBeamElements(const TileDQstatus &DQstatus)
ServiceHandle< TileCablingSvc > m_cablingSvc
Name of Tile cabling service.
void TRIGGER_addBranch(void)
//////////////////////////////////////////////////////////////////////////// /Add TRIGGER variables t...
SG::ReadHandleKey< TileBeamElemContainer > m_beamElemContainerKey
bool m_calibMode
If data should be put in calib mode.
int m_finalUnit
calibrate everything to this level
void DIGI_addBranch(void)
//////////////////////////////////////////////////////////////////////////// /Add Tree DIGI variables...
SG::ReadHandleKey< TileLaserObject > m_laserObjectKey
bool m_useDspUnits
true if energy should be converted to units used in DSP
std::unique_ptr< Arrays > m_arrays
StatusCode initNTuple(const EventContext &ctx)
StatusCode storeTMDBRawChannel(const EventContext &ctxx)
uint32_t m_cispar[N_CISPAR]
StatusCode storeLaser(const EventContext &ctx)
float m_sumE_xx[N_DRAWERS]
Sum E recalculated offline using DSP raw channels.
ToolHandle< ITileDCSTool > m_tileDCS
float m_sumEz_xx[N_DRAWERS]
Sum Ez recalculated offline using DSP raw channels.
float m_sumEz_yy[N_DRAWERS]
Sum Ez calcualted inside DSP.
StatusCode initialize()
Alg standard interface function.
TileRawChannelUnit::UNIT m_rchUnit
Unit for TileRawChannels (ADC, pCb, MeV)
SG::ReadHandleKey< TileDigitsContainer > m_tileMuRcvDigitsContainerKey
StatusCode storeMFRawChannels(const EventContext &ctx, const SG::ReadHandleKey< TileRawChannelContainer > &containerKey, float *ene, float *time, float chi2[N_ROS2][N_MODULES][N_CHANS], float ped[N_ROS2][N_MODULES][N_CHANS], bool fillAll)
void LASER_clearBranch(void)
//////////////////////////////////////////////////////////////////////////// Clear Tree LASER variabl...
SG::ReadHandleKey< TileL2Container > m_l2CntKey
void CISPAR_addBranch(void)
//////////////////////////////////////////////////////////////////////////// /Add Tree CISPAR variabl...
ServiceHandle< IFileMgr > m_fileMgr
bool m_bad[N_ROS][N_MODULES][N_CHANS]
TileRawChannelUnit::UNIT m_dspUnit
Unit for TileRawChannels in DSP.
void TMDB_addBranch(void)
SG::ReadHandleKey< TileDQstatus > m_DQstatusKey
SG::ReadHandleKey< TileRawChannelContainer > m_of1RawChannelContainerKey
std::vector< uint32_t > m_ROBID
ToolHandle< TileCondToolEmscale > m_tileToolEmscale
main Tile Calibration tool
void fillCellMap(TTree *ntuplePtr)
///////////////////////////////////////////////////////////////////////////
ServiceHandle< IROBDataProviderSvc > m_robSvc
bool m_compareMode
If two sets of data should be compared (e.g.
float m_sumEt_xx[N_DRAWERS]
Sum Et recalculated offline using DSP raw channels.
int digiChannel2PMT(int fragType, int chan)
StatusCode storeDigits(const EventContext &ctx, const SG::ReadHandleKey< TileDigitsContainer > &containerKey, short *sample, short gain[N_ROS2][N_MODULES][N_CHANS], bool fillAll)
/ Fill Ntuple with info from TileDigits / Return true if the collection is empty
SG::ReadHandleKey< TileRawChannelContainer > m_dspRawChannelContainerKey
int m_evt
event number in a run
void TMDB_clearBranch(void)
SG::ReadHandleKey< TileDigitsContainer > m_fltDigitsContainerKey
StatusCode storeTMDBDecision(const EventContext &ctx)
int m_nSamples
number of samples
ToolHandle< TileL2Builder > m_l2Builder
ServiceHandle< ITHistSvc > m_thistSvc
TileAANtuple(const std::string &name, ISvcLocator *pSvcLocator)
SG::ReadHandleKey< TileRawChannelContainer > m_wienerRawChannelContainerKey
short CheckDMUFormat(uint32_t header)
bit_31 of the DMU header must be 1 and bit_17 of the DMU header must be 0
short CheckDMUParity(uint32_t header)
Parity of the DMU header should be odd.
SG::ReadHandleKey< TileRawChannelContainer > m_qieRawChannelContainerKey
int m_l1Type[N_RODS]
Level1 Type from ROD header.
float m_sumEz_zz[N_DRAWERS]
Sum Ez recalculated offline using offline OF.
bool m_calibrateEnergy
convert energy to new units or use amplitude from RawChannel directly
int m_lumiBlock
lumiblock number in a run
SG::ReadHandleKey< TileDigitsContainer > m_digitsContainerKey
uint32_t m_dspFlags
DSP flags from BS.
int m_trigType
trigger type (1=Phys, 2=Laser, 4=Ped, 8=CIS)
void CISPAR_clearBranch(void)
//////////////////////////////////////////////////////////////////////////// Clear Tree CISPAR variab...
SG::ReadHandleKey< TileRawChannelContainer > m_fitcRawChannelContainerKey
bool m_checkDCS
if false, do not use TileDCS at all
void DIGI_clearBranch(void)
//////////////////////////////////////////////////////////////////////////// /Clear Tree DIGI variabl...
float m_sumE_zz[N_DRAWERS]
Sum E recalculated offline using offline OF.
void LASER_addBranch(void)
//////////////////////////////////////////////////////////////////////////// /Add Tree LASER variable...
int m_HHMMSS
event time in HH:MM:SS
SG::ReadHandleKey< TileRawChannelContainer > m_rawChannelContainerKey
SG::ReadCondHandleKey< TileHid2RESrcID > m_hid2RESrcIDKey
float m_sumE_yy[N_DRAWERS]
Sum E calcualted inside DSP.
const TileCablingService * m_cabling
cabling tool
SG::ReadHandleKey< TileRawChannelContainer > m_fitRawChannelContainerKey
bool m_bsInput
true if bytestream file is used
SG::ReadHandleKey< TileRawChannelContainer > m_mfRawChannelContainerKey
void TRIGGER_clearBranch(void)
//////////////////////////////////////////////////////////////////////////// Clear Tree TRIGGER varia...
SG::ReadHandleKey< TileMuonReceiverContainer > m_tileMuRcvContainerKey
int m_evType[N_RODS]
Event Type from ROD header.
SG::ReadHandleKey< TileRawChannelContainer > m_optRawChannelContainerKey
SG::ReadHandleKey< TileRawChannelContainer > m_tileMuRcvRawChannelContainerKey
int m_DCSBranches
mask like 110101 - which DCS branches to fill
ToolHandle< ITileBadChanTool > m_tileBadChanTool
Tile Bad Channel tool.
const TileDetDescrManager * m_tileMgr
Pointer to TileDetDescrManager.
int m_evBCID[N_RODS]
Event BCID from ROD header.
char m_dateTime[32]
event date and time
StatusCode ntuple_clear()
const TileHWID * m_tileHWID
StatusCode ntuple_initialize(const EventContext &ctx, const TileDQstatus &DQstatus)
This AthConstConverter class provides conversion from ByteStream to TileBeamElemContainer.
Class that holds Data Quality fragment information and provides functions to extract the data quality...
Helper class for TileCal online (hardware) identifiers.
Helper class for TileCal offline identifiers.
double chi2(TH1 *h0, TH1 *h1)
float m_chi2Opt[N_ROS2][N_MODULES][N_CHANS]
float m_tWiener[N_ROS2][N_MODULES][N_CHANS]
float m_chi2Fitc[N_ROS2][N_MODULES][N_CHANS]
float m_pedDsp[N_ROS2][N_MODULES][N_CHANS]
float m_chi2Dsp[N_ROS2][N_MODULES][N_CHANS]
short m_rodCRC[N_ROS2][N_MODULES][N_DMUS]
float m_las_PMT_Ped_RMS[TileLaserObject::nbGains][TileLaserObject::nbPmts]
float m_chi2QIE[N_ROS2][N_MODULES][N_CHANS]
short m_fragSize[N_ROS][N_MODULES]
float m_time[N_ROS2][N_MODULES][N_CHANS]
short m_ROD_DMUrodCRC[N_ROS][N_MODULES][N_DMUS]
float m_chi2Fit[N_ROS2][N_MODULES][N_CHANS]
short m_DMUmemoryErr[N_ROS2][N_MODULES][N_DMUS]
uint16_t m_slinkCRC[N_ROS][N_MODULES][2]
short m_ROD_BCID[N_ROS][N_MODULES]
int m_las_PMT_TDC[TileLaserObject::nbGains][TileLaserObject::nbPmts]
float m_chi2[N_ROS2][N_MODULES][N_CHANS]
int m_las_PMT_ADC[TileLaserObject::nbGains][TileLaserObject::nbPmts]
float m_eTMDB[N_ROS][N_MODULES][N_TMDBCHANS]
float m_chi2Wiener[N_ROS2][N_MODULES][N_CHANS]
unsigned char m_bcidTMDB[N_ROS][N_MODULES][3]
float m_pedMF[N_ROS2][N_MODULES][N_CHANS]
float m_tQIE[N_ROS2][N_MODULES][N_CHANS]
float m_las_D_Alpha[TileLaserObject::nbGains][TileLaserObject::nbDiodes]
float m_ped[N_ROS2][N_MODULES][N_CHANS]
float m_tOF1[N_ROS2][N_MODULES][N_CHANS]
uint16_t m_dmuMask[N_ROS][N_MODULES][2]
short m_CHSTATUS[4][64][48]
float m_las_D_Ped_RMS[TileLaserObject::nbGains][TileLaserObject::nbDiodes]
short m_DMUSstrobeErr[N_ROS2][N_MODULES][N_DMUS]
short m_DMUformatErr[N_ROS2][N_MODULES][N_DMUS]
unsigned char * m_sampleTMDB
short m_ROD_GlobalCRC[N_ROS][N_MODULES]
float m_pedFitc[N_ROS2][N_MODULES][N_CHANS]
float m_tDsp[N_ROS2][N_MODULES][N_CHANS]
int m_las_D_ADC[TileLaserObject::nbGains][TileLaserObject::nbDiodes]
short m_ROD_DMUHeadformatErr[N_ROS][N_MODULES][N_DMUS]
short m_DMUparityErr[N_ROS2][N_MODULES][N_DMUS]
float m_las_D_AlphaPed[TileLaserObject::nbGains][TileLaserObject::nbDiodes]
float m_tFit[N_ROS2][N_MODULES][N_CHANS]
float m_eWiener[N_ROS2][N_MODULES][N_CHANS]
float m_eFit[N_ROS2][N_MODULES][N_CHANS]
short m_ROD_DMUfeCRC[N_ROS][N_MODULES][N_DMUS]
float m_pedFit[N_ROS2][N_MODULES][N_CHANS]
short m_ROD_DMUmemoryErr[N_ROS][N_MODULES][N_DMUS]
float m_las_D_AlphaPed_RMS[TileLaserObject::nbGains][TileLaserObject::nbDiodes]
float m_eOpt[N_ROS2][N_MODULES][N_CHANS]
float m_eQIE[N_ROS2][N_MODULES][N_CHANS]
unsigned char m_decisionTMDB[N_ROS][N_MODULES][N_TMDBDECISIONS]
float m_pedWiener[N_ROS2][N_MODULES][N_CHANS]
short m_ROD_DMUBCIDErr[N_ROS][N_MODULES][N_DMUS]
short m_feCRC[N_ROS2][N_MODULES][N_DMUS]
short m_ROD_DMUSstrobeErr[N_ROS][N_MODULES][N_DMUS]
short m_DMUbcid[N_ROS2][N_MODULES][N_DMUS]
short m_ROD_DMUDataformatErr[N_ROS][N_MODULES][N_DMUS]
float m_ene[N_ROS2][N_MODULES][N_CHANS]
short m_gainFlt[N_ROS2][N_MODULES][N_CHANS]
float m_pedOF1[N_ROS2][N_MODULES][N_CHANS]
short m_HVSTATUS[4][64][48]
float m_las_D_Alpha_RMS[TileLaserObject::nbGains][TileLaserObject::nbDiodes]
short m_rodBCID[N_ROS][N_MODULES]
float m_pedQIE[N_ROS2][N_MODULES][N_CHANS]
short m_ROD_DMUDataparityErr[N_ROS][N_MODULES][N_DMUS]
uint32_t m_DMUheader[N_ROS2][N_MODULES][N_DMUS]
short m_ROD_DMUDstrobeErr[N_ROS][N_MODULES][N_DMUS]
short m_gain[N_ROS2][N_MODULES][N_CHANS]
float m_eOF1[N_ROS2][N_MODULES][N_CHANS]
float m_eFitc[N_ROS2][N_MODULES][N_CHANS]
float m_chi2OF1[N_ROS2][N_MODULES][N_CHANS]
short m_DMUDstrobeErr[N_ROS2][N_MODULES][N_DMUS]
float m_pedOpt[N_ROS2][N_MODULES][N_CHANS]
float m_las_D_Ped[TileLaserObject::nbGains][TileLaserObject::nbDiodes]
float m_chi2MF[N_ROS2][N_MODULES][N_CHANS]
float m_tOpt[N_ROS2][N_MODULES][N_CHANS]
uint16_t m_ROD_DMUMask[N_ROS][N_MODULES][2]
float m_eDsp[N_ROS2][N_MODULES][N_CHANS]
float m_tFitc[N_ROS2][N_MODULES][N_CHANS]
short m_ROD_DMUHeadparityErr[N_ROS][N_MODULES][N_DMUS]
float m_las_PMT_Ped[TileLaserObject::nbGains][TileLaserObject::nbPmts]