ROOT logo
void Embedding(const char* dataset="collection.xml")
{
    
  gSystem->Load("libTree.so");
  gSystem->Load("libGeom.so");
  gSystem->Load("libVMC.so");
  gSystem->Load("libPhysics.so");
  
  //load analysis framework
  gSystem->Load("libSTEERBase");
  gSystem->Load("libANALYSIS");
  gSystem->Load("libANALYSISalice"); //AliAnalysisTaskSE
  
  gSystem->AddIncludePath("-I$ALICE_ROOT/include -I$ALICE_ROOT/PHOS");

  // A task can be compiled dynamically with AClic
  gROOT->LoadMacro("AliPHOSEmbedding.cxx+g");
  
  // Connect to alien
  TString token = gSystem->Getenv("GRID_TOKEN") ;
  if (1) // token == "OK" ) 
    TGrid::Connect("alien://");
  else 
    AliInfo("You are not connected to the GRID") ; 
  cout << "Pi0Analysis: processing collection " << dataset << endl;
  
  // Create the chain
  TChain* chain = new TChain("esdTree");

  TGridCollection * collection = dynamic_cast<TGridCollection*>(TAlienCollection::Open(dataset));
  
  TAlienResult* result = collection->GetGridResult("",0 ,0);
  TList* rawFileList = result->GetFileInfoList();
  for (Int_t counter=0 ; counter < rawFileList->GetEntries() ; counter++) {
    TFileInfo * fi =  static_cast<TFileInfo*>(rawFileList->At(counter)) ; 
    const char * rawFile = fi->GetCurrentUrl()->GetUrl() ;  
    printf("Processing %s\n", rawFile) ;
    chain->Add(rawFile);
    printf("Chain: %d entries.\n",chain->GetEntries()); 
  }
  TFileInfo * fi =  static_cast<TFileInfo*>(rawFileList->At(0));
  const char * fn = fi->GetCurrentUrl()->GetUrl() ;

  char runNum[7]; 
  for(Int_t i=0;i<6;i++)runNum[i]=fn[35+i] ;

  runNum[6]=0 ;
  Int_t iRunNum=atoi(runNum) ;
  printf("Run number=%d \n",iRunNum) ;

  //Run AOD simulation
  int nrun = atoi(runNum);
  int nevent = 0;
  int seed = 0;

  char sseed[1024];
  char sevent[1024];
  char sprocess[1024];
  char sfield[1024];
  char senergy[1024];

  sprintf(sevent,"");
  sprintf(sprocess,"");
  sprintf(sfield,"");
  sprintf(senergy,"");

  seed = 0;
  sprintf(sseed,"%d",seed);

  if (seed==0) {
    fprintf(stderr,"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
    fprintf(stderr,"!!!!  WARNING! Seeding variable for MC is 0          !!!!\n");
    fprintf(stderr,"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
  } else {
    fprintf(stdout,"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
    fprintf(stdout,"!!!  MC Seed is %d \n",seed);
    fprintf(stdout,"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
  }
  
// set the seed environment variable
  gSystem->Setenv("CONFIG_SEED",sseed);
  gSystem->Setenv("CONFIG_RUN_TYPE","kPythia6"); // kPythia6 or kPhojet^M
  gSystem->Setenv("CONFIG_FIELD","k5kG");      // kNoField or k5kG^M
  gSystem->Setenv("CONFIG_ENERGY","2760");    // 900 or 10000 (GeV)
  gSystem->Setenv("DC_RUN",runNum);    //run number 
  

  char nSimEvents[55] ;
  sprintf(nSimEvents,"%d",chain->GetEntries());
  gSystem->Setenv("SIM_EVENTS",nSimEvents); 
  gSystem->Exec("mv geometry.root geometry_PHOS.root") ;
  gSystem->Exec("aliroot -b -q simrun.C > simrun.log 2>&1");
  gSystem->Exec("mv geometry_PHOS.root geometry.root") ;

  // Make the analysis manager
  AliAnalysisManager *mgr = new AliAnalysisManager("Pi0EmbeddingManager");
  
  // ESD input handler
  AliESDInputHandler* esdH = new AliESDInputHandler();
  esdH->SetReadFriends(kFALSE);
  mgr->SetInputEventHandler(esdH);

  // Output
  AliAODHandler* aodHandler   = new AliAODHandler();
  aodHandler->SetOutputFileName("AliAODout.root");
  mgr->SetOutputEventHandler(aodHandler);

  
  // Debug level
  mgr->SetDebugLevel(0);


  // Add physics selection
  gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
  AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection(kFALSE);

  gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C");
  AliCentralitySelectionTask *taskCentrality = AddTaskCentrality() ;

  gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskEventplane.C");
  AliEPSelectionTask *taskEP = AddTaskEventplane() ;

  // Add my task
  AliPHOSEmbedding *task1 = new AliPHOSEmbedding("Embedding");

  TChain* chainAOD = new TChain("aodTree");
  chainAOD->AddFile("AliAOD.root") ;
  task1->SetSignalChain(chainAOD) ;
  task1->SelectCollisionCandidates();


  TFile *fOldCalib = TFile::Open("OldCalibration.root");
  if(fOldCalib->IsOpen()){
    printf("\n\n...Adding PHOS calibration used in ESD production \n") ;
    char key[55] ;
    TH2F * hCalib[5] ;
    for(Int_t mod=0;mod<5; mod++){
      sprintf(key,"calibrationMod%d",mod) ;
      hCalib[mod] = (TH2F*)fOldCalib->Get(key) ;
    }
    task1->SetOldCalibration(hCalib) ;
    fOldCalib->Close() ;
  }

  mgr->AddTask(task1);
  
  // Create containers for input/output
  AliAnalysisDataContainer *cinput   = mgr->GetCommonInputContainer(); 
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("output0",
                      TTree::Class(), AliAnalysisManager::kOutputContainer);


  // Connect input/output
  mgr->ConnectInput(task1 , 0, cinput);
  mgr->ConnectOutput(task1, 0,coutput1);

  AliLog::SetClassDebugLevel("AliGeomManager", 10) ;

  AliCDBManager::Instance()->SetRun(iRunNum) ;
//  AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT/OCDB") ;
//  AliCDBManager::Instance()->SetDefaultStorage("raw://") ;
  AliCDBManager::Instance()->SetDefaultStorage("alien://folder=/alice/data/2010/OCDB") ;
  AliCDBManager::Instance()->SetSpecificStorage("PHOS/*/*",
                                                "local://OCDB");
printf("RunNunm===%d \n",iRunNum) ;
  

  if (mgr->InitAnalysis()) {
    mgr->PrintStatus();
    mgr->StartAnalysis("local", chain);
  }
  
  if(iRunNum<=137848){ //period 1
    gSystem->Exec("mv BadMap_LHC10h_period1.root BadMap_LHC10h.root") ;
  }
  else{
    gSystem->Exec("mv BadMap_LHC10h_period234.root BadMap_LHC10h.root") ;
  }
  gSystem->Exec("aliroot -b -q AnalyzeDiff.C> analyze3.log 2>&1");

}
 Embedding.C:1
 Embedding.C:2
 Embedding.C:3
 Embedding.C:4
 Embedding.C:5
 Embedding.C:6
 Embedding.C:7
 Embedding.C:8
 Embedding.C:9
 Embedding.C:10
 Embedding.C:11
 Embedding.C:12
 Embedding.C:13
 Embedding.C:14
 Embedding.C:15
 Embedding.C:16
 Embedding.C:17
 Embedding.C:18
 Embedding.C:19
 Embedding.C:20
 Embedding.C:21
 Embedding.C:22
 Embedding.C:23
 Embedding.C:24
 Embedding.C:25
 Embedding.C:26
 Embedding.C:27
 Embedding.C:28
 Embedding.C:29
 Embedding.C:30
 Embedding.C:31
 Embedding.C:32
 Embedding.C:33
 Embedding.C:34
 Embedding.C:35
 Embedding.C:36
 Embedding.C:37
 Embedding.C:38
 Embedding.C:39
 Embedding.C:40
 Embedding.C:41
 Embedding.C:42
 Embedding.C:43
 Embedding.C:44
 Embedding.C:45
 Embedding.C:46
 Embedding.C:47
 Embedding.C:48
 Embedding.C:49
 Embedding.C:50
 Embedding.C:51
 Embedding.C:52
 Embedding.C:53
 Embedding.C:54
 Embedding.C:55
 Embedding.C:56
 Embedding.C:57
 Embedding.C:58
 Embedding.C:59
 Embedding.C:60
 Embedding.C:61
 Embedding.C:62
 Embedding.C:63
 Embedding.C:64
 Embedding.C:65
 Embedding.C:66
 Embedding.C:67
 Embedding.C:68
 Embedding.C:69
 Embedding.C:70
 Embedding.C:71
 Embedding.C:72
 Embedding.C:73
 Embedding.C:74
 Embedding.C:75
 Embedding.C:76
 Embedding.C:77
 Embedding.C:78
 Embedding.C:79
 Embedding.C:80
 Embedding.C:81
 Embedding.C:82
 Embedding.C:83
 Embedding.C:84
 Embedding.C:85
 Embedding.C:86
 Embedding.C:87
 Embedding.C:88
 Embedding.C:89
 Embedding.C:90
 Embedding.C:91
 Embedding.C:92
 Embedding.C:93
 Embedding.C:94
 Embedding.C:95
 Embedding.C:96
 Embedding.C:97
 Embedding.C:98
 Embedding.C:99
 Embedding.C:100
 Embedding.C:101
 Embedding.C:102
 Embedding.C:103
 Embedding.C:104
 Embedding.C:105
 Embedding.C:106
 Embedding.C:107
 Embedding.C:108
 Embedding.C:109
 Embedding.C:110
 Embedding.C:111
 Embedding.C:112
 Embedding.C:113
 Embedding.C:114
 Embedding.C:115
 Embedding.C:116
 Embedding.C:117
 Embedding.C:118
 Embedding.C:119
 Embedding.C:120
 Embedding.C:121
 Embedding.C:122
 Embedding.C:123
 Embedding.C:124
 Embedding.C:125
 Embedding.C:126
 Embedding.C:127
 Embedding.C:128
 Embedding.C:129
 Embedding.C:130
 Embedding.C:131
 Embedding.C:132
 Embedding.C:133
 Embedding.C:134
 Embedding.C:135
 Embedding.C:136
 Embedding.C:137
 Embedding.C:138
 Embedding.C:139
 Embedding.C:140
 Embedding.C:141
 Embedding.C:142
 Embedding.C:143
 Embedding.C:144
 Embedding.C:145
 Embedding.C:146
 Embedding.C:147
 Embedding.C:148
 Embedding.C:149
 Embedding.C:150
 Embedding.C:151
 Embedding.C:152
 Embedding.C:153
 Embedding.C:154
 Embedding.C:155
 Embedding.C:156
 Embedding.C:157
 Embedding.C:158
 Embedding.C:159
 Embedding.C:160
 Embedding.C:161
 Embedding.C:162
 Embedding.C:163
 Embedding.C:164
 Embedding.C:165
 Embedding.C:166
 Embedding.C:167
 Embedding.C:168
 Embedding.C:169
 Embedding.C:170
 Embedding.C:171
 Embedding.C:172
 Embedding.C:173
 Embedding.C:174
 Embedding.C:175
 Embedding.C:176
 Embedding.C:177
 Embedding.C:178
 Embedding.C:179
 Embedding.C:180
 Embedding.C:181
 Embedding.C:182