From 45a69ca6851c4cac2725bcc0957fbfb9fef70727 Mon Sep 17 00:00:00 2001 From: decaro Date: Tue, 30 Jun 2009 18:40:02 +0000 Subject: [PATCH] Added another recoParam to the TOF recoParam object, i.e. time window to discriminate between single pad and multi pad TOF clusters --- .../Calib/RecoParam/Run0_999999999_v0_s0.root | Bin 2612 -> 2572 bytes TOF/AliTOFClusterFinderV1.cxx | 13 ++-- TOF/AliTOFRecoParam.cxx | 58 +++++++++--------- TOF/AliTOFRecoParam.h | 13 +++- 4 files changed, 47 insertions(+), 37 deletions(-) diff --git a/OCDB/TOF/Calib/RecoParam/Run0_999999999_v0_s0.root b/OCDB/TOF/Calib/RecoParam/Run0_999999999_v0_s0.root index 066b18d4ec7aac573c117b61fbc5a7a16a3858f1..58e22fc4bcf9ee3fe9c908662d9f8ebfdbcb8f08 100644 GIT binary patch delta 2171 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 } //_____________________________________________________________________________ @@ -88,7 +91,7 @@ AliTOFClusterFinderV1::AliTOFClusterFinderV1(AliRunLoader* runLoader, AliTOFcali fRecPoints(new TClonesArray("AliTOFcluster", 4000)), fNumberOfTofClusters(0), fNumberOfTofDigits(0), - fMaxDeltaTime(2), + fMaxDeltaTime(0), fVerbose(0), fDecoderVersion(0), fTOFcalib(calib), @@ -100,6 +103,8 @@ AliTOFClusterFinderV1::AliTOFClusterFinderV1(AliRunLoader* runLoader, AliTOFcali // // Constructor // + const AliTOFRecoParam *recoParam = AliTOFReconstructor::GetRecoParam(); // instantiate reco param from STEER... + fMaxDeltaTime = recoParam->GetMaxDeltaTime(); } //_____________________________________________________________________________ @@ -278,7 +283,7 @@ void AliTOFClusterFinderV1::Digits2RecPoints(TTree* digitsTree, TTree* clusterTr FillRecPoint(); clusterTree->Fill(); - AliInfo(Form("Number of found TOF clusters: %d", fNumberOfTofClusters)); + AliInfo(Form("Number of found clusters: %d", fNumberOfTofClusters)); ResetRecpoint(); diff --git a/TOF/AliTOFRecoParam.cxx b/TOF/AliTOFRecoParam.cxx index caead718745..93d0eaee135 100644 --- a/TOF/AliTOFRecoParam.cxx +++ b/TOF/AliTOFRecoParam.cxx @@ -45,7 +45,8 @@ AliTOFRecoParam::AliTOFRecoParam(): fMaxChi2(10.), fMaxChi2TRD(150.), fTimeResolution(80.), - fTimeNSigma(5.) + fTimeNSigma(5.), + fMaxDeltaTime(2) { // // constructor @@ -69,7 +70,8 @@ AliTOFRecoParam::AliTOFRecoParam(const AliTOFRecoParam &p): fMaxChi2(p.fMaxChi2), fMaxChi2TRD(p.fMaxChi2TRD), fTimeResolution(p.fTimeResolution), - fTimeNSigma(p.fTimeNSigma) + fTimeNSigma(p.fTimeNSigma), + fMaxDeltaTime(p.fMaxDeltaTime) { //copy Ctor @@ -87,21 +89,22 @@ AliTOFRecoParam& AliTOFRecoParam::operator=(const AliTOFRecoParam &p) AliDetectorRecoParam::operator=(p); fTimeZero=p.fTimeZero; - fTimeZerofromT0=p.fTimeZerofromT0; - fTimeZerofromTOF=p.fTimeZerofromTOF; - fTimeWalkCorr=p.fTimeWalkCorr; - fApplyPbPbCuts=p.fApplyPbPbCuts; - fWindowSizeMaxY=p.fWindowSizeMaxY; - fWindowSizeMaxZ=p.fWindowSizeMaxZ; - fDistanceCut=p.fDistanceCut; - fWindowScaleFact=p.fWindowScaleFact; - fStepSize=p.fStepSize; - fSensRadius=p.fSensRadius; - fMaxChi2=p.fMaxChi2; - fMaxChi2TRD=p.fMaxChi2TRD; - fTimeResolution=p.fTimeResolution; - fTimeNSigma=p.fTimeNSigma; - return *this; + fTimeZerofromT0=p.fTimeZerofromT0; + fTimeZerofromTOF=p.fTimeZerofromTOF; + fTimeWalkCorr=p.fTimeWalkCorr; + fApplyPbPbCuts=p.fApplyPbPbCuts; + fWindowSizeMaxY=p.fWindowSizeMaxY; + fWindowSizeMaxZ=p.fWindowSizeMaxZ; + fDistanceCut=p.fDistanceCut; + fWindowScaleFact=p.fWindowScaleFact; + fStepSize=p.fStepSize; + fSensRadius=p.fSensRadius; + fMaxChi2=p.fMaxChi2; + fMaxChi2TRD=p.fMaxChi2TRD; + fTimeResolution=p.fTimeResolution; + fTimeNSigma=p.fTimeNSigma; + fMaxDeltaTime=p.fMaxDeltaTime; + return *this; } //_____________________________________________________________________________ AliTOFRecoParam::~AliTOFRecoParam() @@ -120,6 +123,7 @@ AliTOFRecoParam *AliTOFRecoParam::GetPbPbparam(){ param->fApplyPbPbCuts = kTRUE; param->fWindowScaleFact = 5.; param->fDistanceCut = 3.; + param->fMaxDeltaTime = 2; return param; } @@ -132,18 +136,7 @@ AliTOFRecoParam *AliTOFRecoParam::GetPPparam(){ param->fApplyPbPbCuts = kFALSE; param->fWindowScaleFact = 5.; param->fDistanceCut = 10.; - return param; -} - -//_____________________________________________________________________________ -AliTOFRecoParam *AliTOFRecoParam::GetCosmicMuonParam(){ - // - // set default reconstruction parameters for cosmic muon run - // - AliTOFRecoParam *param = new AliTOFRecoParam(); - param->fApplyPbPbCuts = kFALSE; - param->fWindowScaleFact = 5.; - param->fDistanceCut = 10.; + param->fMaxDeltaTime = 2; return param; } @@ -174,7 +167,12 @@ void AliTOFRecoParam::PrintParameters() const AliInfo(Form(" Maximum X2 track-tof clusters (TRD): %f", fMaxChi2TRD)); AliInfo(Form(" Time resolution for responce function in PID: %f ps", fTimeResolution)); - AliInfo(Form(" N-Sigma Range used for responce function in PID: %f", + AliInfo(Form(" N-Sigma Range used for responce function in PID: %f", fTimeNSigma)); + AliInfo(Form(" Max time difference between two (or more) time measurements" + " coming from two (or more) neighbouring pads" + " to define if they are coming from the same ionization event" + " or not: %2d bins -> %f ps", + fMaxDeltaTime, fMaxDeltaTime*AliTOFGeometry::TdcBinWidth())) } diff --git a/TOF/AliTOFRecoParam.h b/TOF/AliTOFRecoParam.h index 55ce14550df..08e27532330 100644 --- a/TOF/AliTOFRecoParam.h +++ b/TOF/AliTOFRecoParam.h @@ -12,6 +12,8 @@ #include "AliDetectorRecoParam.h" +#include "AliTOFGeometry.h" + class AliTOFRecoParam : public AliDetectorRecoParam { public: @@ -36,9 +38,10 @@ class AliTOFRecoParam : public AliDetectorRecoParam Float_t GetSensRadius() const { return fSensRadius;} Float_t GetStepSize() const { return fStepSize;} Double_t GetMaxChi2() const { return fMaxChi2;} - Double_t GetMaxChi2TRD() const { return fMaxChi2TRD;} + Double_t GetMaxChi2TRD() const { return fMaxChi2TRD;} Double_t GetTimeResolution() const { return fTimeResolution;} Double_t GetTimeNSigma() const { return fTimeNSigma;} + Int_t GetMaxDeltaTime() const { return fMaxDeltaTime;} //Setters @@ -58,10 +61,11 @@ class AliTOFRecoParam : public AliDetectorRecoParam void SetMaxChi2TRD(Double_t in) {fMaxChi2TRD=in;} void SetTimeResolution(Double_t in) {fTimeResolution=in;} void SetTimeNSigma(Double_t in) {fTimeNSigma=in;} + void SetMaxDeltaTime(Int_t a) {fMaxDeltaTime = a;}; // to set deltaTime [bin number] + void SetMaxDeltaTime(Float_t a) {fMaxDeltaTime = (Int_t)(a/AliTOFGeometry::TdcBinWidth());}; // to set deltaTime [ps] static AliTOFRecoParam *GetPbPbparam(); // reco param for PbPb. static AliTOFRecoParam *GetPPparam(); // reco param for PP - static AliTOFRecoParam *GetCosmicMuonParam(); // reco param for cosmic muons private: Bool_t fTimeZero; //use Time Zero info in Pid @@ -80,8 +84,11 @@ class AliTOFRecoParam : public AliDetectorRecoParam Double_t fMaxChi2TRD; // maximum X2 track-tof clusters (TRD) Double_t fTimeResolution; // Time resolution for resp. function in PID (ps) Double_t fTimeNSigma; // N-Sigma Range used for resp. function in PID + Int_t fMaxDeltaTime; // max time difference in between two tof + // measurements for two neighbouring pads + // [number of bins] - ClassDef(AliTOFRecoParam, 3) + ClassDef(AliTOFRecoParam, 4) }; #endif -- 2.31.1