]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG1/TRD/AliTRDpidRefMaker.cxx
Adding 2 triggers to list of known unsupported triggers
[u/mrichter/AliRoot.git] / PWG1 / TRD / AliTRDpidRefMaker.cxx
index 5b5fd53e1e0b853d94651fbe845daaf1098bd3c8..c87f2f8212633e1a51a7c7ecbcd3b282eff6b18a 100644 (file)
@@ -14,6 +14,8 @@
 #include "AliTRDtrackV1.h"
 #include "AliTRDseedV1.h"
 #include "AliTRDpidRefMaker.h"
+#include "AliTRDinfoGen.h"
+#include "info/AliTRDeventInfo.h"
 #include "info/AliTRDv0Info.h"
 #include "info/AliTRDpidInfo.h"
 
@@ -36,7 +38,6 @@ ClassImp(AliTRDpidRefMaker)
 //________________________________________________________________________
 AliTRDpidRefMaker::AliTRDpidRefMaker() 
   :AliTRDrecoTask()
-  ,fReconstructor(NULL)
   ,fV0s(NULL)
   ,fData(NULL)
   ,fInfo(NULL)
@@ -56,7 +57,6 @@ AliTRDpidRefMaker::AliTRDpidRefMaker()
 //________________________________________________________________________
 AliTRDpidRefMaker::AliTRDpidRefMaker(const char *name, const char *title) 
   :AliTRDrecoTask(name, title)
-  ,fReconstructor(NULL)
   ,fV0s(NULL)
   ,fData(NULL)
   ,fInfo(NULL)
@@ -71,13 +71,11 @@ AliTRDpidRefMaker::AliTRDpidRefMaker(const char *name, const char *title)
   // Default constructor
   //
 
-  fReconstructor = new AliTRDReconstructor();
-  fReconstructor->SetRecoParam(AliTRDrecoParam::GetLowFluxParam());
-  memset(fdEdx, 0, 10*sizeof(Float_t));
+  memset(fdEdx, 0, AliTRDpidUtil::kNNslices*sizeof(Float_t));
   memset(fPID, 0, AliPID::kSPECIES*sizeof(Float_t));
 
-  DefineInput(2, TObjArray::Class()); // v0 list
-  DefineInput(3, TObjArray::Class()); // pid info list 
+  DefineInput(3, TObjArray::Class()); // v0 list
+  DefineInput(4, TObjArray::Class()); // pid info list
   DefineOutput(2, TTree::Class());
 }
 
@@ -86,7 +84,6 @@ AliTRDpidRefMaker::AliTRDpidRefMaker(const char *name, const char *title)
 AliTRDpidRefMaker::~AliTRDpidRefMaker() 
 {
   if(fPIDdataArray) delete fPIDdataArray;
-  if(fReconstructor) delete fReconstructor;
 }
 
 //________________________________________________________________________
@@ -138,27 +135,31 @@ void AliTRDpidRefMaker::UserExec(Option_t *)
   // Called for each event
   Int_t ev((Int_t)AliAnalysisManager::GetAnalysisManager()->GetCurrentEntry());
   if(!(fTracks = dynamic_cast<TObjArray*>(GetInputData(1)))){
-    AliDebug(3, Form("Missing tracks container in ev %d", ev)); 
+    AliDebug(3, Form("Missing tracks container in ev %d", ev));
     return;
   }
-  if(!(fV0s    = dynamic_cast<TObjArray*>(GetInputData(2)))){ 
+  if(!(fEvent = dynamic_cast<AliTRDeventInfo*>(GetInputData(2)))){
+    AliDebug(3, Form("Missing Event Info container in ev %d", ev));
+    return;
+  }
+  if(!(fV0s    = dynamic_cast<TObjArray*>(GetInputData(3)))){
     AliDebug(3, Form("Missing v0 container in ev %d", ev)); 
     return;
   }
-  if(!(fInfo   = dynamic_cast<TObjArray*>(GetInputData(3)))){ 
+  if(!(fInfo   = dynamic_cast<TObjArray*>(GetInputData(4)))){
     AliDebug(3, Form("Missing pid info container in ev %d", ev)); 
     return;
   }
 
   AliDebug(1, Form("Entries: Ev[%d] Tracks[%d] V0[%d] PID[%d]", ev, fTracks->GetEntriesFast(), fV0s->GetEntriesFast(), fInfo->GetEntriesFast()));
   AliTRDtrackInfo     *track = NULL;
-  AliTRDtrackV1    *trackTRD = NULL;
+  //AliTRDtrackV1    *trackTRD = NULL;
   AliTrackReference     *ref = NULL;
   const AliTRDtrackInfo::AliESDinfo *infoESD = NULL;
   for(Int_t itrk=0; itrk<fTracks->GetEntriesFast(); itrk++){
     track = (AliTRDtrackInfo*)fTracks->UncheckedAt(itrk);
     if(!track->HasESDtrack()) continue;
-    trackTRD = track->GetTrack();
+    //trackTRD = track->GetTrack();
     infoESD  = track->GetESDinfo();
     Double32_t *infoPID = infoESD->GetSliceIter();
     Int_t n = infoESD->GetNSlices() - AliTRDgeometry::kNlayer;
@@ -175,7 +176,7 @@ void AliTRDpidRefMaker::UserExec(Option_t *)
     // fill the pid information
     SetRefPID(fRefPID, track, infoESD, fPID);
     // get particle type
-    Int_t idx(TMath::LocMax(AliPID::kSPECIES, fPID)); 
+    Int_t idx(TMath::Max(Long64_t(0), TMath::LocMax(AliPID::kSPECIES, fPID))); 
     if(fPID[idx]<1.e-5) continue;
     
     // prepare PID data array
@@ -190,13 +191,14 @@ void AliTRDpidRefMaker::UserExec(Option_t *)
       // fill P & dE/dx information
       switch(fRefP){
       case kMC:
-       if(!(ref = track->GetTrackRef(ily))) continue;
-       fP = ref->P();
-       break;
+        if(!(ref = track->GetTrackRef(ily))) continue;
+        fP = ref->P();
+        break;
       case kRec:
-       fP = p[ily];
-       break;
-      default: continue;
+        fP = p[ily];
+        break;
+      default:
+        continue;
       }
       Double32_t *it = &infoPID[ily*AliTRDCalPID::kNSlicesNN];
       for(Int_t is=AliTRDCalPID::kNSlicesNN; is--; it++) fdEdx[is] = (*it);
@@ -291,7 +293,7 @@ void AliTRDpidRefMaker::SetRefPID(ETRDpidRefMakerSource select, AliTRDtrackInfo
   case kRec:
     { 
       AliTRDtrackV1 *trackTRD = track->GetTrack();
-      trackTRD -> SetReconstructor(fReconstructor);
+      trackTRD -> SetReconstructor(AliTRDinfoGen::Reconstructor());
       //fReconstructor -> SetOption("nn");
       trackTRD -> CookPID();
       for(Int_t iPart = 0; iPart < AliPID::kSPECIES; iPart++){