AliITSRecoParam retrieved from the OCDB
authormasera <masera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 30 Apr 2008 17:06:54 +0000 (17:06 +0000)
committermasera <masera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 30 Apr 2008 17:06:54 +0000 (17:06 +0000)
ITS/AliITSClusterFinderV2SDD.cxx
ITS/AliITSClusterFinderV2SPD.cxx
ITS/AliITSClusterFinderV2SSD.cxx
ITS/AliITSDetTypeRec.cxx
ITS/AliITSRecoParam.cxx
ITS/AliITSRecoParam.h
ITS/AliITSReconstructor.cxx
ITS/AliITSReconstructor.h
ITS/Calib/RecoParam/Run0_999999999_v0_s0.root [new file with mode: 0644]
ITS/MakeITSRecoParam.C [new file with mode: 0644]

index 9c49f28..e4fd646 100644 (file)
@@ -126,7 +126,7 @@ FindClustersSDD(AliBin* bins[2], Int_t nMaxBin, Int_t nzBins,
   if(!repa){
     repa = (AliITSRecoParam*) AliITSReconstructor::GetRecoParam();
     if(!repa){
-      repa = (AliITSRecoParam*) AliITSReconstructor::GetRecoParamDefault();
+      repa = AliITSRecoParam::GetHighFluxParam();
       AliWarning("Using default AliITSRecoParam class");
     }
   }
index 1b5429b..7b83997 100644 (file)
@@ -91,7 +91,7 @@ Int_t AliITSClusterFinderV2SPD::ClustersSPD(AliBin* bins, TClonesArray* digits,T
   if(!repa){
     repa = (AliITSRecoParam*) AliITSReconstructor::GetRecoParam();
     if(!repa){
-      repa = (AliITSRecoParam*) AliITSReconstructor::GetRecoParamDefault();
+      repa = AliITSRecoParam::GetHighFluxParam();
       AliWarning("Using default AliITSRecoParam class");
     }
   }
index 54d3ff2..2ba6728 100644 (file)
@@ -94,7 +94,7 @@ void AliITSClusterFinderV2SSD::FindClustersSSD(TClonesArray *alldigits) {
   if(!repa){
     repa = (AliITSRecoParam*) AliITSReconstructor::GetRecoParam();
     if(!repa){
-      repa = (AliITSRecoParam*) AliITSReconstructor::GetRecoParamDefault();
+      repa = AliITSRecoParam::GetHighFluxParam();
       AliWarning("Using default AliITSRecoParam class");
     }
   }
@@ -262,7 +262,7 @@ void AliITSClusterFinderV2SSD::FindClustersSSD(AliITSRawStreamSSD* input,
   if(!repa){
     repa = (AliITSRecoParam*) AliITSReconstructor::GetRecoParam();
     if(!repa){
-      repa = (AliITSRecoParam*) AliITSReconstructor::GetRecoParamDefault();
+      repa = AliITSRecoParam::GetHighFluxParam();
       AliWarning("Using default AliITSRecoParam class");
     }
   }
@@ -687,7 +687,7 @@ FindClustersSSD(Ali1Dcluster* neg, Int_t nn,
   if(!repa){
     repa = (AliITSRecoParam*) AliITSReconstructor::GetRecoParam();
     if(!repa){
-      repa = (AliITSRecoParam*) AliITSReconstructor::GetRecoParamDefault();
+      repa = AliITSRecoParam::GetHighFluxParam();
       AliWarning("Using default AliITSRecoParam class");
     }
   }
index 011f2a5..49a5623 100644 (file)
@@ -43,6 +43,8 @@
 #include "AliITSRawClusterSDD.h"
 #include "AliITSRawClusterSSD.h"
 #include "AliITSRecPoint.h"
+#include "AliITSReconstructor.h"
+#include "AliITSRecoParam.h"
 #include "AliITSCalibrationSDD.h"
 #include "AliITSMapSDD.h"
 #include "AliITSDriftSpeedArraySDD.h"
@@ -404,7 +406,8 @@ Bool_t AliITSDetTypeRec::GetCalibration() {
     AliCDBEntry *entryPedestalSSD = AliCDBManager::Instance()->Get("ITS/Calib/PedestalSSD");
     AliCDBEntry *entryGainSSD = AliCDBManager::Instance()->Get("ITS/Calib/GainSSD");
     AliCDBEntry *entryBadChannelsSSD = AliCDBManager::Instance()->Get("ITS/Calib/BadChannelsSSD");
-
+    // Entry for the AliITSRecoParam object
+    AliCDBEntry *entryRP = AliCDBManager::Instance()->Get("ITS/Calib/RecoParam/");
   AliCDBEntry *entry2SPD = AliCDBManager::Instance()->Get("ITS/Calib/RespSPD");
   AliCDBEntry *entry2SDD = AliCDBManager::Instance()->Get("ITS/Calib/RespSDD");
   AliCDBEntry *entry2SSD = AliCDBManager::Instance()->Get("ITS/Calib/RespSSD");
@@ -415,7 +418,7 @@ Bool_t AliITSDetTypeRec::GetCalibration() {
 
   if(!entrySPD || !entrySDD || !entryNoiseSSD || !entryGainSSD || 
      !entryPedestalSSD || !entryBadChannelsSSD || 
-     !entry2SPD || !entry2SDD || !entry2SSD || !drSpSDD || !ddlMapSDD || !mapASDD || !mapTSDD){
+     !entry2SPD || !entry2SDD || !entry2SSD || !drSpSDD || !ddlMapSDD || !mapASDD || !mapTSDD || !entryRP){
     AliFatal("Calibration object retrieval failed! ");
     return kFALSE;
   }    
@@ -472,6 +475,16 @@ Bool_t AliITSDetTypeRec::GetCalibration() {
   if(!cacheStatus)entry2SSD->SetObject(NULL);
   entry2SSD->SetOwner(kTRUE);
 
+  AliITSRecoParam *rp = (AliITSRecoParam*)entryRP->GetObject();
+  if(!cacheStatus)entryRP->SetObject(NULL);
+  entryRP->SetOwner(kTRUE);
+  if(!AliITSReconstructor::GetRecoParam()){
+    AliITSReconstructor::SetRecoParam(rp);
+  }
+  else {
+    AliWarning("AliITSRecoPAram object has been already set in AliITSReconstructor. The OCDB instance will not be used\n");
+  }
+
   // DB entries are deleted. In this way metadeta objects are deleted as well
   if(!cacheStatus){
     delete entrySPD;
index 9dae107..186adef 100644 (file)
@@ -451,3 +451,34 @@ void AliITSRecoParam::SetLayersParameters()
 
   return;
 }
+//_____________________________________________________________________________
+void AliITSRecoParam::PrintParameters() const 
+{
+  //
+  // print parameters
+  //
+
+  printf("=============================  AliITSRecoParam::PrintParameters ");
+  printf("============================= \n \n ");
+  for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) {
+    if(!fLayersToSkip[i]) {
+      printf("ITS Traking: using layer %d\n",i);
+    } else {
+      printf("ITS Traking: skipping layer %d\n",i);
+    }
+  }
+  for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) {
+    if(fUseAmplitudeInfo[i]) {
+      printf("ITS Traking: use amplitude info for layer %d\n",i);
+    } else {
+      printf("ITS Traking: don't use amplitude info for layer %d\n",i);
+    }
+  }
+  for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++)
+    printf("Layer %d:\n  sigmaY2 %f, sigma Z2 %f\n  max norm chi2 for non constrained tracks %f\n  max norm chi2 for constrained tracks %f\n  max predicted chi2 (cluster & track prol.) %f\n",i,fSigmaY2[i],fSigmaZ2[i],fMaxNormChi2NonC[i],fMaxNormChi2C[i],fMaxChi2s[i]);
+
+
+  Dump();
+
+  return;
+}
index 5823a9f..d0fd381 100644 (file)
@@ -63,6 +63,8 @@ class AliITSRecoParam : public AliDetectorRecoParam
   static Double_t GetSPDdetzlength() { return fgkSPDdetzlength; }
   static Double_t GetSPDdetxlength() { return fgkSPDdetxlength; }
 
+  void PrintParameters() const; 
+
   Double_t GetSigmaY2(Int_t i) const { return fSigmaY2[i]; }
   Double_t GetSigmaZ2(Int_t i) const { return fSigmaZ2[i]; }
 
index 037c021..38a8f2c 100644 (file)
@@ -44,7 +44,6 @@
 
 
 ClassImp(AliITSReconstructor)
-AliITSRecoParam *AliITSReconstructor::fgRecoParamDefault = AliITSRecoParam::GetHighFluxParam();
 AliITSRecoParam *AliITSReconstructor::fgRecoParam =0;  // reconstruction parameters
 
 //___________________________________________________________________________
@@ -53,16 +52,12 @@ fItsPID(0),
 fDetTypeRec(0)
 {
   // Default constructor
-  if (!fgRecoParam) {
-    AliWarning("Using default reconstruction parameters");
-    fgRecoParam = fgRecoParamDefault;
-  }
 }
  //___________________________________________________________________________
 AliITSReconstructor::~AliITSReconstructor(){
 // destructor
   delete fItsPID;
-  if(!fgRecoParam && (fgRecoParam != fgRecoParamDefault)) delete fgRecoParam;
+  //  if(!fgRecoParam) delete fgRecoParam;
   if(fDetTypeRec) delete fDetTypeRec;
 } 
 //______________________________________________________________________
@@ -100,6 +95,12 @@ void AliITSReconstructor::Init() {
     fDetTypeRec = new AliITSDetTypeRec();
     fDetTypeRec->SetITSgeom(geom);
     fDetTypeRec->SetDefaults();
+
+    if(fgRecoParam) {
+      fgRecoParam->PrintParameters();
+    } else {
+      AliWarning("AliITSRecoParam has not been set");
+    } 
     
     return;
 }
index b49bf62..551b774 100644 (file)
@@ -41,17 +41,14 @@ public:
 
   static void SetRecoParam(AliITSRecoParam * param){ fgRecoParam = param;}
   static const AliITSRecoParam* GetRecoParam(){ return fgRecoParam;}
-  static const AliITSRecoParam* GetRecoParamDefault()
-                                { return fgRecoParamDefault;}
 
 private:
   //data
-  static AliITSRecoParam *fgRecoParamDefault; // def. reco. parameters
   static AliITSRecoParam *fgRecoParam; // reconstruction parameters
   AliITSpidESD           *fItsPID;      // Pid for ITS
   AliITSDetTypeRec       *fDetTypeRec;  // reconstructor
 
-  ClassDef(AliITSReconstructor, 4)   // class for the ITS reconstruction
+  ClassDef(AliITSReconstructor, 5)   // class for the ITS reconstruction
 };
 
 #endif
diff --git a/ITS/Calib/RecoParam/Run0_999999999_v0_s0.root b/ITS/Calib/RecoParam/Run0_999999999_v0_s0.root
new file mode 100644 (file)
index 0000000..d74f667
Binary files /dev/null and b/ITS/Calib/RecoParam/Run0_999999999_v0_s0.root differ
diff --git a/ITS/MakeITSRecoParam.C b/ITS/MakeITSRecoParam.C
new file mode 100644 (file)
index 0000000..7ff0188
--- /dev/null
@@ -0,0 +1,58 @@
+void MakeITSRecoParam(Int_t type=1) {
+//========================================================================
+//
+// Steering macro for ITS reconstruction parameters
+//
+// Author: A.Dainese
+// Contact: andrea.dainese@lnl.infn.it
+//
+//========================================================================
+
+
+  const char* macroname = "MakeITSRecoParam.C";
+
+  // Activate CDB storage and load geometry from CDB
+  AliCDBManager* cdb = AliCDBManager::Instance();
+  if(!cdb->IsDefaultStorageSet()) cdb->SetDefaultStorage("local://OCDB");
+  
+  AliITSRecoParam *itsRecoParam = 0;
+  switch(type) {
+  case 0:
+    itsRecoParam = AliITSRecoParam::GetCosmicTestParam();
+    break;
+  case 1:
+    itsRecoParam = AliITSRecoParam::GetLowFluxParam();
+    break;
+  case 2:
+    itsRecoParam = AliITSRecoParam::GetHighFluxParam();
+    break;
+  case default:
+    printf("Wrong event type\n");
+    return;
+    break;
+  }
+  /*
+  itsRecoParam->SetUseTGeoInTracker(3);
+  itsRecoParam->SetClusterErrorsParam(0);
+  itsRecoParam->SetFindV0s(kTRUE);
+  itsRecoParam->SetAddVirtualClustersInDeadZone(kFALSE);
+  itsRecoParam->SetLayerToSkip(0);
+  itsRecoParam->SetLayerToSkip(1);
+  itsRecoParam->SetLayerToSkip(2);
+  itsRecoParam->SetLayerToSkip(3);
+  itsRecoParam->SetLayerToSkip(4);
+  itsRecoParam->SetLayerToSkip(5);
+  */
+
+  // save in CDB storage
+  AliCDBMetaData *md= new AliCDBMetaData();
+  md->SetResponsible("Andrea Dainese");
+  md->SetComment("Reconstruction parameters ITS");
+  md->SetAliRootVersion(gSystem->Getenv("ARVERSION"));
+  md->SetBeamPeriod(0);
+  AliCDBId id("ITS/Calib/RecoParam",0,AliCDBRunRange::Infinity());
+  AliCDBManager::Instance()->GetDefaultStorage()->Put(itsRecoParam,id, md);
+
+
+  return;
+}