-
Administrator authored
Apply code formatting to all source/header files and root macros.
Administrator authoredApply code formatting to all source/header files and root macros.
CbmTofTBClusterizer.h 3.02 KiB
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/*
* File: CbmTofTBClusterizer.h
* Author: tablyaz
*
* Created on December 6, 2016, 11:29 AM
*/
#ifndef CBMTOFTBCLUSTERIZER_H
#define CBMTOFTBCLUSTERIZER_H
#include "CbmTofCell.h"
#include "CbmTofDetectorId_v12b.h"
#include "CbmTofDetectorId_v14a.h"
#include "CbmTofDigiBdfPar.h"
#include "CbmTofDigiExp.h"
#include "CbmTofDigiPar.h"
#include "CbmTofGeoHandler.h"
#include "FairTask.h"
#include "TClonesArray.h"
class CbmTofTBClusterizer : public FairTask {
public:
struct ChannelDigis {
ChannelDigis() : topDigis(), bottomDigis(), digiPairs() {};
struct DigiDesc {
CbmTofDigiExp* pDigi;
Int_t digiInd;
};
struct DigiPair {
Double_t y;
DigiDesc topDigi;
DigiDesc bottomDigi;
};
std::map<Double_t, DigiDesc> topDigis;
std::map<Double_t, DigiDesc> bottomDigis;
std::map<Double_t, DigiPair> digiPairs;
};
CbmTofTBClusterizer();
InitStatus Init();
void SetParContainers();
void Exec(Option_t* option);
void Finish();
private:
Bool_t InitCalibParameter();
void GetEventInfo(Int_t& inputNr, Int_t& eventNr, Double_t& eventTime);
private:
CbmTofGeoHandler* fGeoHandler;
CbmTofDetectorId* fTofId;
CbmTofDigiPar* fDigiPar;
CbmTofCell* fChannelInfo;
CbmTofDigiBdfPar* fDigiBdfPar;
std::vector<std::vector<Double_t>> fvCPSigPropSpeed; //[nSMT][nRpc]
std::vector<std::vector<std::vector<std::vector<Double_t>>>>
fvCPDelTof; //[nSMT][nRpc][nbClDelTofBinX][nbTrg]
std::vector<std::vector<std::vector<std::vector<Double_t>>>>
fvCPTOff; //[nSMT][nRpc][nCh][nbSide]
std::vector<std::vector<std::vector<std::vector<Double_t>>>>
fvCPTotGain; //[nSMT][nRpc][nCh][nbSide]
std::vector<std::vector<std::vector<std::vector<std::vector<Double_t>>>>>
fvCPWalk; //[nSMT][nRpc][nCh][nbSide][nbWalkBins]
TClonesArray* fTofDigis;
TClonesArray* fTofPoints;
TClonesArray* fTofHits;
TClonesArray* fTofDigiMatchs;
//std::vector<std::vector<std::vector<std::list<CbmTofDigiExp*> > > > fStorDigiExp; //[nbType][nbSm*nbRpc][nbCh]{nDigis}
std::vector<std::vector<std::vector<ChannelDigis>>> fStorDigiExp;
std::vector<std::vector<std::vector<std::pair<
std::pair<std::map<Double_t, std::pair<CbmTofDigiExp*, Int_t>>,
std::map<Double_t, std::pair<CbmTofDigiExp*, Int_t>>>,
std::map<Double_t,
std::pair<Double_t,
std::pair<std::pair<CbmTofDigiExp*, Int_t>,
std::pair<CbmTofDigiExp*, Int_t>>>>>>>>
fStorDigiExpOld; //[nbType][nbSm*nbRpc][nbCh]<[->|nTopDigis][->|nBottomDigis]>
Double_t fOutTimeFactor;
/** Make copy constructor and copy operator private to avoid warning due to pointer members **/
CbmTofTBClusterizer(const CbmTofTBClusterizer&);
CbmTofTBClusterizer& operator=(const CbmTofTBClusterizer&);
ClassDef(CbmTofTBClusterizer, 1);
};
#endif /* CBMTOFTBCLUSTERIZER_H */