]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDtrigParam.cxx
BlockFilter component added; minor corrections
[u/mrichter/AliRoot.git] / TRD / AliTRDtrigParam.cxx
index 9af51b30022675a055e0d9dd9b8880cfca182def..71096fa23220df5c7d44aa57eac3239b14ee7c58 100644 (file)
 
 ///////////////////////////////////////////////////////////////////////////////
 //                                                                           //
-//                                                                           //
 //  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;
+  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;
+  // 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);
-
 }
 
 //_____________________________________________________________________________
@@ -125,6 +165,7 @@ AliTRDtrigParam::~AliTRDtrigParam()
   //
   // AliTRDtrigParam destructor
   //
+
 }
 
 //_____________________________________________________________________________
@@ -146,29 +187,31 @@ void AliTRDtrigParam::Copy(TObject &p) const
   // 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;
+  ((AliTRDtrigParam &) p).fJetHighPt    = fJetHighPt;
 
 }
 
@@ -179,13 +222,16 @@ void AliTRDtrigParam::Init()
   // 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);
 
 }