ROOT logo
void get_dedx(void){

  gSystem->SetIncludePath("-I. -I$ROOTSYS/include -I$ALICE_ROOT -I$ALICE_ROOT/build/include -I$ALICE_ROOT/include -I$ALICE_ROOT/ITS -I$ALICE_ROOT/TPC -I$ALICE_ROOT/CONTAINERS -I$ALICE_ROOT/STEER -I$ALICE_ROOT/TRD -I$ALICE_ROOT/macros -I$ALICE_ROOT/ANALYSIS -I$ALICE_ROOT/PWG2/FLOW/AliFlowCommon -I$ALICE_ROOT/PWG2/FLOW/AliFlowTasks -I$ALICE_ROOT/PWG3/dielectron/ -g");

  gSystem->Load("libCore");// no
  gSystem->Load("libTree");
  gSystem->Load("libGeom");
  gSystem->Load("libVMC");
  gSystem->Load("libXMLIO");// no
  gSystem->Load("libPhysics");
  gSystem->Load("libXMLParser");
  gSystem->Load("libProof");
  gSystem->Load("libMinuit");

  gSystem->Load("libSTEERBase");
  gSystem->Load("libCDB");
  gSystem->Load("libRAWDatabase");
  gSystem->Load("libRAWDatarec");
  gSystem->Load("libESD");
  gSystem->Load("libAOD");
  gSystem->Load("libSTEER");
  gSystem->Load("libANALYSIS");
  gSystem->Load("libANALYSISalice");
  gSystem->Load("libTOFbase");
  gSystem->Load("libTOFrec");
  gSystem->Load("libT0base");
  gSystem->Load("libT0rec");
  gSystem->Load("libPWG2flowCommon");
  gSystem->Load("libPWG2flowTasks");

  gSystem->Load("libTENDER");
  gSystem->Load("libTENDERSupplies");



  gSystem->Load("libCORRFW.so");
  gSystem->Load("libPWG3base.so");
  gSystem->Load("libPWG3dielectron.so");
  gSystem->Load("libPWG3hfe.so");


  TChain *chain = new TChain("esdTree");
  for(int i=1; i!=4; ++i)
    chain->Add( Form("/home/gunji/softwares/dielectron/data/esd137549035/%d0/AliESDs.root",i) );

  AliAnalysisManager *mgr = new AliAnalysisManager("DielectronAnalysisManager");
  AliESDInputHandler *esdH = new AliESDInputHandler();
  mgr->SetInputEventHandler(esdH);
  gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
  AddTaskPhysicsSelection(kFALSE);
  gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C");
  AliCentralitySelectionTask *taskCentrality =AddTaskCentrality();
  //  taskCentrality->SetPass(2);

  /*  gROOT->LoadMacro("AliDielectronDebugTreeTaku.cxx++");
  gROOT->LoadMacro("AliDielectronHistosTaku.cxx++");
  gROOT->LoadMacro("AliDielectronTaku.cxx++");
  gROOT->LoadMacro("AliAnalysisTaskMultiDielectronNewTaku.cxx++");
  */

  gSystem->Load("./AliDielectronHistosTaku_cxx.so");
  gSystem->Load("./AliDielectronDebugTreeTaku_cxx.so");
  gSystem->Load("./AliDielectronTaku_cxx.so");


  float mom[5][200];
  float dedx[5][200];



  /*
  AliAnalysisManager *man=AliAnalysisManager::GetAnalysisManager();
  AliInputEventHandler* inputHandler = (AliInputEventHandler*) (man->GetInputEventHandler());
  Bool_t isESD=man->GetInputEventHandler()->IsA()==AliESDInputHandler::Class();

  if ( inputHandler->GetPIDResponse() ){
    AliDielectronVarManager::SetPIDResponse( inputHandler->GetPIDResponse() );
  } else {
    if (isESD){
      if (!AliDielectronVarManager::GetESDpid()){
        if (AliDielectronMC::Instance()->HasMC()) {
	  AliDielectronVarManager::InitESDpid();
        } else {
	  cout<<" set pid as 1"<<endl;
	  AliDielectronVarManager::InitESDpid(1);
        }
      }
    }
  }

  AliPIDResponse * f= (AliPIDResponse*) AliDielectronVarManager::GetESDpid() ;
  AliTPCPIDResponse *ff = (AliTPCPIDResponse*)f->GetTPCResponse();

  for (Int_t j=0; j<AliPID::kSPECIES; j++) {
    //AliPID::EParticleType type=AliPID::EParticleType(j);
    for(int ii=0;ii<100;ii++){
      float p = 0.05+0.1*ii;
      //Double_t bethe=fTPCResponse.GetExpectedSignal(mom,type); 
      Double_t bethe=ff->GetExpectedSignal(p,j); 
      mom[j][ii] = p;
      dedx[j][ii] = bethe;

      //cout<<j<<" "<<p<<" "<<bethe<<endl;
    }
  }
  */

  Double_t fAlephParam[5]={2.11543/57,
                           20.3394,
                           1.0411e-12,
                           2.25543,
                           3.18663
  };

  /*
  Double_t fAlephParam[5]={2.11543/122,
                           42.3394,
                           2.0411e-22,
			   2.25543,
			   6.89
  };
  */

  AliESDpid *fESDpid = new AliESDpid();
  fESDpid->GetTPCResponse().SetBetheBlochParameters(fAlephParam[0],
                                                    fAlephParam[1],
                                                    fAlephParam[2],
                                                    fAlephParam[3],
                                                    fAlephParam[4]);


  AliTPCPIDResponse *ff = (AliTPCPIDResponse*)fESDpid->GetTPCResponse();

  for (Int_t j=0; j<AliPID::kSPECIES; j++) {                                                                                           
    for(int ii=0;ii<200;ii++){                                                                                                                                                     
      float p = 0.025+0.05*ii;                                                                                                                                                   
      Double_t bethe=ff->GetExpectedSignal(p,j);                                                                                                                                   
      mom[j][ii] = p;                                                                                                                                                               
      dedx[j][ii] = bethe;                                                                                                                                                          
      cout<<j<<" "<<p<<" "<<bethe<<endl;
    }                                                                                                                                                                              
  }                   


  TGraph *g[5];
  char name[100];
  for(int i=0;i<5;i++){
    g[i] = new TGraph(200, mom[i], dedx[i]);
    sprintf(name,"g%d",i);
    g[i]->SetName(name);    
    g[i]->SetLineColor(i+2);
  }
  /*
  TFile *fin=new TFile("ana/tmp.root");
  fin->cd();
  hdedx_pt->SetAxisRange(0,4);
  hdedx_pt->Draw();
  g[0]->Draw("pc");
  g[2]->Draw("pc");
  g[3]->Draw("pc");
  g[4]->Draw("pc");
  */
  TFile *fout = new TFile("dedx.root","recreate");
  fout->cd();
  for(int i=0;i<5;i++){
    g[i]->Write();
  }
  


}




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