mods related to AliTOFRecoParam
authorarcelli <arcelli@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 22 Mar 2007 18:19:58 +0000 (18:19 +0000)
committerarcelli <arcelli@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 22 Mar 2007 18:19:58 +0000 (18:19 +0000)
TOF/AliTOFReconstructor.cxx
TOF/AliTOFReconstructor.h
TOF/AliTOFpidESD.cxx
TOF/AliTOFpidESD.h

index af41b73..eb55c8d 100644 (file)
@@ -92,16 +92,10 @@ AliTracker* AliTOFReconstructor::CreateTracker(AliRunLoader* /*runLoader*/) cons
 {
 // create a TOF tracker
 
-//  AliTOFGeometry* geom = GetTOFGeometry(runLoader);
-  AliTOFGeometry* geom = new AliTOFGeometryV5();
-  if (!geom) return NULL;
-  //  Double_t parPID[] = {130., 5.};
-  Double_t parPID[] = {80., 5.};
   TString selectedTracker = GetOption();
   // use MI tracker if selected
-  if (selectedTracker.Contains("MI")) return new AliTOFtrackerMI(geom,parPID);
-
-  return new AliTOFtracker(geom, parPID);
+  if (selectedTracker.Contains("MI")) return new AliTOFtrackerMI();
+  return new AliTOFtracker();
 }
 
 //_____________________________________________________________________________
index fc1a9af..e050acf 100644 (file)
@@ -24,7 +24,6 @@ class AliTOFGeometry;
 
 class AliTOFReconstructor: public AliReconstructor {
 public:
-  //AliTOFReconstructor(): AliReconstructor() {};
   virtual ~AliTOFReconstructor() {};
 
   virtual void         Reconstruct(AliRunLoader* runLoader) const;
index 4883d9d..666e13d 100644 (file)
@@ -53,6 +53,50 @@ AliTOFpidESD::AliTOFpidESD(Double_t *param):
 }
 
 //_________________________________________________________________________
+Int_t AliTOFpidESD::MakePID(AliESD *event, Double_t timeZero)
+{
+  //
+  //  This function calculates the "detector response" PID probabilities
+  //                Just for a bare hint... 
+
+  Int_t ntrk=event->GetNumberOfTracks();
+  AliESDtrack **tracks=new AliESDtrack*[ntrk];
+
+  Int_t i;
+  for (i=0; i<ntrk; i++) {
+    AliESDtrack *t=event->GetTrack(i);
+    tracks[i]=t;
+  }
+
+  for (i=0; i<ntrk; i++) {
+    AliESDtrack *t=tracks[i];
+    if ((t->GetStatus()&AliESDtrack::kTOFout)==0) continue;
+    if ((t->GetStatus()&AliESDtrack::kTIME)==0) continue;
+    Double_t tof=t->GetTOFsignal()-timeZero;
+    Double_t time[10]; t->GetIntegratedTimes(time);
+    Double_t p[10];
+    Double_t mom=t->GetP();
+    for (Int_t j=0; j<AliPID::kSPECIES; j++) {
+      Double_t mass=AliPID::ParticleMass(j);
+      Double_t dpp=0.01;      //mean relative pt resolution;
+      if (mom>0.5) dpp=0.01*mom;
+      Double_t sigma=dpp*time[j]/(1.+ mom*mom/(mass*mass));
+      sigma=TMath::Sqrt(sigma*sigma + fSigma*fSigma);
+      if (TMath::Abs(tof-time[j]) > fRange*sigma) {
+       p[j]=TMath::Exp(-0.5*fRange*fRange)/sigma;
+        continue;
+      }
+      p[j]=TMath::Exp(-0.5*(tof-time[j])*(tof-time[j])/(sigma*sigma))/sigma;
+    }
+    t->SetTOFpid(p);
+  }
+
+  delete[] tracks;
+  
+  return 0;
+}
+
+//_________________________________________________________________________
 Int_t AliTOFpidESD::MakePID(AliESD *event)
 {
   //
index 87bde88..0333547 100644 (file)
@@ -23,6 +23,7 @@ public:
  ~AliTOFpidESD(){}
 
   Int_t MakePID(AliESD *event);
+  Int_t MakePID(AliESD *event, Double_t timeZero);
   void  SetEventNumber(Int_t n) {fEventN=n;}
   Int_t GetEventNumber() const {return fEventN;}