Example #1
0
jit::vector<Vlabel> pgoLayout(Vunit& unit, const Vtext& text) {
  // Make sure block weights are consistent.
  fixBlockWeights(unit);

  // Compute arc weights.
  Scale scale(unit);
  FTRACE(1, "profileGuidedLayout: Weighted CFG:\n{}\n", scale.toString());

  // Cluster the blocks based on weights and sort the clusters.
  Clusterizer clusterizer(unit, scale);
  auto labels = clusterizer.getBlockList();

  // Partition by actual code area without changing relative order.
  auto cold_iter = std::stable_partition(labels.begin(), labels.end(),
    [&] (Vlabel b) {
      return text.area(unit.blocks[b].area_idx) == text.area(AreaIndex::Main);
    });
  if (cold_iter != labels.end()) {
    std::stable_partition(cold_iter, labels.end(),
      [&] (Vlabel b) {
        return text.area(unit.blocks[b].area_idx) == text.area(AreaIndex::Cold);
      });
  }

  if (Trace::moduleEnabled(Trace::layout, 1)) {
    FTRACE(1, "pgoLayout: final block list: ");
    for (DEBUG_ONLY auto b : labels) {
      FTRACE(1, "{}, ", b);
    }
    FTRACE(1, "\n");
  }

  return labels;
}
Example #2
0
void AliTRDreadRaw2Clusters(const char *fname = "raw.root", const char *fnameGeom = "./geometry.root")
{
  AliCDBManager *cdb = AliCDBManager::Instance();
  cdb->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
  cdb->SetRun(0);

  TFile *fGeometryFile = TFile::Open(fnameGeom);
  TGeoManager *fGeoManager = 0;
  if (fGeometryFile)
    {
      fGeoManager = (TGeoManager *)fGeometryFile->Get("Geometry");
    }

  if (fGeoManager == 0)
    {
      cout << "Geo Manager init failed." << endl;
    }

  AliTRDdigitsManager manR;
  manR.CreateArrays();

  AliRawReaderRoot reader(fname, 0);
  reader.Select("TRD");

  Int_t ievent = 0;
  while (reader.NextEvent())
    {
      TTree *treeR = new TTree(sdir, "TRD clusters");
      AliTRDclusterizer clusterizer("TRDclusterizer", "TRDclusterizer");
      clusterizer.OpenOutput(treeR);
      Int_t ir = clusterizer.Raw2ClustersChamber(&reader);
      
      cout << "Clusterizer returned " << ir << endl;

      // do something witht he clusters...

      ievent++;
    }

}
Example #3
0
Bool_t TRDFindClusters(Int_t nEvents, Int_t firstEvent,
		      const char* fileNameParam, 
		      const char* fileNameDigits, const char* fileNameClusters) {
  
  const char *name="TRDFindClusters";
  if (gDEBUG>1) cout<<name<<" starts...\n";
  if (gDEBUG>1) gBenchmark->Start(name);

  TFile* paramFile = TFile::Open(fileNameParam);
  if (!paramFile->IsOpen()) {
    cerr<<"Cannot open "<<fileNameParam<<" !\n"; 
    return kFALSE;
  }
  AliTRDparameter* trdParam = 
    (AliTRDparameter*) paramFile->Get("TRDparameter"); 
  if (!trdParam) {
    cerr << "TRD parameters have not been found !\n"; 
    return kFALSE;
  }
  trdParam->ReInit();
  AliTRDclusterizerV1 clusterizer("clusterizer", "Clusterizer class"); 
  clusterizer.SetParameter(trdParam);

  for (Int_t iEvent = firstEvent; iEvent < firstEvent+nEvents; iEvent++) {
    clusterizer.Open(fileNameDigits, fileNameClusters, iEvent);
    clusterizer.ReadDigits();
    clusterizer.MakeClusters();
    clusterizer.WriteClusters(-1);
  }

  paramFile->Close();
  delete paramFile;

  if (gDEBUG>1) gBenchmark->Show(name);
  return kTRUE;
}