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 41 of file AlignmentStripHistograms.cxx.

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

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

AlignmentStripHistograms::~AlignmentStripHistograms  )  [virtual]
 

Definition at line 222 of file AlignmentStripHistograms.cxx.

References MSG.

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


Member Function Documentation

void AlignmentStripHistograms::FillHistograms const AlignmentStrip astrip  ) 
 

Definition at line 87 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().

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

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 163 of file AlignmentStripHistograms.cxx.

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

Referenced by AlignmentStripHistograms().

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

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

Definition at line 107 of file AlignmentStripHistograms.cxx.

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

Referenced by AlignmentStripHistograms().

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

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

Definition at line 149 of file AlignmentStripHistograms.cxx.

References fAttenuationBinWidth, fLength, fPlane, and fStrip.

Referenced by AlignmentStripHistograms().

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

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

Definition at line 121 of file AlignmentStripHistograms.cxx.

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

Referenced by AlignmentStripHistograms().

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

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

Definition at line 180 of file AlignmentStripHistograms.cxx.

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

Referenced by AlignmentStripHistograms().

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

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

Definition at line 135 of file AlignmentStripHistograms.cxx.

References fNResidualBins, fPlane, fResidualLimit, and fStrip.

Referenced by AlignmentStripHistograms().

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

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

Definition at line 205 of file AlignmentStripHistograms.cxx.

References fLength, fPlane, fRotationalResidualBinWidth, and fStrip.

Referenced by AlignmentStripHistograms().

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


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 Mon Feb 15 11:08:34 2010 for loon by  doxygen 1.3.9.1