if(!repa){
repa = (AliITSRecoParam*) AliITSReconstructor::GetRecoParam();
if(!repa){
- repa = (AliITSRecoParam*) AliITSReconstructor::GetRecoParamDefault();
+ repa = AliITSRecoParam::GetHighFluxParam();
AliWarning("Using default AliITSRecoParam class");
}
}
if(!repa){
repa = (AliITSRecoParam*) AliITSReconstructor::GetRecoParam();
if(!repa){
- repa = (AliITSRecoParam*) AliITSReconstructor::GetRecoParamDefault();
+ repa = AliITSRecoParam::GetHighFluxParam();
AliWarning("Using default AliITSRecoParam class");
}
}
if(!repa){
repa = (AliITSRecoParam*) AliITSReconstructor::GetRecoParam();
if(!repa){
- repa = (AliITSRecoParam*) AliITSReconstructor::GetRecoParamDefault();
+ repa = AliITSRecoParam::GetHighFluxParam();
AliWarning("Using default AliITSRecoParam class");
}
}
if(!repa){
repa = (AliITSRecoParam*) AliITSReconstructor::GetRecoParam();
if(!repa){
- repa = (AliITSRecoParam*) AliITSReconstructor::GetRecoParamDefault();
+ repa = AliITSRecoParam::GetHighFluxParam();
AliWarning("Using default AliITSRecoParam class");
}
}
if(!repa){
repa = (AliITSRecoParam*) AliITSReconstructor::GetRecoParam();
if(!repa){
- repa = (AliITSRecoParam*) AliITSReconstructor::GetRecoParamDefault();
+ repa = AliITSRecoParam::GetHighFluxParam();
AliWarning("Using default AliITSRecoParam class");
}
}
#include "AliITSRawClusterSDD.h"
#include "AliITSRawClusterSSD.h"
#include "AliITSRecPoint.h"
+#include "AliITSReconstructor.h"
+#include "AliITSRecoParam.h"
#include "AliITSCalibrationSDD.h"
#include "AliITSMapSDD.h"
#include "AliITSDriftSpeedArraySDD.h"
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");
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;
}
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;
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;
+}
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]; }
ClassImp(AliITSReconstructor)
-AliITSRecoParam *AliITSReconstructor::fgRecoParamDefault = AliITSRecoParam::GetHighFluxParam();
AliITSRecoParam *AliITSReconstructor::fgRecoParam =0; // reconstruction parameters
//___________________________________________________________________________
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;
}
//______________________________________________________________________
fDetTypeRec = new AliITSDetTypeRec();
fDetTypeRec->SetITSgeom(geom);
fDetTypeRec->SetDefaults();
+
+ if(fgRecoParam) {
+ fgRecoParam->PrintParameters();
+ } else {
+ AliWarning("AliITSRecoParam has not been set");
+ }
return;
}
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
--- /dev/null
+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;
+}