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 form hitlist
+
     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 does nothing.  
+
               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 calculate the beta use track information
+
           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

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