Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

AlignmentStripHistograms Class Reference

#include <AlignmentStripHistograms.h>

List of all members.

Public Member Functions

 AlignmentStripHistograms (TDirectory *ResidualDir, TDirectory *ChargeDir, TDirectory *AttenDir, TDirectory *OccupancyDir, TDirectory *RotResDir, const AlignmentStrip &astrip)
virtual ~AlignmentStripHistograms ()
void FillHistograms (const AlignmentStrip &astrip)
TH1D * GetChargeHistogram () const
TH1D * GetChargePathCorrHistogram () const
TH1D * GetResidualHistogram () const
TH1D * GetOccupancyHistogram () const
TProfile * GetAttenHistogram () const
TProfile * GetAttenPigCorrHistogram () const
TProfile * GetRotationalHistogram () const

Private Member Functions

TH1D * InitChargeHistogram (TDirectory *dir)
TH1D * InitPathCorrChargeHistogram (TDirectory *dir)
TH1D * InitResidualHistogram (TDirectory *dir)
TH1D * InitOccupancyHistogram (TDirectory *dir)
TProfile * InitAttenHistogram (TDirectory *dir)
TProfile * InitRotResidualHistogram (TDirectory *dir)
TProfile * InitPigtailAttenHistogram (TDirectory *dir)

Private Attributes

const int fPlane
const int fStrip
const UInt_t fPlexSEId
const double fLength
const double fPigTail
TH1D * fhCharge
TH1D * fhChargePathCorr
TH1D * fhResidual
TH1D * fhOccupancy
TProfile * fpAtten
TProfile * fpAttenPigCorr
TProfile * fpRotationalResidual
const Int_t fNChargeBins
const Int_t fNResidualBins
const Double_t fChargeLimit
const Double_t fResidualLimit
const Double_t fOccupancyBinWidth
const Double_t fAttenuationBinWidth
const Double_t fRotationalResidualBinWidth


Constructor & Destructor Documentation

AlignmentStripHistograms::AlignmentStripHistograms TDirectory *  ResidualDir,
TDirectory *  ChargeDir,
TDirectory *  AttenDir,
TDirectory *  OccupancyDir,
TDirectory *  RotResDir,
const AlignmentStrip astrip
 

Definition at line 40 of file AlignmentStripHistograms.cxx.

References fhCharge, fhChargePathCorr, fhOccupancy, fhResidual, fpAtten, fpAttenPigCorr, fpRotationalResidual, InitAttenHistogram(), InitChargeHistogram(), InitOccupancyHistogram(), InitPathCorrChargeHistogram(), InitPigtailAttenHistogram(), InitResidualHistogram(), InitRotResidualHistogram(), and MSG.

00046    :fPlane(astrip.plane),
00047     fStrip(astrip.strip),
00048     fPlexSEId(astrip.plexseid),
00049     fLength(astrip.length),
00050     fPigTail(astrip.pigtail),
00051     fhCharge(0),
00052     fhChargePathCorr(0), 
00053     fhResidual(0), 
00054     fhOccupancy(0),
00055     fpAtten(0),
00056     fpAttenPigCorr(0),
00057     fpRotationalResidual(0),
00058     fNChargeBins(200),
00059     fNResidualBins(60),
00060     fChargeLimit(5000.0),
00061     fResidualLimit(0.12),
00062     fOccupancyBinWidth(0.04),
00063     fAttenuationBinWidth(0.4),
00064     fRotationalResidualBinWidth(0.5)
00065 {
00066 
00067    MSG("Align", Msg::kVerbose) << "Constructor AlignmentStripHistograms() " << endl;
00068 
00069    if(!ResidualDir || !ChargeDir || !AttenDir || !OccupancyDir || !RotResDir)
00070    {
00071       MSG("Align", Msg::kFatal) << "AlignmentStripHistograms ctor: TDirectory pointer is zero." << endl;
00072       abort();
00073    }
00074 
00075    fhCharge             = InitChargeHistogram(ChargeDir);
00076    fhChargePathCorr     = InitPathCorrChargeHistogram(ChargeDir);
00077    fhResidual           = InitResidualHistogram(ResidualDir);
00078    fhOccupancy          = InitOccupancyHistogram(OccupancyDir);
00079    fpAtten              = InitAttenHistogram(AttenDir);
00080    fpAttenPigCorr       = InitPigtailAttenHistogram(AttenDir);
00081    fpRotationalResidual = InitRotResidualHistogram(RotResDir);
00082 }

AlignmentStripHistograms::~AlignmentStripHistograms  )  [virtual]
 

Definition at line 221 of file AlignmentStripHistograms.cxx.

References MSG.

00222 {
00223    MSG("Align", Msg::kVerbose) << "Destructor ~AlignmentStripHistograms()..." << endl;
00224 }


Member Function Documentation

void AlignmentStripHistograms::FillHistograms const AlignmentStrip astrip  ) 
 

Definition at line 86 of file AlignmentStripHistograms.cxx.

References AlignmentStrip::charge, AlignmentStrip::charge_pc, fhCharge, fhChargePathCorr, fhOccupancy, fhResidual, fpAtten, fpAttenPigCorr, fpRotationalResidual, AlignmentStrip::goodhit, AlignmentStrip::length, AlignmentStrip::lhitpos, AlignmentStrip::lposrelmdl, AlignmentStrip::pigtail, AlignmentStrip::residual, and AlignmentStrip::wlsbypass.

Referenced by AlignmentAlgorithm::Fill().

00087 {
00088    fhCharge         -> Fill(astrip.charge);
00089    fhChargePathCorr -> Fill(astrip.charge_pc);
00090    fhResidual       -> Fill(astrip.residual);
00091    fhOccupancy      -> Fill(astrip.lhitpos);
00092    
00093    if(!astrip.goodhit)
00094       return;
00095    
00096    fpRotationalResidual -> Fill(astrip.lhitpos+astrip.lposrelmdl, astrip.residual);
00097 
00098    if(astrip.wlsbypass > 0.001)
00099       return;
00100 
00101    fpAtten        -> Fill(fabs(astrip.lhitpos - astrip.length/2.0), astrip.charge_pc);
00102    fpAttenPigCorr -> Fill(astrip.pigtail + fabs(astrip.lhitpos - astrip.length/2.0), astrip.charge_pc);  
00103 }

TProfile* AlignmentStripHistograms::GetAttenHistogram  )  const [inline]
 

Definition at line 51 of file AlignmentStripHistograms.h.

00051 {return fpAtten;};

TProfile* AlignmentStripHistograms::GetAttenPigCorrHistogram  )  const [inline]
 

Definition at line 52 of file AlignmentStripHistograms.h.

00052 {return fpAttenPigCorr;};

TH1D* AlignmentStripHistograms::GetChargeHistogram  )  const [inline]
 

Definition at line 46 of file AlignmentStripHistograms.h.

Referenced by AlignmentAlgorithm::AnalyzeStripData().

00046 {return fhCharge;};

TH1D* AlignmentStripHistograms::GetChargePathCorrHistogram  )  const [inline]
 

Definition at line 47 of file AlignmentStripHistograms.h.

Referenced by AlignmentAlgorithm::AnalyzeStripData().

00047 {return fhChargePathCorr;};

TH1D* AlignmentStripHistograms::GetOccupancyHistogram  )  const [inline]
 

Definition at line 49 of file AlignmentStripHistograms.h.

00049 {return fhOccupancy;};

TH1D* AlignmentStripHistograms::GetResidualHistogram  )  const [inline]
 

Definition at line 48 of file AlignmentStripHistograms.h.

Referenced by AlignmentAlgorithm::AnalyzeStripData().

00048 {return fhResidual;};

TProfile* AlignmentStripHistograms::GetRotationalHistogram  )  const [inline]
 

Definition at line 53 of file AlignmentStripHistograms.h.

Referenced by AlignmentAlgorithm::AnalyzeStripData().

00053 {return fpRotationalResidual;};

TProfile * AlignmentStripHistograms::InitAttenHistogram TDirectory *  dir  )  [private]
 

Definition at line 162 of file AlignmentStripHistograms.cxx.

References fAttenuationBinWidth, fLength, fPlane, fStrip, and MSG.

Referenced by AlignmentStripHistograms().

00163 {       
00164    char name[100], title[100];
00165    int nbin = int(fLength/fAttenuationBinWidth);
00166    sprintf(name,"ProfileStripAtten%03d_%03d", fPlane, fStrip);
00167    sprintf(title,"Strip attenuation plane %03d and strip %03d", fPlane, fStrip);
00168    MSG("Align", Msg::kVerbose) << "Creating " << name << " histogram with "<< nbin << " bins"<<endl;
00169    TProfile *p = new TProfile(name, title, nbin, 0.0, fLength);
00170    p -> SetDirectory(dir);
00171    p -> GetXaxis() -> SetTitle("wls fiber length (m)");
00172    p -> GetXaxis() -> CenterTitle();
00173    p -> GetYaxis() -> SetTitle("charge (ADC)");
00174    p -> GetYaxis() -> CenterTitle();
00175    return p;
00176 }   

TH1D * AlignmentStripHistograms::InitChargeHistogram TDirectory *  dir  )  [private]
 

Definition at line 106 of file AlignmentStripHistograms.cxx.

References fChargeLimit, fNChargeBins, fPlane, fStrip, and MSG.

Referenced by AlignmentStripHistograms().

00107 {
00108    char name[100], title[100];
00109    sprintf(name,"ChargeInPlane%03dStrip%03d", fPlane, fStrip);
00110    sprintf(title,"Charge plane %03d, strip %03d", fPlane, fStrip);
00111    MSG("Align", Msg::kVerbose) << "Creating histogram " << name << endl;
00112    TH1D *h = new TH1D(name, title, fNChargeBins, 0, fChargeLimit);
00113    h -> SetDirectory(dir);
00114    h -> GetXaxis() -> SetTitle("Raw ADC");
00115    h -> GetXaxis() -> CenterTitle();      
00116    return h;
00117 }

TH1D * AlignmentStripHistograms::InitOccupancyHistogram TDirectory *  dir  )  [private]
 

Definition at line 148 of file AlignmentStripHistograms.cxx.

References fAttenuationBinWidth, fLength, fPlane, and fStrip.

Referenced by AlignmentStripHistograms().

00149 {
00150    int nbin = int(fLength/fAttenuationBinWidth);
00151    char name[100], title[100];
00152    sprintf(name,"OccupancyInPlane%03dStrip%03d", fPlane, fStrip);
00153    sprintf(title,"Longitudinal occupancy, plane %03d, strip %03d", fPlane, fStrip);
00154    TH1D *h = new TH1D(name, title, nbin, -fLength/2.0, fLength/2.0);
00155    h -> SetDirectory(dir);
00156    h -> GetXaxis() -> SetTitle("residual (m)");
00157    h -> GetXaxis() -> CenterTitle();
00158    return h;
00159 }

TH1D * AlignmentStripHistograms::InitPathCorrChargeHistogram TDirectory *  dir  )  [private]
 

Definition at line 120 of file AlignmentStripHistograms.cxx.

References fChargeLimit, fNChargeBins, fPlane, fStrip, and MSG.

Referenced by AlignmentStripHistograms().

00121 {
00122    char name[100], title[100];
00123    sprintf(name,"PathCorrChargeInPlane%03dStrip%03d", fPlane, fStrip);
00124    sprintf(title,"Path corrected charge plane %03d, strip %03d", fPlane, fStrip);
00125    MSG("Align", Msg::kVerbose) << "Creating histogram " << name << endl;
00126    TH1D *h = new TH1D(name, title, fNChargeBins, 0, fChargeLimit);
00127    h -> SetDirectory(dir);
00128    h -> GetXaxis() -> SetTitle("Raw ADC");
00129    h -> GetXaxis() -> CenterTitle();      
00130    return h;
00131 }

TProfile * AlignmentStripHistograms::InitPigtailAttenHistogram TDirectory *  dir  )  [private]
 

Definition at line 179 of file AlignmentStripHistograms.cxx.

References fAttenuationBinWidth, fLength, fPlane, fStrip, and MSG.

Referenced by AlignmentStripHistograms().

00180 {       
00181    char name[100], title[100];
00182    const int nbin = int(floor(fLength/fAttenuationBinWidth));
00183    sprintf(name,"ProfileStripPigAtten%03d_%03d", fPlane, fStrip);
00184    sprintf(title,"Strip attenuation plane %03d and strip %03d", fPlane, fStrip);
00185    MSG("Align", Msg::kVerbose) << "Creating " << name << " histogram with "<< nbin << " bins"<<endl;
00186    Double_t bins[10];
00187    bins[0] = 0.0;
00188    bins[1] = fPigTail;
00189    for(int i = 1; i <= 8; ++i)
00190    {
00191       double bin = i;
00192       bins[i+1] = bin*fAttenuationBinWidth + fPigTail;
00193    }
00194    TProfile *p = new TProfile(name, title, 9, bins);
00195    p -> SetDirectory(dir);
00196    p -> GetXaxis() -> SetTitle("wls fiber length (m)");
00197    p -> GetXaxis() -> CenterTitle();
00198    p -> GetYaxis() -> SetTitle("charge (ADC)");
00199    p -> GetYaxis() -> CenterTitle();
00200    return p;
00201 }   

TH1D * AlignmentStripHistograms::InitResidualHistogram TDirectory *  dir  )  [private]
 

Definition at line 134 of file AlignmentStripHistograms.cxx.

References fNResidualBins, fPlane, fResidualLimit, and fStrip.

Referenced by AlignmentStripHistograms().

00135 {
00136    char name[100], title[100];
00137    sprintf(name,"ResidualInPlane%03dStrip%03d", fPlane, fStrip);
00138    sprintf(title,"Residual in hit strip, plane %03d, strip %03d", fPlane, fStrip);
00139    TH1D *h = new TH1D(name, title, 2*fNResidualBins, -fResidualLimit, fResidualLimit);
00140    h -> SetDirectory(dir);
00141    h -> GetXaxis() -> SetTitle("residual (m)");
00142    h -> GetXaxis() -> CenterTitle();
00143    return h;
00144 }

TProfile * AlignmentStripHistograms::InitRotResidualHistogram TDirectory *  dir  )  [private]
 

Definition at line 204 of file AlignmentStripHistograms.cxx.

References fLength, fPlane, fRotationalResidualBinWidth, and fStrip.

Referenced by AlignmentStripHistograms().

00205 {
00206    char name[100], title[100];   
00207    sprintf(name,"RotResidualInPlane%03dStrip%03d", fPlane, fStrip);
00208    sprintf(title,"Profile rotational residuals plane %03d strip %03d", fPlane, fStrip);
00209    unsigned int nbin = int(floor(fLength/fRotationalResidualBinWidth));
00210    TProfile *p = new TProfile(name, title, nbin, -fLength/2.0, fLength/2.0);
00211    p -> SetDirectory(dir);
00212    p -> GetXaxis() -> SetTitle("position (m)");
00213    p -> GetXaxis() -> CenterTitle();
00214    p -> GetYaxis() -> SetTitle("residual (m)");
00215    p -> GetYaxis() -> CenterTitle();   
00216    return p;
00217 }


Member Data Documentation

const Double_t AlignmentStripHistograms::fAttenuationBinWidth [private]
 

Definition at line 94 of file AlignmentStripHistograms.h.

Referenced by InitAttenHistogram(), InitOccupancyHistogram(), and InitPigtailAttenHistogram().

const Double_t AlignmentStripHistograms::fChargeLimit [private]
 

Definition at line 91 of file AlignmentStripHistograms.h.

Referenced by InitChargeHistogram(), and InitPathCorrChargeHistogram().

TH1D* AlignmentStripHistograms::fhCharge [private]
 

Definition at line 78 of file AlignmentStripHistograms.h.

Referenced by AlignmentStripHistograms(), and FillHistograms().

TH1D* AlignmentStripHistograms::fhChargePathCorr [private]
 

Definition at line 79 of file AlignmentStripHistograms.h.

Referenced by AlignmentStripHistograms(), and FillHistograms().

TH1D* AlignmentStripHistograms::fhOccupancy [private]
 

Definition at line 81 of file AlignmentStripHistograms.h.

Referenced by AlignmentStripHistograms(), and FillHistograms().

TH1D* AlignmentStripHistograms::fhResidual [private]
 

Definition at line 80 of file AlignmentStripHistograms.h.

Referenced by AlignmentStripHistograms(), and FillHistograms().

const double AlignmentStripHistograms::fLength [private]
 

Definition at line 74 of file AlignmentStripHistograms.h.

Referenced by InitAttenHistogram(), InitOccupancyHistogram(), InitPigtailAttenHistogram(), and InitRotResidualHistogram().

const Int_t AlignmentStripHistograms::fNChargeBins [private]
 

Definition at line 88 of file AlignmentStripHistograms.h.

Referenced by InitChargeHistogram(), and InitPathCorrChargeHistogram().

const Int_t AlignmentStripHistograms::fNResidualBins [private]
 

Definition at line 89 of file AlignmentStripHistograms.h.

Referenced by InitResidualHistogram().

const Double_t AlignmentStripHistograms::fOccupancyBinWidth [private]
 

Definition at line 93 of file AlignmentStripHistograms.h.

TProfile* AlignmentStripHistograms::fpAtten [private]
 

Definition at line 84 of file AlignmentStripHistograms.h.

Referenced by AlignmentStripHistograms(), and FillHistograms().

TProfile* AlignmentStripHistograms::fpAttenPigCorr [private]
 

Definition at line 85 of file AlignmentStripHistograms.h.

Referenced by AlignmentStripHistograms(), and FillHistograms().

const double AlignmentStripHistograms::fPigTail [private]
 

Definition at line 75 of file AlignmentStripHistograms.h.

const int AlignmentStripHistograms::fPlane [private]
 

Definition at line 71 of file AlignmentStripHistograms.h.

Referenced by InitAttenHistogram(), InitChargeHistogram(), InitOccupancyHistogram(), InitPathCorrChargeHistogram(), InitPigtailAttenHistogram(), InitResidualHistogram(), and InitRotResidualHistogram().

const UInt_t AlignmentStripHistograms::fPlexSEId [private]
 

Definition at line 73 of file AlignmentStripHistograms.h.

TProfile* AlignmentStripHistograms::fpRotationalResidual [private]
 

Definition at line 86 of file AlignmentStripHistograms.h.

Referenced by AlignmentStripHistograms(), and FillHistograms().

const Double_t AlignmentStripHistograms::fResidualLimit [private]
 

Definition at line 92 of file AlignmentStripHistograms.h.

Referenced by InitResidualHistogram().

const Double_t AlignmentStripHistograms::fRotationalResidualBinWidth [private]
 

Definition at line 95 of file AlignmentStripHistograms.h.

Referenced by InitRotResidualHistogram().

const int AlignmentStripHistograms::fStrip [private]
 

Definition at line 72 of file AlignmentStripHistograms.h.

Referenced by InitAttenHistogram(), InitChargeHistogram(), InitOccupancyHistogram(), InitPathCorrChargeHistogram(), InitPigtailAttenHistogram(), InitResidualHistogram(), and InitRotResidualHistogram().


The documentation for this class was generated from the following files:
Generated on Fri Mar 28 15:53:54 2008 for loon by  doxygen 1.3.9.1