]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
TRD PID breaks in QA lego train
authorrbailhac <rbailhac@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 18 Nov 2013 13:43:07 +0000 (13:43 +0000)
committerrbailhac <rbailhac@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 18 Nov 2013 13:43:07 +0000 (13:43 +0000)
PWGHF/hfe/AliAnalysisTaskHFEQA.cxx
PWGHF/hfe/AliAnalysisTaskHFEQA.h
PWGHF/hfe/AliHFEpidTRD.cxx
PWGHF/hfe/AliHFEtrdPIDqaV1.cxx
PWGHF/hfe/macros/AddTaskHFEQA.C
PWGHF/hfe/macros/configs/PbPb/ConfigHFEQA.C

index 47c7556c391a50d48478a0cc7fddb787d4debf80..87205e00ee94767f4fbef556e592cfe45a919761 100644 (file)
@@ -75,19 +75,23 @@ AliAnalysisTaskHFEQA::AliAnalysisTaskHFEQA() :
   fAODArrayMCInfo(NULL),\r
   fHFECuts(0),\r
   fPIDTPConly(0),\r
+  fPIDTRDonly(0),\r
   fPIDTOFTPC(0),\r
   fPIDTPCTRD(0),\r
   fPIDTPCEMCal(0),\r
+  fPIDqaTRDonly(0),\r
   fPIDqaTOFTPC(0),\r
   fPIDqaTPCTRD(0),\r
   fPIDqaTPCEMCal(0),\r
   fCentralityEstimator("V0M"),\r
   fCollisionSystem(3),\r
+  fNbEvent(0),\r
   fTPConly(0),\r
   fTOFTPC(0),\r
   fTPCTRD(0),\r
   fTPCEMCal(0),\r
   fTPConlydo(kFALSE),\r
+  fTRDonlydo(kFALSE),\r
   fTOFTPCdo(kFALSE),\r
   fTPCTRDdo(kFALSE),\r
   fTPCEMCaldo(kFALSE)\r
@@ -104,19 +108,23 @@ AliAnalysisTaskHFEQA:: AliAnalysisTaskHFEQA(const char *name) :
   fAODArrayMCInfo(NULL),\r
   fHFECuts(0),\r
   fPIDTPConly(0),\r
+  fPIDTRDonly(0),\r
   fPIDTOFTPC(0),\r
   fPIDTPCTRD(0),\r
   fPIDTPCEMCal(0),\r
+  fPIDqaTRDonly(0),\r
   fPIDqaTOFTPC(0),\r
   fPIDqaTPCTRD(0),\r
   fPIDqaTPCEMCal(0),\r
   fCentralityEstimator("V0M"),\r
   fCollisionSystem(3),\r
+  fNbEvent(0),\r
   fTPConly(0),\r
   fTOFTPC(0),\r
   fTPCTRD(0),\r
   fTPCEMCal(0),\r
   fTPConlydo(kFALSE),\r
+  fTRDonlydo(kFALSE),\r
   fTOFTPCdo(kFALSE),\r
   fTPCTRDdo(kFALSE),\r
   fTPCEMCaldo(kFALSE)\r
@@ -126,10 +134,12 @@ AliAnalysisTaskHFEQA:: AliAnalysisTaskHFEQA(const char *name) :
   //\r
  \r
   fPIDTPConly = new AliHFEpid("hfePidTPConly");\r
+  fPIDTRDonly = new AliHFEpid("hfePidTRDonly");\r
   fPIDTOFTPC = new AliHFEpid("hfePidTOFTPC");\r
   fPIDTPCTRD = new AliHFEpid("hfePidTPCTRD");\r
   fPIDTPCEMCal = new AliHFEpid("hfePidTPCEMCal");\r
 \r
+  fPIDqaTRDonly = new AliHFEpidQAmanager;\r
   fPIDqaTOFTPC = new AliHFEpidQAmanager;\r
   fPIDqaTPCTRD = new AliHFEpidQAmanager;\r
   fPIDqaTPCEMCal = new AliHFEpidQAmanager;\r
@@ -149,19 +159,23 @@ AliAnalysisTaskHFEQA::AliAnalysisTaskHFEQA(const AliAnalysisTaskHFEQA &ref):
   fAODArrayMCInfo(ref.fAODArrayMCInfo),\r
   fHFECuts(NULL),\r
   fPIDTPConly(0),\r
+  fPIDTRDonly(0),\r
   fPIDTOFTPC(0),\r
   fPIDTPCTRD(0),\r
   fPIDTPCEMCal(0),\r
+  fPIDqaTRDonly(0),\r
   fPIDqaTOFTPC(0),\r
   fPIDqaTPCTRD(0),\r
   fPIDqaTPCEMCal(0),\r
   fCentralityEstimator(ref.fCentralityEstimator),\r
   fCollisionSystem(ref.fCollisionSystem),\r
+  fNbEvent(ref.fNbEvent),\r
   fTPConly(ref.fTPConly),\r
   fTOFTPC(ref.fTOFTPC),\r
   fTPCTRD(ref.fTPCTRD),\r
   fTPCEMCal(ref.fTPCEMCal),\r
   fTPConlydo(ref.fTPConlydo),\r
+  fTRDonlydo(ref.fTRDonlydo),\r
   fTOFTPCdo(ref.fTOFTPCdo),\r
   fTPCTRDdo(ref.fTPCTRDdo),\r
   fTPCEMCaldo(ref.fTPCEMCaldo)\r
@@ -195,19 +209,23 @@ void AliAnalysisTaskHFEQA::Copy(TObject &o) const {
   target.fAODArrayMCInfo = fAODArrayMCInfo;\r
   target.fHFECuts = fHFECuts;\r
   target.fPIDTPConly = fPIDTPConly;\r
+  target.fPIDTRDonly = fPIDTRDonly;\r
   target.fPIDTOFTPC = fPIDTOFTPC;\r
   target.fPIDTPCTRD = fPIDTPCTRD;\r
   target.fPIDTPCEMCal = fPIDTPCEMCal;\r
+  target.fPIDqaTRDonly = fPIDqaTRDonly;\r
   target.fPIDqaTOFTPC = fPIDqaTOFTPC;\r
   target.fPIDqaTPCTRD = fPIDqaTPCTRD;\r
   target.fPIDqaTPCEMCal = fPIDqaTPCEMCal;\r
   target.fCentralityEstimator = fCentralityEstimator;\r
   target.fCollisionSystem = fCollisionSystem;\r
+  target.fNbEvent = fNbEvent;\r
   target.fTPConly = fTPConly;\r
   target.fTOFTPC = fTOFTPC;\r
   target.fTPCTRD = fTPCTRD;\r
   target.fTPCEMCal = fTPCEMCal;\r
   target.fTPConlydo = fTPConlydo;\r
+  target.fTRDonlydo = fTRDonlydo;  \r
   target.fTOFTPCdo = fTOFTPCdo;\r
   target.fTPCTRDdo = fTPCTRDdo;\r
   target.fTPCEMCaldo = fTPCEMCaldo;\r
@@ -224,6 +242,7 @@ AliAnalysisTaskHFEQA::~AliAnalysisTaskHFEQA(){
   if(fListHist) delete fListHist;\r
   if(fHFECuts) delete fHFECuts;\r
   if(fPIDTPConly) delete fPIDTPConly;\r
+  if(fPIDTRDonly) delete fPIDTRDonly;\r
   if(fPIDTOFTPC) delete fPIDTOFTPC;\r
   if(fPIDTPCTRD) delete fPIDTPCTRD;\r
   if(fPIDTPCEMCal) delete fPIDTPCEMCal;\r
@@ -267,12 +286,21 @@ void AliAnalysisTaskHFEQA::UserCreateOutputObjects()
 \r
   // PIDTPConly HFE\r
   if(!fPIDTPConly) {\r
-    fPIDTPConly =new AliHFEpid("hfePidTPC");\r
+    fPIDTPConly =new AliHFEpid("hfePidTPConly");\r
   }\r
   if(!fPIDTPConly->GetNumberOfPIDdetectors()) fPIDTPConly->AddDetector("TPC", 0);\r
   fPIDTPConly->InitializePID();\r
   fPIDTPConly->SortDetectors();\r
 \r
+  // PIDTRDonly HFE\r
+  if(!fPIDTRDonly) {\r
+    fPIDTRDonly =new AliHFEpid("hfePidTRDonly");\r
+  }\r
+  if(!fPIDTRDonly->GetNumberOfPIDdetectors()) fPIDTRDonly->AddDetector("TRD", 0);\r
+  fPIDTRDonly->InitializePID();\r
+  fPIDqaTRDonly->Initialize(fPIDTRDonly);\r
+  fPIDTRDonly->SortDetectors();\r
+\r
   // PIDTOFTPC HFE\r
   if(!fPIDTOFTPC) {\r
     fPIDTOFTPC =new AliHFEpid("hfePidTOFTPC");\r
@@ -311,6 +339,8 @@ void AliAnalysisTaskHFEQA::UserCreateOutputObjects()
   fPIDTPCEMCal->SortDetectors();\r
  \r
   // Histograms\r
+  fNbEvent = new TH1F("NbEvent", "",11,0,11);\r
+  fNbEvent->Sumw2();\r
   Double_t ptbinning[36] = {0., 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1., 1.1, 1.2, 1.3, 1.4, 1.5, 1.75, 2., 2.25, 2.5, 2.75, 3., 3.5, 4., 4.5, 5., 5.5, 6., 7., 8., 10., 12., 14., 16., 18., 20.};\r
   fTPConly = new TH1F("TPCOnly", "",35,&ptbinning[0]);\r
   fTPConly->Sumw2();\r
@@ -327,10 +357,12 @@ void AliAnalysisTaskHFEQA::UserCreateOutputObjects()
   fListHist = new TList();\r
   fListHist->SetOwner();\r
 \r
+  fListHist->Add(fPIDqaTRDonly->MakeList("HFEpidQATRDonly"));\r
   fListHist->Add(fPIDqaTOFTPC->MakeList("HFEpidQATOFTPC"));\r
   fListHist->Add(fPIDqaTPCTRD->MakeList("HFEpidQATPCTRD"));\r
   fListHist->Add(fPIDqaTPCEMCal->MakeList("HFEpidQATPCEMCal"));\r
 \r
+  fListHist->Add(fNbEvent);\r
   fListHist->Add(fTPConly);\r
   fListHist->Add(fTOFTPC);\r
   fListHist->Add(fTPCTRD);\r
@@ -443,6 +475,7 @@ void AliAnalysisTaskHFEQA::UserExec(Option_t */*option*/)
     if((90.0< cntr) && (cntr<100.0)) binct = 10.5;\r
     if(binct > 11.0) return;\r
   }\r
+  else binct = 0.5;\r
   AliDebug(2,Form("Centrality %f with %s",binct,fCentralityEstimator.Data()));\r
  \r
   //////////////////////\r
@@ -455,6 +488,9 @@ void AliAnalysisTaskHFEQA::UserExec(Option_t */*option*/)
   if(!fPIDTPConly->IsInitialized()){\r
     fPIDTPConly->InitializePID(runnumber);\r
   }\r
+  if(!fPIDTRDonly->IsInitialized()){\r
+    fPIDTRDonly->InitializePID(runnumber);\r
+  }\r
   if(!fPIDTOFTPC->IsInitialized()){\r
     fPIDTOFTPC->InitializePID(runnumber);\r
   }\r
@@ -480,6 +516,7 @@ void AliAnalysisTaskHFEQA::UserExec(Option_t */*option*/)
     return;\r
   }\r
   fPIDTPConly->SetPIDResponse(pidResponse);\r
+  fPIDTRDonly->SetPIDResponse(pidResponse);\r
   fPIDTOFTPC->SetPIDResponse(pidResponse);\r
   fPIDTPCTRD->SetPIDResponse(pidResponse);\r
   fPIDTPCEMCal->SetPIDResponse(pidResponse);\r
@@ -493,6 +530,7 @@ void AliAnalysisTaskHFEQA::UserExec(Option_t */*option*/)
     PostData(1, fListHist);\r
     return;\r
   }\r
+  fNbEvent->Fill(binct);\r
   \r
   //////////////////////////\r
   // Loop over track\r
@@ -561,6 +599,14 @@ void AliAnalysisTaskHFEQA::UserExec(Option_t */*option*/)
       }\r
     }\r
     AliDebug(2,"TPC only PID\n");\r
+       \r
+    // Complete PID TRD alone\r
+    if(fTRDonlydo) {\r
+      if(fPIDTRDonly->IsSelected(&hfetrack,0x0,"recTrackCont",fPIDqaTRDonly)) {\r
+       AliDebug(2,"Passed TRD only PID\n");\r
+      }\r
+    }\r
+    AliDebug(2,"TRD only PID\n");\r
            \r
     \r
     // Complete PID TPC TOF \r
index 5fafd70e34327af24a407f6a3be71bb2f7a39de5..a5aa06885d0e8025864cf3da0b7589781d0f66df 100644 (file)
@@ -63,6 +63,7 @@ public:
   virtual void  UserCreateOutputObjects();\r
 \r
   void SetDoTPConly(Bool_t tpconlydo)   { fTPConlydo = tpconlydo; };\r
+  void SetDoTRDonly(Bool_t trdonlydo)   { fTRDonlydo = trdonlydo; };\r
   void SetDoTOFTPC(Bool_t toftpcdo)   { fTOFTPCdo = toftpcdo; };\r
   void SetDoTPCTRD(Bool_t tpctrddo)   { fTPCTRDdo = tpctrddo; };\r
   void SetDoTPCEMCal(Bool_t tpcemcaldo)   { fTPCEMCaldo = tpcemcaldo; };\r
@@ -88,9 +89,11 @@ public:
   Bool_t IspPb() const { return fCollisionSystem.TestBitNumber(kpPb); }\r
   \r
   AliHFEpid *GetPIDTPConly() const { return fPIDTPConly; }\r
+  AliHFEpid *GetPIDTRDonly() const { return fPIDTRDonly; }\r
   AliHFEpid *GetPIDTOFTPC() const { return fPIDTOFTPC; }\r
   AliHFEpid *GetPIDTPCTRD() const { return fPIDTPCTRD; }\r
   AliHFEpid *GetPIDTPCEMCal() const { return fPIDTPCEMCal; }\r
+  AliHFEpidQAmanager *GetPIDQAManagerTRDonly() const { return fPIDqaTRDonly; }\r
   AliHFEpidQAmanager *GetPIDQAManagerTOFTPC() const { return fPIDqaTOFTPC; }\r
   AliHFEpidQAmanager *GetPIDQAManagerTPCTRD() const { return fPIDqaTPCTRD; }\r
   AliHFEpidQAmanager *GetPIDQAManagerTPCEMCal() const { return fPIDqaTPCEMCal; }\r
@@ -107,9 +110,11 @@ public:
   // Cuts for HFE\r
   AliHFEcuts *fHFECuts;                   // HFE cuts\r
   AliHFEpid  *fPIDTPConly;                // PID cuts \r
+  AliHFEpid  *fPIDTRDonly;                // PID cuts \r
   AliHFEpid  *fPIDTOFTPC;                 // PID cuts TOF-TPC only\r
   AliHFEpid  *fPIDTPCTRD;                 // PID cuts TPC-TRD \r
   AliHFEpid  *fPIDTPCEMCal;                 // PID cuts TPC-EMCal \r
+  AliHFEpidQAmanager *fPIDqaTRDonly;       // QA Manager TOF TPC\r
   AliHFEpidQAmanager *fPIDqaTOFTPC;       // QA Manager TOF TPC\r
   AliHFEpidQAmanager *fPIDqaTPCTRD;       // QA Manager TPC TRD\r
   AliHFEpidQAmanager *fPIDqaTPCEMCal;       // QA Manager TPC EMCal\r
@@ -117,6 +122,7 @@ public:
   TBits fCollisionSystem;              // Collision System;\r
 \r
   // Histo yields\r
+  TH1F *fNbEvent;                      // Number of events\r
   TH1F *fTPConly;                      // TPC only electron yield\r
   TH1F *fTOFTPC;                      // TOF TPC  electron yield\r
   TH1F *fTPCTRD;                      // TPC TRD  electron yield\r
@@ -124,6 +130,7 @@ public:
 \r
   // Do PID or not\r
   Bool_t fTPConlydo;                   // Do TPC only PID\r
+  Bool_t fTRDonlydo;                   // Do TRD only PID\r
   Bool_t fTOFTPCdo;                    // Do TOF TPC \r
   Bool_t fTPCTRDdo;                    // Do TPC TRD \r
   Bool_t fTPCEMCaldo;                    // Do TPC EMCal \r
@@ -134,7 +141,7 @@ public:
 \r
   \r
   \r
-  ClassDef(AliAnalysisTaskHFEQA, 2); // analysisclass\r
+  ClassDef(AliAnalysisTaskHFEQA, 3); // analysisclass\r
 };\r
 \r
 #endif\r
index 6278ebab78229883faee3541221a0d74c2d1355e..6cb69e06463ce530dbab59b0ce62e175eaea2e8a 100644 (file)
@@ -271,11 +271,13 @@ Int_t AliHFEpidTRD::IsSelected2D(const AliHFEpidObject *track, AliHFEpidQAmanage
   AliHFEpidObject::AnalysisType_t anatype = track->IsESDanalysis() ? AliHFEpidObject::kESDanalysis: AliHFEpidObject::kAODanalysis;
   Double_t p = GetP(track->GetRecTrack(), anatype);
   if(p < fMinP){ 
-    AliDebug(2, Form("Track momentum below %f", fMinP));
+    AliDebug(2, Form("Track momentum %f below %f", p, fMinP));
     return 0;
   }
-
+  AliDebug(2, Form("Track momentum %f above %f", p, fMinP));
   if(pidqa) pidqa->ProcessTrack(track, AliHFEpid::kTRDpid, AliHFEdetPIDqa::kBeforePID); 
+  AliDebug(1,"PID qa done for step before\n");
 
   if(fCutNTracklets > 0){
     AliDebug(1, Form("Number of tracklets cut applied: %d\n", fCutNTracklets));
@@ -294,10 +296,12 @@ Int_t AliHFEpidTRD::IsSelected2D(const AliHFEpidObject *track, AliHFEpidQAmanage
   Float_t fCentralityLimitsdefault[12]= {0.,5.,10., 20., 30., 40., 50., 60.,70.,80., 90., 100.};
   Float_t centrality=-1;
   if(centralitybin>=0) centrality=fCentralityLimitsdefault[centralitybin]+1;
+  AliDebug(2, Form("Just before cutting Electron effi: %f %i %i %f\n", fElectronEfficiency,track->GetCentrality(),centralitybin,centrality));
 
   if(fkPIDResponse->IdentifiedAsElectronTRD(track->GetRecTrack(),fElectronEfficiency,centrality,AliTRDPIDResponse::kLQ2D)){
       AliDebug(2, Form("Electron effi: %f %i %i %f\n", fElectronEfficiency,track->GetCentrality(),centralitybin,centrality));
       if(pidqa) pidqa->ProcessTrack(track, AliHFEpid::kTRDpid, AliHFEdetPIDqa::kAfterPID); 
+      AliDebug(1,"PID qa done for step after\n");
       return 11;
   } else return 211;
 
@@ -368,6 +372,7 @@ Double_t AliHFEpidTRD::GetElectronLikelihood(const AliVTrack *track, AliHFEpidOb
   //
   // Get TRD likelihoods for ESD respectively AOD tracks
   //
+  AliDebug(1, "Starting getting TRD likelihood\n");
   Double_t pidProbs[AliPID::kSPECIES]; memset(pidProbs, 0, sizeof(Double_t) * AliPID::kSPECIES);
   if(anaType == AliHFEpidObject::kESDanalysis){
     const AliESDtrack *esdtrack = dynamic_cast<const AliESDtrack *>(track);
@@ -376,6 +381,9 @@ Double_t AliHFEpidTRD::GetElectronLikelihood(const AliVTrack *track, AliHFEpidOb
       if(fTRD2DPID) fkPIDResponse->ComputeTRDProbability(track, AliPID::kSPECIES, pidProbs,AliTRDPIDResponse::kLQ2D); 
       else fkPIDResponse->ComputeTRDProbability(track, AliPID::kSPECIES, pidProbs,AliTRDPIDResponse::kLQ1D);
   }
+  for(Int_t k=0; k < AliPID::kSPECIES; k++) {
+    AliDebug(2, Form("proba: %f for %d\n", pidProbs[k],k));
+  }
   if(!IsRenormalizeElPi()) return pidProbs[AliPID::kElectron];
   Double_t probsNew[AliPID::kSPECIES];
   RenormalizeElPi(pidProbs, probsNew);
index d217d08b3ae05ac1726db09a72ddf3388b6617ab..0eec5b7d26f73fd5bfe7a9829877d9cf935372a5 100644 (file)
@@ -258,10 +258,15 @@ void AliHFEtrdPIDqaV1::ProcessTrack(const AliHFEpidObject *track, AliHFEdetPIDqa
   container[2] = pidResponse ? pidResponse->NumberOfSigmasTPC(track->GetRecTrack(), AliPID::kElectron) : 0.;
   container[3] = step;
   container[4] = track->GetCentrality();
+  AliDebug(1, Form("Species %d, p %f, number of sigma TPC %f, step %f, centrality %f", (Int_t)species,(Float_t) container[1],(Float_t) container[2],(Float_t) container[3],(Float_t) container[4]));
   fHistos->Fill("hTPCsigma", container);
+  AliDebug(1, "Filled  TPC sigma\n");
+
+
 
   container[2] = trdpid ? trdpid->GetElectronLikelihood(static_cast<const AliVTrack*>(track->GetRecTrack()), anatype) : 0;
   fHistos->Fill("hTRDlikelihood", container);
+  AliDebug(1, "Filled likelihood\n");
 
   if(track->IsESDanalysis()){
     const AliESDtrack *esdtrack = dynamic_cast<const AliESDtrack *>(track->GetRecTrack());
@@ -274,6 +279,7 @@ void AliHFEtrdPIDqaV1::ProcessTrack(const AliHFEpidObject *track, AliHFEdetPIDqa
     container[2] = trdpid ? trdpid->GetChargeLayer(track->GetRecTrack(), ily, anatype) : 0;
     if(container[2] < 1e-3) continue; // Filter out 0 entries
     fHistos->Fill("hTRDcharge", container);
+    AliDebug(1, "Filled TRD charge\n");
   }
 
   Int_t ntracklets = track->GetRecTrack()->GetTRDntrackletsPID();
@@ -281,6 +287,7 @@ void AliHFEtrdPIDqaV1::ProcessTrack(const AliHFEpidObject *track, AliHFEdetPIDqa
     fHistos->Fill("hNtrackletsBefore", trdpid ? trdpid->GetP(track->GetRecTrack(), anatype) : 0., ntracklets);
   else
     fHistos->Fill("hNtrackletsAfter", trdpid ? trdpid->GetP(track->GetRecTrack(), anatype) : 0., ntracklets);
+  AliDebug(1, "Filled tracklet\n");
 }
 
 //_________________________________________________________
index ecbe5dabc6dfcec57961f9a3b93d8a561046a60b..35fe05b7c31ada52f246952fb92145af0c1e0d59 100644 (file)
@@ -1,4 +1,4 @@
-AliAnalysisTask *AddTaskHFEQA(Bool_t useMC, Bool_t isAOD, Int_t icollisionsystem = 2, Int_t icent = 2,Int_t debuglevel = 4,Bool_t tpconlydo = kTRUE,Bool_t toftpcdo = kTRUE,Bool_t tpctrddo = kTRUE,Bool_t tpcemcaldo = kTRUE){
+AliAnalysisTask *AddTaskHFEQA(Bool_t useMC, Bool_t isAOD, Int_t icollisionsystem = 2, Int_t icent = 2,Int_t debuglevel = 4,Bool_t tpconlydo = kTRUE,Bool_t trdonlydo = kTRUE,Bool_t toftpcdo = kTRUE,Bool_t tpctrddo = kTRUE,Bool_t tpcemcaldo = kTRUE){
 
    // Name
   TString appendixx("HFEQA");
@@ -11,14 +11,17 @@ AliAnalysisTask *AddTaskHFEQA(Bool_t useMC, Bool_t isAOD, Int_t icollisionsystem
   
   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
   AliAnalysisDataContainer *cinput  = mgr->GetCommonInputContainer();
-  AliAnalysisTaskHFEQA *task = ConfigHFEQA(useMC,isAOD,icollisionsystem,icent,tpconlydo,toftpcdo,tpctrddo,tpcemcaldo);  
+  AliAnalysisTaskHFEQA *task = ConfigHFEQA(useMC,isAOD,icollisionsystem,icent,tpconlydo,trdonlydo,toftpcdo,tpctrddo,tpcemcaldo);  
 
   mgr->AddTask(task);
   mgr->AddClassDebug("AliAnalysisTaskHFEQA",debuglevel);
-  mgr->AddClassDebug("AliHFEpid",debuglevel);
-  mgr->AddClassDebug("AliHFEpidTPC",debuglevel);
-  mgr->AddClassDebug("AliHFEpidTOF",debuglevel);
+  //mgr->AddClassDebug("AliHFEpid",debuglevel);
+  //mgr->AddClassDebug("AliHFEpidTPC",debuglevel);
+  //mgr->AddClassDebug("AliHFEpidTOF",debuglevel);
   mgr->AddClassDebug("AliHFEpidTRD",debuglevel);
+  mgr->AddClassDebug("AliHFEtrdPIDqaV1",debuglevel);
+  mgr->AddClassDebug("AliPIDResponse",debuglevel);
+  mgr->AddClassDebug("AliTRDPIDResponse",debuglevel);
 
   TString containerName = mgr->GetCommonFileName();
   containerName += ":";
index 49f123865293cb20db8155544ad715d6e544b0cb..00c2cec55851e36195295a4d7b894ea7b40d5a15 100644 (file)
@@ -1,4 +1,4 @@
-AliAnalysisTaskHFEQA* ConfigHFEQA(Bool_t useMC, Bool_t isAOD, Int_t icollisionsystem = 2, Int_t icent = 2,Bool_t tpconlydo = kTRUE,Bool_t toftpcdo = kTRUE,Bool_t tpctrddo = kTRUE,Bool_t tpcemcaldo = kTRUE){
+AliAnalysisTaskHFEQA* ConfigHFEQA(Bool_t useMC, Bool_t isAOD, Int_t icollisionsystem = 2, Int_t icent = 2,Bool_t tpconlydo = kTRUE,Bool_t trdonlydo = kTRUE,Bool_t toftpcdo = kTRUE,Bool_t tpctrddo = kTRUE,Bool_t tpcemcaldo = kTRUE){
   
   //***************************************//
   //        Setting up the HFE cuts        //
@@ -52,10 +52,25 @@ AliAnalysisTaskHFEQA* ConfigHFEQA(Bool_t useMC, Bool_t isAOD, Int_t icollisionsy
   //          Configure the PID            //
   //***************************************//
 
-  if(tpconlydo) task->SetDoTPConly(kTRUE);
-  if(toftpcdo) task->SetDoTOFTPC(kTRUE);
-  if(tpctrddo) task->SetDoTPCTRD(kTRUE);
-  if(tpcemcaldo) task->SetDoTPCEMCal(kTRUE);
+  if(tpconlydo) {
+    task->SetDoTPConly(kTRUE);
+  }
+  if(trdonlydo) {
+    task->SetDoTRDonly(kTRUE);
+    task->GetPIDQAManagerTRDonly()->SetHighResolutionHistos();
+  }
+  if(toftpcdo) {
+    task->SetDoTOFTPC(kTRUE);
+    task->GetPIDQAManagerTOFTPC()->SetHighResolutionHistos();
+  }
+  if(tpctrddo) {
+    task->SetDoTPCTRD(kTRUE);
+    task->GetPIDQAManagerTPCTRD()->SetHighResolutionHistos();
+  }
+  if(tpcemcaldo) {
+    task->SetDoTPCEMCal(kTRUE);
+    task->GetPIDQAManagerTPCEMCal()->SetHighResolutionHistos();
+  }
 
   AliHFEpid *pidTPConly = task->GetPIDTPConly();
   if(useMC) pidTPConly->SetHasMCData(kTRUE);
@@ -105,6 +120,17 @@ AliAnalysisTaskHFEQA* ConfigHFEQA(Bool_t useMC, Bool_t isAOD, Int_t icollisionsy
   trdpid->SetNTracklets(6);      // ntracklets threshold
   trdpid->SetCutNTracklets(6, kTRUE);
 
+  // TRD only
+  AliHFEpid *pidTRDonly = task->GetPIDTRDonly();
+  if(useMC) pidTRDonly->SetHasMCData(kTRUE);
+  pidTRDonly->AddDetector("TRD", 0);
+  AliHFEpidTRD *trdonlypid = pidTRDonly->GetDetPID(AliHFEpid::kTRDpid);
+  trdonlypid->SetTRD2DPID();
+  trdonlypid->SetElectronEfficiency(0.80);   // efficiency
+  trdonlypid->SetNTracklets(6);      // ntracklets threshold
+  trdonlypid->SetCutNTracklets(6, kTRUE);
+
   // change E/p cuts
   AliHFEpidEMCAL *emcpid = pidTPCEMCal->AliHFEpid::GetDetPID(AliHFEpid::kEMCALpid);
   emcpid->SetEoPMax(1.3);