40#include "FairRootManager.h"
41#include "TClonesArray.h"
51 : FairTask(
"CbmRichReconstruction")
54 , fRichProjections(NULL)
55 , fRichTrackParamZ(NULL)
61 , fTrackExtrapolation(NULL)
62 , fProjectionProducer(NULL)
63 , fRingTrackAssign(NULL)
66 fRunExtrapolation(true)
67 , fRunProjection(true)
70 , fRunTrackAssign(true)
73 fExtrapolationName(
"littrack")
74 , fProjectionName(
"analytical")
75 , fFinderName(
"hough")
76 , fFitterName(
"ellipse_tau")
77 , fTrackAssignName(
"closest_distance")
80 fPathToMirrorMisalignmentCorrectionParameterFile(
"")
83 fZTrackExtrapolation(260.)
97 FairRootManager* ioman = FairRootManager::Instance();
99 Fatal(
"CbmRichReconstruction::Init",
"RootManager not instantised!");
104 ioman->Register(
"RichTrackParamZ",
"RICH",
fRichTrackParamZ, IsOutputBranchPersistent(
"RichTrackParamZ"));
106 fGlobalTracks = (TClonesArray*) ioman->GetObject(
"GlobalTrack");
108 Fatal(
"CbmRichReconstruction::Init",
"No GlobalTrack array!");
112 ioman->Register(
"RichProjection",
"RICH",
fRichProjections, IsOutputBranchPersistent(
"RichProjection"));
115 fRichHits = (TClonesArray*) ioman->GetObject(
"RichHit");
117 Fatal(
"CbmRichReconstruction::Init",
"No RichHit array!");
120 fRichRings =
new TClonesArray(
"CbmRichRing", 100);
121 ioman->Register(
"RichRing",
"RICH",
fRichRings, IsOutputBranchPersistent(
"RichRing"));
134 LOG(info) <<
"CbmRichReconstruction Exec";
157 LOG(fatal) <<
fExtrapolationName <<
" is not correct name for extrapolation algorithm.";
171 LOG(fatal) <<
fFinderName <<
" is not correct name for projection producer algorithm.";
197 LOG(fatal) <<
fFinderName <<
" is not correct name for ring finder algorithm.";
224 LOG(fatal) <<
fFitterName <<
" is not correct name for ring fitter algorithm.";
235 LOG(fatal) <<
fTrackAssignName <<
" is not correct name for ring-track assignment algorithm.";
258 for (
int iRing = 0; iRing < nofRings; iRing++) {
260 if (NULL == ring)
continue;
ClassImp(CbmConverterManager)
Convert internal data classes to cbmroot common data classes.
Project track by straight line from imaginary plane to the mirror and reflect it to the photodetector...
Main class for ring finder based on Hough Transform implementation.
Ideal ring finder in the RICH detector. It uses MC information to attach RICH hits to rings.
Here the ring is fitted with the COP algorithm from A. Ayriyan/G. Ososkov.
Implementation of a ring fitting algorithm with equation of a circle. Algorithm from F77 subroutine o...
This is the implementation of ellipse fitting using MINUIT.
Here the ring is fitted with Taubin algorithm from A. Ayriyan, G. Ososkov, N. Chernov.
Here the ring is fitted with the RobustCOP algorithm from A. Ayriyan/G. Ososkov.
Here the ring is fitted with the TAU algorithm from A. Ayriyan/ G. Ososkov.
Ring-Track Assignment according to the closest distance criterion.
Project track by straight line from imaginary plane to the mirror and reflect it to the photodetector...
Main class for running event reconstruction in the RICH detector.
static void CopyParamsToRing(const CbmRichRingLight *ring1, CbmRichRing *ring2)
Copy parameters from CbmRichRingLight to CbmRichRing.
static void Init()
Initialize array of RICH hits.
static void CopyHitsToRingLight(const CbmRichRing *ring1, CbmRichRingLight *ring2)
Copy hits from CbmRichRing to CbmRichRingLight.
Project track by straight line from imaginary plane to the mirror and reflect it to the photodetector...
virtual void SetMirrorCorrectionParameterFile(const string &s)
virtual void Init()
Initialization in case one needs to initialize some TCloneArrays.
virtual void DoProjection(TClonesArray *richProj)=0
Project track by straight line from imaginary plane to the mirror and reflect it to the photodetector...
Main class for running event reconstruction in the RICH detector.
virtual InitStatus Init()
Inherited from FairTask.
TClonesArray * fRichTrackParamZ
CbmRichRingTrackAssignBase * fRingTrackAssign
CbmRichRingFitterBase * fRingFitter
CbmRichRingFinder * fRingFinder
CbmRichTrackExtrapolationBase * fTrackExtrapolation
TClonesArray * fRichRings
string fExtrapolationName
CbmRichReconstruction()
Default constructor.
Double_t fZTrackExtrapolation
string fPathToMirrorMisalignmentCorrectionParameterFile
TClonesArray * fGlobalTracks
TClonesArray * fRichProjections
virtual void Exec(Option_t *opt)
Inherited from FairTask.
virtual void Finish()
Inherited from FairTask.
CbmRichProjectionProducerBase * fProjectionProducer
virtual ~CbmRichReconstruction()
Destructor.
Main class for ring finder based on Hough Transform implementation.
virtual Int_t DoFind(CbmEvent *event, TClonesArray *rHitArray, TClonesArray *rProjArray, TClonesArray *rRingArray)=0
virtual void DoFit(CbmRichRingLight *ring)=0
Abstract method DoFit. To be implemented in the concrete class. Perform a fit to the hits attached to...
Here the ring is fitted with the COP algorithm from A. Ayriyan/G. Ososkov.
Implementation of a ring fitting algorithm with equation of a circle. Algorithm from F77 subroutine o...
This is the implementation of ellipse fitting using MINUIT.
Here the ring is fitted with Taubin algorithm from A. Ayriyan, G. Ososkov, N. Chernov.
Here the ring is fitted with the RobustCOP algorithm from A. Ayriyan/G. Ososkov.
Here the ring is fitted with the TAU algorithm from A. Ayriyan/ G. Ososkov.
virtual void Init()
Initialization in case one needs to initialize some TCloneArrays.
virtual void DoAssign(CbmEvent *event, TClonesArray *rings, TClonesArray *richProj)=0
Ring-Track Assignment according to the closest distance criterion.