Example #1
0
//______________________________________________________________________________
void ChangeITSRecoParam(Int_t startRun=157560,const char* outputOCDB="alien://folder=/alice/cern.ch/user/l/laphecet/OCDB")
{
  AliCDBManager::Instance()->SetDefaultStorage("raw://");
  AliCDBManager::Instance()->SetRun(startRun);
  
  AliCDBEntry* entry = AliCDBManager::Instance()->Get("ITS/Calib/RecoParam");
  
  if (!entry) return;
  
  TObject* o = entry->GetObject();
  
  if (!o)
  {
    cout << "Could not get recoparams ? Oups" << endl;
    return;
  }
  
  if ( o->IsA() != TObjArray::Class() ) 
  {
    cout << "This code only works with TObjArray recoparams. Sorry" << endl;
    return;
  }
  
  TObjArray* array = static_cast<TObjArray*>(o);
  for ( Int_t i = 0; i <= array->GetLast(); ++i ) 
  {
    AliDetectorRecoParam* p = static_cast<AliDetectorRecoParam*>(array->At(i));
    if (AliRecoParam::Convert(p->GetEventSpecie())==AliRecoParam::kLowMult)
    {
      cout << Form("array[%d]=%s %s %s",i,
                   p ? p->ClassName() : "",
                   p ? AliRecoParam::GetEventSpecieName(AliRecoParam::Convert(p->GetEventSpecie())) :"",
                   p ? ( p->IsDefault() ? "default" : "") : "" ) << endl;
      AliITSRecoParam* rp = dynamic_cast<AliITSRecoParam*>(p);
      if (!rp) 
      {
        cout << "OUPS. OUPS" << endl;
        return;
      }
      rp->SetVertexer(4); // should be fast (i.e. MC) vertexer  (an enum would be better for sure)
    }
  }
  
  AliCDBManager::Instance()->SetDefaultStorage(outputOCDB);
  
  AliMUONCDB::WriteToCDB(array, "ITS/Calib/RecoParam", startRun, AliCDBRunRange::Infinity(), 
                         "reconstruction parameters for ITS, patched for fake vertex finder", "L. Aphecetche");
  
}
Example #2
0
void rec() {
  /* AliLog::SetGlobalLogLevel(AliLog::kInfo);
  AliLog::SetClassDebugLevel("AliTOFtracker",2);
  AliLog::SetClassDebugLevel("AliTOFtrackerV1",2);
  AliLog::SetClassDebugLevel("AliTOFGeometry",2);*/

  AliReconstruction reco;


  reco.SetWriteESDfriend();
  reco.SetWriteAlignmentData();

  // reco.SetRecoParam("ITS",AliITSRecoParam::GetHighFluxParam());   
   AliITSRecoParam * itsRecoParam = AliITSRecoParam::GetHighFluxParam(); //Pb-Pb
 // trackleter options ...
  itsRecoParam->SetTrackleterOnlyOneTrackletPerC2(kFALSE);

  itsRecoParam->SetTrackleterPhiWindow(0.015); //rad
  itsRecoParam->SetTrackleterZetaWindow(0.03); //cm

  reco.SetRecoParam("ITS",itsRecoParam);

  reco.SetRecoParam("TPC",AliTPCRecoParam::GetHighFluxParam());
  reco.SetRecoParam("TRD",AliTRDrecoParam::GetHighFluxParam());
  reco.SetRecoParam("TOF",AliTOFRecoParam::GetPbPbparam());
  reco.SetRecoParam("PHOS",AliPHOSRecoParam::GetDefaultParameters());
  reco.SetRecoParam("MUON",AliMUONRecoParam::GetHighFluxParam());

  reco.SetRunVertexFinderTracks(kFALSE);

  reco.SetDefaultStorage("alien://Folder=/alice/simulation/2008/v4-15-Release/Ideal");
  reco.SetSpecificStorage("GRP/GRP/Data",
			  Form("local://%s",gSystem->pwd()));

  TStopwatch timer;
  timer.Start();
  reco.Run();
  timer.Stop();
  timer.Print();
}
Example #3
0
AliITSRecoParam* GetSpecialITSRecoParam()
{
  AliITSRecoParam *itsRecoParam = AliITSRecoParam::GetHighFluxParam();
  itsRecoParam->SetTrackleterPhiWindowL2(0.07);
  itsRecoParam->SetTrackleterZetaWindowL2(0.4);
  itsRecoParam->SetTrackleterPhiWindowL1(0.10);
  itsRecoParam->SetTrackleterZetaWindowL1(0.6);
  itsRecoParam->SetTrackleterPhiWindow(0.06);
  itsRecoParam->SetTrackleterThetaWindow(0.025);
  itsRecoParam->SetTrackleterScaleDThetaBySin2T(kTRUE);
  itsRecoParam->SetTrackleterRemoveClustersFromOverlaps(kTRUE);
  
  itsRecoParam->SetVertexerZ();  
  itsRecoParam->ReconstructOnlySPD();

  return itsRecoParam;
}
Example #4
0
AliITSRecoParam* GetSpecialITSRecoParam()
{
AliITSRecoParam *itsRecoParam = AliITSRecoParam::GetHighFluxParam();
itsRecoParam->SetTrackleterPhiWindowL2(0.07);
itsRecoParam->SetTrackleterZetaWindowL2(0.4);
itsRecoParam->SetTrackleterPhiWindowL1(0.10);
itsRecoParam->SetTrackleterZetaWindowL1(0.6);
itsRecoParam->SetTrackleterPhiWindow(0.06);
itsRecoParam->SetTrackleterThetaWindow(0.025);
itsRecoParam->SetTrackleterScaleDThetaBySin2T(kTRUE);
itsRecoParam->SetTrackleterRemoveClustersFromOverlaps(kTRUE);

itsRecoParam->SetVertexerZ();  // this is the present default. We plan to use 3D vertexer for pass 2. If you want to select 3D you can replace this line with
itsRecoParam->ReconstructOnlySPD();

return itsRecoParam;
}
Example #5
0
void rec() {
  AliLog::SetGlobalLogLevel(AliLog::kError);

  AliReconstruction reco;

  reco.SetWriteESDfriend();
  reco.SetWriteAlignmentData();


  AliITSRecoParam * itspar = AliITSRecoParam::GetLowFluxParam();
  itspar->SetStoreLikeSignV0s(kTRUE);
  reco.SetRecoParam("ITS",itspar);
  reco.SetRecoParam("TPC",AliTPCRecoParam::GetLowFluxParam());
  reco.SetRecoParam("TRD",AliTRDrecoParam::GetLowFluxParam());
  reco.SetRecoParam("PHOS",AliPHOSRecoParam::GetDefaultParameters());
  reco.SetRecoParam("MUON",AliMUONRecoParam::GetLowFluxParam());
  reco.SetRecoParam("EMCAL",AliEMCALRecParam::GetLowFluxParam());
  reco.SetRecoParam("GRP",AliGRPRecoParam::GetLowFluxParam());

  reco.SetOption("TRD","sl_tr_1");            // Stream Level for the tracker equal to 1

  // Only in case of Full misalignment
//   AliGRPRecoParam *grpRecoParam = AliGRPRecoParam::GetLowFluxParam();
//   grpRecoParam->SetVertexerTracksConstraintITS(kFALSE);
//   grpRecoParam->SetVertexerTracksConstraintTPC(kFALSE);
//   reco.SetRecoParam("GRP",grpRecoParam);

  reco.SetDefaultStorage("alien://Folder=/alice/simulation/2008/v4-15-Release/Residual/");
  reco.SetSpecificStorage("GRP/GRP/Data/","alien://Folder=/alice/simulation/2008/v4-15-Release/Ideal/");
  // No write access to the OCDB => local specific storage
//   reco.SetSpecificStorage("GRP/GRP/Data",
//                        Form("local://%s",gSystem->pwd()));

  //-------------------------------------------------------------------------
  // Setting the cuts for the V0 and cascade finding
  // The values of the cuts below are "reasonable" for pp events
  //-------------------------------------------------------------------------

  Double_t v0sels[]={33,    // max allowed chi2
                     0.05,  // min allowed impact parameter for the 1st daughter
                     0.05,  // min allowed impact parameter for the 2nd daughter
                     0.5,   // max allowed DCA between the daughter tracks
                     0.99,  // max allowed cosine of V0's pointing angle
                     0.2,   // min radius of the fiducial volume
                     100    // max radius of the fiducial volume
  };
  AliV0vertexer::SetDefaultCuts(v0sels);

  Double_t xisels[]={33.,   // max allowed chi2 (same as PDC07)
                     0.025, // min allowed V0 impact parameter (PDC07 was 0.05)
                     0.010, // "window" around the Lambda mass (PDC07 was 0.008)
                     0.025, // min allowed bachelor's impact parameter (PDC07 was 0.035)
                     0.2,   // max allowed DCA between the V0 and the bachelor (PDC07 was 0.1)
                     0.998, // max allowed cosine of the cascade pointing angle (PDC07 was 0.9985)
                     0.2,   // min radius of the fiducial volume (PDC07 was 0.9)
                     100    // max radius of the fiducial volume (same as PDC07)
  };
  AliCascadeVertexer::SetDefaultCuts(xisels);

  reco.SetRunQA("ALL:ALL");

  TStopwatch timer;
  timer.Start();
  reco.Run();
  timer.Stop();
  timer.Print();
}