15#ifndef CBMTOFEVENTCLUSTERIZER_H
16#define CBMTOFEVENTCLUSTERIZER_H 1
39#include "TGeoManager.h"
57#include "TTimeStamp.h"
88 virtual InitStatus
Init();
98 virtual void Exec(Option_t* option);
105 virtual void Finish(Double_t calMode);
114 Int_t iSign = iCalRpc / TMath::Abs(iCalRpc);
116 Int_t iRpc = iCalRpc % 10;
117 iCalRpc = (iCalRpc - iRpc) / 10;
118 Int_t iSm = iCalRpc % 10;
119 iCalRpc = (iCalRpc - iSm) / 10;
182 void MasterToLocal(
const Int_t CellId,
const Double_t* master, Double_t* local);
185 virtual void fit_ybox(
const char* hname);
186 virtual void fit_ybox(TH1*
h, Double_t dy);
187 virtual void fit_ybox(TH1*
h, Double_t dy, Double_t* fpar);
188 virtual double*
find_yedges(
const char* hname, Double_t dThr, Double_t dLen);
191 virtual Bool_t
AddNextChan(Int_t iSmType, Int_t iSm, Int_t iRpc, Int_t iLastChan, Double_t dLastPosX,
192 Double_t dLastPosY, Double_t dLastTime,
194 virtual void LH_store(Int_t iSmType, Int_t iSm, Int_t iRpc, Int_t iChm,
CbmTofHit* pHit);
307 std::vector<std::vector<std::vector<std::vector<CbmTofDigi*>>>>
fStorDigi;
308 std::vector<std::vector<std::vector<std::vector<Int_t>>>>
fStorDigiInd;
314 std::vector<std::vector<std::vector<Double_t>>>
fvdX;
315 std::vector<std::vector<std::vector<Double_t>>>
fvdY;
316 std::vector<std::vector<std::vector<Double_t>>>
fvdDifX;
317 std::vector<std::vector<std::vector<Double_t>>>
fvdDifY;
318 std::vector<std::vector<std::vector<Double_t>>>
fvdDifCh;
409 std::vector<std::vector<std::vector<std::vector<Double_t>>>>
fvCPDelTof;
410 std::vector<std::vector<std::vector<std::vector<Double_t>>>>
fvCPTOff;
411 std::vector<std::vector<std::vector<std::vector<Double_t>>>>
fvCPTotGain;
412 std::vector<std::vector<std::vector<std::vector<Double_t>>>>
fvCPTotOff;
413 std::vector<std::vector<std::vector<std::vector<std::vector<Double_t>>>>>
415 std::vector<std::vector<std::vector<Double_t>>>
fvCPTOffY;
419 std::vector<std::vector<std::vector<std::vector<std::list<CbmTofHit*>>>>>
fvLastHits;
Class characterising one event by a collection of links (indices) to data objects,...
Data class with information on a STS local track.
Bookkeeping of time-slice content.
static uint32_t GetUniqueAddress(uint32_t Sm, uint32_t Rpc, uint32_t Channel, uint32_t Side=0, uint32_t SmType=0, uint32_t RpcType=0)
contains filling and updating of calibration histos
Parameters class for the CBM ToF digitizer using beam data distributions.
std::vector< UInt_t > fvDeadStrips
ClassDef(CbmTofEventClusterizer, 1)
std::vector< std::vector< TH2 * > > fhTRpcCludXdY
Double_t fdStartAnalysisTime
void SetPs2Ns(Bool_t bval)
Bool_t RegisterOutputs()
Create and register output TClonesArray of Tof Hits.
std::vector< CbmTofDigi > * fTofCalDigiVecOut
std::vector< std::vector< TH3 * > > fhTRpcCluQ2DT
std::vector< Int_t > fviDetId
virtual void ExecEvent(Option_t *option, CbmEvent *tEvent=NULL)
Bool_t RegisterInputs()
Recover pointer on input TClonesArray: TofPoints, TofDigis...
void SetEnableAvWalk(Bool_t bval)
std::vector< TH2 * > fhSmCluTOff
std::vector< TH2 * > fhRpcDigiCor
const CbmTimeSlice * fTimeSlice
void SetYFitMin(Double_t val)
void SetCaldXdYMax(Double_t dCaldXdYMax)
std::vector< TH2 * > fhRpcDigiTotDiff
CbmTofEventClusterizer & operator=(const CbmTofEventClusterizer &)
Copy operator.
static CbmTofEventClusterizer * fInstance
T0 Digis.
void MasterToLocal(const Int_t CellId, const Double_t *master, Double_t *local)
std::vector< std::vector< std::vector< std::vector< Double_t > > > > fvCPTotGain
void SetWriteDigisInOut(Bool_t bDigis)
std::vector< std::vector< TH2 * > > fhTRpcCluAvWalk
std::vector< TProfile * > fhRpcCluPositionEvol
FairEventHeader * fEvtHeader
void SetTotPreRange(Double_t val)
const std::vector< CbmMatch > * fTofDigiPointMatches
std::vector< TH1 * > fhRpcDTLastHits_CluSize
virtual ~CbmTofEventClusterizer()
Destructor.
std::vector< std::vector< std::vector< std::vector< TH2 * > > > > fhTRpcCluWalk
std::vector< TProfile * > fhRpcCluTimeEvol
void SetDeadStrips(Int_t iDet, UInt_t ival)
Double_t GetStartAnalysisTime()
std::vector< std::vector< TH2 * > > fhTRpcCluPosition
void SetEdgeTbias(double val)
CbmDigiManager * fDigiMan
TOF Digis.
Bool_t LoadGeometry()
Load the geometry: for now just resizing the Digis temporary vectors.
std::vector< std::vector< std::vector< Double_t > > > fvCPTOffY
static CbmTofEventClusterizer * Instance()
std::vector< TH1 * > fhRpcDigiRate
std::vector< CbmTofDigi > fTofDigiVec
void SetBeamRefDet(Int_t Id)
std::vector< std::vector< TH2 * > > fhTSmCluPosition
Bool_t BuildClusters()
Build clusters out of ToF Digis and store the resulting info in a TofHit.
std::vector< TH2 * > fhRpcDigiMul
CbmTofGeoHandler * fGeoHandler
TClonesArray * fEventsColl
std::vector< TH2 * > fhRpcCluDelMatPos
std::vector< TH2 * > fhRpcCluDelTOff
std::vector< std::vector< TH2 * > > fhTRpcCluTotDTLastHits
void SetFileIndex(Int_t iIndex)
void SetdTRefMax(Double_t val)
std::vector< std::vector< Double_t > > fvTimeFirstDigi
std::vector< std::vector< TH2 * > > fhTRpcCluDelTof
Bool_t fbAlternativeBranchNames
void SetSel2Id(Int_t ival)
void SetAlternativeBranchNames(Bool_t bNames)
std::vector< TH1 * > fhRpcCluRate
void PosYMaxScal(Double_t val)
std::vector< TH2 * > fhRpcCluTot
std::map< UInt_t, UInt_t > fDetIdIndexMap
void SetCluSizeMin(Int_t iVal)
void SwapChannelSides(Bool_t bSwap)
std::vector< std::vector< TProfile * > > fhSmCluFpar
std::vector< TH1 * > fhSeldT
CbmTofDetectorId * fTofId
Bool_t InitCalibParameter()
Initialize other parameters not included in parameter classes.
std::vector< std::vector< std::vector< std::vector< std::list< CbmTofHit * > > > > > fvLastHits
void SetToDAv(Double_t val)
std::vector< std::vector< TH1 * > > fhTRpcCluMul
void SetDelTofMax(Double_t val)
const CbmTsEventHeader * fTsHeader
CbmTofCalibrator * fTofCalibrator
virtual void fit_ybox(const char *hname)
std::vector< std::vector< std::vector< std::vector< std::vector< Double_t > > > > > fvCPWalk
std::vector< std::vector< std::vector< std::vector< Double_t > > > > fvCPTotOff
void SetCalSel(Int_t iSel)
std::vector< std::vector< std::vector< std::vector< Double_t > > > > fvCPTOff
std::vector< std::vector< std::vector< Double_t > > > fvdDifX
void SetCalParFileName(TString CalParFileName)
std::vector< std::vector< TH2 * > > fhTSmCluTOff
void SetEdgeLen(double val)
std::vector< CbmTofDigi > * fTofCalDigiVec
CbmTofEventClusterizer()
Constructor.
Bool_t InitParameters()
Initialize other parameters not included in parameter classes.
CbmTofDigiBdfPar * fDigiBdfPar
std::vector< TH1 * > fhRpcCluRate10s
virtual void Exec(Option_t *option)
Inherited from FairTask.
void SetSel2MulMax(Int_t Id)
std::vector< std::vector< TH2 * > > fhTRpcCluSizeDTLastHits
void SetBeamAddRefMul(Int_t ival)
void SetOutHstFileName(TString OutHstFileName)
std::vector< TH2 * > fhRpcCluSize
void SetCalSmAddr(Int_t iCalSmAddr)
virtual void LH_store(Int_t iSmType, Int_t iSm, Int_t iRpc, Int_t iChm, CbmTofHit *pHit)
std::vector< std::vector< std::vector< Double_t > > > fvdDifY
std::vector< TH2 * > fhRpcCluDelMatTOff
TString GetCalParFileName()
std::vector< TH2 * > fhRpcDigiTotMap
std::vector< TH2 * > fhRpcDigiDTFD
std::vector< std::vector< std::vector< Int_t > > > fviClusterMul
void SetCalCluMulMax(Int_t ival)
std::vector< std::vector< std::vector< Int_t > > > fviTrkMul
std::vector< std::vector< TH2 * > > fhTRpcCluTOffDTLastHits
void SetBeamRefSm(Int_t Id)
virtual Bool_t AddNextChan(Int_t iSmType, Int_t iSm, Int_t iRpc, Int_t iLastChan, Double_t dLastPosX, Double_t dLastPosY, Double_t dLastTime, Double_t dLastTot)
virtual void CleanLHMemory()
std::vector< std::vector< TH2 * > > fhTRpcCluTOff
Bool_t DeleteGeometry()
Delete the geometry related arrays: for now just clearing the Digis temporary vectors.
void SetEdgeFrange(double val)
void SetTotMin(Double_t val)
std::vector< std::vector< TH2 * > > fhTRpcCluTofOff
CbmTofHit * GetHitPointer(int iHit)
CbmTofCell * fChannelInfo
TClonesArray * fTofDigiMatchColl
std::vector< std::vector< Double_t > > fvCPTOffYRange
double GetLocalX(CbmTofHit *pHit)
std::vector< TH2 * > fhRpcDigiTotRight
void SetBeamRefMulMax(Int_t Id)
void SetModifySigvel(Double_t val)
void SetChannelDeadtime(Double_t val)
std::vector< std::vector< TH3 * > > fhTRpcCluWalk2
std::vector< std::vector< std::vector< TH2 * > > > fhRpcCluWalk
virtual InitStatus Init()
Inherited from FairTask.
std::vector< TH2 * > fhRpcCluPos
void SetMemoryTime(Double_t val)
std::vector< std::vector< std::vector< Double_t > > > fvdDifCh
virtual void Finish()
Inherited from FairTask.
void SetSel2Rpc(Int_t ival)
std::map< UInt_t, TGeoPhysicalNode * > fCellIdGeoMap
std::vector< CbmMatch > * fTofDigiPointMatchesOut
CbmMatch * GetMatchPointer(int iHit)
TClonesArray * fTofHitsCollOut
// Calibrated TOF Digis
void SetMaxTimeDist(Double_t val)
std::vector< TH1 * > fhRpcCluMul
void SetCalRpc(Int_t iCalRpc)
void SetWriteHitsInOut(Bool_t bHits)
CbmMatch * GetMatchIndexPointer(int idx)
void SetNbCalHitMin(Int_t iVal)
std::vector< TH2 * > fhRpcDigiStatus
void SetTotMax(Double_t val)
CbmTofEventClusterizer(const CbmTofEventClusterizer &)
Copy constructor.
void SetBeamRefId(Int_t Id)
Bool_t fEnableMatchPosScaling
std::vector< std::vector< TH2 * > > fhTRpcCluMemMulDTLastHits
std::vector< TH2 * > fhRpcCluDelPos
Bool_t fbSwapChannelSides
std::vector< TH2 * > fhRpcCluTOff
void SetCalSmType(Int_t iCalSmType)
virtual void SetParContainers()
Inherited from FairTask.
std::vector< std::vector< TH2 * > > fhTRpcCluTot
std::vector< std::vector< std::vector< std::vector< Int_t > > > > fStorDigiInd
void SetSel2Sm(Int_t ival)
std::vector< TH1 * > fhRpcDTLastHits
std::vector< std::vector< std::vector< Int_t > > > fviClusterSize
std::vector< std::vector< TH2 * > > fhTRpcCluSize
void SetEnableMatchPosScaling(Bool_t bval)
std::vector< TH2 * > fhRpcCluAvLnWalk
void SetTRefDifMax(Double_t val)
void SetTotMean(Double_t val)
TClonesArray * fTofHitsColl
// Calibrated TOF Digis
std::vector< TH2 * > fhRpcCluTrms
TClonesArray * fTofDigiMatchCollOut
std::vector< TH2 * > fhSmCluPosition
std::vector< std::vector< std::vector< Double_t > > > fvdY
Bool_t FillHistos(CbmEvent *tEvent)
std::vector< TH2 * > fhRpcCluAvWalk
Double_t fdChannelDeadtime
void SetEdgeThr(double val)
std::vector< std::vector< TH2 * > > fhTRpcCluQASY
std::vector< Int_t > vDigiIndRef
std::vector< std::vector< std::vector< Double_t > > > fvdX
std::vector< TProfile * > fhSmCluSvel
std::vector< TH2 * > fhRpcDigiTotLeft
std::vector< std::vector< Double_t > > fvCPTOffYBinWidth
std::vector< TH2 * > fhRpcDigiDTMul
std::vector< TH2 * > fhRpcCluPosition
std::vector< std::vector< Double_t > > fvMulDigi
std::vector< std::vector< std::vector< std::vector< CbmTofDigi * > > > > fStorDigi
std::vector< TH2 * > fhRpcDigiDTLD
virtual void CheckLHMemory()
virtual double * find_yedges(const char *hname, Double_t dThr, Double_t dLen)
std::vector< std::vector< std::vector< std::vector< Double_t > > > > fvCPDelTof
std::vector< TH1 * > fhRpcDTLastHits_Tot
void SetCalMode(Int_t iMode)
std::vector< std::vector< TH2 * > > fhTSmCluTRun
std::vector< std::vector< Double_t > > fvTimeLastDigi
double GetLocalY(CbmTofHit *pHit)