///////////////////////////////////////////////////////////////////////////////
// //
// TRD clusterCorrection //
-// marian.ivanov@cern.ch //
+// Author: //
+// Marian Ivanov (marian.ivanov@cern.ch) //
// //
///////////////////////////////////////////////////////////////////////////////
ClassImp(AliTRDclusterCorrection)
-AliTRDclusterCorrection * gTRDclusterCorrection=0;
-
+//_____________________________________________________________________________
AliTRDclusterCorrection::AliTRDclusterCorrection()
+ :TObject()
+ ,fOffsetAngle(0)
{
//
- //default constructor for correction
+ // Default constructor for AliTRDclusterCorrection
//
- for (Int_t iplane=0;iplane<6;iplane++)
- for (Int_t itime=0;itime<30;itime++)
- for(Int_t iangle=0;iangle<20;iangle++){
- fCorrections[iplane][itime][iangle][0]=0;
- fCorrections[iplane][itime][iangle][1]=0;
+
+ for (Int_t iplane = 0; iplane < 6; iplane++) {
+ for (Int_t itime = 0; itime < 30; itime++) {
+ for (Int_t iangle = 0; iangle < 20; iangle++) {
+ fCorrections[iplane][itime][iangle][0] = 0.0;
+ fCorrections[iplane][itime][iangle][1] = 0.0;
}
- fOffsetAngle =0;
+ }
+ }
+
}
+//_____________________________________________________________________________
+AliTRDclusterCorrection::~AliTRDclusterCorrection()
+{
+ //
+ // Destructor
+ //
-void AliTRDclusterCorrection::SetCorrection(Int_t plane,Int_t timebin, Float_t angle,
- Float_t value, Float_t sigma)
+}
+
+//_____________________________________________________________________________
+void AliTRDclusterCorrection::SetCorrection(Int_t plane,Int_t timebin, Float_t angle
+ , Float_t value, Float_t sigma)
{
- Int_t iangle = int( (angle-fOffsetAngle+1.)*10.+0.5);
- if (iangle<0) return;
- if (iangle>=20) return;
+ //
+ // Set the correction factors
+ //
+
+ Int_t iangle = Int_t((angle - fOffsetAngle + 1.0) * 10.0 + 0.5);
+ if (iangle < 0) return;
+ if (iangle >= 20) return;
fCorrections[plane][timebin][iangle][0] = value;
fCorrections[plane][timebin][iangle][1] = sigma;
+
}
-Float_t AliTRDclusterCorrection::GetCorrection(Int_t plane, Int_t timebin, Float_t angle)
+//_____________________________________________________________________________
+Float_t AliTRDclusterCorrection::GetCorrection(Int_t plane, Int_t timebin, Float_t angle) const
{
- Int_t iangle = int( (angle-fOffsetAngle+1.)*10.+0.5);
- if (iangle<0) return 0.;
- if (iangle>=20) return 0.;
+ //
+ // Get the correction factors
+ //
+
+ Int_t iangle = Int_t((angle - fOffsetAngle + 1.0) * 10.0 + 0.5);
+ if (iangle < 0) return 0.0;
+ if (iangle >= 20) return 0.0;
+
return fCorrections[plane][timebin][iangle][0];
+
}
-Float_t AliTRDclusterCorrection::GetSigma(Int_t plane, Int_t timebin, Float_t angle)
+//_____________________________________________________________________________
+Float_t AliTRDclusterCorrection::GetSigma(Int_t plane, Int_t timebin, Float_t angle) const
{
- Int_t iangle = int( (angle-fOffsetAngle+1.)*10.+0.5);
- if (iangle<0) return 1.;
- if (iangle>=20) return 1.;
+ //
+ // Returns the sigma
+ //
+
+ Int_t iangle = Int_t((angle - fOffsetAngle + 1.0) * 10.0 + 0.5);
+ if (iangle < 0) return 1.0;
+ if (iangle >= 20) return 1.0;
+
return fCorrections[plane][timebin][iangle][1];
-}
+}
-AliTRDclusterCorrection * AliTRDclusterCorrection::GetCorrection()
+//_____________________________________________________________________________
+AliTRDclusterCorrection *AliTRDclusterCorrection::GetCorrection()
{
- if (gTRDclusterCorrection!=0) return gTRDclusterCorrection;
//
- TFile * f = new TFile("$ALICE_ROOT/TRD/TRDcorrection.root");
- if (!f){
- ////
- gTRDclusterCorrection = new AliTRDclusterCorrection();
- return gTRDclusterCorrection;
+ // Return an instance of AliTRDclusterCorrection and sets the global
+ // pointer gAliTRDclusterCorrection (Is this needed somewhere ????)
+ //
+
+ AliTRDclusterCorrection *clusterCorrection = 0x0;
+
+ TFile *fileIn = new TFile("$ALICE_ROOT/TRD/TRDcorrection.root");
+ if (!fileIn){
+ clusterCorrection = new AliTRDclusterCorrection();
+ return clusterCorrection;
}
- gTRDclusterCorrection = (AliTRDclusterCorrection*)f->Get("TRDcorrection");
- if (gTRDclusterCorrection==0) gTRDclusterCorrection = new AliTRDclusterCorrection();
- return gTRDclusterCorrection;
+
+ clusterCorrection = (AliTRDclusterCorrection *)
+ fileIn->Get("TRDcorrection");
+ if (clusterCorrection == 0) {
+ clusterCorrection = new AliTRDclusterCorrection();
+ }
+
+ return clusterCorrection;
}