]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
commit to clean dev branch
authorshahoian <ruben.shahoyan@cern.ch>
Sun, 2 Mar 2014 23:15:01 +0000 (00:15 +0100)
committershahoian <ruben.shahoyan@cern.ch>
Tue, 4 Mar 2014 13:40:01 +0000 (14:40 +0100)
18 files changed:
ITS/UPGRADE/Detector.cxx
ITS/UPGRADE/DetectorK.cxx
ITS/UPGRADE/KMCDetector.cxx
ITS/UPGRADE/MakeITSUResMisAlignment.C
ITS/UPGRADE/v0/AliITSUpgradeReconstructor.cxx
STEER/STEER/AliReconstruction.cxx
STEER/STEER/AliReconstruction.h
STEER/STEER/AliSimulation.cxx
STEER/STEER/AliSimulation.h
TPC/Rec/AliTPCtrack.cxx
TPC/Rec/AliTPCtracker.cxx
TRD/AliTRDseedV1.cxx
TRD/AliTRDtrackV1.cxx
TRD/AliTRDtrackerV1.cxx
test/ppbench/aod.C [deleted file]
test/ppbench/recraw/aod.C [deleted file]
test/ppbench/recraw/rec.C [deleted file]
test/ppbench/sim.C

index e2828b0f3b58d6d57d48c6b288b15f08184ad3cd..4e9e85689119253fe3bd0068f10c9361cc82553b 100644 (file)
@@ -1542,12 +1542,12 @@ void Detector::MakeAliceCurrent(Int_t AlignResiduals, Bool_t flagTPC) {
     
   } else if (AlignResiduals==2) {
     
-    // tracking errors ... PLUS ... module misalignment
+    // tracking errors ... PLUS ... chip misalignment
     
     // itsRecoParam->SetClusterMisalErrorYBOn(0.0010,0.0030,0.0500,0.0500,0.0020,0.0020);  // [cm]
     // itsRecoParam->SetClusterMisalErrorZBOn(0.0050,0.0050,0.0050,0.0050,0.1000,0.1000);
     
-    //  the ITS modules are misalignment with small gaussian smearings with
+    //  the ITS chips are misalignment with small gaussian smearings with
     //  sigmarphi ~ 8, 10, 10 micron in SPD, SDD, SSD
     
     AddLayer((char*)"spd1", 3.9, 0.0114, TMath::Sqrt(0.0012*0.0012+0.0010*0.0010+0.0008*0.0008), 
@@ -1565,7 +1565,7 @@ void Detector::MakeAliceCurrent(Int_t AlignResiduals, Bool_t flagTPC) {
 
   } else {
       
-      //  the ITS modules are misalignment with small gaussian smearings with
+      //  the ITS chips are misalignment with small gaussian smearings with
       //  sigmarphi ~ 8, 10, 10 micron in SPD, SDD, SSD
       //  unknown in Z ????
 
index a52c2b11fe2bf833acc9080c16c0c2d2ae49ce95..b0868c0e5321870824943d27775e133a4b9cb600 100644 (file)
@@ -1844,12 +1844,12 @@ void DetectorK::MakeAliceCurrent(Int_t AlignResiduals, Bool_t flagTPC) {
     
   } else if (AlignResiduals==2) {
     
-    // tracking errors ... PLUS ... module misalignment
+    // tracking errors ... PLUS ... chip misalignment
     
     // itsRecoParam->SetClusterMisalErrorYBOn(0.0010,0.0030,0.0500,0.0500,0.0020,0.0020);  // [cm]
     // itsRecoParam->SetClusterMisalErrorZBOn(0.0050,0.0050,0.0050,0.0050,0.1000,0.1000);
     
-    //  the ITS modules are misalignment with small gaussian smearings with
+    //  the ITS chips are misalignment with small gaussian smearings with
     //  sigmarphi ~ 8, 10, 10 micron in SPD, SDD, SSD
     
     AddLayer((char*)"spd1", 3.9, 0.0114, TMath::Sqrt(0.0012*0.0012+0.0010*0.0010+0.0008*0.0008), 
@@ -1867,7 +1867,7 @@ void DetectorK::MakeAliceCurrent(Int_t AlignResiduals, Bool_t flagTPC) {
 
   } else {
       
-      //  the ITS modules are misalignment with small gaussian smearings with
+      //  the ITS chips are misalignment with small gaussian smearings with
       //  sigmarphi ~ 8, 10, 10 micron in SPD, SDD, SSD
       //  unknown in Z ????
 
index 1c9ce095d67e7f6dc5ca4981810162de84fb408e..22786adadaa8a9d7be292ec4be0717fb2addc27c 100755 (executable)
@@ -1724,12 +1724,12 @@ void KMCDetector::MakeAliceCurrent(Bool_t flagTPC, Int_t AlignResiduals) {
   } else if (AlignResiduals==2) {
 
     
-    // tracking errors ... PLUS ... module misalignment
+    // tracking errors ... PLUS ... chip misalignment
     
     // itsRecoParam->SetClusterMisalErrorYBOn(0.0010,0.0030,0.0500,0.0500,0.0020,0.0020);  // [cm]
     // itsRecoParam->SetClusterMisalErrorZBOn(0.0050,0.0050,0.0050,0.0050,0.1000,0.1000);
     
-    //  the ITS modules are misalignment with small gaussian smearings with
+    //  the ITS chips are misalignment with small gaussian smearings with
     //  sigmarphi ~ 8, 10, 10 micron in SPD, SDD, SSD
     
     AddLayer((char*)"spd1_its", 3.9, 0.0114, 2.48e-01, TMath::Sqrt(0.0012*0.0012+0.0010*0.0010+0.0008*0.0008), 
@@ -1747,7 +1747,7 @@ void KMCDetector::MakeAliceCurrent(Bool_t flagTPC, Int_t AlignResiduals) {
 
   } else {
       
-      //  the ITS modules are misalignment with small gaussian smearings with
+      //  the ITS chips are misalignment with small gaussian smearings with
       //  sigmarphi ~ 8, 10, 10 micron in SPD, SDD, SSD
       //  unknown in Z ????
 
index 8e5bb729d35388a72e808cd65097f5a574f2dfee..c9d9d292644907e8c323f6e16083118c6d11f249 100644 (file)
@@ -92,7 +92,7 @@ void MakeITSUResMisAlignment()
       new( (*deltas)[idel++] ) AliAlignObjParams(sname.Data(),dummyVID,
                                                 dx,dy,dz,dtht,dpsi,dphi,kTRUE);
       //
-      for (int isn=0;isn<gm0->GetNChipsPerModule(ilr);isn++) {
+      for (int isn=0;isn<gm0->GetNChipsPerStave(ilr);isn++) {
        dx   = sgXMod*gRandom->Gaus();
        dy   = sgYMod*gRandom->Gaus();  
        dz   = sgZMod*gRandom->Gaus();
@@ -100,7 +100,7 @@ void MakeITSUResMisAlignment()
        dpsi = sgPsiMod*gRandom->Gaus(); 
        dphi = sgPhiMod*gRandom->Gaus();        
        int mid = gm0->GetChipIndex(ilr,ild,isn);
-       sname = gm0->GetSymName(mid);
+       sname = gm0->ComposeSymNameChip(ilr,ild,-1,-1,isn);
        new( (*deltas)[idel++] ) AliAlignObjParams(sname.Data(),gm0->ChipVolUID(mid),
                                                   dx,dy,dz,dtht,dpsi,dphi,kTRUE);
       }
index 859d85785b4717ea6c45453d2876e7f3e048519c..ecee86859701bd92367bc631c62e66cb25c505f3 100644 (file)
@@ -26,7 +26,7 @@
 #include "AliITSReconstructor.h"
 #include "AliITSupgrade.h"
 #include "AliITSUpgradeReconstructor.h" //class header
-#include "AliITSDetTypeRec.h"
+#include "AliITSChipTypeRec.h"
 #include "AliITS.h"              //Reconstruct() 
 #include "AliESDEvent.h"           //FillEsd()
 #include "AliRawReader.h"          //Reconstruct() for raw digits
index 3dcfe74affc99fa80fed7728c4f8f86e2e809c3e..99319858e276a7fb313402334d2de727d579bc90 100644 (file)
@@ -285,6 +285,7 @@ AliReconstruction::AliReconstruction(const char* gAliceFilename) :
   fCDBUri(),
   fQARefUri(),
   fSpecCDBUri(), 
+  fCheckRecoCDBvsSimuCDB(),
   fInitCDBCalled(kFALSE),
   fCDBSnapshotMode(kFALSE),
   fSetRunNumberFromDataCalled(kFALSE),
@@ -345,7 +346,9 @@ AliReconstruction::AliReconstruction(const char* gAliceFilename) :
     fQAWriteExpert[iDet] = kFALSE ; 
   }
   fBeamInt[0][0]=fBeamInt[0][1]=fBeamInt[1][0]=fBeamInt[1][1] = -1;
-
+  //
+  AddCheckRecoCDBvsSimuCDB("TPC/Calib/RecoParam"); // check for similarity in the sim and rec
+  //
   AliPID pid;
 }
 
@@ -419,6 +422,7 @@ AliReconstruction::AliReconstruction(const AliReconstruction& rec) :
   fCDBUri(rec.fCDBUri),
   fQARefUri(rec.fQARefUri),
   fSpecCDBUri(), 
+  fCheckRecoCDBvsSimuCDB(),
   fInitCDBCalled(rec.fInitCDBCalled),
   fCDBSnapshotMode(rec.fCDBSnapshotMode),
   fSetRunNumberFromDataCalled(rec.fSetRunNumberFromDataCalled),
@@ -486,6 +490,10 @@ AliReconstruction::AliReconstruction(const AliReconstruction& rec) :
     if (rec.fSpecCDBUri[i]) fSpecCDBUri.Add(rec.fSpecCDBUri[i]->Clone());
   }
 
+  for (Int_t i = 0; i < rec.fCheckRecoCDBvsSimuCDB.GetEntriesFast(); i++) {
+    if (rec.fCheckRecoCDBvsSimuCDB[i]) fCheckRecoCDBvsSimuCDB.AddLast(rec.fCheckRecoCDBvsSimuCDB[i]->Clone());
+  }
+
   for (int i=2;i--;) for (int j=2;j--;) fBeamInt[i][j] = rec.fBeamInt[i][j];
 
 }
@@ -601,6 +609,12 @@ AliReconstruction& AliReconstruction::operator = (const AliReconstruction& rec)
   fCDBUri        = "";
   fQARefUri      = rec.fQARefUri;
   fSpecCDBUri.Delete();
+  fCheckRecoCDBvsSimuCDB.Delete();
+  //
+  for (Int_t i = 0; i < rec.fCheckRecoCDBvsSimuCDB.GetEntriesFast(); i++) {
+    if (rec.fCheckRecoCDBvsSimuCDB[i]) fCheckRecoCDBvsSimuCDB.AddLast(rec.fCheckRecoCDBvsSimuCDB[i]->Clone());
+  }
+  //
   fInitCDBCalled               = rec.fInitCDBCalled;
   fCDBSnapshotMode             = rec.fCDBSnapshotMode;
   fSetRunNumberFromDataCalled  = rec.fSetRunNumberFromDataCalled;
@@ -666,7 +680,7 @@ AliReconstruction::~AliReconstruction()
     delete fAlignObjArray;
   }
   fSpecCDBUri.Delete();
-
+  fCheckRecoCDBvsSimuCDB.Delete();
   AliCodeTimer::Instance()->Print();
 }
 
@@ -829,6 +843,7 @@ void AliReconstruction::SetQARefDefaultStorage(const char* uri) {
   AliQAv1::SetQARefStorage(fQARefUri.Data()) ;
   
 }
+
 //_____________________________________________________________________________
 void AliReconstruction::SetSpecificStorage(const char* calibType, const char* uri) {
 // Store a detector-specific CDB storage location
@@ -871,6 +886,48 @@ void AliReconstruction::SetSpecificStorage(const char* calibType, const char* ur
 
 }
 
+//_____________________________________________________________________________
+void AliReconstruction::AddCheckRecoCDBvsSimuCDB(const char* cdbpath,const char* comment) 
+{
+  // require the cdb item to be the same in the rec as in the sim
+  // Activate it later within the Run() method
+  TString newent = cdbpath;
+  if (newent.IsNull()) return;
+  TIter nextit(&fCheckRecoCDBvsSimuCDB);
+  TNamed* cdbent=0;
+  while ((cdbent=(TNamed*)nextit())) {
+    TString str = cdbent->GetName();
+    if (str==newent) {
+      AliInfo(Form("%s is already in the list to check",cdbpath));
+      return;
+    }
+  }
+  fCheckRecoCDBvsSimuCDB.AddLast(new TNamed(cdbpath,comment));
+  //
+}
+
+//_____________________________________________________________________________
+void AliReconstruction::RemCheckRecoCDBvsSimuCDB(const char* cdbpath) 
+{
+  // require the cdb item to be the same in the rec as in the sim
+  // Activate it later within the Run() method
+  TString newent = cdbpath;
+  if (newent.IsNull()) return;
+  TIter nextit(&fCheckRecoCDBvsSimuCDB);
+  TNamed* cdbent=0;
+  while ((cdbent=(TNamed*)nextit())) {
+    TString str = cdbent->GetName();
+    if (str==newent) {
+      AliInfo(Form("Removing %s from the list to check",cdbpath));
+      delete fCheckRecoCDBvsSimuCDB.Remove(cdbent);
+      fCheckRecoCDBvsSimuCDB.Compress();
+      return;
+    }
+  }
+  AliInfo(Form("%s is not in the list to check",cdbpath));
+  //
+}
+
 //_____________________________________________________________________________
 Bool_t AliReconstruction::SetRunNumberFromData()
 {
@@ -1750,6 +1807,8 @@ void AliReconstruction::SlaveBegin(TTree*)
   }
   AliSysInfo::AddStamp("LoadLoader");
  
+  CheckRecoCDBvsSimuCDB();
+
   ftVertexer = new AliVertexerTracks(AliTracker::GetBz());
 
   // get trackers
@@ -4586,3 +4645,142 @@ Bool_t AliReconstruction::HasNextEventAfter(Int_t eventId)
         return ( (eventId < fRunLoader->GetNumberOfEvents()) ||
           (fRawReader && fRawReader->NextEvent()) );
 }
+
+//_________________________________________________________________
+void AliReconstruction::CheckRecoCDBvsSimuCDB()
+{
+  // if some CDB entries must be the same in the simulation
+  // and reconstruction, check here
+  int nent = fCheckRecoCDBvsSimuCDB.GetEntriesFast();
+  AliInfo(Form("Check %d entries for matching between sim and rec",nent));
+  //
+  // get simulation CDB
+  fRunLoader->CdGAFile();
+  TMap*  cdbMapSim  = (TMap*)gDirectory->Get("cdbMap");
+  TList* cdbListSim = (TList*)gDirectory->Get("cdbList");
+  if (!(cdbMapSim && cdbListSim)) {
+    AliInfo(Form("No CDBMap/List found in %s, nothing to check",fGAliceFileName.Data()));
+    return;
+  }
+  // read the requested objects to make sure they will appear in the reco list
+  for (Int_t i=0;i<nent;i++) {
+    TNamed* cdbent = (TNamed*) fCheckRecoCDBvsSimuCDB[i];
+    if (!cdbent) continue;
+    AliCDBManager::Instance()->Get(cdbent->GetName());
+  }
+  // get default path for simulation
+  TPair* pair;
+  TObjString* stro;
+  pair = (TPair*)cdbMapSim->FindObject("default");
+  if (!pair) {AliFatal("Did not find default storage used for simulations"); return;}
+  TString defSimStore = ((TObjString*)pair->Value())->GetString();
+  RectifyCDBurl(defSimStore);
+  //
+  // get reconstruction CDB
+  const TMap *cdbMapRec = AliCDBManager::Instance()->GetStorageMap();   
+  const TList *cdbListRec = AliCDBManager::Instance()->GetRetrievedIds();       
+  //
+  // get default path for reconstruction
+  pair = (TPair*)cdbMapRec->FindObject("default");
+  if (!pair) {AliFatal("Did not find default storage used for reconstruction"); return;}
+  TString defRecStore = ((TObjString*)pair->Value())->GetString();
+  RectifyCDBurl(defRecStore);
+  //
+  for (Int_t i=0;i<nent;i++) {
+    TNamed* cdbent = (TNamed*) fCheckRecoCDBvsSimuCDB[i];
+    if (!cdbent) continue;
+    //
+    AliInfo(Form("#%d Checking %s",i,cdbent->GetName()));
+    //
+    // check in the simuCDB special params
+    pair = (TPair*)cdbMapSim->FindObject(cdbent->GetName());
+    TString idSimD = "";
+    TString idSimS = "";
+    if (pair) { // specific path is used
+      idSimS = ((TObjString*)pair->Value())->GetString();
+      RectifyCDBurl(idSimS);
+    }
+    else { // check in default storage list
+      TIter nextSim(cdbListSim);
+      while ((stro=(TObjString*)nextSim())) {
+       if (stro->GetString().Contains(cdbent->GetName())) {
+         idSimD = stro->GetString();
+         break;
+       }
+      }
+    }
+    //
+    // check in the recoCDB special params
+    pair = (TPair*)cdbMapRec->FindObject(cdbent->GetName());
+    TString idRecD = "";
+    TString idRecS = "";
+    if (pair) {  // specific path is used
+      idRecS = ((TObjString*)pair->Value())->GetString();
+      RectifyCDBurl(idRecS);
+    }
+    else { // check in default storage list
+      TIter nextRec(cdbListRec);
+      while ((stro=(TObjString*)nextRec())) {
+       if (stro->GetString().Contains(cdbent->GetName())) {
+         idRecD = stro->GetString();
+         break;
+       }
+      }
+    }
+    //-----------------------------
+    Bool_t ok = kTRUE;
+    if (!idSimD.IsNull()) {  // simulation used object from default storage
+      AliInfo(Form("Simulation used default storage %s\nentry %s",defSimStore.Data(),idSimD.Data()));
+      if (!idRecD.IsNull()) { // reco also
+       AliInfo(Form("Reconstruction used default storage %s\nentry %s",defRecStore.Data(),idRecD.Data()));
+       if ( (idSimD!=idRecD) || (defSimStore!=defRecStore) ) ok = kFALSE;
+      }
+      else if (!idRecS.IsNull()) { // reco used specific storage, strict check of version is not possible
+       AliInfo(Form("Reconstruction used specific storage %s",idRecS.Data()));
+       if (defSimStore!=idRecS) ok = kFALSE;
+      }
+      else {
+       AliInfo("Did not find object used in reconstruction");
+       ok = kFALSE;
+      }
+    }
+    else if (!idSimS.IsNull()) { // simulation used object from specific storage
+      AliInfo(Form("Simulation used specific storage %s",idSimS.Data()));
+      if (!idRecS.IsNull()) { // reco also     
+       AliInfo(Form("Reconstruction used specific storage %s",idRecS.Data()));
+       if (idSimS!=idRecS) ok = kFALSE;
+      }
+      else if (!idRecD.IsNull()) {
+       AliInfo(Form("Reconstruction used default storage %s\nentry",idRecD.Data()));
+       if (idSimS!=defRecStore) ok = kFALSE;
+      }
+      else {
+       AliInfo("Did not find object used in reconstruction");
+       ok = kFALSE;
+      }      
+    }
+    else {
+      AliInfo("Did not find object used in simulation");
+      ok = kFALSE;      
+    }
+    if (!ok) AliFatal("Different objects were used in sim and rec");
+  }
+  //
+}
+
+//_________________________________________________________
+void AliReconstruction::RectifyCDBurl(TString& url)
+{
+  // TBD RS
+  // remove everything but the url
+  TString sbs;
+  if (!(sbs=url("\\?User=[^?]*")).IsNull())                url.ReplaceAll(sbs,"");
+  if (!(sbs=url("\\?DBFolder=[^?]*")).IsNull())            url.ReplaceAll("?DB","");
+  if (!(sbs=url("\\?SE=[^?]*")).IsNull())                  url.ReplaceAll(sbs,"");
+  if (!(sbs=url("\\?CacheFolder=[^?]*")).IsNull())         url.ReplaceAll(sbs,"");
+  if (!(sbs=url("\\?OperateDisconnected=[^?]*")).IsNull()) url.ReplaceAll(sbs,"");
+  if (!(sbs=url("\\?CacheSize=[^?]*")).IsNull())           url.ReplaceAll(sbs,"");  
+  if (!(sbs=url("\\?CleanupInterval=[^?]*")).IsNull())     url.ReplaceAll(sbs,"");  
+  url.ToLower();
+  //
+}
index 35548b3524287b4e0cafa1d6152024cb21d5c563..a037f3ae74c50a8d551059766d0c700df9ef3dae 100644 (file)
@@ -127,7 +127,12 @@ public:
   void SetDefaultStorage(const char* uri);
   void SetSpecificStorage(const char* calibType, const char* uri);
   void SetCDBSnapshotMode(const char* snapshotFileName);
-
+  void AddCheckRecoCDBvsSimuCDB(const char* cdbpath,const char* comment="");
+  void RemCheckRecoCDBvsSimuCDB(const char* cdbpath);
+  void ResetCheckRecoCDBvsSimuCDB() {fCheckRecoCDBvsSimuCDB.Delete();}
+  void RectifyCDBurl(TString& url);
+  const TObjArray* GetCheckRecoCDBvsSimuCDB() const {return &fCheckRecoCDBvsSimuCDB;}
+  void CheckRecoCDBvsSimuCDB();
   Bool_t MisalignGeometry(const TString& detectors);
 
   void           SetAlignObjArray(TObjArray *array)
@@ -341,6 +346,7 @@ private:
   TString       fCDBUri;             //! Uri of the default CDB storage
   TString       fQARefUri;         //! Uri of the default QA reference storage
   TObjArray      fSpecCDBUri;         //! Array with detector specific CDB storages
+  TObjArray      fCheckRecoCDBvsSimuCDB; // Array for CDB items which must be the same in the sim and rec
   Bool_t        fInitCDBCalled;               //! flag to check if CDB storages are already initialized
   Bool_t         fCDBSnapshotMode;             //! flag true if we are setting the CDB Manager in snapshot mode
   Bool_t        fSetRunNumberFromDataCalled;  //! flag to check if run number is already loaded from run loader
@@ -406,7 +412,7 @@ private:
   Int_t                fMaxVMEM;        //  max VMEM memory, MB
   static const char*   fgkStopEvFName;  //  filename for stop.event stamp
   //
-  ClassDef(AliReconstruction, 48)      // class for running the reconstruction
+  ClassDef(AliReconstruction, 49)      // class for running the reconstruction
 };
 
 #endif
index e7158c9945faca288dd2c9c3bc30e66a9c16d5fd..2fbf9872af78085c2f06514dc4538b6b37916fc4 100644 (file)
@@ -2106,7 +2106,9 @@ void AliSimulation::FinishRun()
   AliRunLoader::Instance()->CdGAFile();
   gAlice->Write(0,TObject::kOverwrite);//write AliRun
   AliRunLoader::Instance()->Write(0,TObject::kOverwrite);//write RunLoader itself
-  
+  //
+  StoreUsedCDBMaps();
+  //  
   if(gAlice->GetMCApp()) gAlice->GetMCApp()->FinishRun();  
   AliRunLoader::Instance()->Synchronize();
 }
@@ -2513,3 +2515,46 @@ time_t AliSimulation::GenerateTimeStamp() const
   else
     return 0;
 }
+
+//_____________________________________________________________________________
+void AliSimulation::StoreUsedCDBMaps() const
+{
+  // write in galice.root maps with used CDB paths
+  //
+  const TMap *cdbMap = AliCDBManager::Instance()->GetStorageMap();      
+  const TList *cdbList = AliCDBManager::Instance()->GetRetrievedIds();  
+  //
+  TMap *cdbMapCopy = new TMap(cdbMap->GetEntries());    
+  cdbMapCopy->SetOwner(1);      
+  //  cdbMapCopy->SetName("cdbMap");    
+  TIter iter(cdbMap->GetTable());       
+  //    
+  TPair* pair = 0;      
+  while((pair = dynamic_cast<TPair*> (iter.Next()))){   
+    TObjString* keyStr = dynamic_cast<TObjString*> (pair->Key());       
+    TObjString* valStr = dynamic_cast<TObjString*> (pair->Value());
+    if (keyStr && valStr)
+      cdbMapCopy->Add(new TObjString(keyStr->GetName()), new TObjString(valStr->GetName()));    
+  }     
+  //    
+  TList *cdbListCopy = new TList();     
+  cdbListCopy->SetOwner(1);     
+  //  cdbListCopy->SetName("cdbList");  
+  //
+  TIter iter2(cdbList);         
+  
+  AliCDBId* id=0;
+  while((id = dynamic_cast<AliCDBId*> (iter2.Next()))){         
+    cdbListCopy->Add(new TObjString(id->ToString().Data()));    
+  }     
+  //
+  AliRunLoader::Instance()->CdGAFile();
+  gDirectory->WriteObject(cdbMapCopy,"cdbMap","kSingleKey");
+  gDirectory->WriteObject(cdbListCopy,"cdbList","kSingleKey");  
+  //
+  AliInfo(Form("Stored used OCDB entries as TMap %s and TList %s in %s",
+              cdbMapCopy->GetName(),
+              cdbListCopy->GetName(),
+              fGAliceFileName.Data()));
+  //
+}
index 4d7e1cee321852c71ab625fcded3c5954f327d4e..9cf13ffab5487cd8cf9e76d01e544a9ca76b847c 100644 (file)
@@ -122,6 +122,8 @@ public:
   virtual  Bool_t IsLegoRun() const {return (fLego!=0);}
   AliLego* Lego() const {return fLego;}
   virtual  void  FinishRun();
+  //
+  void StoreUsedCDBMaps() const; 
 
   //Quality Assurance
   Int_t       GetDetIndex(const char * detector);
index 1401ccaa285de79105abbab2bc1b0b48d2782502..9ed3e1fe966a380a5b3398b1374034b725a3be7b 100644 (file)
@@ -158,7 +158,7 @@ AliTPCtrack::AliTPCtrack(const AliESDtrack& t, TTreeSRedirector *pcstream) :
   const AliExternalTrackParam  *tpcin = t.GetInnerParam();
   const AliExternalTrackParam  *tpc=(tpcout)?tpcout:tpcin;
   if (!tpc) tpc=&param;
-  Bool_t isOK=recoParam->GetUseOuterDetectors();
+  Bool_t isOK=kTRUE;// RS recoParam->GetUseOuterDetectors();
   if (param.GetCovariance()[0]>kmaxC[0]*kmaxC[0]) isOK=kFALSE;
   if (param.GetCovariance()[2]>kmaxC[1]*kmaxC[1]) isOK=kFALSE;
   if (param.GetCovariance()[5]>kmaxC[2]*kmaxC[2]) isOK=kFALSE;
index 47179c9d836dcd648cf39e51c52ce64024831a4b..93858ade886acf374605859f492d74714e0f5e4d 100644 (file)
@@ -3240,6 +3240,7 @@ void AliTPCtracker::ReadSeeds(const AliESDEvent *const event, Int_t direction)
 
     }
     if (((status&AliESDtrack::kITSout)==0)&&(direction==1)) seed->ResetCovariance(10.); 
+    //RS    if ( direction ==2 &&(status & AliESDtrack::kTRDrefit) == 0 ) seed->ResetCovariance(10.);
     if ( direction ==2 &&(status & AliESDtrack::kTRDrefit) == 0 ) seed->ResetCovariance(10.);
     //if ( direction ==2 && ((status & AliESDtrack::kTPCout) == 0) ) {
     //  fSeeds->AddAt(0,i);
@@ -7914,6 +7915,7 @@ Bool_t AliTPCtracker::IsFindable(AliTPCseed & track){
 
 void AliTPCtracker::AddCovariance(AliTPCseed * seed){
   //
+  return;
   // Adding systematic error estimate to the covariance matrix
   //                !!!! the systematic error for element 4 is in 1/GeV 
   // 03.03.2012     MI changed in respect to the previous versions
index e06f1c2cf610d0cbb733cda16df8ecc4d2b92b1a..0925cbf116b6bc39de8007830c26e2e6a86b1846 100644 (file)
@@ -850,13 +850,14 @@ void AliTRDseedV1::GetCovAt(Double_t x, Double_t *cov) const
   //GetPadLength()*GetPadLength()/12.;
 
   // insert systematic uncertainties
+  /* //RS
   if(fkReconstructor){
     Double_t sys[15]; memset(sys, 0, 15*sizeof(Double_t));
     fkReconstructor->GetRecoParam()->GetSysCovMatrix(sys);
     sy2 += sys[0];
     sz2 += sys[1];
   }
-
+  */
   // rotate covariance matrix if no RC
   if(!IsRowCross()){
     Double_t t2 = GetTilt()*GetTilt();
@@ -2072,7 +2073,7 @@ Bool_t AliTRDseedV1::FitRobust(Bool_t chg)
     if(!attach){ 
       AliWarning("No usable AttachClusters calib object.");
     } else { 
-      kScalePulls = attach->GetScaleCov();//*lyScaler;
+      // kScalePulls = attach->GetScaleCov();//*lyScaler;
     }
     // Retrieve chamber status
     SetChmbGood(calibration->IsChamberGood(fDet));
index 52090dc61af4728ad4ee6d2f7333def4024b916a..4921d25bf9caf2268b70c5848f4fbfad72e80733 100644 (file)
@@ -145,6 +145,7 @@ AliTRDtrackV1::AliTRDtrackV1(const AliESDtrack &t) : AliKalmanTrack()
   for(int is =0; is<AliPID::kSPECIES; is++) fPID[is] = pid;
 
   const AliExternalTrackParam *par = &t;
+  /* RS
   if (t.GetStatus() & AliESDtrack::kTRDbackup) {
     par = t.GetOuterParam();
     if (!par) {
@@ -152,6 +153,7 @@ AliTRDtrackV1::AliTRDtrackV1(const AliESDtrack &t) : AliKalmanTrack()
       par = &t;
     }
   }
+  */
   Set(par->GetX() 
      ,par->GetAlpha()
      ,par->GetParameter()
index 4ab9e5d8829e64d33abbeac45b3a6f05cc7cb35b..e14f7882395af4c8a0230689dbb798be0f26f7c7 100644 (file)
@@ -582,6 +582,7 @@ Int_t AliTRDtrackerV1::FollowProlongation(AliTRDtrackV1 &t)
       AliDebug(1, Form("Tracklet Det[%d] !OK", tracklet->GetDetector()));
       continue;
     }
+    tracklet->FitRobust();
     Double_t x  = tracklet->GetX();//GetX0();
     // reject tracklets which are not considered for inward refit
     if(x > t.GetX()+AliTRDReconstructor::GetMaxStep()) continue;
@@ -624,6 +625,10 @@ Int_t AliTRDtrackerV1::FollowProlongation(AliTRDtrackV1 &t)
     Double_t cov[3]; tracklet->GetCovAt(x, cov);
     Double_t p[2] = { tracklet->GetY(), tracklet->GetZ()};
     Double_t chi2 = ((AliExternalTrackParam)t).GetPredictedChi2(p, cov);
+    AliInfo(Form("Pl:%d X:%+e : %+e P: %+e %+e Cov:%+e %+e %+e -> dXY: %+e %+e | chi2:%.2f pT:%.2f alp:%.3f",
+                iplane,x,t.GetX(),p[0],p[1],cov[0],cov[1],cov[2],
+                p[0]-t.GetY(),p[1]-t.GetZ(),
+                chi2,t.Pt(),t.GetAlpha()));
     if (chi2 < 1e+10 && ((AliExternalTrackParam&)t).Update(p, cov)){ 
       // Register info to track
       t.SetNumberOfClusters();
diff --git a/test/ppbench/aod.C b/test/ppbench/aod.C
deleted file mode 100644 (file)
index 911379c..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-void aod(){
-
-    gSystem->Load("libANALYSIS");
-    gSystem->Load("libANALYSISalice");
-    gSystem->Load("libCORRFW");
-    gSystem->Load("libPWGHFbase");
-    gSystem->Load("libPWGmuon");
-    gSystem->Load("libESDfilter");
-    gSystem->Load("libTENDER");
-    gSystem->Load("libPWGPP");
-
-    gROOT->Macro("${ALICE_ROOT}/STEER/CreateAODfromESD.C(\"AliESDs.root\",\"AliAOD.root\",\"local://$ALICE_ROOT/OCDB\",\"local://.\")");
-}
diff --git a/test/ppbench/recraw/aod.C b/test/ppbench/recraw/aod.C
deleted file mode 100644 (file)
index 55bfd5f..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-void aod(){
-
-    gSystem->Load("libANALYSIS");
-    gSystem->Load("libANALYSISalice");
-    gSystem->Load("libCORRFW");
-    gSystem->Load("libPWGHFbase");
-    gSystem->Load("libPWGmuon");
-    gSystem->Load("libESDfilter");
-    gSystem->Load("libTENDER");
-    gSystem->Load("libPWGPP");
-
-    gROOT->Macro("${ALICE_ROOT}/STEER/CreateAODfromESD.C(\"AliESDs.root\",\"AliAODs.root\",\"local://$ALICE_ROOT/OCDB\",\"local://..\",kFALSE)");
-}
diff --git a/test/ppbench/recraw/rec.C b/test/ppbench/recraw/rec.C
deleted file mode 100644 (file)
index 285ef55..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-void rec() {
-
-  AliReconstruction reco;
-
-  reco.SetWriteESDfriend();
-  reco.SetWriteAlignmentData();
-
-  reco.SetInput("raw.root");
-
-  reco.SetNumberOfEventsPerFile(-1); // all events in one single file
-
-  reco.SetDefaultStorage("local://$ALICE_ROOT/OCDB");
-  reco.SetSpecificStorage("GRP/GRP/Data",
-                         Form("local://%s/..",gSystem->pwd()));
-  reco.SetRunPlaneEff(kTRUE);
-
-  reco.SetRunReconstruction("ALL") ;
-  reco.SetRunQA("ALL:ALL") ;
-  
-  reco.SetQARefDefaultStorage("local://$ALICE_ROOT/QAref") ;
-  
-  for (Int_t det = 0 ; det < AliQA::kNDET ; det++) {
-    reco.SetQACycles((AliQAv1::DETECTORINDEX_t)det, 999) ;
-    reco.SetQAWriteExpert((AliQAv1::DETECTORINDEX_t)det) ; 
-  }
-
-  TStopwatch timer;
-  timer.Start();
-  reco.Run();
-  timer.Stop();
-  timer.Print();
-}
index baf8eeb74536a03175eef56823b75ef48e6f5945..ac835873dd06f9f74832bd9ee4047571d7c351ee 100644 (file)
@@ -20,6 +20,10 @@ void sim(Int_t nev=20) {
   simulator.SetSpecificStorage("GRP/GRP/Data",
                               Form("local://%s",gSystem->pwd()));
   
+  simulator.SetSpecificStorage("ITS/Align/Data",
+                              Form("local://%s",gSystem->pwd()));
+
+
   simulator.SetRunQA("ALL:ALL") ; 
   
   simulator.SetQARefDefaultStorage("local://$ALICE_ROOT/QAref") ;