Difference between revisions of "Documentation/HCANA"
From HallCWiki
Jump to navigationJump to search (New page: category:12GeV Software == Hall C HCANA C++ Analyzer software flow == *The following builds on description at https://hallaweb.jlab.org/podd/doc/standard-analyzer.html 1) Loops throu...) |
|||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | [[category:12GeV Software]] | ||
[[category:12GeV Software]] | [[category:12GeV Software]] | ||
== Hall C HCANA C++ Analyzer software flow == | == Hall C HCANA C++ Analyzer software flow == | ||
Line 17: | Line 18: | ||
which are needed by drift chambers. | which are needed by drift chambers. | ||
c) THcShower::Decode | c) THcShower::Decode | ||
− | 1) Gets raw data | + | 1) Gets raw data from hitlist |
− | 2) Loops through layers and calls fPlanes[ip]->ProcessHits(fRawHitList, nexthit) | + | 2) Loops through layers and calls fPlanes[ip]->ProcessHits(fRawHitList, nexthit) which fills the "raw" TClonesArrays. |
+ | 3) if SHMS array then ShowerArray->ProcessHits(fRawHitList, nexthit) which fills the "raw" TClonesArrays. | ||
2) Loops thru each spectrometer calling THaSpectrometer::CoarseReconstruct() which Loops through tracking detectors and calls its CoarseTrack | 2) Loops thru each spectrometer calling THaSpectrometer::CoarseReconstruct() which Loops through tracking detectors and calls its CoarseTrack | ||
a) THcDC::CoarseTrack find all tracks focal plane quantities | a) THcDC::CoarseTrack find all tracks focal plane quantities | ||
b) Then loops through non-tracking detectors to call their CoarseProcess | b) Then loops through non-tracking detectors to call their CoarseProcess | ||
− | 1) THcHodoscope | + | 1) THcHodoscope |
− | 2) THcShower fills THcShowerHit, THcShowerClusterList | + | a)Calculate the beta from scintillator timing use track information to determine distance |
+ | b)Calculates if scintillator fiducial area should have had a track for tracking efficiency | ||
+ | c) Set Track beta. | ||
+ | 2) THcShower | ||
+ | a) calls fPlanes[ip]->CoarseProcessHits() which fills the "good" arrays with cut on threshold and ADC time window. | ||
+ | b) if SHMS array then calls ShowerArray->CoarseProcessHits() which fills the "good" arrays | ||
+ | c) THcShowerHit, THcShowerClusterList | ||
+ | d) Match each track to cluster and sets Track energy. | ||
3) THcAerogel does nothing. | 3) THcAerogel does nothing. | ||
4) THcCerenkov fills higher level arrays like fADC_p | 4) THcCerenkov fills higher level arrays like fADC_p | ||
Line 32: | Line 41: | ||
a) each spectrometer calling THaSpectrometer::Track() | a) each spectrometer calling THaSpectrometer::Track() | ||
1) Loops through tracking detectors and calls its FineTrack which does nothing in THcDC | 1) Loops through tracking detectors and calls its FineTrack which does nothing in THcDC | ||
− | 2) Calls THcHallCSpectrometer::FindVertices calculates target quantities and fill track momentum | + | 2) Calls THcHallCSpectrometer::FindVertices |
+ | a) calculates target quantities and fill track momentum | ||
+ | b) selects the "best" track and sets the Index=0 for the best track. | ||
b) Loops thru nontracking detectors calling there FineProcess | b) Loops thru nontracking detectors calling there FineProcess | ||
− | 1) THcHodoscope | + | 1) THcHodoscope fills fBeta for scintillator beta that went with "best" track |
− | 2) THcShower matches cluster and track | + | 2) THcShower matches cluster and "best" track and fills |
3) THcCerenkov does test to match track to region of Cherenkov | 3) THcCerenkov does test to match track to region of Cherenkov | ||
4) THcAerogel does nothing | 4) THcAerogel does nothing | ||
− | c) Calls THcHallCSpectrometer::TrackCalc() fills the golden track | + | c) Calls THcHallCSpectrometer::TrackCalc() fills the golden track with the "best" track |
d) Calls CalcPID which is suppose to combine PID info using THaPIDinfo class. | d) Calls CalcPID which is suppose to combine PID info using THaPIDinfo class. | ||
4) Loops through PhysicsModules | 4) Loops through PhysicsModules |
Latest revision as of 09:56, 29 March 2017
Hall C HCANA C++ Analyzer software flow
- The following builds on description at https://hallaweb.jlab.org/podd/doc/standard-analyzer.html
1) Loops through each apparatus calling Decode method for each detector
a) THcDC::Decode 1) Gets raw data form hitlist 2) Loops thru chambers and calls fChambers[ic]->ProcessHits which fills THcDCHIT b) THcHodoscope::Decode 1) Gets raw data form hitlist 2) Loops through each plane a) fPlanes[ip]->ProcessHits(fRawHitList,nexthit) b) all hits in plane fPlanes[ip]->PulseHeightCorrection() loops over fPlanes[ip]->GetNScinGoodHits to set fStartTime and fNfptimes++ which are needed by drift chambers. c) THcShower::Decode 1) Gets raw data from hitlist 2) Loops through layers and calls fPlanes[ip]->ProcessHits(fRawHitList, nexthit) which fills the "raw" TClonesArrays. 3) if SHMS array then ShowerArray->ProcessHits(fRawHitList, nexthit) which fills the "raw" TClonesArrays.
2) Loops thru each spectrometer calling THaSpectrometer::CoarseReconstruct() which Loops through tracking detectors and calls its CoarseTrack
a) THcDC::CoarseTrack find all tracks focal plane quantities b) Then loops through non-tracking detectors to call their CoarseProcess 1) THcHodoscope a)Calculate the beta from scintillator timing use track information to determine distance b)Calculates if scintillator fiducial area should have had a track for tracking efficiency c) Set Track beta. 2) THcShower a) calls fPlanes[ip]->CoarseProcessHits() which fills the "good" arrays with cut on threshold and ADC time window. b) if SHMS array then calls ShowerArray->CoarseProcessHits() which fills the "good" arrays c) THcShowerHit, THcShowerClusterList d) Match each track to cluster and sets Track energy. 3) THcAerogel does nothing. 4) THcCerenkov fills higher level arrays like fADC_p
3) Loops through each spectrometer calling THaSpectrometer::Reconstruct()
a) each spectrometer calling THaSpectrometer::Track() 1) Loops through tracking detectors and calls its FineTrack which does nothing in THcDC 2) Calls THcHallCSpectrometer::FindVertices a) calculates target quantities and fill track momentum b) selects the "best" track and sets the Index=0 for the best track. b) Loops thru nontracking detectors calling there FineProcess 1) THcHodoscope fills fBeta for scintillator beta that went with "best" track 2) THcShower matches cluster and "best" track and fills 3) THcCerenkov does test to match track to region of Cherenkov 4) THcAerogel does nothing c) Calls THcHallCSpectrometer::TrackCalc() fills the golden track with the "best" track d) Calls CalcPID which is suppose to combine PID info using THaPIDinfo class.
4) Loops through PhysicsModules