#include "AliTRDpadPlane.h"
#include "AliTRDcluster.h"
#include "AliTRDtrackV1.h"
-#include "AliTRDrawStreamTB.h"
+#include "AliTRDrawStreamBase.h"
#include "AliRawReader.h"
#include "AliRawReaderDate.h"
#include "AliTRDgeometry.h"
,fLinearFitterDebugOn(kFALSE)
,fRelativeScale(0)
,fThresholdClusterPRF2(15.0)
+ ,fLimitChargeIntegration(kFALSE)
,fCalibraMode(new AliTRDCalibraMode())
,fDebugStreamer(0)
,fDebugLevel(0)
,fLinearFitterDebugOn(c.fLinearFitterDebugOn)
,fRelativeScale(c.fRelativeScale)
,fThresholdClusterPRF2(c.fThresholdClusterPRF2)
+ ,fLimitChargeIntegration(c.fLimitChargeIntegration)
,fCalibraMode(0x0)
,fDebugStreamer(0)
,fDebugLevel(c.fDebugLevel)
for(Int_t k = 0; k < npoints; k++){
AliTRDcluster *cl = (AliTRDcluster *) t->GetCluster(k+index0);
- if(!cl->IsInChamber()) continue;
+ if((fLimitChargeIntegration) && (!cl->IsInChamber())) continue;
Double_t ycluster = cl->GetY();
Int_t time = cl->GetPadTime();
Double_t timeis = time/fSf;
AliTRDcluster *cl = 0x0;
for(int ic=0; ic<AliTRDseed::knTimebins; ic++){
if(!(cl = tracklet->GetClusters(ic))) continue;
- if(!cl->IsInChamber()) continue;
+ if((fLimitChargeIntegration) && (!cl->IsInChamber())) continue;
Double_t ycluster = cl->GetY();
Int_t time = cl->GetPadTime();
// Fill the fAmpTotal with the charge
- if (fCH2dOn && cl->IsInChamber()) {
- fAmpTotal[(Int_t) group[0]] += correction;
+ if (fCH2dOn) {
+ if((!fLimitChargeIntegration) || (cl->IsInChamber())) fAmpTotal[(Int_t) group[0]] += correction;
}
// Fill the fPHPlace and value
// DAQ process functions
/////////////////////////////////////////////////////////////////////////////////////////
//_____________________________________________________________________
-Int_t AliTRDCalibraFillHisto::ProcessEventDAQ(AliTRDrawStreamTB *rawStream, Bool_t nocheck)
+Int_t AliTRDCalibraFillHisto::ProcessEventDAQ(AliTRDrawStreamBase *rawStream, Bool_t nocheck)
{
//
- // Event Processing loop - AliTRDrawStreamTB
+ // Event Processing loop - AliTRDrawStreamBase
// TestBeam 2007 version
// 0 timebin problem
// 1 no input
}
//_____________________________________________________________________
-Int_t AliTRDCalibraFillHisto::ProcessEventDAQV1(AliTRDrawStreamTB *rawStream, Bool_t nocheck)
+Int_t AliTRDCalibraFillHisto::ProcessEventDAQV1(AliTRDrawStreamBase *rawStream, Bool_t nocheck)
{
//
- // Event Processing loop - AliTRDrawStreamTB
+ // Event Processing loop - AliTRDrawStreamBase
// Use old AliTRDmcmtracklet code
// 0 timebin problem
// 1 no input
// Testbeam 2007 version
//
- AliTRDrawStreamTB rawStream(rawReader);
+ AliTRDrawStreamBase rawStream(rawReader);
rawReader->Select("TRD");
// use the old mcm traklet code
//
- AliTRDrawStreamTB rawStream(rawReader);
+ AliTRDrawStreamBase rawStream(rawReader);
rawReader->Select("TRD");
class AliTRDCalibraMode;
class AliTRDCalibraVector;
class AliTRDCalibraVdriftLinearFit;
-class AliTRDrawStreamTB;
+class AliTRDrawStreamBase;
class AliTRDcluster;
class AliTRDtrackV1;
class AliTRDtrack;
Bool_t UpdateHistogramsV1(AliTRDtrackV1 *t);
// Process events DAQ
- Int_t ProcessEventDAQ(AliTRDrawStreamTB *rawStream, Bool_t nocheck = kFALSE);
+ Int_t ProcessEventDAQ(AliTRDrawStreamBase *rawStream, Bool_t nocheck = kFALSE);
Int_t ProcessEventDAQ(AliRawReader *rawReader, Bool_t nocheck = kFALSE);
Int_t ProcessEventDAQ(eventHeaderStruct *event, Bool_t nocheck = kFALSE);
- Int_t ProcessEventDAQV1(AliTRDrawStreamTB *rawStream, Bool_t nocheck = kFALSE);
+ Int_t ProcessEventDAQV1(AliTRDrawStreamBase *rawStream, Bool_t nocheck = kFALSE);
Int_t ProcessEventDAQV1(AliRawReader *rawReader, Bool_t nocheck = kFALSE);
Int_t ProcessEventDAQV1(eventHeaderStruct *event, Bool_t nocheck = kFALSE);
// How to fill the 2D
void SetRelativeScale(Float_t relativeScale);
void SetThresholdClusterPRF2(Float_t thresholdClusterPRF2) { fThresholdClusterPRF2 = thresholdClusterPRF2; }
+ void SetLimitChargeIntegration(Bool_t limitChargeIntegration) { fLimitChargeIntegration = limitChargeIntegration; }
void SetNz(Int_t i, Short_t nz);
void SetNrphi(Int_t i, Short_t nrphi);
void SetProcent(Float_t procent) { fProcent = procent; }
Float_t GetRelativeScale() const { return fRelativeScale; }
Float_t GetThresholdClusterPRF2() const { return fThresholdClusterPRF2; }
+ Bool_t GetLimitChargeIntegration() const { return fLimitChargeIntegration; }
Float_t GetProcent() const { return fProcent; }
Short_t GetDifference() const { return fDifference; }
Short_t GetNumberClusters() const { return fNumberClusters; }
// How to fill the 2D
Float_t fRelativeScale; // Scale of the deposited charge
Float_t fThresholdClusterPRF2; // Threshold on cluster pad signals
+ Bool_t fLimitChargeIntegration; // Integration range for the gain calibration
// Calibration mode
AliTRDCalibraMode *fCalibraMode; // Calibration mode