+++ /dev/null
-/**************************************************************************
- * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * *
- * Author: The ALICE Off-line Project. *
- * Contributors are mentioned in the code where appropriate. *
- * *
- * Permission to use, copy, modify and distribute this software and its *
- * documentation strictly for non-commercial purposes is hereby granted *
- * without fee, provided that the above copyright notice appears in all *
- * copies and that both the copyright notice and this permission notice *
- * appear in the supporting documentation. The authors make no claims *
- * about the suitability of this software for any purpose. It is *
- * provided "as is" without express or implied warranty. *
- **************************************************************************/
-
-/* $Id$ */
-
-///////////////////////////////////////////////////////////////////////////////
-// //
-// TRD calibration class for position parameters of chambers //
-// //
-///////////////////////////////////////////////////////////////////////////////
-
-#include "AliTRDCalChamberPos.h"
-
-ClassImp(AliTRDCalChamberPos)
-
-//_____________________________________________________________________________
-AliTRDCalChamberPos::AliTRDCalChamberPos():TNamed()
-{
- //
- // AliTRDCalChamberPos default constructor
- //
-
- for (Int_t idet = 0; idet < kNdet; idet++) {
- for (Int_t i = 0; i < 3; ++i) {
- fChamberPos[idet][i] = 0;
- fChamberRot[idet][i] = 0;
- }
- }
-}
-
-//_____________________________________________________________________________
-AliTRDCalChamberPos::AliTRDCalChamberPos(const Text_t *name, const Text_t *title)
- :TNamed(name,title)
-{
- //
- // AliTRDCalChamberPos constructor
- //
-
- for (Int_t idet = 0; idet < kNdet; idet++) {
- for (Int_t i = 0; i < 3; ++i) {
- fChamberPos[idet][i] = 0;
- fChamberRot[idet][i] = 0;
- }
- }
-}
-
+++ /dev/null
-#ifndef AliTRDCALCHAMBERPOS_H
-#define AliTRDCALCHAMBERPOS_H
-/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice */
-
-/* $Id$ */
-
-///////////////////////////////////////////////////////////////////////////////
-// //
-// TRD calibration class for position parameters chambers //
-// //
-///////////////////////////////////////////////////////////////////////////////
-
-#include "TNamed.h"
-
-class AliTRDCalChamberPos : public TNamed {
- public:
- enum { kNdet = 540 };
-
- AliTRDCalChamberPos();
- AliTRDCalChamberPos(const Text_t* name, const Text_t* title);
-
- const Float_t* GetChamberPos(Int_t det) const { return fChamberPos[det]; };
- const Float_t* GetChamberRot(Int_t det) const { return fChamberRot[det]; };
-
- void SetPos(Int_t det, Float_t x, Float_t y, Float_t z) { fChamberPos[det][0] = x; fChamberPos[det][1] = y; fChamberPos[det][2] = z; };
- void SetPos(Int_t det, Float_t* xyz) { SetPos(det, xyz[0], xyz[1], xyz[2]); };
-
- void SetRot(Int_t det, Float_t x, Float_t y, Float_t z) { fChamberRot[det][0] = x; fChamberRot[det][1] = y; fChamberRot[det][2] = z; };
- void SetRot(Int_t det, Float_t* xyz) { SetRot(det, xyz[0], xyz[1], xyz[2]); };
-
- protected:
- Float_t fChamberPos[kNdet][3]; // Deviations of the positions of the chambers from the ideal position
- Float_t fChamberRot[kNdet][3]; // Rotation of the chambers in respect to the ideal position
-
- ClassDef(AliTRDCalChamberPos,1)
-};
-
-#endif
+++ /dev/null
-/**************************************************************************
- * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * *
- * Author: The ALICE Off-line Project. *
- * Contributors are mentioned in the code where appropriate. *
- * *
- * Permission to use, copy, modify and distribute this software and its *
- * documentation strictly for non-commercial purposes is hereby granted *
- * without fee, provided that the above copyright notice appears in all *
- * copies and that both the copyright notice and this permission notice *
- * appear in the supporting documentation. The authors make no claims *
- * about the suitability of this software for any purpose. It is *
- * provided "as is" without express or implied warranty. *
- **************************************************************************/
-
-/* $Id$ */
-
-///////////////////////////////////////////////////////////////////////////////
-// //
-// TRD calibration class for parameters which saved per detector //
-// //
-///////////////////////////////////////////////////////////////////////////////
-
-#include "AliTRDCalDet.h"
-
-ClassImp(AliTRDCalDet)
-
-//_____________________________________________________________________________
-AliTRDCalDet::AliTRDCalDet():TNamed()
-{
- //
- // AliTRDCalDet default constructor
- //
-
- for (Int_t idet = 0; idet < kNdet; idet++) {
- fData[idet] = 0;
- }
-
-}
-
-//_____________________________________________________________________________
-AliTRDCalDet::AliTRDCalDet(const Text_t *name, const Text_t *title)
- :TNamed(name,title)
-{
- //
- // AliTRDCalDet constructor
- //
-
- for (Int_t idet = 0; idet < kNdet; idet++) {
- fData[idet] = 0;
- }
-
-}
-
-
-//_____________________________________________________________________________
-AliTRDCalDet::AliTRDCalDet(const AliTRDCalDet &c):TNamed(c)
-{
- //
- // AliTRDCalDet copy constructor
- //
-
- ((AliTRDCalDet &) c).Copy(*this);
-
-}
-
-///_____________________________________________________________________________
-AliTRDCalDet::~AliTRDCalDet()
-{
- //
- // AliTRDCalDet destructor
- //
-
-}
-
-//_____________________________________________________________________________
-AliTRDCalDet &AliTRDCalDet::operator=(const AliTRDCalDet &c)
-{
- //
- // Assignment operator
- //
-
- if (this != &c) ((AliTRDCalDet &) c).Copy(*this);
- return *this;
-
-}
-
-//_____________________________________________________________________________
-void AliTRDCalDet::Copy(TObject &c) const
-{
- //
- // Copy function
- //
-
- for (Int_t idet = 0; idet < kNdet; idet++) {
- ((AliTRDCalDet &) c).fData[idet] = fData[idet];
- }
-
- TObject::Copy(c);
-
-}
-
+++ /dev/null
-#ifndef ALITRDCALDET_H
-#define ALITRDCALDET_H
-/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice */
-
-/* $Id$ */
-
-///////////////////////////////////////////////////////////////////////////////
-// //
-// TRD calibration class for parameters which are saved per detector //
-// //
-///////////////////////////////////////////////////////////////////////////////
-
-#include "TNamed.h"
-#include "AliTRDgeometry.h"
-
-class AliTRDCalDet : public TNamed {
-
- public:
-
- enum { kNplan = 6, kNcham = 5, kNsect = 18, kNdet = 540 };
-
- AliTRDCalDet();
- AliTRDCalDet(const Text_t* name, const Text_t* title);
- AliTRDCalDet(const AliTRDCalDet &c);
- virtual ~AliTRDCalDet();
- AliTRDCalDet &operator=(const AliTRDCalDet &c);
-
- virtual void Copy(TObject &c) const;
-
- Float_t GetValue(Int_t d) { return fData[d]; };
- Float_t GetValue(Int_t p, Int_t c, Int_t s) { return fData[AliTRDgeometry::GetDetector(p,c,s)]; };
-
- void SetValue(Int_t d, Float_t value) { fData[d] = value; };
- void SetValue(Int_t p, Int_t c, Int_t s, Float_t value) { fData[AliTRDgeometry::GetDetector(p,c,s)] = value; };
-
- protected:
-
- Float_t fData[kNdet]; //[kNdet] Data
-
- ClassDef(AliTRDCalDet,1) // TRD calibration class for parameters which are saved per detector
-
-};
-
-#endif
+++ /dev/null
-/**************************************************************************
- * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * *
- * Author: The ALICE Off-line Project. *
- * Contributors are mentioned in the code where appropriate. *
- * *
- * Permission to use, copy, modify and distribute this software and its *
- * documentation strictly for non-commercial purposes is hereby granted *
- * without fee, provided that the above copyright notice appears in all *
- * copies and that both the copyright notice and this permission notice *
- * appear in the supporting documentation. The authors make no claims *
- * about the suitability of this software for any purpose. It is *
- * provided "as is" without express or implied warranty. *
- **************************************************************************/
-
-/* $Id$ */
-
-///////////////////////////////////////////////////////////////////////////////
-// //
-// TRD calibration class for global TRD parameters //
-// //
-///////////////////////////////////////////////////////////////////////////////
-
-#include "AliTRDCalGlobals.h"
-
-ClassImp(AliTRDCalGlobals)
-
-//_____________________________________________________________________________
-AliTRDCalGlobals::AliTRDCalGlobals():TNamed()
-{
- //
- // AliTRDCalGlobals default constructor
- //
-
-
- Init();
-}
-
-//_____________________________________________________________________________
-AliTRDCalGlobals::AliTRDCalGlobals(const Text_t *name, const Text_t *title)
- :TNamed(name,title)
-{
- //
- // AliTRDCalGlobals constructor
- //
-
- Init();
-}
-
-//_____________________________________________________________________________
-void AliTRDCalGlobals::Init()
-{
- //
- // default initialization
- //
-
- fSamplingFrequency = 0;
- fNumberOfTimeBins = 0;
-}
+++ /dev/null
-#ifndef AliTRDCALGLOBALS_H
-#define AliTRDCALGLOBALS_H
-/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice */
-
-/* $Id$ */
-
-///////////////////////////////////////////////////////////////////////////////
-// //
-// TRD calibration class for global TRD parameters //
-// //
-///////////////////////////////////////////////////////////////////////////////
-
-#include "TNamed.h"
-
-class AliTRDCalGlobals : public TNamed {
- public:
- AliTRDCalGlobals();
- AliTRDCalGlobals(const Text_t* name, const Text_t* title);
- virtual ~AliTRDCalGlobals() {};
-
- void SetSamplingFrequency(Float_t freq) { fSamplingFrequency = freq; };
- Float_t GetSamplingFrequency() const { return fSamplingFrequency; };
-
- void SetNumberOfTimeBins(Int_t value) { fNumberOfTimeBins = value; };
- Int_t GetNumberOfTimeBins() const { return fNumberOfTimeBins; };
-
- protected:
- Float_t fSamplingFrequency; // Sampling Frequency in MHz
- Int_t fNumberOfTimeBins; // Number of timebins
-
- void Init();
-
- ClassDef(AliTRDCalGlobals,1) // TRD calibration class for global TRD parameters
-};
-
-#endif
+++ /dev/null
-/**************************************************************************
- * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * *
- * Author: The ALICE Off-line Project. *
- * Contributors are mentioned in the code where appropriate. *
- * *
- * Permission to use, copy, modify and distribute this software and its *
- * documentation strictly for non-commercial purposes is hereby granted *
- * without fee, provided that the above copyright notice appears in all *
- * copies and that both the copyright notice and this permission notice *
- * appear in the supporting documentation. The authors make no claims *
- * about the suitability of this software for any purpose. It is *
- * provided "as is" without express or implied warranty. *
- **************************************************************************/
-
-//-----------------------------------------------------------------
-// Class for dE/dx and Time Bin of Max. Cluster for Electrons and
-// pions in TRD.
-// It is instantiated in class AliTRDpidESD for particle identification
-// in TRD
-// Prashant Shukla <shukla@pi0.physi.uni-heidelberg.de>
-//-----------------------------------------------------------------
-
-#include "AliTRDCalPIDLQ.h"
-#include <TH1F.h>
-#include <TFile.h>
-
-ClassImp(AliTRDCalPIDLQ)
-
-Char_t* AliTRDCalPIDLQ::fpartName[AliPID::kSPECIES] = {"electron", "muon", "pion", "kaon", "proton"};
-
-//_________________________________________________________________________
-AliTRDCalPIDLQ::AliTRDCalPIDLQ():
- TNamed(),
- fNMom(0),
- fTrackMomentum(0),
- fMeanChargeRatio(0),
- fNbins(0),
- fBinSize(0),
- fHistdEdx(0),
- fHistTimeBin(0)
-{
- //
- // The Default constructor
- //
-
-}
-
-//_________________________________________________________________________
-AliTRDCalPIDLQ::AliTRDCalPIDLQ(const Text_t *name, const Text_t *title) : TNamed(name, title)
-{
- //
- // The main constructor
- //
-
- Init();
-}
-
-//_____________________________________________________________________________
-AliTRDCalPIDLQ::AliTRDCalPIDLQ(const AliTRDCalPIDLQ &c) : TNamed(c)
-{
- //
- // copy constructor
- //
-
- Init();
-
- ((AliTRDCalPIDLQ &) c).Copy(*this);
-}
-
-//_________________________________________________________________________
-AliTRDCalPIDLQ::~AliTRDCalPIDLQ()
-{
- //
- // Destructor
- //
-
- CleanUp();
-}
-
-//_________________________________________________________________________
-void AliTRDCalPIDLQ::CleanUp()
-{
- if (fHistdEdx)
- {
- delete fHistdEdx;
- fHistdEdx = 0;
- }
-
- if (fHistTimeBin)
- {
- delete fHistTimeBin;
- fHistTimeBin = 0;
- }
-
- if (fTrackMomentum)
- {
- delete[] fTrackMomentum;
- fTrackMomentum = 0;
- }
-}
-
-//_____________________________________________________________________________
-AliTRDCalPIDLQ &AliTRDCalPIDLQ::operator=(const AliTRDCalPIDLQ &c)
-{
- //
- // Assignment operator
- //
-
- if (this != &c) ((AliTRDCalPIDLQ &) c).Copy(*this);
- return *this;
-}
-
-//_____________________________________________________________________________
-void AliTRDCalPIDLQ::Copy(TObject &c) const
-{
- //
- // Copy function
- //
-
- AliTRDCalPIDLQ& target = (AliTRDCalPIDLQ &) c;
-
- target.CleanUp();
-
- target.fNMom = fNMom;
-
- target.fTrackMomentum = new Double_t[fNMom];
- for (Int_t i=0; i<fNMom; ++i)
- target.fTrackMomentum[i] = fTrackMomentum[i];
-
- target.fMeanChargeRatio = fMeanChargeRatio;
-
- target.fNbins = fNbins;
- target.fBinSize = fBinSize;
-
- if (fHistdEdx)
- target.fHistdEdx = (TObjArray*) fHistdEdx->Clone();
-
- if (fHistTimeBin)
- target.fHistTimeBin = (TObjArray*) fHistTimeBin->Clone();
-
- TObject::Copy(c);
-}
-
-//_________________________________________________________________________
-void AliTRDCalPIDLQ::Init()
-{
- fNMom = 11;
-
- fTrackMomentum = new Double_t[fNMom];
- Double_t trackMomentum[11] = {0.6, 0.8, 1, 1.5, 2, 3, 4, 5, 6, 8, 10};
- for (Int_t imom = 0; imom < 11; imom++)
- fTrackMomentum[imom] = trackMomentum[imom];
-
- fHistdEdx = new TObjArray(AliPID::kSPECIES * fNMom);
- fHistdEdx->SetOwner();
- fHistTimeBin = new TObjArray(AliPID::kSPECIES * fNMom);
- fHistTimeBin->SetOwner();
-
- // ADC Gain normalization
- fMeanChargeRatio=1.0;
-
- // Number of bins and bin size
- fNbins = 0;
- fBinSize = 0.;
-}
-
-//_________________________________________________________________________
-Bool_t AliTRDCalPIDLQ::ReadData(Char_t *responseFile)
-{
- //
- // Read the TRD dEdx histograms.
- //
- // Read histogram Root file
- TFile *histFile = new TFile(responseFile, "READ");
- if (!histFile || !histFile->IsOpen()) {
- Error("AliTRDCalPIDLQ", "opening TRD histgram file %s failed", responseFile);
- return kFALSE;
- }
- gROOT->cd();
-
- // Read histograms
- Char_t text[200];
- for (Int_t particle = 0; particle < AliPID::kSPECIES; ++particle)
- {
- Char_t* particleKey = "";
- switch (particle)
- {
- case AliPID::kElectron: particleKey = "EL"; break;
- case AliPID::kPion: particleKey = "PI"; break;
- case AliPID::kMuon: particleKey = "MU"; break;
- case AliPID::kKaon: particleKey = "KA"; break;
- case AliPID::kProton: particleKey = "PR"; break;
- }
-
- for (Int_t imom = 0; imom < fNMom; imom++)
- {
- sprintf(text, "h1dEdx%s%01d", particleKey, imom+1);
- TH1F* hist = (TH1F*)histFile->Get(text)->Clone();
- hist->Scale(1.0/hist->Integral());
- fHistdEdx->AddAt(hist, GetHistID(particle, imom));
-
- if (particle == AliPID::kElectron || particle == AliPID::kPion)
- {
- sprintf(text,"h1MaxTimBin%s%01d", particleKey, imom+1);
- TH1F* hist = (TH1F*)histFile->Get(text)->Clone();
- hist->Scale(1.0/hist->Integral());
- fHistTimeBin->AddAt(hist, GetHistID(particle,imom));
- }
- }
- }
-
- histFile->Close();
- delete histFile;
-
- // Number of bins and bin size
- TH1F* hist = (TH1F*) fHistdEdx->At(GetHistID(AliPID::kPion, 1));
- fNbins = hist->GetNbinsX();
- fBinSize = hist->GetBinWidth(1);
-
- return kTRUE;
-}
-
-//_________________________________________________________________________
-Double_t AliTRDCalPIDLQ::GetMean(Int_t k, Int_t ip) const
-{
- //
- // Gets mean of de/dx dist. of e
- printf("Mean for particle = %s and momentum = %.2f is:\n", fpartName[k], fTrackMomentum[ip]);
- if (k < 0 || k > AliPID::kSPECIES)
- return 0;
-
- return ((TH1F*) fHistdEdx->At(GetHistID(k,ip)))->GetMean();
-}
-
-//_________________________________________________________________________
-Double_t AliTRDCalPIDLQ::GetNormalization(Int_t k, Int_t ip) const
-{
- //
- // Gets Normalization of de/dx dist. of e
-
- printf("Normalization for particle = %s and momentum = %.2f is:\n",fpartName[k], fTrackMomentum[ip]);
- if (k < 0 || k > AliPID::kSPECIES)
- return 0;
-
- return ((TH1F*) fHistdEdx->At(GetHistID(k,ip)))->Integral();
-}
-
-//_________________________________________________________________________
-TH1F* AliTRDCalPIDLQ::GetHistogram(Int_t k, Int_t ip) const
-{
- //
- //
- printf("Histogram for particle = %s and momentum = %.2f is:\n", fpartName[k], fTrackMomentum[ip]);
- if (k < 0 || k > AliPID::kSPECIES)
- return 0;
-
- return (TH1F*) fHistdEdx->At(GetHistID(k,ip));
-}
-
-//_________________________________________________________________________
-Double_t AliTRDCalPIDLQ::GetProbability(Int_t k, Double_t mom, Double_t dedx1) const
-{
- //
- // Gets the Probability of having dedx at a given momentum (mom)
- // and particle type k (0 for e) and (2 for pi)
- // from the precalculated de/dx distributions
-
- Double_t dedx = dedx1/fMeanChargeRatio;
- Int_t iEnBin= ((Int_t) (dedx/fBinSize+1));
- if(iEnBin > fNbins) iEnBin = fNbins;
-
- if (k < 0 || k > AliPID::kSPECIES)
- return 1;
-
- TH1F* hist1 = 0;
- TH1F* hist2 = 0;
- Double_t mom1 = 0;
- Double_t mom2 = 0;
-
- // Lower limit
- if (mom<=fTrackMomentum[0])
- {
- hist1 = (TH1F*) fHistdEdx->At(GetHistID(k,1));
- hist2 = (TH1F*) fHistdEdx->At(GetHistID(k,0));
- mom1 = fTrackMomentum[1];
- mom2 = fTrackMomentum[0];
- }
-
- // Upper Limit
- if(mom>=fTrackMomentum[fNMom-1])
- {
- hist2 = (TH1F*) fHistdEdx->At(GetHistID(k,fNMom-1));
- hist1 = (TH1F*) fHistdEdx->At(GetHistID(k,fNMom-2));
- mom2 = fTrackMomentum[fNMom-1];
- mom1 = fTrackMomentum[fNMom-2];
- }
-
- // In the range
- for (Int_t ip=1; ip<fNMom; ip++)
- {
- if ((fTrackMomentum[ip-1]<= mom) && (mom<fTrackMomentum[ip]))
- {
- hist1 = (TH1F*) fHistdEdx->At(GetHistID(k,ip));
- hist2 = (TH1F*) fHistdEdx->At(GetHistID(k,ip-1));
- mom1 = fTrackMomentum[ip];
- mom2 = fTrackMomentum[ip-1];
- }
- }
-
- Double_t slop = (hist1->GetBinContent(iEnBin) - hist2->GetBinContent(iEnBin)) / (mom1 - mom2);
- return hist2->GetBinContent(iEnBin) + slop * (mom - mom2);
-}
-
-//_________________________________________________________________________
-Double_t AliTRDCalPIDLQ::GetProbabilityT(Int_t k, Double_t mom, Int_t timbin) const
-{
- //
- // Gets the Probability of having timbin at a given momentum (mom)
- // and particle type k (0 for e) and (2 for pi)
- // from the precalculated timbin distributions
-
- if (timbin<=0)
- return 0.;
- Int_t iTBin=timbin+1;
-
- // everything which is not electron counts as pion for time bin
- if (k != AliPID::kElectron)
- k = AliPID::kPion;
-
- if (mom<=fTrackMomentum[0])
- return ((TH1F*) fHistTimeBin->At(GetHistID(k,0)))->GetBinContent(iTBin);
-
- if (mom>=fTrackMomentum[fNMom-1])
- return ((TH1F*) fHistTimeBin->At(GetHistID(k,fNMom-1)))->GetBinContent(iTBin);
-
- for (Int_t ip=1; ip<fNMom; ip++)
- {
- if ((fTrackMomentum[ip-1]<= mom) && (mom<fTrackMomentum[ip]))
- {
- Double_t slop=(((TH1F*) fHistTimeBin->At(GetHistID(k,ip)))->GetBinContent(iTBin) - ((TH1F*) fHistTimeBin->At(GetHistID(k,ip-1)))->GetBinContent(iTBin)) / (fTrackMomentum[ip] - fTrackMomentum[ip-1]);
- // Linear Interpolation
- return ((TH1F*) fHistTimeBin->At(GetHistID(k,ip-1)))->GetBinContent(iTBin) + slop * (mom - fTrackMomentum[ip-1]);
- }
- }
-
- return -1;
-}
+++ /dev/null
-#ifndef ALITRDCALPIDLQ_H
-#define ALITRDCALPIDLQ_H
-/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice */
-/*-----------------------------------------------------------------
- Class for dE/dx and Time Bin of Max. Cluster for Electrons and
- pions in TRD.
- It is instantiated in class AliTRDpidESD for particle identification
- in TRD
- Prashant Shukla <shukla@pi0.physi.uni-heidelberg.de>
- -----------------------------------------------------------------*/
-
-#include <TNamed.h>
-#include <AliPID.h>
-
-class TH1F;
-class TObjArray;
-
-class AliTRDCalPIDLQ : public TNamed {
- public:
- AliTRDCalPIDLQ();
- AliTRDCalPIDLQ(const Text_t *name, const Text_t *title);
-
- AliTRDCalPIDLQ(const AliTRDCalPIDLQ& pd); // Copy Constructor
- virtual ~AliTRDCalPIDLQ(); // Destructor
-
- AliTRDCalPIDLQ &operator=(const AliTRDCalPIDLQ &c);
- virtual void Copy(TObject &c) const;
-
- Double_t GetMeanChargeRatio() const { return fMeanChargeRatio; }
-
- Double_t GetMomentum(Int_t ip) const {return fTrackMomentum[ip];}
- // Gets the momentum for given histogram number ip
- Double_t GetMean(Int_t iType, Int_t ip) const;
- // Particle type is iType and histogram number is ip
- Double_t GetNormalization(Int_t iType, Int_t ip) const;
-
- TH1F* GetHistogram(Int_t iType, Int_t ip) const;
-
- Double_t GetProbability(Int_t iType, Double_t mom, Double_t dedx) const;
- // Gets the Probability of having dedx
- Double_t GetProbabilityT(Int_t iType, Double_t mom, Int_t timbin) const;
- // Gets the Probability of having timbin
- Int_t GetNbins() const {return fNbins;} // Number of Energy bins
- Double_t GetBinSize() const {return fBinSize;} // Size of Energy bin
-
- Bool_t ReadData(Char_t *responseFile); // Read histograms
- // Update the histograms from responseFile
- void SetMeanChargeRatio(Double_t ratio) { fMeanChargeRatio = ratio; }
-
- protected:
- void Init(); // Reset data
- void CleanUp(); // Delete pointers;
- inline Int_t GetHistID(Int_t particle, Int_t mom) const { return particle*fNMom + mom; }
-
- static Char_t *fpartName[AliPID::kSPECIES]; //! Names of particle species
-
- Int_t fNMom; // Number of momenta
- Double_t* fTrackMomentum; //[fNMom] Track momenta for which response functions are available
- Double_t fMeanChargeRatio; // Ratio of mean charge from real Det. to prob. dist.
-
- Int_t fNbins; // Number of Energy bins
- Double_t fBinSize; // Size of Energy bin
-
- TObjArray *fHistdEdx; //-> Prob. of dEdx for 5 particles (e, pi, muon, kaon, proton) and for several momenta
- TObjArray *fHistTimeBin; //-> Prob. of max time bin for 5 particles (e, pi, muon, kaon, proton) and for several momenta
-
- ClassDef(AliTRDCalPIDLQ, 1)
-};
-
-
-#endif
-
+++ /dev/null
-/**************************************************************************
- * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * *
- * Author: The ALICE Off-line Project. *
- * Contributors are mentioned in the code where appropriate. *
- * *
- * Permission to use, copy, modify and distribute this software and its *
- * documentation strictly for non-commercial purposes is hereby granted *
- * without fee, provided that the above copyright notice appears in all *
- * copies and that both the copyright notice and this permission notice *
- * appear in the supporting documentation. The authors make no claims *
- * about the suitability of this software for any purpose. It is *
- * provided "as is" without express or implied warranty. *
- **************************************************************************/
-
-/* $Id$ */
-
-///////////////////////////////////////////////////////////////////////////////
-// //
-// TRD calibration class for parameters which saved per pad //
-// //
-///////////////////////////////////////////////////////////////////////////////
-
-#include "AliTRDCalPad.h"
-#include "AliTRDCalROC.h"
-#include "AliTRDCalDet.h"
-
-ClassImp(AliTRDCalPad)
-
-//_____________________________________________________________________________
-AliTRDCalPad::AliTRDCalPad():TNamed()
-{
- //
- // AliTRDCalPad default constructor
- //
-
- for (Int_t idet = 0; idet < kNdet; idet++) {
- fROC[idet] = 0;
- }
-
-}
-
-//_____________________________________________________________________________
-AliTRDCalPad::AliTRDCalPad(const Text_t *name, const Text_t *title)
- :TNamed(name,title)
-{
- //
- // AliTRDCalPad constructor
- //
-
- for (Int_t isec = 0; isec < kNsect; isec++) {
- for (Int_t ipla = 0; ipla < kNplan; ipla++) {
- for (Int_t icha = 0; icha < kNcham; icha++) {
- Int_t idet = GetDet(ipla,icha,isec);
- fROC[idet] = new AliTRDCalROC(ipla,icha);
- }
- }
- }
-
-}
-
-
-//_____________________________________________________________________________
-AliTRDCalPad::AliTRDCalPad(const AliTRDCalPad &c):TNamed(c)
-{
- //
- // AliTRDCalPad copy constructor
- //
-
- ((AliTRDCalPad &) c).Copy(*this);
-
-}
-
-///_____________________________________________________________________________
-AliTRDCalPad::~AliTRDCalPad()
-{
- //
- // AliTRDCalPad destructor
- //
-
- for (Int_t idet = 0; idet < kNdet; idet++) {
- if (fROC[idet]) {
- delete fROC[idet];
- fROC[idet] = 0;
- }
- }
-
-}
-
-//_____________________________________________________________________________
-AliTRDCalPad &AliTRDCalPad::operator=(const AliTRDCalPad &c)
-{
- //
- // Assignment operator
- //
-
- if (this != &c) ((AliTRDCalPad &) c).Copy(*this);
- return *this;
-
-}
-
-//_____________________________________________________________________________
-void AliTRDCalPad::Copy(TObject &c) const
-{
- //
- // Copy function
- //
-
- for (Int_t idet = 0; idet < kNdet; idet++) {
- if (fROC[idet]) {
- fROC[idet]->Copy(*((AliTRDCalPad &) c).fROC[idet]);
- }
- }
-
- TObject::Copy(c);
-}
-
-//_____________________________________________________________________________
-void AliTRDCalPad::ScaleROCs(AliTRDCalDet* values)
-{
- //
- // Scales ROCs of this class with the values from the class <values>
- // Is used if an AliTRDCalPad object defines local variations of a parameter
- // defined per detector using a AliTRDCalDet class
- //
-
- if (!values)
- return;
-
- for (Int_t idet = 0; idet < kNdet; idet++) {
- if (fROC[idet]) {
- fROC[idet]->Scale(values->GetValue(idet));
- }
- }
-}
-
+++ /dev/null
-#ifndef ALITRDCALPAD_H
-#define ALITRDCALPAD_H
-/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice */
-
-/* $Id$ */
-
-///////////////////////////////////////////////////////////////////////////////
-// //
-// TRD calibration class for parameters which are saved per pad //
-// //
-///////////////////////////////////////////////////////////////////////////////
-
-#include "TNamed.h"
-
-class AliTRDCalROC;
-class AliTRDCalDet;
-
-class AliTRDCalPad : public TNamed {
-
- public:
-
- enum { kNplan = 6, kNcham = 5, kNsect = 18, kNdet = 540 };
-
- AliTRDCalPad();
- AliTRDCalPad(const Text_t* name, const Text_t* title);
- AliTRDCalPad(const AliTRDCalPad &c);
- virtual ~AliTRDCalPad();
- AliTRDCalPad &operator=(const AliTRDCalPad &c);
-
- virtual void Copy(TObject &c) const;
-
- static inline Int_t GetDet(Int_t p, Int_t c, Int_t s) { return p+c*kNplan+s*kNplan*kNcham; };
-
- AliTRDCalROC *GetCalROC(Int_t d) const { return fROC[d]; };
- AliTRDCalROC *GetCalROC(Int_t p, Int_t c, Int_t s) const
- { return fROC[GetDet(p,c,s)]; };
-
- void ScaleROCs(AliTRDCalDet* values);
-
- protected:
-
- AliTRDCalROC *fROC[kNdet]; // Array of ROC objects which contain the values per pad
-
- ClassDef(AliTRDCalPad,1) // TRD calibration class for parameters which are saved per pad
-
-};
-
-#endif
+++ /dev/null
-/**************************************************************************
- * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * *
- * Author: The ALICE Off-line Project. *
- * Contributors are mentioned in the code where appropriate. *
- * *
- * Permission to use, copy, modify and distribute this software and its *
- * documentation strictly for non-commercial purposes is hereby granted *
- * without fee, provided that the above copyright notice appears in all *
- * copies and that both the copyright notice and this permission notice *
- * appear in the supporting documentation. The authors make no claims *
- * about the suitability of this software for any purpose. It is *
- * provided "as is" without express or implied warranty. *
- **************************************************************************/
-
-/* $Id$ */
-
-///////////////////////////////////////////////////////////////////////////////
-// //
-// Calibration base class for a single ROC //
-// Contains one float value per pad //
-// //
-///////////////////////////////////////////////////////////////////////////////
-
-#include "AliTRDCalROC.h"
-
-ClassImp(AliTRDCalROC)
-
-//_____________________________________________________________________________
-AliTRDCalROC::AliTRDCalROC():TObject()
-{
- //
- // Default constructor
- //
-
- fPla = 0;
- fCha = 0;
-
- fNrows = 0;
- fNcols = 0;
-
- fNchannels = 0;
- fData = 0;
-}
-
-//_____________________________________________________________________________
-AliTRDCalROC::AliTRDCalROC(Int_t p, Int_t c):TObject()
-{
- //
- // Constructor that initializes a given pad plane type
- //
-
- fPla = p;
- fCha = c;
-
- fNcols = 144;
-
- //
- // The pad plane parameter
- //
- switch (p) {
- case 0:
- if (c == 2) {
- // L0C0 type
- fNrows = 12;
- }
- else {
- // L0C1 type
- fNrows = 16;
- }
- break;
- case 1:
- if (c == 2) {
- // L1C0 type
- fNrows = 12;
- }
- else {
- // L1C1 type
- fNrows = 16;
- }
- break;
- case 2:
- if (c == 2) {
- // L2C0 type
- fNrows = 12;
- }
- else {
- // L2C1 type
- fNrows = 16;
- }
- break;
- case 3:
- if (c == 2) {
- // L3C0 type
- fNrows = 12;
- }
- else {
- // L3C1 type
- fNrows = 16;
- }
- break;
- case 4:
- if (c == 2) {
- // L4C0 type
- fNrows = 12;
- }
- else {
- // L4C1 type
- fNrows = 16;
- }
- break;
- case 5:
- if (c == 2) {
- // L5C0 type
- fNrows = 12;
- }
- else {
- // L5C1 type
- fNrows = 16;
- }
- break;
- };
-
- fNchannels = fNrows * fNcols;
- if (fNchannels != 0)
- fData = new Float_t[fNchannels];
-}
-
-//_____________________________________________________________________________
-AliTRDCalROC::AliTRDCalROC(const AliTRDCalROC &c):TObject(c)
-{
- //
- // AliTRDCalROC copy constructor
- //
-
- ((AliTRDCalROC &) c).Copy(*this);
-
-}
-
-//_____________________________________________________________________________
-AliTRDCalROC::~AliTRDCalROC()
-{
- //
- // AliTRDCalROC destructor
- //
-
- if (fData) {
- delete [] fData;
- fData = 0;
- }
-}
-
-//_____________________________________________________________________________
-AliTRDCalROC &AliTRDCalROC::operator=(const AliTRDCalROC &c)
-{
- //
- // Assignment operator
- //
-
- if (this != &c) ((AliTRDCalROC &) c).Copy(*this);
- return *this;
-
-}
-
-//_____________________________________________________________________________
-void AliTRDCalROC::Copy(TObject &c) const
-{
- //
- // Copy function
- //
-
- ((AliTRDCalROC &) c).fPla = fPla;
- ((AliTRDCalROC &) c).fCha = fCha;
-
- ((AliTRDCalROC &) c).fNrows = fNrows;
- ((AliTRDCalROC &) c).fNcols = fNcols;
-
- Int_t iBin = 0;
-
- ((AliTRDCalROC &) c).fNchannels = fNchannels;
-
- if (((AliTRDCalROC &) c).fData) delete [] ((AliTRDCalROC &) c).fData;
- ((AliTRDCalROC &) c).fData = new Float_t[fNchannels];
- for (iBin = 0; iBin < fNchannels; iBin++) {
- ((AliTRDCalROC &) c).fData[iBin] = fData[iBin];
- }
-
- TObject::Copy(c);
-
-}
-
-//_____________________________________________________________________________
-void AliTRDCalROC::Scale(Float_t value)
-{
- //
- // Scales all values of this ROC with the provided parameter. Is used if ROC defines
- // local variations of a global (or per detector defined) parameter
- //
-
- for (Int_t iBin = 0; iBin < fNchannels; iBin++) {
- fData[iBin] *= value;
- }
-}
+++ /dev/null
-#ifndef ALITRDCALROC_H
-#define ALITRDCALROC_H
-/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice */
-
-/* $Id: AliTRDCalROC.h,v */
-
-//////////////////////////////////////////////////
-// //
-// TRD calibration base class for one ROC //
-// //
-//////////////////////////////////////////////////
-
-#include <TObject.h>
-
-//_____________________________________________________________________________
-class AliTRDCalROC : public TObject {
-
- public:
-
- AliTRDCalROC();
- AliTRDCalROC(Int_t p, Int_t c);
- AliTRDCalROC(const AliTRDCalROC &c);
- virtual ~AliTRDCalROC();
- AliTRDCalROC &operator=(const AliTRDCalROC &c);
- virtual void Copy(TObject &c) const;
-
- Int_t GetNrows() const { return fNrows; };
- Int_t GetNcols() const { return fNcols; };
-
- Int_t GetChannel(Int_t c, Int_t r) { return r+c*fNrows; };
- Int_t GetNchannels() const { return fNchannels; };
- Float_t GetValue(Int_t ich) const { return fData[ich]; };
- Float_t GetValue(Int_t col, Int_t row) { return fData[GetChannel(col,row)]; };
-
- void SetValue(Int_t ich, Float_t vd) { fData[ich] = vd; };
- void SetValue(Int_t col, Int_t row, Float_t vd)
- { fData[GetChannel(col,row)] = vd; };
-
- void Scale(Float_t value);
-
- protected:
-
- Int_t fPla; // Plane number
- Int_t fCha; // Chamber number
-
- Int_t fNrows; // Number of rows
- Int_t fNcols; // Number of columns
-
- Int_t fNchannels; // Number of channels
- Float_t *fData; //[fNchannels] Data
-
- ClassDef(AliTRDCalROC,1) // TRD ROC calibration class
-
-};
-
-#endif
+++ /dev/null
-/**************************************************************************
- * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * *
- * Author: The ALICE Off-line Project. *
- * Contributors are mentioned in the code where appropriate. *
- * *
- * Permission to use, copy, modify and distribute this software and its *
- * documentation strictly for non-commercial purposes is hereby granted *
- * without fee, provided that the above copyright notice appears in all *
- * copies and that both the copyright notice and this permission notice *
- * appear in the supporting documentation. The authors make no claims *
- * about the suitability of this software for any purpose. It is *
- * provided "as is" without express or implied warranty. *
- **************************************************************************/
-
-/* $Id$ */
-
-///////////////////////////////////////////////////////////////////////////////
-// //
-// TRD calibration class for position parameters of the stacks //
-// //
-///////////////////////////////////////////////////////////////////////////////
-
-#include "AliTRDCalStackPos.h"
-
-ClassImp(AliTRDCalStackPos)
-
-//_____________________________________________________________________________
-AliTRDCalStackPos::AliTRDCalStackPos():TNamed()
-{
- //
- // AliTRDCalStackPos default constructor
- //
-
- for (Int_t idet = 0; idet < kNstacks; idet++) {
- for (Int_t i = 0; i < 3; ++i) {
- fStackPos[idet][i] = 0;
- fStackRot[idet][i] = 0;
- }
- }
-}
-
-//_____________________________________________________________________________
-AliTRDCalStackPos::AliTRDCalStackPos(const Text_t *name, const Text_t *title)
- :TNamed(name,title)
-{
- //
- // AliTRDCalStackPos constructor
- //
-
- for (Int_t idet = 0; idet < kNstacks; idet++) {
- for (Int_t i = 0; i < 3; ++i) {
- fStackPos[idet][i] = 0;
- fStackRot[idet][i] = 0;
- }
- }
-}
-
+++ /dev/null
-#ifndef AliTRDCALSTACKPOS_H
-#define AliTRDCALSTACKPOS_H
-/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice */
-
-/* $Id$ */
-
-///////////////////////////////////////////////////////////////////////////////
-// //
-// TRD calibration class for position parameters of the stacks and chambers //
-// //
-///////////////////////////////////////////////////////////////////////////////
-
-#include "TNamed.h"
-
-class AliTRDCalStackPos : public TNamed {
- public:
- enum { kNdet = 540, kNstacks = 90, kNcham = 5, kNsect = 18 };
-
- AliTRDCalStackPos();
- AliTRDCalStackPos(const Text_t* name, const Text_t* title);
-
- const Float_t* GetStackPos(Int_t chamber, Int_t sector) const { return fStackPos[GetStackNumber(chamber, sector)]; };
- const Float_t* GetStackRot(Int_t chamber, Int_t sector) const { return fStackPos[GetStackNumber(chamber, sector)]; };
-
- inline void SetPos(Int_t chamber, Int_t sector, Float_t x, Float_t y, Float_t z);
- void SetPos(Int_t chamber, Int_t sector, Float_t* xyz) { SetPos(chamber, sector, xyz[0], xyz[1], xyz[2]); };
-
- inline void SetRot(Int_t chamber, Int_t sector, Float_t x, Float_t y, Float_t z);
- void SetRot(Int_t chamber, Int_t sector, Float_t* xyz) { SetRot(chamber, sector, xyz[0], xyz[1], xyz[2]); };
-
- protected:
- static Int_t GetStackNumber(Int_t chamber, Int_t sector) { return chamber+sector*kNcham; };
-
- Float_t fStackPos[kNstacks][3]; // Deviations of the positions of the stacks from the ideal position
- Float_t fStackRot[kNstacks][3]; // Rotation of the stacks in respect to the ideal position
-
- ClassDef(AliTRDCalStackPos,1)
-};
-
-void AliTRDCalStackPos::SetPos(Int_t chamber, Int_t sector, Float_t x, Float_t y, Float_t z)
-{
- Int_t stack = GetStackNumber(chamber, sector);
- fStackPos[stack][0] = x;
- fStackPos[stack][1] = y;
- fStackPos[stack][2] = z;
-}
-
-void AliTRDCalStackPos::SetRot(Int_t chamber, Int_t sector, Float_t x, Float_t y, Float_t z)
-{
- Int_t stack = GetStackNumber(chamber, sector);
- fStackRot[stack][0] = x;
- fStackRot[stack][1] = y;
- fStackRot[stack][2] = z;
-}
-
-#endif
+++ /dev/null
-#if !defined( __CINT__) || defined(__MAKECINT__)
-
-#include <iostream>
-
-#include <AliCDBManager.h>
-#include <AliCDBStorage.h>
-#include <AliCDBEntry.h>
-#include <AliCDBMetaData.h>
-
-#include "AliTRDgeometry.h"
-
-#include "AliTRDCalROC.h"
-#include "AliTRDCalChamberPos.h"
-#include "AliTRDCalStackPos.h"
-#include "AliTRDCalPad.h"
-#include "AliTRDCalDet.h"
-#include "AliTRDCalGlobals.h"
-
-#endif
-
-// run number for the dummy file
-const Int_t gkDummyRun = 0;
-AliCDBStorage* gStorLoc = 0;
-
-TObject* CreatePadObject(const char* shortName, const char* description, Float_t value)
-{
- AliTRDCalPad *calPad = new AliTRDCalPad(shortName, description);
- for (Int_t det=0; det<AliTRDgeometry::kNdet; ++det)
- {
- AliTRDCalROC *calROC = calPad->GetCalROC(det);
- for (Int_t channel=0; channel<calROC->GetNchannels(); ++channel)
- calROC->SetValue(channel, value);
- }
- return calPad;
-}
-
-TObject* CreateDetObject(const char* shortName, const char* description, Float_t value)
-{
- AliTRDCalDet *object = new AliTRDCalDet(shortName, description);
- for (Int_t det=0; det<AliTRDgeometry::kNdet; ++det)
- object->SetValue(det, value);
- return object;
-}
-
-TObject* CreateGlobalsObject()
-{
- AliTRDCalGlobals *object = new AliTRDCalGlobals("Globals", "Global TRD calibration parameters");
-
- object->SetSamplingFrequency(10.0);
- object->SetNumberOfTimeBins(22);
-
- return object;
-}
-
-TObject* CreateChamberObject()
-{
- AliTRDCalChamberPos *object = new AliTRDCalChamberPos("Chamber", "TRD chamber positions");
-
- for (Int_t det=0; det<AliTRDgeometry::kNdet; ++det)
- {
- object->SetPos(det, 0, 0, 0);
- object->SetRot(det, 0, 0, 0);
- }
-
- return object;
-}
-
-TObject* CreateStackObject()
-{
- AliTRDCalStackPos *object = new AliTRDCalStackPos("Stack", "TRD stack positions");
-
- for (Int_t sect=0; sect<AliTRDgeometry::kNsect; ++sect)
- {
- for (Int_t chamber=0; chamber<AliTRDgeometry::kNcham; ++chamber)
- {
- object->SetPos(chamber, sect, 0, 0, 0);
- object->SetRot(chamber, sect, 0, 0, 0);
- }
- }
-
- return object;
-}
-
-TObject* CreatePRFWidthObject()
-{
- AliTRDCalPad *calPad = new AliTRDCalPad("PRFWidth","PRFWidth");
- for (Int_t plane=0; plane<AliTRDgeometry::kNplan; ++plane)
- {
- Float_t value = 0;
- switch (plane)
- {
- case 0: value = 0.515; break;
- case 1: value = 0.502; break;
- case 2: value = 0.491; break;
- case 3: value = 0.481; break;
- case 4: value = 0.471; break;
- case 5: value = 0.463; break;
- default: cout << "CreatePRFWidthObject: UNEXPECTED" << endl; return 0;
- }
- for (Int_t chamber=0; chamber<AliTRDgeometry::kNcham; ++chamber)
- {
- for (Int_t sector=0; sector<AliTRDgeometry::kNsect; ++sector)
- {
- AliTRDCalROC *calROC = calPad->GetCalROC(plane, chamber, sector);
- for (Int_t channel=0; channel<calROC->GetNchannels(); ++channel)
- calROC->SetValue(channel, value);
- }
- }
- }
-
- return calPad;
-}
-
-AliTRDCalPIDLQ* CreatePIDLQObject()
-{
- AliTRDCalPIDLQ* pid = new AliTRDCalPIDLQ("pidobject", "pidobject");
- pid->ReadData("$ALICE_ROOT/TRD/TRDdEdxHistogramsV1.root");
- pid->SetMeanChargeRatio(1.0); // The factor is the ratio of Mean of pi charge dist.
- // for the New TRD code divided by the Mean of pi charge
- // dist. given in AliTRDCalPIDLQ object
-
- return pid;
-}
-
-AliCDBMetaData* CreateMetaObject(const char* objectClassName)
-{
- AliCDBMetaData *md1= new AliCDBMetaData();
- md1->SetObjectClassName(objectClassName);
- md1->SetResponsible("Jan Fiete Grosse-Oetringhaus");
- md1->SetBeamPeriod(1);
- md1->SetAliRootVersion("05-06-00"); //root version
- md1->SetComment("The dummy values in this calibration file are for testing only");
-
- return md1;
-}
-
-void StoreObject(const char* cdbPath, TObject* object, AliCDBMetaData* metaData)
-{
- AliCDBId id1(cdbPath, gkDummyRun, gkDummyRun);
- gStorLoc->Put(object, id1, metaData);
-}
-
-
-void AliTRDCreateDummyCDB()
-{
- cout << endl << "TRD :: Creating dummy CDB with event number " << gkDummyRun << endl;
-
- AliCDBManager *man = AliCDBManager::Instance();
- gStorLoc = man->GetStorage("local://$ALICE_ROOT");
- if (!gStorLoc)
- return;
-
- TObject* obj = 0;
- AliCDBMetaData* metaData = 0;
-
- metaData = CreateMetaObject("AliTRDCalPad");
-
- obj = CreatePadObject("LocalVdrift","TRD drift velocities (local variations)", 1);
- StoreObject("TRD/Calib/LocalVdrift", obj, metaData);
-
- obj = CreatePadObject("LocalT0","T0 (local variations)", 1);
- StoreObject("TRD/Calib/LocalT0", obj, metaData);
-
- obj = CreatePadObject("GainFactor","GainFactor", 1);
- StoreObject("TRD/Calib/GainFactor", obj, metaData);
-
- obj = CreatePRFWidthObject();
- StoreObject("TRD/Calib/PRFWidth", obj, metaData);
-
- metaData = CreateMetaObject("AliTRDCalDet");
-
- obj = CreateDetObject("ChamberVdrift","TRD drift velocities (detector value)", 1.5);
- StoreObject("TRD/Calib/ChamberVdrift", obj, metaData);
-
- obj = CreateDetObject("ChamberT0","T0 (detector value)", 0);
- StoreObject("TRD/Calib/ChamberT0", obj, metaData);
-
- metaData = CreateMetaObject("AliTRDCalGlobals");
- obj = CreateGlobalsObject();
- StoreObject("TRD/Calib/Globals", obj, metaData);
-
- metaData = CreateMetaObject("AliTRDCalChamberPos");
- obj = CreateChamberObject();
- StoreObject("TRD/Calib/Chamber", obj, metaData);
-
- metaData = CreateMetaObject("AliTRDCalStackPos");
- obj = CreateStackObject();
- StoreObject("TRD/Calib/Stack", obj, metaData);
-
- metaData = CreateMetaObject("AliTRDCalPIDLQ");
- obj = CreatePIDLQObject();
- StoreObject("TRD/Calib/PIDLQ", obj, metaData);
-}
+++ /dev/null
-#if !defined( __CINT__) || defined(__MAKECINT__)
-
-#include <iostream>
-
-#include "AliTRDcalibDB.h"
-#include <TStopwatch.h>
-
-#endif
-
-#define BENCHMARK(code, comment) \
- timer.Reset(); timer.Start(); \
- for (Int_t i=0; i<NUMBER; ++i) { \
- code \
- } \
- timer.Stop(); \
- cerr << "Tested " << NUMBER << " times: " << comment << ". Time/call: " << timer.CpuTime() / NUMBER << endl; \
- timer.Print();
-
-#define NUMBER 100000
-
-void AliTRDbenchmarkCalibDB()
-{
- TStopwatch timer;
- AliTRDcalibDB* calib = AliTRDcalibDB::Instance();
- if (!calib)
- {
- cerr << "calibDB singleton has already been terminated." << endl;
- return;
- }
-
- Float_t xyz[3];
-
- calib->SetRun(1);
- calib->SetRun(0);
- calib->GetNumberOfTimeBins();
-
- BENCHMARK(calib->GetNumberOfTimeBins();, "GetNumberOfTimeBins");
- BENCHMARK(calib->GetChamberPos(1, xyz);, "GetChamberPos");
- BENCHMARK(calib->GetVdrift(1, 1, 1);, "GetVdrift");
-
- #undef NUMBER
- #define NUMBER 10000
- BENCHMARK(calib->SetRun(1); calib->SetRun(0); calib->GetNumberOfTimeBins();, "GetNumberOfTimeBins with invalidating");
- BENCHMARK(calib->SetRun(1); calib->SetRun(0); calib->GetChamberPos(1, xyz);, "GetChamberPos with invalidating");
- #undef NUMBER
- #define NUMBER 200
- BENCHMARK(calib->SetRun(1); calib->SetRun(0); calib->GetVdrift(1, 1, 1);, "GetVdrift with invalidating");
-
- AliTRDcalibDB::Terminate();
-}
+++ /dev/null
-/**************************************************************************
- * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * *
- * Author: The ALICE Off-line Project. *
- * Contributors are mentioned in the code where appropriate. *
- * *
- * Permission to use, copy, modify and distribute this software and its *
- * documentation strictly for non-commercial purposes is hereby granted *
- * without fee, provided that the above copyright notice appears in all *
- * copies and that both the copyright notice and this permission notice *
- * appear in the supporting documentation. The authors make no claims *
- * about the suitability of this software for any purpose. It is *
- * provided "as is" without express or implied warranty. *
- **************************************************************************/
-
-/* $Id$ */
-
-///////////////////////////////////////////////////////////////////////////////
-// //
-// TRD parameter class //
-// //
-///////////////////////////////////////////////////////////////////////////////
-
-// WARNING: This class is obsolete. As soon as all function calls are replaced, the class will be removed.
-
-#include <iostream>
-
-#include "AliRun.h"
-
-#include "AliTRDparameter.h"
-
-ClassImp(AliTRDparameter)
-
-//_____________________________________________________________________________
-AliTRDparameter::AliTRDparameter():TNamed()
-{
- //
- // AliTRDparameter default constructor
- //
-
- fDriftVelocity = 0.0;
-
-}
-
-//_____________________________________________________________________________
-AliTRDparameter::AliTRDparameter(const Text_t *name, const Text_t *title)
- :TNamed(name,title)
-{
- //
- // AliTRDparameter constructor
- //
-
- fDriftVelocity = 0.0;
-
- Init();
-
-}
-
-
-//_____________________________________________________________________________
-AliTRDparameter::AliTRDparameter(const AliTRDparameter &p):TNamed(p)
-{
- //
- // AliTRDparameter copy constructor
- //
-
- ((AliTRDparameter &) p).Copy(*this);
-
-}
-
-///_____________________________________________________________________________
-AliTRDparameter::~AliTRDparameter()
-{
- //
- // AliTRDparameter destructor
- //
-}
-
-//_____________________________________________________________________________
-AliTRDparameter &AliTRDparameter::operator=(const AliTRDparameter &p)
-{
- //
- // Assignment operator
- //
-
- if (this != &p) ((AliTRDparameter &) p).Copy(*this);
- return *this;
-
-}
-
-//_____________________________________________________________________________
-void AliTRDparameter::Copy(TObject &p) const
-{
- //
- // Copy function
- //
-
- /*((AliTRDparameter &) p).fDiffusionT = fDiffusionT;
- ((AliTRDparameter &) p).fDiffusionL = fDiffusionL;*/
- //((AliTRDparameter &) p).fOmegaTau = fOmegaTau;
- //((AliTRDparameter &) p).fLorentzFactor = fLorentzFactor;
- ((AliTRDparameter &) p).fDriftVelocity = fDriftVelocity;
-
-
- /*((AliTRDparameter &) p).fTimeStructOn = fTimeStructOn;
- if (((AliTRDparameter &) p).fTimeStruct1)
- delete [] ((AliTRDparameter &) p).fTimeStruct1;
- ((AliTRDparameter &) p).fTimeStruct1 = new Float_t[38*11];
- for (Int_t i = 0; i < 38*11; i++) {
- ((AliTRDparameter &) p).fTimeStruct1[i] = fTimeStruct1[i];
- }
- if (((AliTRDparameter &) p).fTimeStruct2)
- delete [] ((AliTRDparameter &) p).fTimeStruct2;
- ((AliTRDparameter &) p).fTimeStruct2 = new Float_t[38*11];
- for (Int_t i = 0; i < 38*11; i++) {
- ((AliTRDparameter &) p).fTimeStruct2[i] = fTimeStruct2[i];
- }*/
-
-}
-
-//_____________________________________________________________________________
-void AliTRDparameter::Init()
-{
- //
- // Initializes the parameter
- //
-
-
-
- //
- // ----------------------------------------------------------------------------
- // The digitization parameters
- // ----------------------------------------------------------------------------
- //
-
- // The drift velocity (in drift region) and the time structure of the
- // drift cells. Default is 1.5 cm/mus
- fDriftVelocity = 1.5;
-
- // Additional time bins before and after the drift region.
- // Default is to only sample the drift region
- fTimeMax = 22;
- SetExpandTimeBin(0,0);
-
- //
- // ----------------------------------------------------------------------------
- // The clusterization parameter
- // ----------------------------------------------------------------------------
- //
-
- ReInit();
-
-}
-
-//_____________________________________________________________________________
-void AliTRDparameter::ReInit()
-{
- //
- // Reinitializes the parameter class after a change
- //
-}
-
-
-//_____________________________________________________________________________
-void AliTRDparameter::PrintDriftVelocity()
-{
- //
- // Prints the used drift velocity
- //
-
- printf("<AliTRDparameter::PrintDriftVelocity> Driftvelocity = %.3f\n"
- ,fDriftVelocity);
-
-}
+++ /dev/null
-#ifndef ALITRDPARAMETER_H
-#define ALITRDPARAMETER_H
-/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice */
-
-/* $Id$ */
-
-///////////////////////////////////////////////////////////////////////////////
-// //
-// TRD parameter class //
-// //
-///////////////////////////////////////////////////////////////////////////////
-
-// WARNING: This class is obsolete. As soon as all function calls are replaced, the class will be removed.
-
-#include "TNamed.h"
-
-class TObjArray;
-class AliTRDgeometry;
-class AliTRDpadPlane;
-
-class AliTRDparameter : public TNamed {
-
- public:
-
- enum { kNplan = 6, kNcham = 5, kNsect = 18, kNdet = 540 };
-
- AliTRDparameter();
- AliTRDparameter(const Text_t* name, const Text_t* title);
- AliTRDparameter(const AliTRDparameter &p);
- virtual ~AliTRDparameter();
- AliTRDparameter &operator=(const AliTRDparameter &p);
-
- virtual void Copy(TObject &p) const;
- virtual void Init();
- virtual void ReInit();
-
- virtual void SetExpandTimeBin(Int_t nbefore, Int_t nafter)
- { fTimeBefore = nbefore;
- fTimeAfter = nafter; };
-
-
-
- Int_t GetTimeMax() const { return fTimeMax; };
- Int_t GetTimeBefore() const { return fTimeBefore; };
-
- Float_t GetDriftVelocity() const { return fDriftVelocity; };
-
-
-
-
- void PrintDriftVelocity();
-
-
- protected:
-
- Int_t fTimeMax;
- Int_t fTimeBefore; // Number of timebins before the drift region
- Int_t fTimeAfter; // Number of timebins after the drift region
-
-
- Float_t fDriftVelocity; // Drift velocity (cm / mus)
-
-
-
- private:
-
-
- ClassDef(AliTRDparameter,7) // TRD parameter class
-
-};
-
-#endif