Restored backward compatibility to use the hits from Dec. 2000 production.
authorkowal2 <kowal2@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 29 Mar 2002 06:57:45 +0000 (06:57 +0000)
committerkowal2 <kowal2@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 29 Mar 2002 06:57:45 +0000 (06:57 +0000)
14 files changed:
TPC/AliTPC.cxx
TPC/AliTPCComparison.C
TPC/AliTPCComparison2.C
TPC/AliTPCDigitizer.cxx
TPC/AliTPCDisplayDigits3Dnew.C
TPC/AliTPCFindClusters.C
TPC/AliTPCFindTracks.C
TPC/AliTPCHits2Digits.C
TPC/AliTPCParam.cxx
TPC/AliTPCSDigits2Digits.C
TPC/AliTPCTestMerge.C
TPC/AliTPCclusterer.cxx
TPC/AliTPCtrackerParam.cxx
TPC/alles.h

index 9c5d75c..8675803 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
 $Log$
+Revision 1.54  2002/03/18 17:59:13  kowal2
+Chnges in the pad geometry - 3 pad lengths introduced.
+
 Revision 1.53  2002/02/25 11:02:56  kowal2
 Changes towards speeding up the code. Thanks to Marian Ivanov.
 
@@ -1574,6 +1577,20 @@ void AliTPC::SetDefaults(){
   // Set response functions
 
   AliTPCParamSR *param=(AliTPCParamSR*)gDirectory->Get("75x40_100x60");
+  if(param){
+    printf("You are using 2 pad-length geom hits with 3 pad-lenght geom digits...\n");
+    delete param;
+    param = new AliTPCParamSR();
+  }
+  else {
+    param=(AliTPCParamSR*)gDirectory->Get("75x40_100x60_150x60");
+  }
+  if(!param){
+    printf("No TPC parameters found\n");
+    exit(4);
+  }
+
+
   AliTPCPRF2D    * prfinner   = new AliTPCPRF2D;
   AliTPCPRF2D    * prfouter1   = new AliTPCPRF2D;
   AliTPCPRF2D    * prfouter2   = new AliTPCPRF2D;  
@@ -3125,7 +3142,21 @@ void AliTPC::Digits2Reco(Int_t firstevent,Int_t lastevent)
   TDirectory *cwd = gDirectory;
 
 
-  AliTPCParam *dig=(AliTPCParam *)gDirectory->Get("75x40_100x60");
+  AliTPCParamSR *dig=(AliTPCParamSR *)gDirectory->Get("75x40_100x60");
+  if(dig){
+    printf("You are running 2 pad-length geom hits with 3 pad-length geom digits\n");
+    delete dig;
+    dig = new AliTPCParamSR();
+  }
+  else
+  {
+   dig=(AliTPCParamSR *)gDirectory->Get("75x40_100x60_150x60"); 
+  }
+  if(!dig){
+   printf("No TPC parameters found\n");
+   exit(3);
+  }
+   
   SetParam(dig);
   cout<<"AliTPC::Digits2Reco: TPC parameteres have been set"<<endl; 
   TFile *out;
index 23b837b..e31f8a0 100644 (file)
@@ -292,7 +292,16 @@ Int_t good_tracks_tpc(GoodTrackTPC *gt, const Int_t max, const Int_t event) {
    Int_t ver = TPC->IsVersion(); 
    cerr<<"TPC version "<<ver<<" has been found !\n";
 
-   AliTPCParam *digp=(AliTPCParam*)file->Get("75x40_100x60");
+   AliTPCParamSR *digp=(AliTPCParamSR*)file->Get("75x40_100x60");
+   if(digp){
+    cerr<<"2 pad-lenght geom hits with 3 pad-length geom digits...\n";
+    delete digp;
+    digp = new AliTPCParamSR();
+   }
+   else
+   {
+     digp =(AliTPCParamSR *)gDirectory->Get("75x40_100x60_150x60");
+   }
    if (!digp) { cerr<<"TPC parameters have not been found !\n"; exit(6); }
    TPC->SetParam(digp);
 
@@ -350,7 +359,7 @@ Int_t good_tracks_tpc(GoodTrackTPC *gt, const Int_t max, const Int_t event) {
      break;
    case 2:
      {
-      char dname[100]; sprintf(dname,"TreeD_75x40_100x60_%d",event);
+      char dname[100]; sprintf(dname,"TreeD_75x40_100x60_150x60_%d",event);
       TTree *TD=(TTree*)gDirectory->Get(dname);
       AliSimDigits da, *digits=&da;
       TD->GetBranch("Segment")->SetAddress(&digits);
index 8dcbd3b..39a730f 100644 (file)
@@ -59,9 +59,7 @@ Int_t AliTPCComparison2(Int_t firstev=0, Int_t eventn=1) {
   //  if(gAlice)delete gAlice;   COMMENTED BECAUSE OF A BUG (IN COMPILED MODE)
   gAlice = (AliRun*)inkin->Get("gAlice");
   cout<<"AliRun object found on file "<<gAlice<<endl;
-  Float_t fifac=gAlice->Field()->Factor();
-  AliKalmanTrack::SetConvConst(100/0.299792458/0.2/fifac);
-  cout<<fifac*0.2<<" T Magnetic field is used\n";
+  AliKalmanTrack::SetConvConst(1000/0.299792458/gAlice->Field()->SolenoidField());
   inkin->Close();
   /*
     delete gAlice;  COMMENTED BECAUSE OF A BUG IN COMPILED MODE
@@ -77,7 +75,7 @@ Int_t AliTPCComparison2(Int_t firstev=0, Int_t eventn=1) {
   if(kOLD){
     cf=TFile::Open("AliTPCclusters.root");
     if (!cf->IsOpen()) {cerr<<"Can't open AliTPCclusters.root !\n"; return 1;}
-    digp= (AliTPCParam*)cf->Get("75x40_100x60");
+    digp= (AliTPCParam*)cf->Get("75x40_100x60_150x60");
     if (!digp) { cerr<<"TPC parameters have not been found !\n"; return 2; }
   }
   ///////////
@@ -143,6 +141,7 @@ Int_t AliTPCComparison2(Int_t firstev=0, Int_t eventn=1) {
            gt[ngood].x >>gt[ngood].y >>gt[ngood].z) {
       ngood++;
       cerr<<ngood<<"\r";
+      //cout<<ngood<<"\r";
       if (ngood==MAX) {
         cerr<<"Too many good tracks !\n";
         break;
@@ -153,28 +152,40 @@ Int_t AliTPCComparison2(Int_t firstev=0, Int_t eventn=1) {
   } else {
     cerr<<"Marking good tracks (this will take a while)...\n";
     ngood=good_tracks(gt,45000,firstev,eventn); 
+    printf("Goood %d\n", ngood);
     ofstream out("good_tracks_tpc");
-    ofstream out2("good_tracks_tpc_par");
-
     if (out) {
       cout<<"File good_tracks_tpc opened\n";
       for (Int_t ngd=0; ngd<ngood; ngd++) {
-       Float_t pt =  TMath::Sqrt(gt[ngd].px*gt[ngd].px+gt[ngd].py*gt[ngd].py);
-       Float_t angle = gt[ngd].pz/pt;
         out<<gt[ngd].fEventN<<' '<<gt[ngd].lab<<' '<<gt[ngd].code<<' '<<
           gt[ngd].px<<' '<<gt[ngd].py<<' '<<gt[ngd].pz<<' '<<
           gt[ngd].x <<' '<<gt[ngd].y <<' '<<gt[ngd].z <<endl;
-       out2<<gt[ngd].fEventN<<"\t"<<gt[ngd].lab<<"\t"<<gt[ngd].code<<"\t"<<
-         pt<<"\t"<<angle<<"\t"<<endl;
       }
     } else cerr<<"Can not open file (good_tracks_tpc) !\n";
+    out<<flush;
     out.close();
+
+    ofstream out2("good_tracks_tpc_par");
+
+    if (out2) {
+      //cout<<"File good_tracks_tpc opened\n";
+      for (Int_t ngd=0; ngd<ngood; ngd++) {
+       Float_t pt =  TMath::Sqrt(gt[ngd].px*gt[ngd].px+gt[ngd].py*gt[ngd].py);
+       Float_t angle = 0;
+       if (TMath::Abs(pt)>0.01) angle = gt[ngd].pz/pt;
+       out2<<gt[ngd].fEventN<<"\t"<<gt[ngd].lab<<"\t"<<gt[ngd].code<<"\t"<<
+        pt<<"\t"<<angle<<"\t"<<endl;
+      }
+    } else cerr<<"Can not open file (good_tracks_tpc) !\n";
+    out2<<flush;
     out2.close();
+
   }
   cerr<<"Number of good tracks : "<<ngood<<endl;
+  cout<<"Number of good tracks : "<<ngood<<endl;
   if(ngood==0)return 5;
-  TH1F *hp=new TH1F("hp","PHI resolution",50,-200.,200.); hp->SetFillColor(4);
-  TH1F *hl=new TH1F("hl","LAMBDA resolution",50,-200,200);hl->SetFillColor(4);
+  TH1F *hp=new TH1F("hp","PHI resolution",50,-20.,20.); hp->SetFillColor(4);
+  TH1F *hl=new TH1F("hl","LAMBDA resolution",50,-20,20);hl->SetFillColor(4);
   TH1F *hpt=new TH1F("hpt","Relative Pt resolution",30,-10.,10.); 
   hpt->SetFillColor(2); 
   TH1F *hmpt=new TH1F("hmpt","Relative Pt resolution (pt>4GeV/c)",30,-60,60); 
@@ -240,7 +251,8 @@ Int_t AliTPCComparison2(Int_t firstev=0, Int_t eventn=1) {
       
     //
     Double_t xk=gt[ngood].x;
-    printf("Track =%p\n",track);
+    if (!track) continue;
+    //    printf("Track =%p\n",track);
     track->PropagateTo(xk);
 
     if (lab==tlab) hfound->Fill(ptg);
@@ -257,7 +269,9 @@ Int_t AliTPCComparison2(Int_t firstev=0, Int_t eventn=1) {
 
     if (TMath::Abs(gt[ngood].code)==11 && ptg>4.) {
       hmpt->Fill((pt_1 - 1/ptg)/(1/ptg)*100.);
-    } else {
+    } 
+    //else 
+    {
       Float_t phig=TMath::ATan2(gt[ngood].py,gt[ngood].px);
       hp->Fill((phi - phig)*1000.);
 
@@ -295,6 +309,7 @@ Int_t AliTPCComparison2(Int_t firstev=0, Int_t eventn=1) {
   
   Stat_t ng=hgood->GetEntries(), nf=hfound->GetEntries();
   if (ng!=0) cerr<<"\n\nIntegral efficiency is about "<<nf/ng*100.<<" %\n";
+  if (ng!=0) cout<<"\n\nIntegral efficiency is about "<<nf/ng*100.<<" %\n";
   cout<<"Total number of found tracks ="<<nentr<<endl;
   cout<<"Total number of \"good\" tracks ="
       <<mingood<<"   (selected for comparison: "<<ng<<')'<<endl<<endl;
@@ -374,7 +389,7 @@ Int_t AliTPCComparison2(Int_t firstev=0, Int_t eventn=1) {
 Int_t good_tracks(GoodTrackTPC *gt, Int_t max, Int_t firstev, Int_t eventn) {
   //eventn  - number of events in file
 
-  TFile *file=TFile::Open("rfio:galice.root");
+  TFile *file=TFile::Open("galice.root");
   if (!file->IsOpen()) {cerr<<"Can't open galice.root !\n"; exit(4);}
   //  delete gAlice; gAlice = 0;
   if (!(gAlice=(AliRun*)file->Get("gAlice"))) {
@@ -388,6 +403,16 @@ Int_t good_tracks(GoodTrackTPC *gt, Int_t max, Int_t firstev, Int_t eventn) {
   cerr<<"TPC version "<<ver<<" has been found !\n";
 
   AliTPCParam *digp=(AliTPCParam*)file->Get("75x40_100x60");
+  if(digp){
+    cerr<<"2 pad-lenght geom hits with 3 pad-length geom digits...\n";
+    delete digp;
+    digp = new AliTPCParamSR();
+   }
+   else
+   {
+     digp =(AliTPCParam*)gDirectory->Get("75x40_100x60_150x60");
+   }
+
   if (!digp) { cerr<<"TPC parameters have not been found !\n"; exit(6); }
   TPC->SetParam(digp);
 
@@ -448,7 +473,7 @@ Int_t good_tracks(GoodTrackTPC *gt, Int_t max, Int_t firstev, Int_t eventn) {
       break;
     case 2:
       {
-        sprintf(treeName,"TreeD_75x40_100x60_%d",event);  
+        sprintf(treeName,"TreeD_75x40_100x60_150x60_%d",event);  
         TD=(TTree*)gDirectory->Get(treeName);
         TD->GetBranch("Segment")->SetAddress(&digits);
         count = new Int_t[np];
@@ -498,6 +523,7 @@ Int_t good_tracks(GoodTrackTPC *gt, Int_t max, Int_t firstev, Int_t eventn) {
     }
   
     /** select tracks which are "good" enough **/
+    //printf("\t %d \n",np);
     for (Int_t i=0; i<np; i++) {
       if ((good[i]&0x5000) != 0x5000)
         if ((good[i]&0x2800) != 0x2800) continue;
@@ -514,7 +540,8 @@ Int_t good_tracks(GoodTrackTPC *gt, Int_t max, Int_t firstev, Int_t eventn) {
         //if (!(pp->TestBit(kPrimaryCharged))) continue; //only one decay is allowed
         }
       
-       //if(!(p->TestBit(kPrimaryCharged)))continue; // only primaries
+       if(!(p->TestBit(kPrimaryCharged)))continue; // only primaries
+       //      printf("1");
   
       gt[nt].fEventN=event;
       gt[nt].lab=i;
@@ -547,7 +574,7 @@ Int_t good_tracks(GoodTrackTPC *gt, Int_t max, Int_t firstev, Int_t eventn) {
         Int_t j, lab=phit->Track();
         for (j=0; j<nt; j++) {if (gt[j].fEventN==event && gt[j].lab==lab) break;}
         if (j==nt) continue;         
-
+       //printf("1-");
         // (px,py,pz) - in global coordinate system, (x,y,z) - in local !
         gt[j].px=px; gt[j].py=py; gt[j].pz=pz;
         Float_t cs,sn; digp->AdjustCosSin(phit->fSector,cs,sn);
@@ -557,6 +584,7 @@ Int_t good_tracks(GoodTrackTPC *gt, Int_t max, Int_t firstev, Int_t eventn) {
       }
       cerr<<np-i<<"        \r";
     }
+    //printf("\n%d\n",nt);
     cout<<endl;
     delete[] good;
   }             // ///         loop on events
index 5e5f45c..ded9ebc 100644 (file)
@@ -25,6 +25,7 @@
 
 #include "AliTPC.h"
 #include "AliTPCParam.h"
+#include "AliTPCParamSR.h" 
 #include "AliRun.h"
 #include "AliPDG.h"
 #include "AliRunDigitizer.h"
@@ -79,7 +80,8 @@ void AliTPCDigitizer::ExecFast(Option_t* option)
   
   // merge input tree's with summable digits
   //output stored in TreeTPCD
-
+  char s[100]; 
+  char ss[100];
   TString optionString = option;
   if (optionString.Data() == "deb") {
     cout<<"AliTPCDigitizer::Exec: called with option deb "<<endl;
@@ -88,6 +90,22 @@ void AliTPCDigitizer::ExecFast(Option_t* option)
   //get detector and geometry
   AliTPC *pTPC  = (AliTPC *) gAlice->GetModule("TPC");
   AliTPCParam * param = pTPC->GetParam();
+  
+  sprintf(s,param->GetTitle());
+  sprintf(ss,"75x40_100x60");
+  if(strcmp(s,ss)==0){
+    printf("2 pad-length geom hits with 3 pad-lenght geom digits...\n");
+    delete param;
+    param=new AliTPCParamSR();
+  }
+  else{
+   sprintf(ss,"75x40_100x60_150x60");
+   if(strcmp(s,ss)!=0) {
+     printf("No TPC parameters found...\n");
+     exit(2); 
+   }
+  }
+  
   pTPC->GenerNoise(500000); //create teble with noise
   //
   Int_t nInputs = fManager->GetNinputs();
index 562f777..e79a10c 100644 (file)
@@ -4,6 +4,7 @@
   #include "TView.h"
   #include "TPolyMarker3D.h"
   #include "AliSimDigits.h"
+#include "AliTPCParamSR.h"
 #endif
 
 //  
@@ -21,7 +22,17 @@ Int_t AliTPCDisplayDigits3D(Int_t eventn=0, Int_t noiseth=15, Bool_t sdigits=kFA
    TFile *cf=TFile::Open("galice.root");
    // if (!cf->IsOpen()){cerr<<"Can't open AliTPCclusters.root !\n"; return 3;}
 
-   AliTPCParam *param=(AliTPCParam *)cf->Get("75x40_100x60");
+   AliTPCParamSR *param=(AliTPCParamSR *)cf->Get("75x40_100x60");
+   if(param){
+     cerr<<"2 pad-length geom hits with 3 pad-lengths geom parameters\n";
+     delete param;
+     param = new AliTPCParamSR();
+   }
+   else
+   {
+     param=(AliTPCParamSR *)gDirectory->Get("75x40_100x60_150x60");
+   }
+
    if (!param) {cerr<<"TPC parameters have not been found !\n"; return 2;}
 
    TCanvas *c1=new TCanvas("ddisplay", "Digits display",0,0,700,730);
@@ -37,9 +48,9 @@ Int_t AliTPCDisplayDigits3D(Int_t eventn=0, Int_t noiseth=15, Bool_t sdigits=kFA
    
    char  cname[100];
    if (!sdigits)
-     sprintf(cname,"TreeD_75x40_100x60_%d",eventn);
+     sprintf(cname,"TreeD_75x40_100x60_150x60_%d",eventn);
    else
-     sprintf(cname,"TreeS_75x40_100x60_%d",eventn);
+     sprintf(cname,"TreeS_75x40_100x60_150x60_%d",eventn);
 
 // some "constants"
    Int_t markerColorSignal = 5;
index 3a9f07d..cb2d4bf 100644 (file)
@@ -26,7 +26,16 @@ Int_t AliTPCFindClusters(Int_t n=1) {
    Int_t ver = TPC->IsVersion(); 
    cerr<<"TPC version "<<ver<<" has been found !\n";
 
-   AliTPCParam *dig=(AliTPCParam *)in->Get("75x40_100x60");
+   AliTPCParamSR *dig=(AliTPCParamSR *)in->Get("75x40_100x60");
+   if(dig){
+     cerr<<"2 pad-length geom hits with 3 pad-lengths geom digits\n";
+     delete dig;
+     dig = new AliTPCParamSR();
+   }
+   else
+   {
+     dig=(AliTPCParamSR *)gDirectory->Get("75x40_100x60_150x60");
+   }
    if (!dig) {cerr<<"TPC parameters have not been found !\n"; return 4;}
 
    TStopwatch timer;
index a9ea84d..4c3d32e 100644 (file)
@@ -16,7 +16,7 @@ Int_t AliTPCFindTracks(Int_t eventn=1) {
    TFile *in=TFile::Open("AliTPCclusters.root");
    if (!in->IsOpen()) {cerr<<"Can't open AliTPCclusters.root !\n"; return 2;}
 
-   AliTPCParam *par=(AliTPCParam*)in->Get("75x40_100x60");
+   AliTPCParam *par=(AliTPCParam*)in->Get("75x40_100x60_150x60");
    if (!par) {cerr<<"Can't get TPC parameters !\n"; return 3;}
  
    TStopwatch timer;
index f7fcd24..b54e7a0 100644 (file)
@@ -31,8 +31,8 @@ Int_t AliTPCHits2Digits(Int_t nevent=1)
   timer.Start();
 
   // uncomment below lines to set sectors active
-  //Int_t sec[10]={0,1,2,3,4,5,6,7,8,9};
-  //TPC->SetActiveSectors(sec,10);
+ // Int_t sec[10]={0,1,2,3,4,5,6,7,8,9};
+ // TPC->SetActiveSectors(sec,10);
 
   for(Int_t eventn =0;eventn<nevent;eventn++){
     printf("Processing event %d \n",eventn);
index c800f7c..5c1823a 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
 $Log$
+Revision 1.13  2002/03/18 17:59:13  kowal2
+Chnges in the pad geometry - 3 pad lengths introduced.
+
 Revision 1.12  2002/02/05 09:12:26  hristov
 Small mods for gcc 3.02
 
@@ -100,7 +103,7 @@ AliTPCParam::AliTPCParam()
   fResponseBin = 0;
   fResponseWeight = 0;
   fRotAngle = 0;
-  SetTitle("75x40_100x60");
+  SetTitle("75x40_100x60_150x60");
   SetDefault();  
 }
 
@@ -303,10 +306,10 @@ void AliTPCParam::SetDefault()
   //
   //sector default parameters
   //
-  const static  Float_t kInnerRadiusLow = 83.0;
-  const static  Float_t kInnerRadiusUp  = 133.2;
-  const static  Float_t kOuterRadiusLow = 133.5;
-  const static  Float_t kOuterRadiusUp  = 247.7;
+  const static  Float_t kInnerRadiusLow = 82.97;
+  const static  Float_t kInnerRadiusUp  = 133.17;
+  const static  Float_t kOuterRadiusLow = 133.58;
+  const static  Float_t kOuterRadiusUp  = 247.78;
   const static  Float_t kInnerAngle = 20; // 20 degrees
   const static  Float_t kInnerAngleShift = 10;
   const static  Float_t kOuterAngle = 20; //  20 degrees
index 4064cdd..dfa6857 100644 (file)
@@ -30,7 +30,21 @@ Int_t AliTPCSDigits2Digits(Int_t nevent=1)
 
 
   // gAlice->GetEvent(0);
-  AliTPC *TPC = (AliTPC*)gAlice->GetDetector("TPC");      
+  AliTPC *TPC = (AliTPC*)gAlice->GetDetector("TPC");  
+  
+     AliTPCParamSR *dig=(AliTPCParamSR *)file->Get("75x40_100x60");
+   if(dig){
+     cerr<<"2 pad-length geom hits with 3 pad-lengths geom digits\n";
+     delete dig;
+     dig = new AliTPCParamSR();
+   }
+   else
+   {
+     dig=(AliTPCParamSR *)gDirectory->Get("75x40_100x60_150x60");
+   }
+   if (!dig) {cerr<<"TPC parameters have not been found !\n"; return 4;}
+   TPC->SetParam(dig);
+       
 
   TStopwatch timer;
   timer.Start();
index 25c5559..9dbdb66 100644 (file)
@@ -43,10 +43,13 @@ void testmerge()
   //
   //it merge two events -one from current directory -second from directory ev2
   
+  if(gAlice) delete gAlice;
   AliRunDigitizer * manager = new AliRunDigitizer(2,1);
+  manager->SetTreeDTPCBaseName("TreeD_75x40_100x60_150x60_");
+  manager->SetInputTreeTPCSBaseName("TreeS_75x40_100x60_150x60_");
   manager->SetInputStream(0,"galice.root");
   manager->SetInputStream(1,"ev2/galice.root.sdigits");
-  AliTPCDigitizer dTPC(manager);
+  AliTPCDigitizer *dTPC = new AliTPCDigitizer(manager);
   manager->SetNrOfEventsToWrite(1); 
   TStopwatch timer;
   timer.Start();
@@ -65,9 +68,9 @@ void drawmerged(Int_t sec, Int_t row, Int_t x1=-1, Int_t x2=-1, Int_t y1=-1, Int
   TFile * f = new TFile("galice.root");
   TFile * f1= new TFile("ev1/galice.root.digits");
   TFile * f2= new TFile("ev2/galice.root.digits");
-  TTree * tree = (TTree*)f->Get("TreeD_75x40_100x60_0");
-  TTree * tree1 = (TTree*)f1->Get("TreeD_75x40_100x60_0");
-  TTree * tree2 = (TTree*)f2->Get("TreeD_75x40_100x60_0");
+  TTree * tree = (TTree*)f->Get("TreeD_75x40_100x60_150x60_0");
+  TTree * tree1 = (TTree*)f1->Get("TreeD_75x40_100x60_150x60_0");
+  TTree * tree2 = (TTree*)f2->Get("TreeD_75x40_100x60_150x60_0");
   //
   AliSimDigits *dig=0;
   AliSimDigits *dig1=0;
@@ -77,6 +80,11 @@ void drawmerged(Int_t sec, Int_t row, Int_t x1=-1, Int_t x2=-1, Int_t y1=-1, Int
   tree1->GetBranch("Segment")->SetAddress(&dig1);
   tree2->GetBranch("Segment")->SetAddress(&dig2);
   AliTPCParam * param =(AliTPCParam*) f->Get("75x40_100x60");
+  if(param){
+    delete param;
+    param=new AliTPCParamSR();
+  }
+  else param=(AliTPCParam*) f->Get("75x40_100x60_150x60");
   Int_t index = param->GetIndex(sec,row);
   tree->GetEvent(index);
   tree1->GetEvent(index);
@@ -113,7 +121,7 @@ void drawmerged(Int_t sec, Int_t row, Int_t x1=-1, Int_t x2=-1, Int_t y1=-1, Int
 
 void drawd(TFile * f, Int_t amp1, Int_t amp2)
 {
-  TTree * tree = (TTree*)f->Get("TreeD_75x40_100x60_0");
+  TTree * tree = (TTree*)f->Get("TreeD_75x40_100x60_150x60_0");
   AliSimDigits *dig=0;
   tree->GetBranch("Segment")->SetAddress(&dig); 
   TH1F * his = new TH1F("his","his",amp2-amp1,amp1,amp2);
@@ -137,9 +145,9 @@ void test1(){
   TFile f("galice.root");
   TFile f1("ev1/galice.root.digits");
   TFile f2("ev2/galice.root.digits");
-  TTree * tree = (TTree*)f.Get("TreeD_75x40_100x60_0");
-  TTree * tree1 = (TTree*)f1.Get("TreeD_75x40_100x60_0");
-  TTree * tree2 = (TTree*)f2.Get("TreeD_75x40_100x60_0");
+  TTree * tree = (TTree*)f.Get("TreeD_75x40_100x60_150x60_0");
+  TTree * tree1 = (TTree*)f1.Get("TreeD_75x40_100x60_150x60_0");
+  TTree * tree2 = (TTree*)f2.Get("TreeD_75x40_100x60_150x60_0");
   //
   AliSimDigits *dig=0;
   AliSimDigits *dig1=0;
@@ -177,9 +185,9 @@ void test5(){
   TFile f("galice.root");
   TFile f1("ev1/galice.root.dig2");
   TFile f2("ev2/galice.root.dig2");
-  TTree * tree = (TTree*)f.Get("TreeD_75x40_100x60_0");
-  TTree * tree1 = (TTree*)f1.Get("TreeD_75x40_100x60_0");
-  TTree * tree2 = (TTree*)f2.Get("TreeD_75x40_100x60_0");
+  TTree * tree = (TTree*)f.Get("TreeD_75x40_100x60_150x60_0");
+  TTree * tree1 = (TTree*)f1.Get("TreeD_75x40_100x60_150x60_0");
+  TTree * tree2 = (TTree*)f2.Get("TreeD_75x40_100x60_150x60_0");
 
   AliSimDigits *dig=0;
   AliSimDigits *dig1=0;
@@ -221,9 +229,9 @@ void test3(){
   TFile f("galice.root");
   TFile f1("ev1/galice.root.sdigits");
   TFile f2("ev2/galice.root.sdigits");
-  TTree * tree = (TTree*)f.Get("TreeD_75x40_100x60_0");
-  TTree * tree1 = (TTree*)f1.Get("TreeS_75x40_100x60_0");
-  TTree * tree2 = (TTree*)f2.Get("TreeS_75x40_100x60_0");
+  TTree * tree = (TTree*)f.Get("TreeD_75x40_100x60_150x60_0");
+  TTree * tree1 = (TTree*)f1.Get("TreeS_75x40_100x60_150x60_0");
+  TTree * tree2 = (TTree*)f2.Get("TreeS_75x40_100x60_150x60_0");
   //
   AliSimDigits *dig=0;
   AliSimDigits *dig1=0;
@@ -267,8 +275,8 @@ void TestSDigitsDig2(){
   TFile f1("galice.root.digits");
   TFile f2("galice.root.dig2");
   //
-  TTree * tree1 = (TTree*)f1.Get("TreeD_75x40_100x60_0");
-  TTree * tree2 = (TTree*)f2.Get("TreeD_75x40_100x60_0");
+  TTree * tree1 = (TTree*)f1.Get("TreeD_75x40_100x60_150x60_0");
+  TTree * tree2 = (TTree*)f2.Get("TreeD_75x40_100x60_150x60_0");
   //
   AliSimDigits *dig1=0;
   AliSimDigits *dig2=0;
@@ -320,8 +328,8 @@ void TestSDigitsDig1(){
   TFile f1("galice.root.digits");
   TFile f2("galice.root.dig2");
   //
-  TTree * tree1 = (TTree*)f1.Get("TreeD_75x40_100x60_0");
-  TTree * tree2 = (TTree*)f2.Get("TreeD_75x40_100x60_0");
+  TTree * tree1 = (TTree*)f1.Get("TreeD_75x40_100x60_150x60_0");
+  TTree * tree2 = (TTree*)f2.Get("TreeD_75x40_100x60_150x60_0");
   //
   AliSimDigits *dig1=0;
   AliSimDigits *dig2=0;
@@ -365,8 +373,8 @@ void test4(){
   //TPC internal test
   TFile f1("galice.root.sdigits");
   TFile f2("galice.root.digits");
-  TTree * tree1 = (TTree*)f1.Get("TreeS_75x40_100x60_0");
-  TTree * tree2 = (TTree*)f2.Get("TreeD_75x40_100x60_0");
+  TTree * tree1 = (TTree*)f1.Get("TreeS_75x40_100x60_150x60_0");
+  TTree * tree2 = (TTree*)f2.Get("TreeD_75x40_100x60_150x60_0");
   //
   AliSimDigits *dig1=0;
   AliSimDigits *dig2=0;
index 8a889d3..e7a0be2 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
 $Log$
+Revision 1.7  2001/10/21 19:04:55  hristov
+Several patches were done to adapt the barel reconstruction to the multi-event case. Some memory leaks were corrected. (Yu.Belikov)
+
 Revision 1.6  2001/08/30 09:28:48  hristov
 TTree names are explicitly set via SetName(name) and then Write() is called
 
@@ -125,11 +128,11 @@ void AliTPCclusterer::Digits2Clusters(const AliTPCParam *par, TFile *of, Int_t e
 
     // for backward compatibility
     
-    sprintf(dname,"TreeD_75x40_100x60");
+    sprintf(dname,"TreeD_75x40_100x60_150x60");
     sprintf(cname,"TreeC_TPC");
   }
   else {
-    sprintf(dname,"TreeD_75x40_100x60_%d",eventn);
+    sprintf(dname,"TreeD_75x40_100x60_150x60_%d",eventn);
     sprintf(cname,"TreeC_TPC_%d",eventn);
   }
   TTree *t = (TTree *)gDirectory->Get(dname);
index fc666be..917b636 100644 (file)
@@ -120,6 +120,12 @@ Int_t AliTPCtrackerParam::BuildTPCtracks(const TFile *inp, TFile *out, Int_t n)
     Int_t ver = TPC->IsVersion(); 
     cerr<<"+++ TPC version "<<ver<<" has been found !\n";
     AliTPCParam *digp=(AliTPCParam*)infile->Get("75x40_100x60");
+    if(digp){
+      delete digp;
+      digp = new AliTPCParamSR();
+    }
+    else digp=(AliTPCParam*)infile->Get("75x40_100x60_150x60");
+    
     if(!digp) { cerr<<"TPC parameters have not been found !\n"; return 1; }
     TPC->SetParam(digp);
 
index 69592a1..33743fc 100644 (file)
@@ -28,6 +28,7 @@
 //TPC headers
 #include "AliTPC.h"
 #include "AliTPCParam.h"
+#include "AliTPCParamSR.h"
 #include "AliTPCPRF2D.h"
 #include "AliTPCRF1D.h"
 #include "AliDigits.h"