From 69e0f089e2cea75f3de461516eee44cd63b05965 Mon Sep 17 00:00:00 2001 From: shahoian Date: Tue, 5 Feb 2013 23:55:16 +0000 Subject: [PATCH] 1) fix in the AliITSUTrackerGlo for track hypothesis w/o winner 2) test ITS/Calib/SimuParam/Run0_999999999_v0_s0.root added to itsupcdb.tar.gz (see new file readme) 3) enums added for predefined charge spread params --- ITS/UPGRADE/AliITSU.cxx | 7 ++- ITS/UPGRADE/AliITSUSimulationPix.cxx | 45 +++++++------- ITS/UPGRADE/AliITSUSimulationPix.h | 8 ++- ITS/UPGRADE/AliITSUTrackHyp.cxx | 6 +- ITS/UPGRADE/AliITSUTrackHyp.h | 2 +- ITS/UPGRADE/AliITSUTrackerGlo.cxx | 3 +- ITS/UPGRADE/testITSU/MakeITSUSimuParam.C | 72 +++++++++++------------ ITS/UPGRADE/testITSU/itsupcdb.tar.gz | Bin 5446 -> 9031 bytes ITS/UPGRADE/testITSU/readme | 10 ++++ 9 files changed, 81 insertions(+), 72 deletions(-) create mode 100644 ITS/UPGRADE/testITSU/readme diff --git a/ITS/UPGRADE/AliITSU.cxx b/ITS/UPGRADE/AliITSU.cxx index c315c232176..28b8333bbc5 100644 --- a/ITS/UPGRADE/AliITSU.cxx +++ b/ITS/UPGRADE/AliITSU.cxx @@ -844,14 +844,17 @@ void AliITSU::InitSimulation() // // add known simulation types used in the setup for (int i=fNLayers;i--;) { + fSimModelLr[i] = 0; + fSegModelLr[i] = 0; + fResponseLr[i] = 0; int dType = fGeomTGeo->GetLayerDetTypeID(i); // fine detector type: class + segmentation int sType = dType/AliITSUGeomTGeo::kMaxSegmPerDetType; // detector simulation class // // check if the simulation of this sType was already created for preceeding layers AliITSUSimulation* simUpg = 0; - for (int j=fNLayers;j>i;j--) { + for (int j=fNLayers-1;j>i;j--) { simUpg = GetSimulationModel(j); - if (int(simUpg->GetUniqueID())==sType) break; + if (simUpg && int(simUpg->GetUniqueID())==sType) break; else simUpg = 0; } // diff --git a/ITS/UPGRADE/AliITSUSimulationPix.cxx b/ITS/UPGRADE/AliITSUSimulationPix.cxx index 74acb4e6121..80a74de3921 100644 --- a/ITS/UPGRADE/AliITSUSimulationPix.cxx +++ b/ITS/UPGRADE/AliITSUSimulationPix.cxx @@ -422,7 +422,6 @@ void AliITSUSimulationPix::SpreadCharge2D(Double_t x0,Double_t z0, Double_t dy, z2 = z1 + dzi; // Upper z1 -= dzi; // Lower s = el* (((AliITSUSimulationPix*)this)->*AliITSUSimulationPix::fSpreadFun)(dtIn); - //(*((AliITSUSimulationPix*)this)->AliITSUSimulationPix::fSpreadFun)(dtIn)); // calculate charge deposited in the cell if (s>fSimuParam->GetPixMinElToAdd()) UpdateMapSignal(iz,ix,tID,hID,s); } // end for ix, iz // @@ -436,22 +435,21 @@ Double_t AliITSUSimulationPix::SpreadFunDoubleGauss2D(const Double_t *dtIn) // The spread function is assumed to be double gaussian in 2D // Parameters should be: mean0,sigma0, mean1,sigma1, relative strenght of 2nd gaussian wrt 1st one // - int ip = kParamStart; // 1st gaussian - double intg1 = GausInt2D(fResponseParam->GetParameter(ip+1), // sigX - fResponseParam->GetParameter(ip+3), // sigZ - dtIn[kCellX1]-fResponseParam->GetParameter(ip), // x1-xmean - dtIn[kCellX2]-fResponseParam->GetParameter(ip), // x2-xmean - dtIn[kCellZ1]-fResponseParam->GetParameter(ip+2), // z1-zmean - dtIn[kCellZ2]-fResponseParam->GetParameter(ip+2)); // z2-zmean + double intg1 = GausInt2D(fResponseParam->GetParameter(kG2SigX0), // sigX + fResponseParam->GetParameter(kG2SigZ0), // sigZ + dtIn[kCellX1]-fResponseParam->GetParameter(kG2MeanX0), // x1-xmean + dtIn[kCellX2]-fResponseParam->GetParameter(kG2MeanX0), // x2-xmean + dtIn[kCellZ1]-fResponseParam->GetParameter(kG2MeanZ0), // z1-zmean + dtIn[kCellZ2]-fResponseParam->GetParameter(kG2MeanZ0)); // z2-zmean // 2nd gaussian - double intg2 = GausInt2D(fResponseParam->GetParameter(ip+5), // sigX - fResponseParam->GetParameter(ip+7), // sigZ - dtIn[kCellX1]-fResponseParam->GetParameter(ip+4), // x1-xmean - dtIn[kCellX2]-fResponseParam->GetParameter(ip+4), // x2-xmean - dtIn[kCellZ1]-fResponseParam->GetParameter(ip+6), // z1-zmean - dtIn[kCellZ2]-fResponseParam->GetParameter(ip+6)); // z2-zmean - double scl = fResponseParam->GetParameter(ip+8); + double intg2 = GausInt2D(fResponseParam->GetParameter(kG2SigX1), // sigX + fResponseParam->GetParameter(kG2SigZ1), // sigZ + dtIn[kCellX1]-fResponseParam->GetParameter(kG2MeanX1), // x1-xmean + dtIn[kCellX2]-fResponseParam->GetParameter(kG2MeanX1), // x2-xmean + dtIn[kCellZ1]-fResponseParam->GetParameter(kG2MeanZ1), // z1-zmean + dtIn[kCellZ2]-fResponseParam->GetParameter(kG2MeanZ1)); // z2-zmean + double scl = fResponseParam->GetParameter(kG2ScaleG2); return (intg1+intg2*scl)/(1+scl); // } @@ -463,13 +461,12 @@ Double_t AliITSUSimulationPix::SpreadFunGauss2D(const Double_t *dtIn) // and Z=dtIn[kCellZ1]:dtIn[kCellZ2] // The spread function is assumed to be gaussian in 2D // Parameters should be: mean0,sigma0 - int ip = kParamStart; - return GausInt2D(fResponseParam->GetParameter(ip+1), // sigX - fResponseParam->GetParameter(ip+3), // sigZ - dtIn[kCellX1]-fResponseParam->GetParameter(ip), // x1-xmean - dtIn[kCellX2]-fResponseParam->GetParameter(ip), // x2-xmean - dtIn[kCellZ1]-fResponseParam->GetParameter(ip+2), // z1-zmean - dtIn[kCellZ2]-fResponseParam->GetParameter(ip+2)); + return GausInt2D(fResponseParam->GetParameter(kG1SigX), // sigX + fResponseParam->GetParameter(kG1SigZ), // sigZ + dtIn[kCellX1]-fResponseParam->GetParameter(kG1MeanX), // x1-xmean + dtIn[kCellX2]-fResponseParam->GetParameter(kG1MeanX), // x2-xmean + dtIn[kCellZ1]-fResponseParam->GetParameter(kG1MeanZ), // z1-zmean + dtIn[kCellZ2]-fResponseParam->GetParameter(kG1MeanZ)); // z2-zmean // } @@ -738,9 +735,9 @@ void AliITSUSimulationPix::SetResponseParam(AliParamList* resp) // attach response parameterisation data fResponseParam = resp; switch (fResponseParam->GetID()) { - case kSpreadSingleGauss: fSpreadFun = &AliITSUSimulationPix::SpreadFunDoubleGauss2D; + case kSpreadFunDoubleGauss2D: fSpreadFun = &AliITSUSimulationPix::SpreadFunDoubleGauss2D; break; - case kSpreadDoubleGauss: fSpreadFun = &AliITSUSimulationPix::SpreadFunGauss2D; + case kSpreadFunGauss2D : fSpreadFun = &AliITSUSimulationPix::SpreadFunGauss2D; break; default: AliFatal(Form("Did not find requested spread function id=%d",fResponseParam->GetID())); } diff --git a/ITS/UPGRADE/AliITSUSimulationPix.h b/ITS/UPGRADE/AliITSUSimulationPix.h index 0462c28e509..3e76517bccd 100644 --- a/ITS/UPGRADE/AliITSUSimulationPix.h +++ b/ITS/UPGRADE/AliITSUSimulationPix.h @@ -24,8 +24,8 @@ public: enum {kCellX1,kCellX2,kCellZ1,kCellZ2,kCellYDepth,kNDtSpread}; // data used for ch. spread integral calc. // // charge spread functions defined - enum {kSpreadSingleGauss, // single gaussian in 2D, SpreadFunGauss2D - kSpreadDoubleGauss, // double gaussian in 2D, SpreadFunDoubleGauss2D + enum {kSpreadFunGauss2D, // single gaussian in 2D, SpreadFunGauss2D + kSpreadFunDoubleGauss2D, // double gaussian in 2D, SpreadFunDoubleGauss2D kNSpreadFuns }; // fist kParamStart entried of spread fun params are reserved for common parameters @@ -33,6 +33,10 @@ public: kSpreadFunParamNZoffs, // number of pixels to consider +- from injection point (in Z) kParamStart }; + // elements of the SpreadFunGauss2D parameterization (offsetted by kParamStart) + enum {kG1MeanX=kParamStart,kG1SigX,kG1MeanZ,kG1SigZ,kNG1Par}; + // elements of the SpreadFunDoubleGauss2D parameterization (offsetted by kParamStart) + enum {kG2MeanX0=kParamStart,kG2SigX0,kG2MeanZ0,kG2SigZ0,kG2MeanX1,kG2SigX1,kG2MeanZ1,kG2SigZ1,kG2ScaleG2,kNG2Par}; // AliITSUSimulationPix(); AliITSUSimulationPix(AliITSUSimuParam* sim,AliITSUSensMap* map); diff --git a/ITS/UPGRADE/AliITSUTrackHyp.cxx b/ITS/UPGRADE/AliITSUTrackHyp.cxx index 5f974a9d89b..4f947f9e208 100644 --- a/ITS/UPGRADE/AliITSUTrackHyp.cxx +++ b/ITS/UPGRADE/AliITSUTrackHyp.cxx @@ -69,18 +69,20 @@ void AliITSUTrackHyp::Print(Option_t* ) const //__________________________________________________________________ AliITSUSeed* AliITSUTrackHyp::GetWinner() const { - // Get best candidate + // Get best candidate. TODO return fLayerSeeds[0].GetEntriesFast()>0 ? GetSeed(0,0) : 0; } //__________________________________________________________________ -void AliITSUTrackHyp::DefineWinner(int lr, int id) +AliITSUSeed* AliITSUTrackHyp::DefineWinner(int lr, int id) { // assign best candidate + if (GetNSeeds(lr)<=id) return 0; AliITSUSeed* winner = GetSeed(lr,id); this->AliExternalTrackParam::operator=(*winner); SetChi2(winner->GetChi2GloNrm()); SetNumberOfClusters(winner->GetNLayersHit()); + return winner; } //__________________________________________________________________ diff --git a/ITS/UPGRADE/AliITSUTrackHyp.h b/ITS/UPGRADE/AliITSUTrackHyp.h index ebc72b4aedb..561af5f8a82 100644 --- a/ITS/UPGRADE/AliITSUTrackHyp.h +++ b/ITS/UPGRADE/AliITSUTrackHyp.h @@ -24,7 +24,7 @@ class AliITSUTrackHyp: public AliKalmanTrack AliITSUSeed* GetWinner() const; AliESDtrack* GetESDTrack() const {return fESDTrack;} Int_t GetITSLabel() const {return fITSLabel;} - void DefineWinner(Int_t lr=0, Int_t id=0); + AliITSUSeed* DefineWinner(Int_t lr=0, Int_t id=0); const TObjArray* GetLayerSeeds(Int_t lr) const {return lrDefineWinner(); // TODO + if (!hyp || !hyp->DefineWinner()) continue; // TODO CookMCLabel(hyp); UpdateESDTrack(hyp,AliESDtrack::kITSin); } diff --git a/ITS/UPGRADE/testITSU/MakeITSUSimuParam.C b/ITS/UPGRADE/testITSU/MakeITSUSimuParam.C index 1dd1395a18d..5c88c3452fc 100644 --- a/ITS/UPGRADE/testITSU/MakeITSUSimuParam.C +++ b/ITS/UPGRADE/testITSU/MakeITSUSimuParam.C @@ -12,7 +12,6 @@ void MakeITSUSimuParam(const char* cdbURI="local://") { // gSystem->Load("libITSUpgradeBase.so"); gSystem->Load("libITSUpgradeSim.so"); - gSystem->Load("libITSUpgradeRec.so"); // // Activate CDB storage and load geometry from CDB AliCDBManager* cdb = AliCDBManager::Instance(); @@ -25,35 +24,35 @@ void MakeITSUSimuParam(const char* cdbURI="local://") { int offs = 0; // //------------------------ parameterization data for segmentation 0 ---------------------- - parData = new AliParamList(AliITSUSimulationPix::kParamStart+11); // 2 common + 9 params for double gaussian + parData = new AliParamList(AliITSUSimulationPix::kNG2Par); // 2 common + 9 params for double gaussian parData->SetUniqueID(0); // this is a function for detId=0 - parData->SetID(AliITSUSimulationPix::kSpreadDoubleGauss); // and uses double gaussian + parData->SetID(AliITSUSimulationPix::kSpreadFunDoubleGauss2D); // and uses double gaussian parData->SetNameTitle("Monopix_seg0","double gaussian for segmentation 0"); // // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around // injected one to consider parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,3,"nPixX"); parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,3,"nPixZ"); - // + // // now set the parameters according selected function - offs = AliITSUSimulationPix::kParamStart; - parData->SetParameter(offs++,-0.1e-4 , "G1 Mean_x"); - parData->SetParameter(offs++, 8.125e-4, "G1 Sigma_x"); - parData->SetParameter(offs++, 2.011e-4, "G1 Mean_z"); - parData->SetParameter(offs++, 8.125e-4, "G1 Sigma_z"); - parData->SetParameter(offs++,-0.069e-4, "G2 Mean_x"); - parData->SetParameter(offs++,15.050e-4, "G2 Sigma_x"); - parData->SetParameter(offs++,-8.425e-4, "G2 Mean_z"); - parData->SetParameter(offs++,15.050e-4, "G2 Sigma_z"); - parData->SetParameter(offs++,3.904037/59.468672, "G2 A2/A1"); // scaling of 2nd gaussian amplitude wrt 1st one + parData->SetParameter(AliITSUSimulationPix::kG2MeanX0 , -0.1e-4 , "G1 Mean_x"); + parData->SetParameter(AliITSUSimulationPix::kG2SigX0 , 8.125e-4, "G1 Sigma_x"); + parData->SetParameter(AliITSUSimulationPix::kG2MeanZ0 , 2.011e-4, "G1 Mean_z"); + parData->SetParameter(AliITSUSimulationPix::kG2SigZ0 , 8.125e-4, "G1 Sigma_z"); + parData->SetParameter(AliITSUSimulationPix::kG2MeanX1 , -0.069e-4, "G2 Mean_x"); + parData->SetParameter(AliITSUSimulationPix::kG2SigX1 , 15.050e-4, "G2 Sigma_x"); + parData->SetParameter(AliITSUSimulationPix::kG2MeanZ1 , -8.425e-4, "G2 Mean_z"); + parData->SetParameter(AliITSUSimulationPix::kG2SigZ1 , 15.050e-4, "G2 Sigma_z"); + // scaling of 2nd gaussian amplitude wrt 1st one + parData->SetParameter(AliITSUSimulationPix::kG2ScaleG2 , 3.904037/59.468672, "G2 A2/A1"); // itsSimuParam->AddRespFunParam(parData); // // //------------------------ parameterization data for segmentation 1 ---------------------- - parData = new AliParamList(AliITSUSimulationPix::kParamStart+9); // 2 common + 9 params for double gaussian + parData = new AliParamList(AliITSUSimulationPix::kNG2Par); // 2 common + 9 params for double gaussian parData->SetUniqueID(1); // this is a function for detId=1 - parData->SetID(AliITSUSimulationPix::kSpreadDoubleGauss); // and uses double gaussian + parData->SetID(AliITSUSimulationPix::kSpreadFunDoubleGauss2D); // and uses double gaussian parData->SetNameTitle("Monopix_seg1","double gaussian for segmentation 1"); // // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around @@ -62,25 +61,25 @@ void MakeITSUSimuParam(const char* cdbURI="local://") { parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,3,"nPixZ"); // // now set the parameters according selected function - offs = AliITSUSimulationPix::kParamStart; - parData->SetParameter(offs++,-0.1e-4 , "G1 Mean_x"); - parData->SetParameter(offs++, 8.125e-4, "G1 Sigma_x"); - parData->SetParameter(offs++, 2.011e-4, "G1 Mean_z"); - parData->SetParameter(offs++, 8.125e-4, "G1 Sigma_z"); - parData->SetParameter(offs++,-0.069e-4, "G2 Mean_x"); - parData->SetParameter(offs++,15.050e-4, "G2 Sigma_x"); - parData->SetParameter(offs++,-8.425e-4, "G2 Mean_z"); - parData->SetParameter(offs++,15.050e-4, "G2 Sigma_z"); - parData->SetParameter(offs++,3.904037/59.468672, "G2 A2/A1"); // scaling of 2nd gaussian amplitude wrt 1st one + parData->SetParameter(AliITSUSimulationPix::kG2MeanX0 , -0.1e-4 , "G1 Mean_x"); + parData->SetParameter(AliITSUSimulationPix::kG2SigX0 , 8.125e-4, "G1 Sigma_x"); + parData->SetParameter(AliITSUSimulationPix::kG2MeanZ0 , 2.011e-4, "G1 Mean_z"); + parData->SetParameter(AliITSUSimulationPix::kG2SigZ0 , 8.125e-4, "G1 Sigma_z"); + parData->SetParameter(AliITSUSimulationPix::kG2MeanX1 , -0.069e-4, "G2 Mean_x"); + parData->SetParameter(AliITSUSimulationPix::kG2SigX1 , 15.050e-4, "G2 Sigma_x"); + parData->SetParameter(AliITSUSimulationPix::kG2MeanZ1 , -8.425e-4, "G2 Mean_z"); + parData->SetParameter(AliITSUSimulationPix::kG2SigZ1 , 15.050e-4, "G2 Sigma_z"); + // scaling of 2nd gaussian amplitude wrt 1st one + parData->SetParameter(AliITSUSimulationPix::kG2ScaleG2 , 3.904037/59.468672, "G2 A2/A1"); // itsSimuParam->AddRespFunParam(parData); // // //------------------------ parameterization data for segmentation 2 ---------------------- - parData = new AliParamList(AliITSUSimulationPix::kParamStart+9); // 2 common + 9 params for double gaussian + parData = new AliParamList(AliITSUSimulationPix::kNG1Par); // 2 common + 3 params for double gaussian parData->SetUniqueID(2); // this is a function for detId=2 - parData->SetID(AliITSUSimulationPix::kSpreadDoubleGauss); // and uses double gaussian - parData->SetNameTitle("Monopix_seg1","double gaussian for segmentation 1"); + parData->SetID(AliITSUSimulationPix::kSpreadFunGauss2D); // and uses double gaussian + parData->SetNameTitle("Monopix_seg2","single gaussian for segmentation 1"); // // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around // injected one to consider @@ -88,19 +87,14 @@ void MakeITSUSimuParam(const char* cdbURI="local://") { parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,3,"nPixZ"); // // now set the parameters according selected function - offs = AliITSUSimulationPix::kParamStart; - parData->SetParameter(offs++,-0.1e-4 , "G1 Mean_x"); - parData->SetParameter(offs++, 8.125e-4, "G1 Sigma_x"); - parData->SetParameter(offs++, 2.011e-4, "G1 Mean_z"); - parData->SetParameter(offs++, 8.125e-4, "G1 Sigma_z"); - parData->SetParameter(offs++,-0.069e-4, "G2 Mean_x"); - parData->SetParameter(offs++,15.050e-4, "G2 Sigma_x"); - parData->SetParameter(offs++,-8.425e-4, "G2 Mean_z"); - parData->SetParameter(offs++,15.050e-4, "G2 Sigma_z"); - parData->SetParameter(offs++,3.904037/59.468672, "G2 A2/A1"); // scaling of 2nd gaussian amplitude wrt 1st one + parData->SetParameter(AliITSUSimulationPix::kG1MeanX , -0.1e-4 , "Mean_x"); + parData->SetParameter(AliITSUSimulationPix::kG1SigX , 8.125e-4, "Sigma_x"); + parData->SetParameter(AliITSUSimulationPix::kG1MeanZ , 2.011e-4, "Mean_z"); + parData->SetParameter(AliITSUSimulationPix::kG1SigZ , 8.125e-4, "Sigma_z"); // itsSimuParam->AddRespFunParam(parData); // + // // save in CDB storage AliCDBMetaData *md= new AliCDBMetaData(); md->SetResponsible("ITS Upgrade Project"); diff --git a/ITS/UPGRADE/testITSU/itsupcdb.tar.gz b/ITS/UPGRADE/testITSU/itsupcdb.tar.gz index c632c4fe9e7d14ac7f3654269339e13c5e0f3a8f..bcc1384a08523dc75117d2e7ad3b2c95ad7d5846 100644 GIT binary patch literal 9031 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 w|GUcp000000000000000000000000000000000000Q{Zb0aYg|OaM>-0CZ2%tpET3 diff --git a/ITS/UPGRADE/testITSU/readme b/ITS/UPGRADE/testITSU/readme new file mode 100644 index 00000000000..0916b1fc396 --- /dev/null +++ b/ITS/UPGRADE/testITSU/readme @@ -0,0 +1,10 @@ +This is test directory, content often changes. + + +Thu Nov 15 04:02:21 CET 2012 +To run the code requiring new ITS CDB unpack the itsupcdb.tar.gz file +and point specific paths to it + +Wed Feb 6 00:46:42 CET 2013 +MakeITSUSimuParam.C example macro is added to create simulation parameters + -- 2.43.0