ROOT logo
/*

  Macro to generate random tracks and clusters.
  Fast MC - Geant equivalent used


*/

Int_t  kmarkes[5]={20,21,24,25,23};
Int_t  kcolors[5]={1,2,4,3,6};

void simul(Int_t npoints, Double_t diffFactor){ 
  //
  // simulation submit script
  //
  printf("Hallo world\n");
  gRandom->SetSeed(0);
  gROOT->LoadMacro("$mcPath/AliTPCclusterFast.cxx+");
 
  AliTPCclusterFast::fPRF = new TF1("fprf","gausn",-5,5);
  AliTPCclusterFast::fTRF = new TF1("ftrf","gausn",-5,5);
  AliTPCclusterFast::fPRF->SetParameters(1,0,0.5);
  AliTPCclusterFast::fTRF->SetParameters(1,0,0.5);
  //
  AliTPCtrackFast::Simul("trackerSimul.root",npoints, diffFactor); 
}



void Merge(){
  //
  //
  //
  TString objfile;
  AliTPCtrackFast track0;
  track0.MakeHisto();
  AliTPCtrackFast *track1;
  ifstream in;
  Int_t counter=0;
  in.open("track.txt");
  while(in.good()) {
    in >> objfile;
    if (!objfile.Contains("root")) continue; // protection
    TFile currentFile(objfile.Data());
    printf("Open file:Counter\t%d\tMerging file %s\n",counter,objfile.Data());
    track1=(AliTPCtrackFast)currentFile.Get("track");
    if (!track1) continue;
    track0.Add(*track1);
    counter++;
  } 
  TFile f("mergetrack.root","recreate");
  track0.Write("track");
  f.Close("");
}




void DrawdEdxResolExample(){
  //
  // Example analysis to make an space point resolution study
  //
  TChain * chain  = AliXRDPROOFtoolkit::MakeChain("trackerSimul.list", "simulTrack",0,100); 
  chain->SetCacheSize(10000000000);

  //
  // 1.) Qmax/Qtot as function of the input ionization density
  //
  chain->Draw("tr.CookdEdxDmax(0,0.6,1,0,1,0)/tr.CookdEdxDtot(0,0.6,1,0,1,0):tr.fMNprim>>hisQtotMax(10,10,50)","","prof",10000);
  //
  // 2.) Non linearity due to the truncation Qtot_{60%}/Qtot 100% 
  //
  chain->Draw("tr.CookdEdxDtot(0,0.6,1,0,1,0)/tr.CookdEdxDtot(0,0.99,1,0,1,0):tr.fMNprim>>hisQtot60100(10,10,50)","","prof",10000);
  //
  // 3.) 
  //
  chain->Draw("tr.CookdEdxDtot(0,0.6,1,0,1,0)/tr.fMNprim:tr.fMNprim>>profQtot60(10,10,50)","","prof",10000);
  chain->Draw("tr.CookdEdxDtot(0,0.99,1,0,1,0)/tr.fMNprim:tr.fMNprim>>profQtot100(10,10,50)","","profsame",10000);

}



 simul.C:1
 simul.C:2
 simul.C:3
 simul.C:4
 simul.C:5
 simul.C:6
 simul.C:7
 simul.C:8
 simul.C:9
 simul.C:10
 simul.C:11
 simul.C:12
 simul.C:13
 simul.C:14
 simul.C:15
 simul.C:16
 simul.C:17
 simul.C:18
 simul.C:19
 simul.C:20
 simul.C:21
 simul.C:22
 simul.C:23
 simul.C:24
 simul.C:25
 simul.C:26
 simul.C:27
 simul.C:28
 simul.C:29
 simul.C:30
 simul.C:31
 simul.C:32
 simul.C:33
 simul.C:34
 simul.C:35
 simul.C:36
 simul.C:37
 simul.C:38
 simul.C:39
 simul.C:40
 simul.C:41
 simul.C:42
 simul.C:43
 simul.C:44
 simul.C:45
 simul.C:46
 simul.C:47
 simul.C:48
 simul.C:49
 simul.C:50
 simul.C:51
 simul.C:52
 simul.C:53
 simul.C:54
 simul.C:55
 simul.C:56
 simul.C:57
 simul.C:58
 simul.C:59
 simul.C:60
 simul.C:61
 simul.C:62
 simul.C:63
 simul.C:64
 simul.C:65
 simul.C:66
 simul.C:67
 simul.C:68
 simul.C:69
 simul.C:70
 simul.C:71
 simul.C:72
 simul.C:73
 simul.C:74
 simul.C:75
 simul.C:76
 simul.C:77
 simul.C:78
 simul.C:79
 simul.C:80
 simul.C:81
 simul.C:82
 simul.C:83
 simul.C:84