* provided "as is" without express or implied warranty. *
**************************************************************************/
-
-
-
-
-
-
/* $Id$ */
-
-
-//Root includes
-#include <TObjArray.h>
-#include <TH1F.h>
-#include <TH2S.h>
-#include <TString.h>
-#include <TVectorF.h>
-#include <TVectorD.h>
-#include <TMatrixD.h>
-#include <TMath.h>
-#include <TGraph.h>
-#include <TString.h>
-
-#include <TDirectory.h>
-#include <TSystem.h>
-#include <TFile.h>
-
-//AliRoot includes
-#include "AliRawReader.h"
-#include "AliRawReaderRoot.h"
-#include "AliRawReaderDate.h"
-#include "AliRawEventHeaderBase.h"
-#include "AliTPCRawStream.h"
-#include "AliTPCcalibDB.h"
-#include "AliTPCCalROC.h"
-#include "AliTPCCalPad.h"
-#include "AliTPCROC.h"
-#include "AliTPCParam.h"
-#include "AliTPCCalibCE.h"
-#include "AliMathBase.h"
-#include "TTreeStream.h"
-
-//date
-#include "event.h"
-ClassImp(AliTPCCalibCE)
-
-//////////////////////////////////////////////////////////////////////////////////////
-// Implementation of the TPC Central Electrode calibration
-//
-// Origin: Jens Wiechula, Marian Ivanov J.Wiechula@gsi.de, Marian.Ivanov@cern.ch
-//
+////////////////////////////////////////////////////////////////////////////////////////
+// //
+// Implementation of the TPC Central Electrode calibration //
+// //
+// Origin: Jens Wiechula, Marian Ivanov J.Wiechula@gsi.de, Marian.Ivanov@cern.ch //
+// //
+////////////////////////////////////////////////////////////////////////////////////////
//
//
// *************************************************************************************
//////////////////////////////////////////////////////////////////////////////////////
+//Root includes
+#include <TObjArray.h>
+#include <TH1F.h>
+#include <TH2S.h>
+#include <TString.h>
+#include <TVectorF.h>
+#include <TVectorD.h>
+#include <TMatrixD.h>
+#include <TMath.h>
+#include <TGraph.h>
+#include <TString.h>
+
+#include <TDirectory.h>
+#include <TSystem.h>
+#include <TFile.h>
+
+//AliRoot includes
+#include "AliRawReader.h"
+#include "AliRawReaderRoot.h"
+#include "AliRawReaderDate.h"
+#include "AliRawEventHeaderBase.h"
+#include "AliTPCRawStream.h"
+#include "AliTPCcalibDB.h"
+#include "AliTPCCalROC.h"
+#include "AliTPCCalPad.h"
+#include "AliTPCROC.h"
+#include "AliTPCParam.h"
+#include "AliTPCCalibCE.h"
+#include "AliMathBase.h"
+#include "TTreeStream.h"
+
+//date
+#include "event.h"
+ClassImp(AliTPCCalibCE)
+
+
AliTPCCalibCE::AliTPCCalibCE() :
TObject(),
fFirstTimeBin(650),
fVTime0OffsetCounter(72),
fVMeanQ(72),
fVMeanQCounter(72),
- fEvent(-1),
+// fEvent(-1),
fDebugStreamer(0x0),
fDebugLevel(0)
{
fVTime0OffsetCounter(72),
fVMeanQ(72),
fVMeanQCounter(72),
- fEvent(-1),
+// fEvent(-1),
fDebugStreamer(0x0),
fDebugLevel(sig.fDebugLevel)
{
if ( fDebugStreamer) delete fDebugStreamer;
// if ( fHTime0 ) delete fHTime0;
+ delete fROC;
delete fParam;
}
//_____________________________________________________________________
qSum = ceQsum;
}
//_____________________________________________________________________
-Bool_t AliTPCCalibCE::IsPeak(Int_t pos, Int_t tminus, Int_t tplus)
+Bool_t AliTPCCalibCE::IsPeak(Int_t pos, Int_t tminus, Int_t tplus) const
{
//
// Check if 'pos' is a Maximum. Consider 'tminus' timebins before
TVectorD param(3);
- Float_t Qsum;
- FindCESignal(param, Qsum, maxima);
+ Float_t qSum;
+ FindCESignal(param, qSum, maxima);
Double_t meanT = param[1];
Double_t sigmaT = param[2];
(*GetPadTimesEvent(fCurrentSector,kTRUE)).GetMatrixArray()[fCurrentChannel] = meanT;
//Fill Q histogram
- GetHistoQ(fCurrentSector,kTRUE)->Fill( TMath::Sqrt(Qsum), fCurrentChannel );
+ GetHistoQ(fCurrentSector,kTRUE)->Fill( TMath::Sqrt(qSum), fCurrentChannel );
//Fill RMS histogram
GetHistoRMS(fCurrentSector,kTRUE)->Fill( sigmaT, fCurrentChannel );
if ( fDebugLevel>0 ){
(*GetPadPedestalEvent(fCurrentSector,kTRUE)).GetMatrixArray()[fCurrentChannel]=fPadPedestal;
(*GetPadRMSEvent(fCurrentSector,kTRUE)).GetMatrixArray()[fCurrentChannel]=sigmaT;
- (*GetPadQEvent(fCurrentSector,kTRUE)).GetMatrixArray()[fCurrentChannel]=Qsum;
+ (*GetPadQEvent(fCurrentSector,kTRUE)).GetMatrixArray()[fCurrentChannel]=qSum;
}
ResetPad();
vMeanQ->GetMatrixArray()[fNevents]=meanQ;
for ( UInt_t iChannel=0; iChannel<fROC->GetNChannels(iSec); ++iChannel ){
- Float_t Time = (*vTimes).GetMatrixArray()[iChannel];
+ Float_t time = (*vTimes).GetMatrixArray()[iChannel];
//set values for temporary roc calibration class
if ( iSec < 36 ) {
- calIroc->SetValue(iChannel, Time);
- if ( Time == 0 ) calIrocOutliers.SetValue(iChannel,1);
+ calIroc->SetValue(iChannel, time);
+ if ( time == 0 ) calIrocOutliers.SetValue(iChannel,1);
} else {
- calOroc->SetValue(iChannel, Time);
- if ( Time == 0 ) calOrocOutliers.SetValue(iChannel,1);
+ calOroc->SetValue(iChannel, time);
+ if ( time == 0 ) calOrocOutliers.SetValue(iChannel,1);
}
if ( (fNevents>0) && (fOldRunNumber==fRunNumber) )
- GetHistoT0(iSec,kTRUE)->Fill( Time-time0Side[(iSec/18)%2],iChannel );
+ GetHistoT0(iSec,kTRUE)->Fill( time-time0Side[(iSec/18)%2],iChannel );
Int_t pad=0;
Int_t padc=0;
- Float_t Q = (*GetPadQEvent(iSec))[iChannel];
- Float_t RMS = (*GetPadRMSEvent(iSec))[iChannel];
+ Float_t q = (*GetPadQEvent(iSec))[iChannel];
+ Float_t rms = (*GetPadRMSEvent(iSec))[iChannel];
UInt_t channel=iChannel;
Int_t sector=iSec;
// for (Int_t i=fFirstTimeBin; i<fLastTimeBin+1; ++i)
// h1->Fill(i,fPadSignal(i));
- Double_t T0Sec = 0;
+ Double_t t0Sec = 0;
if (fVTime0OffsetCounter.GetMatrixArray()[iSec]>0)
- T0Sec = fVTime0Offset.GetMatrixArray()[iSec]/fVTime0OffsetCounter.GetMatrixArray()[iSec];
- Double_t T0Side = time0Side[(iSec/18)%2];
+ t0Sec = fVTime0Offset.GetMatrixArray()[iSec]/fVTime0OffsetCounter.GetMatrixArray()[iSec];
+ Double_t t0Side = time0Side[(iSec/18)%2];
(*fDebugStreamer) << "DataPad" <<
"Event=" << fNevents <<
"RunNumber=" << fRunNumber <<
"Pad=" << pad <<
"PadC=" << padc <<
"PadSec="<< channel <<
- "Time0Sec=" << T0Sec <<
- "Time0Side=" << T0Side <<
- "Time=" << Time <<
- "RMS=" << RMS <<
- "Sum=" << Q <<
+ "Time0Sec=" << t0Sec <<
+ "Time0Side=" << t0Side <<
+ "Time=" << time <<
+ "RMS=" << rms <<
+ "Sum=" << q <<
"MeanQ=" << meanQ <<
// "hist.=" << h1 <<
"\n";
if ( backup ) backup->cd(); //we don't want to be cd'd to the debug streamer
}
(*fDebugStreamer) << "DataRoc" <<
- "Event=" << fEvent <<
+// "Event=" << fEvent <<
"RunNumber=" << fRunNumber <<
"TimeStamp=" << fTimeStamp <<
"Sector="<< iSec <<
return GetHisto(sector, arr, "LastTmean", force);
}
//_____________________________________________________________________
-TVectorF* AliTPCCalibCE::GetVectSector(Int_t sector, TObjArray *arr, UInt_t size, Bool_t force)
+TVectorF* AliTPCCalibCE::GetVectSector(Int_t sector, TObjArray *arr, UInt_t size, Bool_t force) const
{
//
// return pointer to Pad Info from 'arr' for the current event and sector
return GetVectSector(sector,arr,100,force);
}
//_____________________________________________________________________
-AliTPCCalROC* AliTPCCalibCE::GetCalRoc(Int_t sector, TObjArray* arr, Bool_t force)
+AliTPCCalROC* AliTPCCalibCE::GetCalRoc(Int_t sector, TObjArray* arr, Bool_t force) const
{
//
// return pointer to ROC Calibration
return GetCalRoc(sector, arr, force);
}
//_____________________________________________________________________
-TObjArray* AliTPCCalibCE::GetParamArray(Int_t sector, TObjArray* arr, Bool_t force)
+TObjArray* AliTPCCalibCE::GetParamArray(Int_t sector, TObjArray* arr, Bool_t force) const
{
//
// return pointer to TObjArray of fit parameters
TH2S *hQ = GetHistoQ(iSec);
TH2S *hRMS = GetHistoRMS(iSec);
- Short_t *array_hQ = hQ->GetArray();
- Short_t *array_hT0 = hT0->GetArray();
- Short_t *array_hRMS = hRMS->GetArray();
+ Short_t *arrayhQ = hQ->GetArray();
+ Short_t *arrayhT0 = hT0->GetArray();
+ Short_t *arrayhRMS = hRMS->GetArray();
UInt_t nChannels = fROC->GetNChannels(iSec);
Int_t offsetT0 = (fNbinsT0+2)*(iChannel+1)+1;
Int_t offsetRMS = (fNbinsRMS+2)*(iChannel+1)+1;
- cogQ = AliMathBase::GetCOG(array_hQ+offsetQ,fNbinsQ,fXminQ,fXmaxQ);
- cogTime0 = AliMathBase::GetCOG(array_hT0+offsetT0,fNbinsT0,fXminT0,fXmaxT0);
- cogRMS = AliMathBase::GetCOG(array_hRMS+offsetRMS,fNbinsRMS,fXminRMS,fXmaxRMS);
+ cogQ = AliMathBase::GetCOG(arrayhQ+offsetQ,fNbinsQ,fXminQ,fXmaxQ);
+ cogTime0 = AliMathBase::GetCOG(arrayhT0+offsetT0,fNbinsT0,fXminT0,fXmaxT0);
+ cogRMS = AliMathBase::GetCOG(arrayhRMS+offsetRMS,fNbinsRMS,fXminRMS,fXmaxRMS);
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
+////////////////////////////////////////////////////////////////////////////////////////
+// //
+// Implementation of the TPC Central Electrode calibration //
+// //
+////////////////////////////////////////////////////////////////////////////////////////
+
#include <TVectorT.h>
class TObjArray;
class TH1S;
const Int_t iTimeBin, const Float_t signal);
void Analyse();
//
- AliTPCCalROC* GetCalRocT0 (Int_t sector, Bool_t force=kFALSE); // get calibration object - sector
- AliTPCCalROC* GetCalRocQ (Int_t sector, Bool_t force=kFALSE); // get calibration object - sector
+ AliTPCCalROC* GetCalRocT0 (Int_t sector, Bool_t force=kFALSE); // get calibration object - sector
+ AliTPCCalROC* GetCalRocQ (Int_t sector, Bool_t force=kFALSE); // get calibration object - sector
AliTPCCalROC* GetCalRocRMS(Int_t sector, Bool_t force=kFALSE); // get calibration object - sector
AliTPCCalROC* GetCalRocOutliers(Int_t sector, Bool_t force=kFALSE); // get calibration object - sector
- const TObjArray* GetCalPadT0() { return &fCalRocArrayT0; } // get calibration object
- const TObjArray* GetCalPadQ() { return &fCalRocArrayQ; } // get calibration object
- const TObjArray* GetCalPadRMS(){ return &fCalRocArrayRMS;} // get calibration object
- const TObjArray* GetCalPadOutliers(){ return &fCalRocArrayOutliers;} // get calibration object
+ const TObjArray* GetCalPadT0() const { return &fCalRocArrayT0; } // get calibration object
+ const TObjArray* GetCalPadQ() const { return &fCalRocArrayQ; } // get calibration object
+ const TObjArray* GetCalPadRMS() const { return &fCalRocArrayRMS;} // get calibration object
+ const TObjArray* GetCalPadOutliers() const { return &fCalRocArrayOutliers;} // get calibration object
TH2S* GetHistoQ (Int_t sector, Bool_t force=kFALSE); // get refernce histogram
TH2S* GetHistoT0 (Int_t sector, Bool_t force=kFALSE); // get refernce histogram
Int_t GetFirstTimeBin() const { return fFirstTimeBin; }
Int_t GetLastTimeBin() const { return fLastTimeBin; }
- Int_t GetNeventsProcessed() { return fNevents; }
+ Int_t GetNeventsProcessed() const { return fNevents; }
void Merge(AliTPCCalibCE *ce);
TVectorD fVMeanQ; //! Mean Q for each sector;
TVectorD fVMeanQCounter; //! Mean Q counter for each sector;
//debugging
- Int_t fEvent;
+// Int_t fEvent;
TTreeSRedirector *fDebugStreamer; //! debug streamer
- Short_t fDebugLevel;
+ Short_t fDebugLevel; // debug level
//! debugging
void FindPedestal(Float_t part=.6);
void FindCESignal(TVectorD ¶m, Float_t &qSum, const TVectorF maxima);
void FindLocalMaxima(TVectorF &maxima);
- Bool_t IsPeak(Int_t pos, Int_t tminus, Int_t tplus);
+ Bool_t IsPeak(Int_t pos, Int_t tminus, Int_t tplus) const;
TH2S* GetHisto(Int_t sector, TObjArray *arr,
Int_t nbinsY, Float_t ymin, Float_t ymax,
TH1S* GetHisto(Int_t sector, TObjArray *arr,
Char_t *type, Bool_t force);
- AliTPCCalROC* GetCalRoc(Int_t sector, TObjArray* arr, Bool_t force);
+ AliTPCCalROC* GetCalRoc(Int_t sector, TObjArray* arr, Bool_t force) const;
- TVectorF* GetVectSector(Int_t sector, TObjArray *arr, UInt_t size, Bool_t force=kFALSE);
+ TVectorF* GetVectSector(Int_t sector, TObjArray *arr, UInt_t size, Bool_t force=kFALSE) const;
TVectorF* GetPadTimesEvent(Int_t sector, Bool_t force=kFALSE);
- TObjArray* GetParamArray(Int_t sector, TObjArray *arr, Bool_t force=kFALSE);
+ TObjArray* GetParamArray(Int_t sector, TObjArray *arr, Bool_t force=kFALSE) const;
void ResetEvent();
void ResetPad();
TVectorF* GetPadRMSEvent(Int_t sector, Bool_t force=kFALSE);
TVectorF* GetPadPedestalEvent(Int_t sector, Bool_t force=kFALSE);
-
-public:
-
-
ClassDef(AliTPCCalibCE,2) //Implementation of the TPC Central Electrode calibration
};
/* $Id$ */
-//Root includes
-#include <TH1F.h>
-#include <TH2S.h>
-#include <TString.h>
-#include <TVectorF.h>
-#include <TMath.h>
-
-#include <TDirectory.h>
-#include <TSystem.h>
-#include <TFile.h>
-
-//AliRoot includes
-#include "AliRawReader.h"
-#include "AliRawReaderRoot.h"
-#include "AliRawReaderDate.h"
-#include "AliTPCRawStream.h"
-#include "AliTPCCalROC.h"
-#include "AliTPCCalPad.h"
-#include "AliTPCROC.h"
-#include "AliTPCParam.h"
-#include "AliTPCCalibPulser.h"
-#include "AliTPCcalibDB.h"
-#include "AliMathBase.h"
-#include "TTreeStream.h"
-
-//date
-#include "event.h"
-
-
-///////////////////////////////////////////////////////////////////////////////////////
-// Implementation of the TPC pulser calibration
-//
-// Origin: Jens Wiechula, Marian Ivanov J.Wiechula@gsi.de, Marian.Ivanov@cern.ch
-//
-//
+/////////////////////////////////////////////////////////////////////////////////////////
+// //
+// Implementation of the TPC pulser calibration //
+// //
+// Origin: Jens Wiechula, Marian Ivanov J.Wiechula@gsi.de, Marian.Ivanov@cern.ch //
+// //
+/////////////////////////////////////////////////////////////////////////////////////////
/***************************************************************************
* Class Description *
***************************************************************************
*/
-ClassImp(AliTPCCalibPulser) /*FOLD00*/
+//Root includes
+#include <TObjArray.h>
+#include <TH1F.h>
+#include <TH2S.h>
+#include <TString.h>
+#include <TVectorF.h>
+#include <TMath.h>
+
+#include <TDirectory.h>
+#include <TSystem.h>
+#include <TROOT.h>
+#include <TFile.h>
+
+//AliRoot includes
+#include "AliRawReader.h"
+#include "AliRawReaderRoot.h"
+#include "AliRawReaderDate.h"
+#include "AliTPCRawStream.h"
+#include "AliTPCCalROC.h"
+#include "AliTPCCalPad.h"
+#include "AliTPCROC.h"
+#include "AliTPCParam.h"
+#include "AliTPCCalibPulser.h"
+#include "AliTPCcalibDB.h"
+#include "AliMathBase.h"
+#include "TTreeStream.h"
-AliTPCCalibPulser::AliTPCCalibPulser() : /*FOLD00*/
+//date
+#include "event.h"
+
+
+
+
+ClassImp(AliTPCCalibPulser)
+
+AliTPCCalibPulser::AliTPCCalibPulser() :
TObject(),
fFirstTimeBin(60),
fLastTimeBin(120),
fPadNoise(0),
fVTime0Offset(72),
fVTime0OffsetCounter(72),
- fEvent(-1),
+// fEvent(-1),
fDebugStreamer(0x0),
fDebugLevel(0)
{
fPadNoise(0),
fVTime0Offset(72),
fVTime0OffsetCounter(72),
- fEvent(-1),
+// fEvent(-1),
fDebugStreamer(0x0),
fDebugLevel(sig.fDebugLevel)
{
fPadPedestalArrayEvent.Delete();
if ( fDebugStreamer) delete fDebugStreamer;
+ delete fROC;
delete fParam;
}
//_____________________________________________________________________
-Int_t AliTPCCalibPulser::Update(const Int_t icsector, /*FOLD00*/
+Int_t AliTPCCalibPulser::Update(const Int_t icsector,
const Int_t icRow,
const Int_t icPad,
const Int_t icTimeBin,
const Float_t csignal)
{
//
- // Signal filling methode on the fly pedestal and Time offset correction if necessary.
+ // Signal filling methode on the fly pedestal and time offset correction if necessary.
// no extra analysis necessary. Assumes knowledge of the signal shape!
// assumes that it is looped over consecutive time bins of one pad
//
qSum = ceQsum;
}
//_____________________________________________________________________
-void AliTPCCalibPulser::ProcessPad() /*FOLD00*/
+void AliTPCCalibPulser::ProcessPad()
{
//
// Process data of current pad
FindPedestal();
TVectorD param(3);
- Float_t Qsum;
- FindPulserSignal(param, Qsum);
+ Float_t qSum;
+ FindPulserSignal(param, qSum);
Double_t meanT = param[1];
Double_t sigmaT = param[2];
(*GetPadTimesEvent(fCurrentSector,kTRUE)).GetMatrixArray()[fCurrentChannel] = meanT;
//Fill Q histogram
- GetHistoQ(fCurrentSector,kTRUE)->Fill( TMath::Sqrt(Qsum), fCurrentChannel );
+ GetHistoQ(fCurrentSector,kTRUE)->Fill( TMath::Sqrt(qSum), fCurrentChannel );
//Fill RMS histogram
GetHistoRMS(fCurrentSector,kTRUE)->Fill( sigmaT, fCurrentChannel );
if ( fDebugLevel>0 ){
(*GetPadPedestalEvent(fCurrentSector,kTRUE))[fCurrentChannel]=fPadPedestal;
(*GetPadRMSEvent(fCurrentSector,kTRUE))[fCurrentChannel]=sigmaT;
- (*GetPadQEvent(fCurrentSector,kTRUE))[fCurrentChannel]=Qsum;
+ (*GetPadQEvent(fCurrentSector,kTRUE))[fCurrentChannel]=qSum;
}
-
ResetPad();
}
//_____________________________________________________________________
-void AliTPCCalibPulser::EndEvent() /*FOLD00*/
+void AliTPCCalibPulser::EndEvent()
{
//
// Process data of current event
if ( !vTimes ) continue;
for ( UInt_t iChannel=0; iChannel<fROC->GetNChannels(iSec); ++iChannel ){
- Float_t Time0 = fVTime0Offset[iSec]/fVTime0OffsetCounter[iSec];
- Float_t Time = (*vTimes).GetMatrixArray()[iChannel];
+ Float_t time0 = fVTime0Offset[iSec]/fVTime0OffsetCounter[iSec];
+ Float_t time = (*vTimes).GetMatrixArray()[iChannel];
- GetHistoT0(iSec,kTRUE)->Fill( Time-Time0,iChannel );
+ GetHistoT0(iSec,kTRUE)->Fill( time-time0,iChannel );
//Debug start
Int_t pad=0;
Int_t padc=0;
- Float_t Q = (*GetPadQEvent(iSec)).GetMatrixArray()[iChannel];
- Float_t RMS = (*GetPadRMSEvent(iSec)).GetMatrixArray()[iChannel];
+ Float_t q = (*GetPadQEvent(iSec)).GetMatrixArray()[iChannel];
+ Float_t rms = (*GetPadRMSEvent(iSec)).GetMatrixArray()[iChannel];
UInt_t channel=iChannel;
Int_t sector=iSec;
h1->Fill(i,fPadSignal(i));
(*fDebugStreamer) << "DataPad" <<
- "Event=" << fEvent <<
+// "Event=" << fEvent <<
"Sector="<< sector <<
"Row=" << row<<
"Pad=" << pad <<
"PadC=" << padc <<
"PadSec="<< channel <<
- "Time0=" << Time0 <<
- "Time=" << Time <<
- "RMS=" << RMS <<
- "Sum=" << Q <<
+ "Time0=" << time0 <<
+ "Time=" << time <<
+ "RMS=" << rms <<
+ "Sum=" << q <<
"hist.=" << h1 <<
"\n";
}
//_____________________________________________________________________
-Bool_t AliTPCCalibPulser::ProcessEvent(AliTPCRawStream *rawStream) /*FOLD00*/
+Bool_t AliTPCCalibPulser::ProcessEvent(AliTPCRawStream *rawStream)
{
//
// Event Processing loop - AliTPCRawStream
}
//_____________________________________________________________________
-TH2S* AliTPCCalibPulser::GetHisto(Int_t sector, TObjArray *arr, /*FOLD00*/
+TH2S* AliTPCCalibPulser::GetHisto(Int_t sector, TObjArray *arr,
Int_t nbinsY, Float_t ymin, Float_t ymax,
Char_t *type, Bool_t force)
{
return hist;
}
//_____________________________________________________________________
-TH2S* AliTPCCalibPulser::GetHistoT0(Int_t sector, Bool_t force) /*FOLD00*/
+TH2S* AliTPCCalibPulser::GetHistoT0(Int_t sector, Bool_t force)
{
//
// return pointer to T0 histogram
return GetHisto(sector, arr, fNbinsT0, fXminT0, fXmaxT0, "T0", force);
}
//_____________________________________________________________________
-TH2S* AliTPCCalibPulser::GetHistoQ(Int_t sector, Bool_t force) /*FOLD00*/
+TH2S* AliTPCCalibPulser::GetHistoQ(Int_t sector, Bool_t force)
{
//
// return pointer to Q histogram
return GetHisto(sector, arr, fNbinsQ, fXminQ, fXmaxQ, "Q", force);
}
//_____________________________________________________________________
-TH2S* AliTPCCalibPulser::GetHistoRMS(Int_t sector, Bool_t force) /*FOLD00*/
+TH2S* AliTPCCalibPulser::GetHistoRMS(Int_t sector, Bool_t force)
{
//
// return pointer to Q histogram
return GetHisto(sector, arr, fNbinsRMS, fXminRMS, fXmaxRMS, "RMS", force);
}
//_____________________________________________________________________
-TVectorF* AliTPCCalibPulser::GetPadInfoEvent(Int_t sector, TObjArray *arr, Bool_t force) /*FOLD00*/
+TVectorF* AliTPCCalibPulser::GetPadInfoEvent(Int_t sector, TObjArray *arr, Bool_t force)
{
//
// return pointer to Pad Info from 'arr' for the current event and sector
return vect;
}
//_____________________________________________________________________
-TVectorF* AliTPCCalibPulser::GetPadTimesEvent(Int_t sector, Bool_t force) /*FOLD00*/
+TVectorF* AliTPCCalibPulser::GetPadTimesEvent(Int_t sector, Bool_t force)
{
//
// return pointer to Pad Times Array for the current event and sector
return GetPadInfoEvent(sector,arr,force);
}
//_____________________________________________________________________
-TVectorF* AliTPCCalibPulser::GetPadQEvent(Int_t sector, Bool_t force) /*FOLD00*/
+TVectorF* AliTPCCalibPulser::GetPadQEvent(Int_t sector, Bool_t force)
{
//
// return pointer to Pad Q Array for the current event and sector
return GetPadInfoEvent(sector,arr,force);
}
//_____________________________________________________________________
-TVectorF* AliTPCCalibPulser::GetPadRMSEvent(Int_t sector, Bool_t force) /*FOLD00*/
+TVectorF* AliTPCCalibPulser::GetPadRMSEvent(Int_t sector, Bool_t force)
{
//
// return pointer to Pad RMS Array for the current event and sector
return GetPadInfoEvent(sector,arr,force);
}
//_____________________________________________________________________
-TVectorF* AliTPCCalibPulser::GetPadPedestalEvent(Int_t sector, Bool_t force) /*FOLD00*/
+TVectorF* AliTPCCalibPulser::GetPadPedestalEvent(Int_t sector, Bool_t force)
{
//
// return pointer to Pad RMS Array for the current event and sector
return GetPadInfoEvent(sector,arr,force);
}
//_____________________________________________________________________
-AliTPCCalROC* AliTPCCalibPulser::GetCalRoc(Int_t sector, TObjArray* arr, Bool_t force) /*FOLD00*/
+AliTPCCalROC* AliTPCCalibPulser::GetCalRoc(Int_t sector, TObjArray* arr, Bool_t force) const
{
//
// return pointer to ROC Calibration
return croc;
}
//_____________________________________________________________________
-AliTPCCalROC* AliTPCCalibPulser::GetCalRocT0(Int_t sector, Bool_t force) /*FOLD00*/
+AliTPCCalROC* AliTPCCalibPulser::GetCalRocT0(Int_t sector, Bool_t force)
{
//
// return pointer to Carge ROC Calibration
return GetCalRoc(sector, arr, force);
}
//_____________________________________________________________________
-AliTPCCalROC* AliTPCCalibPulser::GetCalRocQ(Int_t sector, Bool_t force) /*FOLD00*/
+AliTPCCalROC* AliTPCCalibPulser::GetCalRocQ(Int_t sector, Bool_t force)
{
//
// return pointer to T0 ROC Calibration
return GetCalRoc(sector, arr, force);
}
//_____________________________________________________________________
-AliTPCCalROC* AliTPCCalibPulser::GetCalRocRMS(Int_t sector, Bool_t force) /*FOLD00*/
+AliTPCCalROC* AliTPCCalibPulser::GetCalRocRMS(Int_t sector, Bool_t force)
{
//
// return pointer to signal width ROC Calibration
return GetCalRoc(sector, arr, force);
}
//_____________________________________________________________________
-void AliTPCCalibPulser::ResetEvent() /*FOLD00*/
+void AliTPCCalibPulser::ResetEvent()
{
//
// Reset global counters -- Should be called before each event is processed
}
}
//_____________________________________________________________________
-void AliTPCCalibPulser::ResetPad() /*FOLD00*/
+void AliTPCCalibPulser::ResetPad()
{
//
// Reset pad infos -- Should be called after a pad has been processed
}
}
//_____________________________________________________________________
-void AliTPCCalibPulser::Analyse() /*FOLD00*/
+void AliTPCCalibPulser::Analyse()
{
//
// Calculate calibration constants
TH2S *hQ = GetHistoQ(iSec);
TH2S *hRMS = GetHistoRMS(iSec);
- Short_t *array_hQ = hQ->GetArray();
- Short_t *array_hT0 = hT0->GetArray();
- Short_t *array_hRMS = hRMS->GetArray();
+ Short_t *arrayhQ = hQ->GetArray();
+ Short_t *arrayhT0 = hT0->GetArray();
+ Short_t *arrayhRMS = hRMS->GetArray();
UInt_t nChannels = fROC->GetNChannels(iSec);
Int_t offsetRMS = (fNbinsRMS+2)*(iChannel+1)+1;
/*
- AliMathBase::FitGaus(array_hQ+offsetQ,fNbinsQ,fXminQ,fXmaxQ,¶mQ,&dummy);
- AliMathBase::FitGaus(array_hT0+offsetT0,fNbinsT0,fXminT0,fXmaxT0,¶mT0,&dummy);
- AliMathBase::FitGaus(array_hRMS+offsetRMS,fNbinsRMS,fXminRMS,fXmaxRMS,¶mRMS,&dummy);
+ AliMathBase::FitGaus(arrayhQ+offsetQ,fNbinsQ,fXminQ,fXmaxQ,¶mQ,&dummy);
+ AliMathBase::FitGaus(arrayhT0+offsetT0,fNbinsT0,fXminT0,fXmaxT0,¶mT0,&dummy);
+ AliMathBase::FitGaus(arrayhRMS+offsetRMS,fNbinsRMS,fXminRMS,fXmaxRMS,¶mRMS,&dummy);
cogQ = paramQ[1];
cogTime0 = paramT0[1];
cogRMS = paramRMS[1];
*/
- cogQ = AliMathBase::GetCOG(array_hQ+offsetQ,fNbinsQ,fXminQ,fXmaxQ);
- cogTime0 = AliMathBase::GetCOG(array_hT0+offsetT0,fNbinsT0,fXminT0,fXmaxT0);
- cogRMS = AliMathBase::GetCOG(array_hRMS+offsetRMS,fNbinsRMS,fXminRMS,fXmaxRMS);
+ cogQ = AliMathBase::GetCOG(arrayhQ+offsetQ,fNbinsQ,fXminQ,fXmaxQ);
+ cogTime0 = AliMathBase::GetCOG(arrayhT0+offsetT0,fNbinsT0,fXminT0,fXmaxT0);
+ cogRMS = AliMathBase::GetCOG(arrayhRMS+offsetRMS,fNbinsRMS,fXminRMS,fXmaxRMS);
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-#include <TVectorT.h>
-#include <TObject.h>
-#include <TObjArray.h>
+/////////////////////////////////////////////////////////////////////////////////////////
+// //
+// Implementation of the TPC pulser calibration //
+// //
+/////////////////////////////////////////////////////////////////////////////////////////
+#include <TVectorT.h>
class TObjArray;
class TH2S;
class TTreeSRedirector;
AliTPCCalROC* GetCalRocRMS(Int_t sector, Bool_t force=kFALSE); // get calibration object - sector
AliTPCCalROC* GetCalRocOutliers(Int_t sector, Bool_t force=kFALSE); // get calibration object - sector
- const TObjArray* GetCalPadT0() { return &fCalRocArrayT0; } // get calibration object
- const TObjArray* GetCalPadQ() { return &fCalRocArrayQ; } // get calibration object
- const TObjArray* GetCalPadRMS(){ return &fCalRocArrayRMS;} // get calibration object
- const TObjArray* GetCalPadOutliers(){ return &fCalRocArrayOutliers;} // get calibration object
+ const TObjArray* GetCalPadT0() const { return &fCalRocArrayT0; } // get calibration object
+ const TObjArray* GetCalPadQ() const { return &fCalRocArrayQ; } // get calibration object
+ const TObjArray* GetCalPadRMS() const{ return &fCalRocArrayRMS;} // get calibration object
+ const TObjArray* GetCalPadOutliers() const { return &fCalRocArrayOutliers;} // get calibration object
TH2S* GetHistoQ (Int_t sector, Bool_t force=kFALSE); // get refernce histogram
TH2S* GetHistoT0 (Int_t sector, Bool_t force=kFALSE); // get refernce histogram
TVectorF fVTime0OffsetCounter; //! Time0 Offset from preprocessing for each sector;
//debugging
- Int_t fEvent;
+// Int_t fEvent; // Number of events processed
TTreeSRedirector *fDebugStreamer; //! debug streamer
- Short_t fDebugLevel;
+ Short_t fDebugLevel; // debug Level
//! debugging
void FindPedestal(Float_t part=.6);
Char_t *type, Bool_t force);
- AliTPCCalROC* GetCalRoc(Int_t sector, TObjArray* arr, Bool_t force);
+ AliTPCCalROC* GetCalRoc(Int_t sector, TObjArray* arr, Bool_t force) const;
TVectorF* GetPadTimesEvent(Int_t sector, Bool_t force=kFALSE);
TVectorF* GetPadPedestalEvent(Int_t sector, Bool_t force=kFALSE);
-public:
-
-
ClassDef(AliTPCCalibPulser,1) //Implementation of the TPC pulser calibration
};