#include "hmdcselftracking.h"

HMdcSelfTracking


class description - source file - inheritance tree (.pdf)

class HMdcSelfTracking : public HReconstructor

Inheritance Chart:
TObject
<-
TNamed
<-
HTask
<-
HReconstructor
<-
HMdcSelfTracking

    protected:
void checkAdjacentCellAnalysisLayer1(Int_t, Int_t) void checkAdjacentCellAnalysisLayer2(Int_t, Int_t) void checkCorrSector(Int_t, Int_t) void createHist() void executeCorrSector() void executeEventHeaderCheck() void executeMdc() void executeReset() void executeStart() void fillAnalysisHists(Int_t) void fillControlHists() void fillHist() void findCorrelatedHits(Int_t) void resetCounters() void setDefault() void writeHist() public:
HMdcSelfTracking() HMdcSelfTracking(Text_t* name, Text_t* title) ~HMdcSelfTracking() static TClass* Class() void clearCutbridges() virtual Int_t execute() virtual Bool_t finalize() UInt_t getAnalysisCellCutMax() UInt_t getAnalysisCellCutMin() Float_t getCorrelationFctA(Int_t i) Float_t getCorrelationFctB(Int_t i) Float_t getCorrelationFctC(Int_t i) Float_t getCorrelationWmax(Int_t i) Float_t getCorrelationWmin(Int_t i) Bool_t getCutbridge(UInt_t index) Int_t getMonitorCell() Int_t getMonitorLayer() Float_t getStartTimeCutMax(UInt_t) Float_t getStartTimeCutMin(UInt_t) Float_t getTimeAboveThresholdCutMax(Int_t i) Float_t getTimeAboveThresholdCutMin(Int_t i) Float_t getTimeCutMax() Float_t getTimeCutMin() Float_t getTimeDiffL3L4Cut() Float_t getTimeDiffMax() virtual Bool_t init() virtual TClass* IsA() const void printAnalysisCellCutWindow() void printCorrelationFct() void printCorrelationWindow() void printCutbridge() void printStartTimeCutWindow() void printTimeAboveThresholdCutWindow() void printTimeCutWindow() void printTimeDiffL3L4Cut() void setActiveModule(Int_t sec, Int_t mod) void setAnalysisCellCutMax(UInt_t f) void setAnalysisCellCutMin(UInt_t f) void setAnalysisCellCutWindow(UInt_t a, UInt_t b) void setCorrelationFct(Int_t i, Float_t a, Float_t b, Float_t c) void setCorrelationFctA(Int_t i, Float_t f) void setCorrelationFctB(Int_t i, Float_t f) void setCorrelationFctC(Int_t i, Float_t f) void setCorrelationWindow(Int_t i, Float_t a, Float_t b) void setCorrelationWmax(Int_t i, Float_t f) void setCorrelationWmin(Int_t i, Float_t f) Bool_t setCutbridge(UInt_t, Bool_t) void setMonitor(UInt_t layer, UInt_t cellNumber) void setMonitorCell(UInt_t cell) void setMonitorLayer(UInt_t layer) void setNoCheckCorrSector() void setNoCorrSector() void setNoStart() void setOutputRoot(Char_t*) Bool_t setStartTimeCutMax(UInt_t, Float_t) Bool_t setStartTimeCutMin(UInt_t, Float_t) Bool_t setStartTimeCutWindow(UInt_t, Float_t, Float_t) void setTimeAboveThresholdCutMax(Int_t i, Float_t f) void setTimeAboveThresholdCutMin(Int_t i, Float_t f) void setTimeAboveThresholdCutWindow(Int_t i, Float_t a, Float_t b) void setTimeCutMax(Float_t f) void setTimeCutMin(Float_t f) void setTimeCutWindow(Float_t min, Float_t max) void setTimeDiffL3L4Cut(Float_t f) void setTimeDiffMax(Float_t time) virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b)

Data Members


    protected:
Int_t setLeft[4] define conditions for LEFT/RIGHT correlations for different planes (I,II,III,IV) Int_t setRight[4] same Float_t A[4] Float_t B[4] Float_t C[4] Correlation fct parameters Float_t CorrWindow[4][3] Residual cut Float_t tdifmin[5] lower limit for cut in time-above-threshold (time1-time2) Float_t tdifmax[5] upper limit for cut in time-above-threshold (time1-time2) Float_t tdifcut cut for time1(layer3)-time1(layer4) Float_t tmin lower limit for cut in time Float_t tmax upper limit for cut in time Int_t cellmin lower limit for the cells to be used in a further analysis Int_t cellmax upper limit for the cells to be used in a further analysis Float_t startmin[9] array of lower limits of start time window over all start detector strips Float_t startmax[9] array of upper limits of start time window over all start detector strips Bool_t cutbridge[20] array of cut bridges to switch of cuts Bool_t cut[20] internal Int_t monitorCell cell number which is taken into account for further analysis Int_t monitorLayer cell layer which is taken into account for further analysis Float_t hitTime1[7][200] array containing time 1 per layer which fulfill the cut conditions Float_t hitTime2[7][200] array containing time 2 per layer which fulfill the cut conditions Float_t time1 Float_t time2 Float_t timesum Float_t timediff Float_t timeDiffMax Int_t setmodule Int_t setsector variables for setActiveModule(sec,mod) start counting from 1 Bool_t noStart flag if starttime should not be used Bool_t noCorrSector flag if CorrSector 3dim histogram should not be filled Bool_t noCheckCorrSector flag if CorrSector is not checked Int_t module Int_t sector Int_t cell Int_t layer Int_t hitCells[7][200] array containing the cellnumbers per layer which fulfill the cut conditions Int_t nhit[7] hits per layer Int_t cell0[5][200] hits in 0-deg-layers, all chambers of a given sector Int_t ncell0[5] Bool_t relevant_data Boolean flag to indicate that data arrays had been filled, triggers correlation analysis Bool_t flag[4] Boolean array to trigger on flags (NEIGHBOURS = 0, LEFT_CELL_HIT = 1, RIGHT_CELL_HIT = 2, RESIDUAL_CUT = 3) Int_t alreadyUsedCellFlag_AnalysisLayer1[200] Int_t alreadyUsedCellFlag_AnalysisLayer2[200] Int_t lhit[3] Int_t analysisLayer1 Int_t analysisLayer2 Int_t cntHitslayer1 Int_t cntHitslayer2 Int_t cntHitsWithoutNeighbours Int_t cntHitsAnalysislayer2 Int_t cntDoubleHitsAnalysislayer2 Int_t eventCounter Float_t counter[3][160] Double_t ctrl[11] Int_t start_strip Int_t nstartstrip Float_t start_time HCategory* calCatMdc pointer to the MDC-CAL1 data HCategory* calCatStart pointer to the START-CAL1 data HIterator* iterMdc iterator on MDC raw data HIterator* iterStart iterator on START raw data HEventHeader* evheader Hades event header Char_t* fNameRoot file name of root output file TH1F* pinfo scaler info TH1D* player[7] hit pattern layer 1-6 TH1D* pNhitlayer[7] hits per layer 1-6 TH1D* player0[3] selftracking: hit pattern +/-0deg layers TH1F* peff efficiency layer 4 relative to layer 3 TH1D* pTime_cut[7] drift time spectra for different cut levels TH2S* pTime0_cell[7] cell# vs. drifttime per layer without cuts TH2S* pTime0_diff time above threshold vs. drifttime TH2S* pTime_cell[7] cell# vs. drifttime after cuts TH1D* pTime_diff[2] time above threshold, w/[0]. w/o[1] threshold TH2S* pTime0diff_cell[3] cell# vs. time above threshold (0deg layers) TH2S* pTimesum_adj_cell3 cell# vs. time sum of adjacent cells, layer 3 TH2S* pTimesum_adj_cell4 cell# vs. time sum of adj. cells, layer 4, cut on time diff TH2S* pTimesum_cell[3] selftracking: cell# vs. time sum of correl. cells TH2S* pFish[3][120] selftracking: time diff vs. sum of correl. cells TH2S* pTsum_ev[3][120] selftracking: time sum vs. event# TProfile* pTsum_ev_prof[3][120] selftracking: time sum vs. event#, profile TH2S* pStart_time_strip start detector: strip# vs. time TH1F* pStart_time[9] start detector: time, incl. cut1 and strip-mult=1 TH1F* pStart_mult start detector:strip multiplicity TH3F* pCorrSector Correlations in a given sector TH1F* pCorrDiff[2][4] residuals from correlation in one sector TFile* fout output file pointer public:
static const HMdcSelfTracking::selftrackingCut NO_CUT static const HMdcSelfTracking::selftrackingCut TOF_BIT_CUT static const HMdcSelfTracking::selftrackingCut START_CUT static const HMdcSelfTracking::selftrackingCut TIME1_CUT static const HMdcSelfTracking::selftrackingCut TIME2_CUT static const HMdcSelfTracking::selftrackingCut TIME_ABOVE_THRESHOLD_CUT static const HMdcSelfTracking::selftrackingCut MISC_6 static const HMdcSelfTracking::selftrackingCut MISC_7 static const HMdcSelfTracking::selftrackingCut MISC_8 static const HMdcSelfTracking::selftrackingCut MISC_9 static const HMdcSelfTracking::selftrackingCut MISC_10 static const HMdcSelfTracking::selftrackingCut MISC_11 static const HMdcSelfTracking::selftrackingCut MISC_12 static const HMdcSelfTracking::selftrackingCut MISC_13 static const HMdcSelfTracking::selftrackingCut MISC_14 static const HMdcSelfTracking::selftrackingCut MISC_15 static const HMdcSelfTracking::selftrackingCut MISC_16 static const HMdcSelfTracking::selftrackingCut MISC_17 static const HMdcSelfTracking::selftrackingCut MISC_18 static const HMdcSelfTracking::selftrackingCut MISC_19 static const HMdcSelfTracking::selftrackingCut MISC_20 static const HMdcSelfTracking::flags NEIGHBOURS static const HMdcSelfTracking::flags LEFT_CELL_HIT static const HMdcSelfTracking::flags RIGHT_CELL_HIT static const HMdcSelfTracking::flags ANALYSISLAYER2_HITS static const HMdcSelfTracking::flags ANALYSISLAYER2_DOUBLE_HITS static const HMdcSelfTracking::flags RESIDUAL_CUT static const HMdcSelfTracking::selftrackingStartStrip START_STRIP_1 static const HMdcSelfTracking::selftrackingStartStrip START_STRIP_2 static const HMdcSelfTracking::selftrackingStartStrip START_STRIP_3 static const HMdcSelfTracking::selftrackingStartStrip START_STRIP_4 static const HMdcSelfTracking::selftrackingStartStrip START_STRIP_5 static const HMdcSelfTracking::selftrackingStartStrip START_STRIP_6 static const HMdcSelfTracking::selftrackingStartStrip START_STRIP_7 static const HMdcSelfTracking::selftrackingStartStrip START_STRIP_8 static const HMdcSelfTracking::rightleft LEFT static const HMdcSelfTracking::rightleft RIGHT

Class Description


 HMdcSelfTracking

 
purpose: analyse CAL1 data of individual chambers, focussing on 0deg-layer's self correlation and fluctuations (as fct of event number). input: hades listmode files (*.hld) needed: calibration parameters (gain, offset)


HMdcSelfTracking(void)
 Default Constructor

HMdcSelfTracking(Text_t* name,Text_t* title) : HReconstructor(name,title)

~HMdcSelfTracking(void)
 Destructor.

void setDefault()
 Sets default values (especially for the cuts) for the parameters

void setOutputRoot(Char_t *c)
 Sets rootfile output of HMdcSelfTracking where all
 created histograms were written.

Bool_t setCutbridge(UInt_t index, Bool_t b)
 
Disables (bridges) the following cuts index cut details
 1: TOF_BIT_CUT Tof-Bit set in Event Header?
 2: START_CUT Start multiplicity = 1 and start times of the strips in the given ranges?
 3: TIME1_CUT Time1 in the given range?
 4: TIME2_CUT Time2 in the given range?
 5: TIME_ABOVE_THRESHOLD_CUT Time above threshold in the give range?
 6-19: not used

Bool_t getCutbridge(UInt_t index)
 
Returns the status of the cut bridge index,
 description see HMdcSelfTracking::setCutbridge

void printCutbridge(void)
 
Prints out a table of all available cut bridges and their status to the standard output

Bool_t setStartTimeCutWindow(UInt_t index, Float_t min, Float_t max)
 
sets the start time cut window for strip no. index from min to max (in ns) if index is out of bounds kFALSE will be the default value

Bool_t setStartTimeCutMax(UInt_t index, Float_t max)

Bool_t setStartTimeCutMin(UInt_t index, Float_t min)
 
sets the lower limit (in ns) of the start time cut window for strip no. index if index is out of bounds kFALSE will be the default value

Float_t getStartTimeCutMax(UInt_t index)
 
returns the upper limit (in ns) of the start time cut window of Start Strip no index if index is out of bounds a default value of -999 is returned.

Float_t getStartTimeCutMin(UInt_t index)
 
returns the lower limit (in ns) of the start time cut window of Start Strip no index if index is out of bounds a default value of -999 is returned.

void printStartTimeCutWindow(void)
 
Prints out a table of all start time cut windows for all start detector strips to the standard output

void printCorrelationWindow(void)
 
Prints out residual cuts to the standard output

void printTimeCutWindow(void)
 
Prints out the time cut windows to the standard output

void printTimeAboveThresholdCutWindow(void)
 
Prints out the time above threshold cut windows to the standard output

void printCorrelationFct(void)
 
Prints out the correltation fct parameters (1=plane1 vs. plane2, 2=1 vs. 3, 3=2 vs. 3) to the standard output

void printAnalysisCellCutWindow(void)
 Prints out the range of the cells numbers which will be used in further analysis
 to the standard output

void printTimeDiffL3L4Cut()
 
Prints out the value for the difference between time1 in layer 3 and time1 in layer 4 to the standard output

Bool_t init(void)
  Initializes HMdcSelfTracking

void createHist()
 allocate histograms

void checkAdjacentCellAnalysisLayer1(Int_t ihit, Int_t ii)
 
Checks whether cell ihit and cell ii are adjacent cells in analysis layer 1 ( default= layer 3) and if this cell combination has not been used before
 fills the sum of their times to pTimesum_adj_cell3

void checkAdjacentCellAnalysisLayer2(Int_t ihit, Int_t ii)
 
Checks whether cell ihit and cell ii are adjacent cells in analysis layer 2 ( default= layer 4) and if this cell combination has not been used before
 fills the sum of their times  to pTimesum_adj_cell4
 but only if the time difference is smaller than a given value (default: 10 ns)

void findCorrelatedHits(Int_t ihit)
 
Compares all hit cells found in analysis layer 2 with cell ihit and looks if there are correlated cells in analysis layer 1 and 2 Then it determines whether the hit in analysis layer 2 was in the cell left or right beneath cell ihit in analysis layer 1

void fillHist()

void fillAnalysisHists(Int_t ihit)
 Fills histogramms after all neccessary conditions are checked.

void writeHist()
 Write histogramms to a rootfile.

Bool_t finalize()
 Fills control histogramms and saves all histogramms to file fout

void resetCounters()
 reset counters

void fillControlHists()
 fill some info histos

void executeEventHeaderCheck()
 Checks Event Header for TofBit

void executeStart()
 First checks start detector for single hits
 and secondly filters for certain time windows on the start detector times
 defined per default in HMdcSelfTracking:setDefaults() or
 changed by HMdcSelfTracking:setStartTimeCutWindow(strip,min,max)

void executeMdc()

void executeCorrSector()
 combinatorics:

void checkCorrSector(Int_t cell, Int_t module)

void executeReset()
 reset iterators

Int_t execute()
 loop inside event and fill pre-defined structures, apply cuts



Inline Functions


               void setActiveModule(Int_t sec, Int_t mod)
               void setNoStart()
               void setNoCorrSector()
               void setNoCheckCorrSector()
               void clearCutbridges()
               void setTimeCutWindow(Float_t min, Float_t max)
               void setTimeCutMax(Float_t f)
               void setTimeCutMin(Float_t f)
            Float_t getTimeCutMax()
            Float_t getTimeCutMin()
               void setTimeAboveThresholdCutWindow(Int_t i, Float_t a, Float_t b)
               void setTimeAboveThresholdCutMax(Int_t i, Float_t f)
               void setTimeAboveThresholdCutMin(Int_t i, Float_t f)
            Float_t getTimeAboveThresholdCutMax(Int_t i)
            Float_t getTimeAboveThresholdCutMin(Int_t i)
               void setCorrelationFct(Int_t i, Float_t a, Float_t b, Float_t c)
               void setCorrelationFctA(Int_t i, Float_t f)
               void setCorrelationFctB(Int_t i, Float_t f)
               void setCorrelationFctC(Int_t i, Float_t f)
            Float_t getCorrelationFctA(Int_t i)
            Float_t getCorrelationFctB(Int_t i)
            Float_t getCorrelationFctC(Int_t i)
               void setCorrelationWindow(Int_t i, Float_t a, Float_t b)
               void setCorrelationWmin(Int_t i, Float_t f)
               void setCorrelationWmax(Int_t i, Float_t f)
            Float_t getCorrelationWmin(Int_t i)
            Float_t getCorrelationWmax(Int_t i)
               void setAnalysisCellCutWindow(UInt_t a, UInt_t b)
               void setAnalysisCellCutMax(UInt_t f)
               void setAnalysisCellCutMin(UInt_t f)
             UInt_t getAnalysisCellCutMax()
             UInt_t getAnalysisCellCutMin()
               void setTimeDiffL3L4Cut(Float_t f)
            Float_t getTimeDiffL3L4Cut()
               void setMonitor(UInt_t layer, UInt_t cellNumber)
               void setMonitorCell(UInt_t cell)
              Int_t getMonitorCell()
               void setMonitorLayer(UInt_t layer)
              Int_t getMonitorLayer()
               void setTimeDiffMax(Float_t time)
            Float_t getTimeDiffMax()
            TClass* Class()
            TClass* IsA() const
               void ShowMembers(TMemberInspector& insp, char* parent)
               void Streamer(TBuffer& b)
               void StreamerNVirtual(TBuffer& b)


Last update: 02/01/01 by P.Zumbruch,J.Markert


ROOT page - Class index - Class Hierarchy - Top of the page

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.