From aa2e678ae3913aa217ca142f2773666e34573827 Mon Sep 17 00:00:00 2001 From: masera Date: Mon, 31 Oct 2011 11:06:35 +0000 Subject: [PATCH] Changes to allow the reconstruction of MUON+SPD --- ITS/AliITSRecoParam.cxx | 17 ++++++++++++++++- ITS/AliITSRecoParam.h | 11 ++++++++++- ITS/AliITSReconstructor.cxx | 8 ++++---- 3 files changed, 30 insertions(+), 6 deletions(-) diff --git a/ITS/AliITSRecoParam.cxx b/ITS/AliITSRecoParam.cxx index a680aac8a25..6e5b06b02f0 100644 --- a/ITS/AliITSRecoParam.cxx +++ b/ITS/AliITSRecoParam.cxx @@ -201,7 +201,8 @@ fCorrectLorentzAngleSSD(kTRUE), fTanLorentzAngleHolesSSD(0.016), // tan(0.94 degrees) fTanLorentzAngleElectronsSSD(0.068), // tan(3.98 degrees) // -fESDV0Params(NULL) +fESDV0Params(NULL), +fOptReco("All") { // // constructor @@ -877,3 +878,17 @@ void AliITSRecoParam::PrintParameters() const } +//_____________________________________________________________________________ +Bool_t AliITSRecoParam::SetOptReco(TString r){ + // Set option for local reconstruction. + // The string must contain at least one of the following + // substrings: "All", "SPD", "SDD", "SSD" + Bool_t isFine = kFALSE; + if(r.Contains("All") || r.Contains("SPD") || r.Contains("SDD") + || r.Contains("SSD")){ + isFine = kTRUE; + fOptReco=r; + } + return isFine; +} + diff --git a/ITS/AliITSRecoParam.h b/ITS/AliITSRecoParam.h index 29fc5b4027a..4db79475c98 100644 --- a/ITS/AliITSRecoParam.h +++ b/ITS/AliITSRecoParam.h @@ -469,6 +469,11 @@ class AliITSRecoParam : public AliDetectorRecoParam void SetTanLorentzAngleHolesSSD(Float_t la) {fTanLorentzAngleHolesSSD=la;} void SetTanLorentzAngleElectronsSSD(Float_t la) {fTanLorentzAngleElectronsSSD=la;} + // Option for local reconstruction + Bool_t SetOptReco(TString r); + void ReconstructOnlySPD(){fOptReco="SPD";} + TString GetOptReco() const {return fOptReco;} + // enum {kMaxClusterPerLayer=70000}; //7000*10; // max clusters per layer enum {kMaxClusterPerLayer5=28000};//7000*10*2/5; // max clusters per layer @@ -741,6 +746,10 @@ class AliITSRecoParam : public AliDetectorRecoParam Bool_t fCorrectLorentzAngleSSD; // flag to enable correction Float_t fTanLorentzAngleHolesSSD; // tan(angle) for holes in SSD @ B = 0.5 T Float_t fTanLorentzAngleElectronsSSD; // tan(angle) for electrons in SSD @ B = 0.5 T + // + // Possibility of reconstructing only part of the ITS + TString fOptReco; // "All" by default. It can be any + // combination of "SPD" "SDD" and "SSD" private: AliESDV0Params * fESDV0Params; // declare the AliESDV0Params to be able to used in AliITSV0Finder @@ -748,7 +757,7 @@ class AliITSRecoParam : public AliDetectorRecoParam AliITSRecoParam(const AliITSRecoParam & param); AliITSRecoParam & operator=(const AliITSRecoParam ¶m); - ClassDef(AliITSRecoParam,39) // ITS reco parameters + ClassDef(AliITSRecoParam,49) // ITS reco parameters }; #endif diff --git a/ITS/AliITSReconstructor.cxx b/ITS/AliITSReconstructor.cxx index 60704a54104..f44070c8194 100644 --- a/ITS/AliITSReconstructor.cxx +++ b/ITS/AliITSReconstructor.cxx @@ -98,20 +98,20 @@ void AliITSReconstructor::Reconstruct(TTree *digitsTree, TTree *clustersTree) co // reconstruct clusters Int_t cluFindOpt = GetRecoParam()->GetClusterFinder(); - + TString recopt = GetRecoParam()->GetOptReco(); fDetTypeRec->SetTreeAddressD(digitsTree); fDetTypeRec->MakeBranch(clustersTree,"R"); fDetTypeRec->SetTreeAddressR(clustersTree); - fDetTypeRec->DigitsToRecPoints(digitsTree,clustersTree,0,"All",cluFindOpt); + fDetTypeRec->DigitsToRecPoints(digitsTree,clustersTree,0,recopt.Data(),cluFindOpt); } //_________________________________________________________________ void AliITSReconstructor::Reconstruct(AliRawReader* rawReader, TTree *clustersTree) const { // reconstruct clusters from raw data - + TString recopt = GetRecoParam()->GetOptReco(); fDetTypeRec->SetDefaultClusterFindersV2(kTRUE); - fDetTypeRec->DigitsToRecPoints(rawReader,clustersTree); + fDetTypeRec->DigitsToRecPoints(rawReader,clustersTree,recopt.Data()); } //_____________________________________________________________________________ -- 2.43.0