Difference between revisions of "CTOF Delta T"

From GlueXWiki
Jump to: navigation, search
(Delta T of CTOF hits)
(Delta T of CTOF hits)
Line 39: Line 39:
 
     }
 
     }
 
   }
 
   }
 +
 +
And the resulting histograms for the time differences between bottom and top for each paddle and separately for ADC and TDC times will then look like this:
 +
 +
[[File:COTFpaddleDeltaT.gif]]

Revision as of 09:34, 7 December 2022

Delta T of CTOF hits

In this section we look at the time difference of hits in the same paddle between the top and the bottom PMT. Two sources of timing information are used, the time from the ADC itself and the time from the TDC. The DANA objects used here are DCTOFHit objects with the container class having the following structure:

int bar; ///< bar number
int end; ///< top=0,bottom=1;
float dE; ///< attenuated energy deposition in GeV
double t; ///< time in ns
double t_adc;///< time in ns from FADC

Note that the factory that fills this structure already applies timing corrections like offsets to the timing data t and t_adc. We select data that have a CTOF trigger only meaning no other trigger bits are set. To provide an understanding as to how often it happens that in addition to the CTOF trigger another trigger bit is set either on the front pannel (LED trigger, random) or in the GTP (physics trigger, PS trigger) the following plot can be studied:

Ctof triggers.gif

It is very rare that in when a CTOF trigger is generated that some other trigger bit is also set.

Next we use the DCOTFHit objects to form time differences between bottom and top PMT hits for each paddle. The code for this looks something like this:

 vector <const DCTOFHit*> CTOFHits;
 loop->Get(CTOFHits);
 if (CTOFHits.size()<2){
   return NOERROR;
 }
 for (unsigned int k=0; k<CTOFHits.size()-1 ; k++) {
   const DCTOFHit *hit1 = CTOFHits[k];
   for (unsigned int j=k; j<CTOFHits.size() ; j++) {
     const DCTOFHit *hit2 = CTOFHits[j];
     if ( (hit1->bar == hit2->bar) && 
          (hit1->end != hit2->end) ){
       double dt_tdc = hit1->t - hit2->t;
       double dt_adc = hit1->t_adc - hit2->t_adc;
       if (hit2->end) {
         dt_tdc *= -1.;
         dt_adc *= -1.;
       }
       paddledTDC[hit1->bar-1]->Fill(dt_tdc);
       paddledADC[hit1->bar-1]->Fill(dt_adc);     
     }   
   }
 }

And the resulting histograms for the time differences between bottom and top for each paddle and separately for ADC and TDC times will then look like this:

COTFpaddleDeltaT.gif