///////////////////////////////////////////////////////////////////////////////
// //
-// //
// TRD trigger parameters class //
// //
+// Request an instance with AliTRDCommonParam::Instance() //
+// Then request the needed values //
+// //
+// Author: //
+// Bogdan Vulpescu //
// //
///////////////////////////////////////////////////////////////////////////////
ClassImp(AliTRDtrigParam)
-//_____________________________________________________________________________
-AliTRDtrigParam::AliTRDtrigParam():TNamed()
+AliTRDtrigParam *AliTRDtrigParam::fgInstance = 0;
+Bool_t AliTRDtrigParam::fgTerminated = kFALSE;
+
+//_ singleton implementation __________________________________________________
+AliTRDtrigParam *AliTRDtrigParam::Instance()
{
//
- // AliTRDtrigParam default constructor
+ // Singleton implementation
+ // Returns an instance of this class, it is created if neccessary
//
- fDebug = 0;
- fTime1 = 0;
- fTime2 = 0;
- fClusThr = 0;
- fPadThr = 0;
- fSum10 = 0;
- fSum12 = 0;
- fTCOn = 0;
- fTCnexp = 0;
- fFilterType = 0;
- fR1 = 0;
- fR2 = 0;
- fC1 = 0;
- fC2 = 0;
- fPedestal = 0;
- fDeltaY = 0.0;
- fDeltaS = 0.0;
- fXprojPlane = 0.0;
- fField = 0.0;
- fLtuPtCut = 0.0;
- fGtuPtCut = 0.0;
- fHighPt = 0.0;
-
- fNPartJetLow = 0;
- fNPartJetHigh = 0;
- fJetLowPt = 0.0;
- fJetHighPt = 0.0;
+ if (fgTerminated != kFALSE) {
+ return 0;
+ }
+
+ if (fgInstance == 0) {
+ fgInstance = new AliTRDtrigParam();
+ }
+
+ return fgInstance;
}
//_____________________________________________________________________________
-AliTRDtrigParam::AliTRDtrigParam(const Text_t *name, const Text_t *title)
- :TNamed(name,title)
+void AliTRDtrigParam::Terminate()
{
//
- // AliTRDtrigParam constructor
- //
-
- fDebug = 0;
- fTime1 = 2;
- fTime2 = 22;
- fClusThr = 10.0;
- fPadThr = 1;
- fSum10 = 2;
- fSum12 = 10;
- fTCOn = 1;
- fTCnexp = 1;
- fFilterType = 0;
- fR1 = 0.0;
- fR2 = 0.0;
- fC1 = 0.0;
- fC2 = 0.0;
- fPedestal = 0.0;
- fDeltaY = 2.0;
- fDeltaS = 2.5;
- fXprojPlane = 0.0;
- fField = 0.0;
- fLtuPtCut = 2.3;
- fGtuPtCut = 3.0;
- fHighPt = 10.0;
-
- fNPartJetLow = 5;
- fNPartJetHigh = 3;
- fJetLowPt = 3.0;
- fJetHighPt = 5.0;
+ // Singleton implementation
+ // Deletes the instance of this class and sets the terminated flag,
+ // instances cannot be requested anymore
+ // This function can be called several times.
+ //
- // PASA.v.4
+ fgTerminated = kTRUE;
- if (fTCnexp == 1) {
- fR1 = 1.1563;
- fR2 = 0.1299;
- fC1 = 0.0657;
- fC2 = 0.0000;
+ if (fgInstance != 0) {
+ delete fgInstance;
+ fgInstance = 0;
}
- if (fTCnexp == 2) {
- fR1 = 1.1563;
- fR2 = 0.1299;
- fC1 = 0.1141;
- fC2 = 0.6241;
+}
+
+//_____________________________________________________________________________
+AliTRDtrigParam::AliTRDtrigParam()
+ :TObject()
+ ,fTime1(2)
+ ,fTime2(22)
+ ,fClusThr(10.0)
+ ,fPadThr(1)
+ ,fSum10(2)
+ ,fSum12(10)
+ ,fTCOn(1)
+ ,fTCnexp(1)
+ ,fFilterType(0)
+ ,fR1(0)
+ ,fR2(0)
+ ,fC1(0)
+ ,fC2(0)
+ ,fPedestal(0)
+ ,fADCnoise(0)
+ ,fDeltaY(2.0)
+ ,fDeltaS(2.5)
+ ,fXprojPlane(0)
+ ,fLtuPtCut(2.3)
+ ,fGtuPtCut(3.0)
+ ,fHighPt(10.0)
+ ,fNPartJetLow(5)
+ ,fNPartJetHigh(3)
+ ,fJetLowPt(3.0)
+ ,fJetHighPt(5.0)
+{
+ //
+ // AliTRDtrigParam default constructor
+ //
+
+ // PASA.v.4
+ if (fTCnexp == 1) {
+ fR1 = 1.1563;
+ fR2 = 0.1299;
+ fC1 = 0.0657;
+ fC2 = 0.0000;
}
+ else if (fTCnexp == 2) {
+ fR1 = 1.1563;
+ fR2 = 0.1299;
+ fC1 = 0.1141;
+ fC2 = 0.6241;
+ }
+
+ Init();
}
//_____________________________________________________________________________
-AliTRDtrigParam::AliTRDtrigParam(const AliTRDtrigParam &p):TNamed(p)
+AliTRDtrigParam::AliTRDtrigParam(const AliTRDtrigParam &p)
+ :TObject(p)
+ ,fTime1(p.fTime1)
+ ,fTime2(p.fTime2)
+ ,fClusThr(p.fClusThr)
+ ,fPadThr(p.fPadThr)
+ ,fSum10(p.fSum10)
+ ,fSum12(p.fSum12)
+ ,fTCOn(p.fTCOn)
+ ,fTCnexp(p.fTCnexp)
+ ,fFilterType(p.fFilterType)
+ ,fR1(p.fR1)
+ ,fR2(p.fR2)
+ ,fC1(p.fC1)
+ ,fC2(p.fC2)
+ ,fPedestal(p.fPedestal)
+ ,fADCnoise(p.fADCnoise)
+ ,fDeltaY(p.fDeltaY)
+ ,fDeltaS(p.fDeltaS)
+ ,fXprojPlane(p.fXprojPlane)
+ ,fLtuPtCut(p.fLtuPtCut)
+ ,fGtuPtCut(p.fGtuPtCut)
+ ,fHighPt(p.fHighPt)
+ ,fNPartJetLow(p.fNPartJetLow)
+ ,fNPartJetHigh(p.fNPartJetHigh)
+ ,fJetLowPt(p.fJetLowPt)
+ ,fJetHighPt(p.fJetHighPt)
{
//
// AliTRDtrigParam copy constructor
//
- ((AliTRDtrigParam &) p).Copy(*this);
-
}
//_____________________________________________________________________________
//
// AliTRDtrigParam destructor
//
+
}
//_____________________________________________________________________________
// Copy function
//
- ((AliTRDtrigParam &) p).fDebug = fDebug;
- ((AliTRDtrigParam &) p).fTime1 = fTime1;
- ((AliTRDtrigParam &) p).fTime2 = fTime2;
- ((AliTRDtrigParam &) p).fClusThr = fClusThr;
- ((AliTRDtrigParam &) p).fPadThr = fPadThr;
- ((AliTRDtrigParam &) p).fSum10 = fSum10;
- ((AliTRDtrigParam &) p).fSum12 = fSum12;
- ((AliTRDtrigParam &) p).fTCOn = fTCOn;
- ((AliTRDtrigParam &) p).fTCnexp = fTCnexp;
- ((AliTRDtrigParam &) p).fFilterType = fFilterType;
- ((AliTRDtrigParam &) p).fR1 = fR1;
- ((AliTRDtrigParam &) p).fR2 = fR2;
- ((AliTRDtrigParam &) p).fC1 = fC1;
- ((AliTRDtrigParam &) p).fC2 = fC2;
- ((AliTRDtrigParam &) p).fPedestal = fPedestal;
- ((AliTRDtrigParam &) p).fADCnoise = fADCnoise;
- ((AliTRDtrigParam &) p).fDeltaY = fDeltaY;
- ((AliTRDtrigParam &) p).fDeltaS = fDeltaS;
- ((AliTRDtrigParam &) p).fXprojPlane = fXprojPlane;
- ((AliTRDtrigParam &) p).fField = fField;
- ((AliTRDtrigParam &) p).fLtuPtCut = fLtuPtCut;
- ((AliTRDtrigParam &) p).fGtuPtCut = fGtuPtCut;
- ((AliTRDtrigParam &) p).fHighPt = fHighPt;
+ ((AliTRDtrigParam &) p).fTime1 = fTime1;
+ ((AliTRDtrigParam &) p).fTime2 = fTime2;
+ ((AliTRDtrigParam &) p).fClusThr = fClusThr;
+ ((AliTRDtrigParam &) p).fPadThr = fPadThr;
+ ((AliTRDtrigParam &) p).fSum10 = fSum10;
+ ((AliTRDtrigParam &) p).fSum12 = fSum12;
+ ((AliTRDtrigParam &) p).fTCOn = fTCOn;
+ ((AliTRDtrigParam &) p).fTCnexp = fTCnexp;
+ ((AliTRDtrigParam &) p).fFilterType = fFilterType;
+ ((AliTRDtrigParam &) p).fR1 = fR1;
+ ((AliTRDtrigParam &) p).fR2 = fR2;
+ ((AliTRDtrigParam &) p).fC1 = fC1;
+ ((AliTRDtrigParam &) p).fC2 = fC2;
+ ((AliTRDtrigParam &) p).fPedestal = fPedestal;
+ ((AliTRDtrigParam &) p).fADCnoise = fADCnoise;
+ ((AliTRDtrigParam &) p).fDeltaY = fDeltaY;
+ ((AliTRDtrigParam &) p).fDeltaS = fDeltaS;
+ ((AliTRDtrigParam &) p).fXprojPlane = fXprojPlane;
+ ((AliTRDtrigParam &) p).fLtuPtCut = fLtuPtCut;
+ ((AliTRDtrigParam &) p).fGtuPtCut = fGtuPtCut;
+ ((AliTRDtrigParam &) p).fHighPt = fHighPt;
((AliTRDtrigParam &) p).fNPartJetLow = fNPartJetLow;
((AliTRDtrigParam &) p).fNPartJetHigh = fNPartJetHigh;
((AliTRDtrigParam &) p).fJetLowPt = fJetLowPt;
// Initialize the other parameters
//
- Float_t fXplane0, fXplane5;
-
- fXplane0 = AliTRDgeometry::GetTime0(0) - AliTRDgeometry::CdrHght() - 0.5*AliTRDgeometry::CamHght();
-
- fXplane5 = AliTRDgeometry::GetTime0(5) - AliTRDgeometry::CdrHght() - 0.5*AliTRDgeometry::CamHght();
-
- fXprojPlane = 0.5 * (fXplane0 + fXplane5);
+ Float_t xPlane0;
+ Float_t xPlane5;
+
+ xPlane0 = AliTRDgeometry::GetTime0(0)
+ - AliTRDgeometry::CdrHght()
+ - 0.5*AliTRDgeometry::CamHght();
+ xPlane5 = AliTRDgeometry::GetTime0(5)
+ - AliTRDgeometry::CdrHght()
+ - 0.5*AliTRDgeometry::CamHght();
+ fXprojPlane = 0.5 * (xPlane0 + xPlane5);
}