Go to the documentation of this file.
11 #include "CbmRichProjectionProducerAnalytical.h"
39 #include "FairLogger.h"
40 #include "FairRootManager.h"
41 #include "TClonesArray.h"
49 : FairTask(
"CbmRichReconstruction")
52 , fRichProjections(NULL)
53 , fRichTrackParamZ(NULL)
59 , fTrackExtrapolation(NULL)
60 , fProjectionProducer(NULL)
61 , fRingTrackAssign(NULL)
64 fRunExtrapolation(true)
65 , fRunProjection(true)
68 , fRunTrackAssign(true)
74 fExtrapolationName(
"littrack")
75 , fProjectionName(
"analytical")
76 , fFinderName(
"hough")
77 , fFitterName(
"ellipse_tau")
78 , fTrackAssignName(
"closest_distance")
81 fZTrackExtrapolation(260.) {}
91 FairRootManager* ioman = FairRootManager::Instance();
93 Fatal(
"CbmRichReconstruction::Init",
"RootManager not instantised!");
98 ioman->Register(
"RichTrackParamZ",
101 IsOutputBranchPersistent(
"RichTrackParamZ"));
103 fGlobalTracks = (TClonesArray*) ioman->GetObject(
"GlobalTrack");
105 Fatal(
"CbmRichReconstruction::Init",
"No GlobalTrack array!");
109 ioman->Register(
"RichProjection",
112 IsOutputBranchPersistent(
"RichProjection"));
115 fRichHits = (TClonesArray*) ioman->GetObject(
"RichHit");
117 Fatal(
"CbmRichReconstruction::Init",
"No RichHit array!");
120 fRichRings =
new TClonesArray(
"CbmRichRing", 100);
122 "RichRing",
"RICH",
fRichRings, IsOutputBranchPersistent(
"RichRing"));
134 LOG(info) <<
"CbmRichReconstruction Exec";
153 <<
" is not correct name for extrapolation algorithm.";
165 <<
" is not correct name for projection producer algorithm.";
185 <<
" is not correct name for ring finder algorithm.";
206 <<
" is not correct name for ring fitter algorithm.";
216 <<
" is not correct name for ring-track assignment algorithm.";
239 for (
int iRing = 0; iRing < nofRings; iRing++) {
241 if (NULL == ring)
continue;
virtual void DoProjection(TClonesArray *richProj)=0
virtual Int_t DoFind(TClonesArray *rHitArray, TClonesArray *rProjArray, TClonesArray *rRingArray)=0
virtual void Init()
Initialization in case one needs to initialize some TCloneArrays.
TClonesArray * fRichProjections
Main class for running event reconstruction in the RICH detector.
Here the ring is fitted with Taubin algorithm from A. Ayriyan, G. Ososkov, N. Chernov.
CbmRichRingFitterBase * fRingFitter
Here the ring is fitted with Taubin algorithm from A. Ayriyan, G. Ososkov, N. Chernov.
CbmRichProjectionProducerBase * fProjectionProducer
CbmRichRingTrackAssignBase * fRingTrackAssign
Project track by straight line from imaginary plane to the mirror and reflect it to the photodetector...
virtual ~CbmRichReconstruction()
Destructor.
virtual void Finish()
Inherited from FairTask.
CbmRichReconstruction()
Default constructor.
static void CopyParamsToRing(const CbmRichRingLight *ring1, CbmRichRing *ring2)
Copy parameters from CbmRichRingLight to CbmRichRing.
Implementation of a ring fitting algorithm with equation of a circle. Algorithm from F77 subroutine o...
Double_t fZTrackExtrapolation
virtual void DoFit(CbmRichRingLight *ring)=0
Abstract method DoFit. To be implemented in the concrete class. Perform a fit to the hits attached to...
virtual InitStatus Init()
Inherited from FairTask.
Here the ring is fitted with the COP algorithm from A. Ayriyan/G. Ososkov.
Main class for ring finder based on Hough Transform implementation.
This is the implementation of ellipse fitting using MINUIT.
Ring-Track Assignment according to the closest distance criterion.
Main class for ring finder based on Hough Transform implementation.
Here the ring is fitted with the RobustCOP algorithm from A. Ayriyan/G. Ososkov.
Convert internal data classes to cbmroot common data classes.
virtual void Exec(Option_t *opt)
Inherited from FairTask.
string fExtrapolationName
Main class for running event reconstruction in the RICH detector.
Implementation of a ring fitting algorithm with equation of a circle. Algorithm from F77 subroutine o...
ClassImp(CbmConverterManager) InitStatus CbmConverterManager
Here the ring is fitted with the COP algorithm from A. Ayriyan/G. Ososkov.
Project track by straight line from imaginary plane to the mirror and reflect it to the photodetector...
virtual void DoAssign(TClonesArray *rings, TClonesArray *richProj)=0
static void Init()
Initialize array of RICH hits.
This is the implementation of ellipse fitting using MINUIT.
Ring-Track Assignment according to the closest distance criterion.
virtual void Init()
Initialization in case one needs to initialize some TCloneArrays.
Ideal ring finder in the RICH detector. It uses MC information to attach RICH hits to rings.
TClonesArray * fRichRings
static void CopyHitsToRingLight(const CbmRichRing *ring1, CbmRichRingLight *ring2)
Copy hits from CbmRichRing to CbmRichRingLight.
Here the ring is fitted with the RobustCOP algorithm from A. Ayriyan/G. Ososkov.
Project track by straight line from imaginary plane to the mirror and reflect it to the photodetector...
CbmRichTrackExtrapolationBase * fTrackExtrapolation
TClonesArray * fRichTrackParamZ
Here the ring is fitted with the TAU algorithm from A. Ayriyan/ G. Ososkov.
TClonesArray * fGlobalTracks
Here the ring is fitted with the TAU algorithm from A. Ayriyan/ G. Ososkov.
CbmRichRingFinder * fRingFinder