]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
- processed events + QA plots on vtx and dndeta added in Event Cuts - small bugfix...
authorlmilano <lmilano@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 14 May 2012 18:59:32 +0000 (18:59 +0000)
committerlmilano <lmilano@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 14 May 2012 18:59:32 +0000 (18:59 +0000)
PWGLF/SPECTRA/PiKaPr/TestAOD/AliAnalysisTaskSpectraAOD.cxx
PWGLF/SPECTRA/PiKaPr/TestAOD/AliSpectraAODEventCuts.cxx
PWGLF/SPECTRA/PiKaPr/TestAOD/AliSpectraAODEventCuts.h
PWGLF/SPECTRA/PiKaPr/TestAOD/AliSpectraAODHistoManager.cxx
PWGLF/SPECTRA/PiKaPr/TestAOD/MainAnalysis.C
PWGLF/SPECTRA/PiKaPr/TestAOD/runAODProof.C

index f3f63e641362ff7ecb5e640205f9d2a0531880bc..3aafcc47614b156aee45390c685790991ad3fd74 100644 (file)
@@ -95,8 +95,8 @@ void AliAnalysisTaskSpectraAOD::UserExec(Option_t *)
   //check on centrality distribution\r
   fHistMan->GetPtHistogram("CentCheck")->Fill(fAOD->GetCentrality()->GetCentralityPercentile("V0M"),fAOD->GetHeader()->GetCentralityP()->GetCentralityPercentileUnchecked("V0M"));\r
   \r
-  if(!fEventCuts->IsSelected(fAOD))return;//event selection\r
-        \r
+  if(!fEventCuts->IsSelected(fAOD,fTrackCuts))return;//event selection\r
+  \r
   //AliCentrality fAliCentral*;\r
   //   if ((fAOD->GetCentrality())->GetCentralityPercentile("V0M") > 5.) return;\r
   \r
@@ -113,7 +113,7 @@ void AliAnalysisTaskSpectraAOD::UserExec(Option_t *)
        {\r
          AliAODMCParticle *partMC = (AliAODMCParticle*) arrayMC->At(iMC);\r
          if(!partMC->Charge()) continue;//Skip neutrals\r
-         if(TMath::Abs(partMC->Eta()) > fTrackCuts->GetEta()) continue;\r
+         //if(TMath::Abs(partMC->Eta()) > fTrackCuts->GetEta()) continue; FIXME eta cut should not be there!!!! we want the generated in y<0.5\r
          fHistMan->GetPtHistogram(kHistPtGen)->Fill(partMC->Pt(),partMC->IsPhysicalPrimary());\r
          \r
          if(TMath::Abs(partMC->Y())   > fTrackCuts->GetY()  ) continue;            \r
@@ -183,15 +183,17 @@ void AliAnalysisTaskSpectraAOD::UserExec(Option_t *)
       // Get true ID\r
       Int_t idGen     = fPID->GetParticleSpecie(partMC);\r
       //if(TMath::Abs(partMC->Y())   > fTrackCuts->GetY()  ) continue;     // FIXME: do we need a rapidity cut on the generated?\r
-      \r
       // Fill histograms for primaries\r
-      //if (idRec == idGen) fHistMan->GetHistogram2D(kHistPtRecTrue,  idGen, charge)->Fill(track->Pt(),d[0]); \r
-\r
-      if (isPrimary) {\r
-       //fHistMan                    ->GetPtHistogram(kHistPtRecPrimary)->Fill(track->Pt(),d[0]);  // PT histo\r
-       fHistMan                    ->GetHistogram2D(kHistPtRecPrimary,      idGen, charge)->Fill(track->Pt(),d[0]);\r
-       if (idRec == idGen) fHistMan->GetHistogram2D(kHistPtRecTruePrimary,  idGen, charge)->Fill(track->Pt(),d[0]); \r
-       fHistMan                    ->GetHistogram2D(kHistPtRecSigmaPrimary, idRec, charge)->Fill(track->Pt(),d[0]); \r
+      if(idGen != kSpUndefined) {\r
+       \r
+       if (idRec == idGen) fHistMan->GetHistogram2D(kHistPtRecTrue,  idGen, charge)->Fill(track->Pt(),d[0]); \r
+       \r
+       if (isPrimary) {\r
+         fHistMan                    ->GetPtHistogram(kHistPtRecPrimary)->Fill(track->Pt(),d[0]);  // PT histo\r
+         fHistMan                    ->GetHistogram2D(kHistPtRecPrimary,      idGen, charge)->Fill(track->Pt(),d[0]);\r
+         if (idRec == idGen) fHistMan->GetHistogram2D(kHistPtRecTruePrimary,  idGen, charge)->Fill(track->Pt(),d[0]); \r
+         fHistMan                    ->GetHistogram2D(kHistPtRecSigmaPrimary, idRec, charge)->Fill(track->Pt(),d[0]); \r
+       }\r
       }\r
       //25th Apr - Muons are added to Pions -- FIXME\r
       if ( partMC->PdgCode() == 13 && idRec == kSpPion) { \r
@@ -207,11 +209,11 @@ void AliAnalysisTaskSpectraAOD::UserExec(Option_t *)
       }\r
       \r
       ///..... END FIXME\r
-\r
+      \r
       // Fill secondaries\r
       if(isSecondaryWeak    )  fHistMan->GetHistogram2D(kHistPtRecSigmaSecondaryWeakDecay, idRec, charge)->Fill(track->Pt(),d[0]);\r
       if(isSecondaryMaterial)  fHistMan->GetHistogram2D(kHistPtRecSigmaSecondaryMaterial , idRec, charge)->Fill(track->Pt(),d[0]);\r
-           \r
+      \r
     }//end if(arrayMC)\r
   } // end loop on tracks\r
   \r
index 76bfe56e5d09176df635286cbe83f32240eb4df6..4d6e96a2ddc51b18ff684fac134ed93922e6c17a 100644 (file)
@@ -33,6 +33,7 @@
 #include "AliAnalysisTaskESDfilter.h"
 #include "AliAnalysisDataContainer.h"
 #include "AliSpectraAODEventCuts.h"
+#include "AliSpectraAODTrackCuts.h"
 #include "AliSpectraAODHistoManager.h"
 #include <iostream>
 
@@ -42,60 +43,79 @@ ClassImp(AliSpectraAODEventCuts)
 
 AliSpectraAODEventCuts::AliSpectraAODEventCuts(const char *name) : TNamed(name, "AOD Event Cuts"), fAOD(0), fIsSelected(0), fCentralityCutMin(0), fCentralityCutMax(0), fHistoCuts(0)
 {
-   // Constructor
-   fHistoCuts = new TH1I("fEventCuts", "Event Cuts", kNVtxCuts, -0.5, kNVtxCuts - 0.5);
-   fCentralityCutMin = 0.0;      // default value of centrality cut minimum, 0 ~ no cut
-   fCentralityCutMax = 10000.0;  // default value of centrality cut maximum,  ~ no cut
+  // Constructor
+  fHistoCuts = new TH1I("fEventCuts", "Event Cuts", kNVtxCuts, -0.5, kNVtxCuts - 0.5);
+  fHistoVtxBefSel = new TH1F("fHistoVtxBefSel", "Vtx distr before event selection",500,-15,15);
+  fHistoVtxAftSel = new TH1F("fHistoVtxAftSel", "Vtx distr after event selection",500,-15,15);
+  fHistoEtaBefSel = new TH1F("fHistoEtaBefSel", "Eta distr before event selection",500,-2,2);
+  fHistoEtaAftSel = new TH1F("fHistoEtaAftSel", "Eta distr after event selection",500,-2,2);
+  fCentralityCutMin = 0.0;      // default value of centrality cut minimum, 0 ~ no cut
+  fCentralityCutMax = 10000.0;  // default value of centrality cut maximum,  ~ no cut
 
 }
 
 //______________________________________________________
-Bool_t AliSpectraAODEventCuts::IsSelected(AliAODEvent * aod)
+Bool_t AliSpectraAODEventCuts::IsSelected(AliAODEvent * aod,AliSpectraAODTrackCuts     *trackcuts)
 {
-// Returns true if Event Cuts are selected and applied
-   fAOD = aod;
-   fIsSelected = (CheckVtxRange() && CheckCentralityCut());
-   if(fIsSelected)  fHistoCuts->Fill(kAcceptedEvents);
-   return fIsSelected;
+  // Returns true if Event Cuts are selected and applied
+  fAOD = aod;
+  fTrackCuts = trackcuts;
+  fHistoCuts->Fill(kProcessedEvents);
+  //loop on tracks, before event selection, filling QA histos
+  AliAODVertex * vertex = fAOD->GetPrimaryVertex();//FIXME vertex is recreated
+  if(vertex)fHistoVtxBefSel->Fill(vertex->GetZ());
+  fIsSelected = (CheckVtxRange() && CheckCentralityCut());
+  if(fIsSelected){
+    fHistoCuts->Fill(kAcceptedEvents);
+    if(vertex)fHistoVtxAftSel->Fill(vertex->GetZ());
+  }
+  for (Int_t iTracks = 0; iTracks < fAOD->GetNumberOfTracks(); iTracks++) {
+    AliAODTrack* track = fAOD->GetTrack(iTracks);
+    if (!fTrackCuts->IsSelected(track)) continue;
+    fHistoEtaBefSel->Fill(track->Eta());
+    if(fIsSelected) fHistoEtaAftSel->Fill(track->Eta());
+  }
+  return fIsSelected;
 }
 
 //______________________________________________________
 Bool_t AliSpectraAODEventCuts::CheckVtxRange()
 {
   // reject events outside of range
-   AliAODVertex * vertex = fAOD->GetPrimaryVertex();
-   if (!vertex)
-   {
+  AliAODVertex * vertex = fAOD->GetPrimaryVertex();
+  if (!vertex)
+    {
       fHistoCuts->Fill(kVtxNoEvent);
       return kFALSE;
-   }
-   if (TMath::Abs(vertex->GetZ()) < 10)
-   {
+    }
+  if (TMath::Abs(vertex->GetZ()) < 10)
+    {
       return kTRUE;
-   }
-   fHistoCuts->Fill(kVtxRange);
-   return kFALSE;
+    }
+  fHistoCuts->Fill(kVtxRange);
+  return kFALSE;
 }
 
 //______________________________________________________
 Bool_t AliSpectraAODEventCuts::CheckCentralityCut()
 {
-   // Check centrality cut
-   if ( (fAOD->GetCentrality()->GetCentralityPercentile("V0M") <= fCentralityCutMax)  &&  (fAOD->GetCentrality()->GetCentralityPercentile("V0M") >= fCentralityCutMin) )  return kTRUE;   
-   fHistoCuts->Fill(kVtxCentral);
-   return kFALSE;
+  // Check centrality cut
+  if ( (fAOD->GetCentrality()->GetCentralityPercentile("V0M") <= fCentralityCutMax)  &&  (fAOD->GetCentrality()->GetCentralityPercentile("V0M") >= fCentralityCutMin) )  return kTRUE;   
+  fHistoCuts->Fill(kVtxCentral);
+  return kFALSE;
 }
 
 //______________________________________________________
 void AliSpectraAODEventCuts::PrintCuts()
 {
-    // print info about event cuts
-    cout << "Event Stats" << endl;
-    cout << " > Number of accepted events: " << fHistoCuts->GetBinContent(kAcceptedEvents + 1) << endl;
-    cout << " > Vertex out of range: " << fHistoCuts->GetBinContent(kVtxRange + 1) << endl;
-    cout << " > Events cut by centrality: " << fHistoCuts->GetBinContent(kVtxCentral + 1) << endl;
-    cout << " > Events without vertex: " << fHistoCuts->GetBinContent(kVtxNoEvent + 1) << endl;
-    }
+  // print info about event cuts
+  cout << "Event Stats" << endl;
+  cout << " > Number of accepted events: " << fHistoCuts->GetBinContent(kAcceptedEvents + 1) << endl;
+  cout << " > Number of processed events: " << fHistoCuts->GetBinContent(kProcessedEvents + 1) << endl;
+  cout << " > Vertex out of range: " << fHistoCuts->GetBinContent(kVtxRange + 1) << endl;
+  cout << " > Events cut by centrality: " << fHistoCuts->GetBinContent(kVtxCentral + 1) << endl;
+  cout << " > Events without vertex: " << fHistoCuts->GetBinContent(kVtxNoEvent + 1) << endl;
+}
 //______________________________________________________
 
 Long64_t AliSpectraAODEventCuts::Merge(TCollection* list)
@@ -137,33 +157,33 @@ Long64_t AliSpectraAODEventCuts::Merge(TCollection* list)
 }
 
 /// FIXME: Q vector
-  // //Selection on QVector, before ANY other selection on the event
-  // //Spectra MUST be normalized wrt events AFTER the selection on Qvector
-  // // Can we include this in fEventCuts
-  // Double_t Qx2EtaPos = 0, Qy2EtaPos = 0;
-  // Double_t Qx2EtaNeg = 0, Qy2EtaNeg = 0;
-  // Int_t multPos = 0;
-  // Int_t multNeg = 0;
-  // for(Int_t iT = 0; iT < fAOD->GetNumberOfTracks(); iT++) {
-  //   AliAODTrack* aodTrack = fAOD->GetTrack(iT);
-  //   if (!fTrackCuts->IsSelected(aodTrack)) continue;
-  //   if (aodTrack->Eta() >= 0){
-  //     multPos++;
-  //     Qx2EtaPos += TMath::Cos(2*aodTrack->Phi()); 
-  //     Qy2EtaPos += TMath::Sin(2*aodTrack->Phi());
-  //   } else {
-  //     multNeg++;
-  //     Qx2EtaNeg += TMath::Cos(2*aodTrack->Phi()); 
-  //     Qy2EtaNeg += TMath::Sin(2*aodTrack->Phi());
-  //   }
-  // } 
-  // Double_t qPos=-999;
-  // if(multPos!=0)qPos= TMath::Sqrt((Qx2EtaPos*Qx2EtaPos + Qy2EtaPos*Qy2EtaPos)/multPos);
-  // Double_t qNeg=-999;
-  // if(multNeg!=0)qNeg= TMath::Sqrt((Qx2EtaNeg*Qx2EtaNeg + Qy2EtaNeg*Qy2EtaNeg)/multNeg);
+// //Selection on QVector, before ANY other selection on the event
+// //Spectra MUST be normalized wrt events AFTER the selection on Qvector
+// // Can we include this in fEventCuts
+// Double_t Qx2EtaPos = 0, Qy2EtaPos = 0;
+// Double_t Qx2EtaNeg = 0, Qy2EtaNeg = 0;
+// Int_t multPos = 0;
+// Int_t multNeg = 0;
+// for(Int_t iT = 0; iT < fAOD->GetNumberOfTracks(); iT++) {
+//   AliAODTrack* aodTrack = fAOD->GetTrack(iT);
+//   if (!fTrackCuts->IsSelected(aodTrack)) continue;
+//   if (aodTrack->Eta() >= 0){
+//     multPos++;
+//     Qx2EtaPos += TMath::Cos(2*aodTrack->Phi()); 
+//     Qy2EtaPos += TMath::Sin(2*aodTrack->Phi());
+//   } else {
+//     multNeg++;
+//     Qx2EtaNeg += TMath::Cos(2*aodTrack->Phi()); 
+//     Qy2EtaNeg += TMath::Sin(2*aodTrack->Phi());
+//   }
+// } 
+// Double_t qPos=-999;
+// if(multPos!=0)qPos= TMath::Sqrt((Qx2EtaPos*Qx2EtaPos + Qy2EtaPos*Qy2EtaPos)/multPos);
+// Double_t qNeg=-999;
+// if(multNeg!=0)qNeg= TMath::Sqrt((Qx2EtaNeg*Qx2EtaNeg + Qy2EtaNeg*Qy2EtaNeg)/multNeg);
   
-  // if((qPos>fTrackCuts->GetQvecMin() && qPos<fTrackCuts->GetQvecMax()) || (qNeg>fTrackCuts->GetQvecMin() && qNeg<fTrackCuts->GetQvecMax())){
+// if((qPos>fTrackCuts->GetQvecMin() && qPos<fTrackCuts->GetQvecMax()) || (qNeg>fTrackCuts->GetQvecMin() && qNeg<fTrackCuts->GetQvecMax())){
 
-  //fill q distributions vs centrality, after all event selection
-  // fHistMan->GetqVecHistogram(kHistqVecPos)->Fill(qPos,fAOD->GetCentrality()->GetCentralityPercentile("V0M"));  // qVector distribution
-  // fHistMan->GetqVecHistogram(kHistqVecNeg)->Fill(qNeg,fAOD->GetCentrality()->GetCentralityPercentile("V0M"));  // qVector distribution
+//fill q distributions vs centrality, after all event selection
+// fHistMan->GetqVecHistogram(kHistqVecPos)->Fill(qPos,fAOD->GetCentrality()->GetCentralityPercentile("V0M"));  // qVector distribution
+// fHistMan->GetqVecHistogram(kHistqVecNeg)->Fill(qNeg,fAOD->GetCentrality()->GetCentralityPercentile("V0M"));  // qVector distribution
index 56d25ab61d46f26a6707b6684fc3ae76ed7e8e04..6a6373b1277979d1caa7bc5a80daa57e9a6aa24e 100644 (file)
 //-------------------------------------------------------------------------
 
 class AliAODEvent;
+class AliSpectraAODTrackCuts;
 class AliSpectraAODHistoManager;
 
 #include "TNamed.h"
 
 class AliSpectraAODEventCuts : public TNamed
 {
-public:
-   enum { kAcceptedEvents = 0, kVtxRange, kVtxCentral, kVtxNoEvent, kNVtxCuts};
+ public:
+  enum {  kProcessedEvents = 0,kAcceptedEvents, kVtxRange, kVtxCentral, kVtxNoEvent, kNVtxCuts};
 
-   // Constructors
  AliSpectraAODEventCuts() : TNamed(), fAOD(0), fIsSelected(0), fCentralityCutMin(0), fCentralityCutMax(0), fHistoCuts(0) {}
-   AliSpectraAODEventCuts(const char *name);
-   virtual  ~AliSpectraAODEventCuts() {}
+  // Constructors
AliSpectraAODEventCuts() : TNamed(), fAOD(0), fIsSelected(0), fCentralityCutMin(0), fCentralityCutMax(0), fHistoCuts(0),fHistoVtxBefSel(0),fHistoVtxAftSel(0),fHistoEtaBefSel(0),fHistoEtaAftSel(0) {}
+  AliSpectraAODEventCuts(const char *name);
+  virtual  ~AliSpectraAODEventCuts() {}
 
-   // Methods
-   Bool_t IsSelected(AliAODEvent * aod);
-   Bool_t CheckVtxRange();
-   Bool_t CheckCentralityCut();
-   void  SetCentralityCutMin(Float_t cut)  { fCentralityCutMin = cut; }
-   void  SetCentralityCutMax(Float_t cut)  { fCentralityCutMax = cut; }
+  // Methods
+  Bool_t IsSelected(AliAODEvent * aod,AliSpectraAODTrackCuts     *trackcuts);
+  Bool_t CheckVtxRange();
+  Bool_t CheckCentralityCut();
+  void  SetCentralityCutMin(Float_t cut)  { fCentralityCutMin = cut; }
+  void  SetCentralityCutMax(Float_t cut)  { fCentralityCutMax = cut; }
 
    
-   TH1I * GetHistoCuts()         {  return fHistoCuts; }
-   Float_t  GetCentralityMin()  const {  return fCentralityCutMin; }
-   Float_t  GetCentralityMax()  const {  return fCentralityCutMax; }
-   void   PrintCuts();
-   Float_t  NumberOfEvents()     { return fHistoCuts->GetBinContent(kAcceptedEvents+1); }
+  TH1I * GetHistoCuts()         {  return fHistoCuts; }
+  TH1F * GetHistoVtxBefSel()         {  return fHistoVtxBefSel; }
+  TH1F * GetHistoVtxAftSel()         {  return fHistoVtxAftSel; }
+  TH1F * GetHistoEtaBefSel()         {  return fHistoEtaBefSel; }
+  TH1F * GetHistoEtaAftSel()         {  return fHistoEtaAftSel; }
+  Float_t  GetCentralityMin()  const {  return fCentralityCutMin; }
+  Float_t  GetCentralityMax()  const {  return fCentralityCutMax; }
+  void   PrintCuts();
+  Float_t  NumberOfEvents()     { return fHistoCuts->GetBinContent(kAcceptedEvents+1); }
+  Float_t  NumberOfProcessedEvents()     { return fHistoCuts->GetBinContent(kProcessedEvents+1); }
 
   Long64_t Merge(TCollection* list);
 
 
-private:
-
-   AliAODEvent     *fAOD;              //! AOD event
-   Bool_t          fIsSelected;        // True if cuts are selected
-   Float_t         fCentralityCutMin;     // minimum centrality percentile
+ private:
+  
+  AliAODEvent     *fAOD;              //! AOD event
+  AliSpectraAODTrackCuts     *fTrackCuts;              //! track cuts
+  Bool_t          fIsSelected;        // True if cuts are selected
+  Float_t         fCentralityCutMin;     // minimum centrality percentile
   Float_t         fCentralityCutMax;     // maximum centrality percentile
-   TH1I            *fHistoCuts;        // Cuts statistics
-   AliSpectraAODEventCuts(const AliSpectraAODEventCuts&);
-   AliSpectraAODEventCuts& operator=(const AliSpectraAODEventCuts&);
-
-   ClassDef(AliSpectraAODEventCuts, 2);
-
+  TH1I            *fHistoCuts;        // Cuts statistics
+  TH1F            *fHistoVtxBefSel;        // Vtx distr before event selection
+  TH1F            *fHistoVtxAftSel;        // Vtx distr after event selection
+  TH1F            *fHistoEtaBefSel;        // Eta distr before event selection
+  TH1F            *fHistoEtaAftSel;        // Eta distr after event selection
+  AliSpectraAODEventCuts(const AliSpectraAODEventCuts&);
+  AliSpectraAODEventCuts& operator=(const AliSpectraAODEventCuts&);
+  
+  ClassDef(AliSpectraAODEventCuts, 2);
+  
 };
 #endif
 
index 9e0c7af70632652007745541bb1a67bc00219ca1..902af82b7aaa61f845167bc0237107d597990899 100644 (file)
@@ -82,7 +82,7 @@ TH2F* AliSpectraAODHistoManager::BookPtGenHistogram(const char * name)
    
    TH2F * hist = new TH2F(name,Form("P_{T} distribution (%s)", name),nbinsTempl,templBins,2,-0.5,1.5);//need to be at least 1 becuase the generated are filled with (pt,IsPhysPrim)
    hist->GetXaxis()->SetTitle("generated P_{T} (GeV / c)");
-   hist->GetYaxis()->SetTitle("DCA xy");
+   hist->GetYaxis()->SetTitle("IsPhysicalPrimary()");
    hist->SetMarkerStyle(kFullCircle);
    hist->Sumw2();
    fOutputList->Add(hist);
index 0aacd38548646c7f1f253ec5d1cc84cbf6be412a..9c6b4924d8af84168140be91395d3c504a4cb84b 100644 (file)
@@ -244,8 +244,6 @@ void MainAnalysis()  {
   
   //comparison with charged hadron
   Printf("\n\n-> ChargedHadron comparison");
-  TCanvas *cAllCh=new TCanvas("cAllCh","cAllCh",700,500);
-  cAllCh->Divide(1,2);
   TH1F *hChHad_data=(TH1F*)((TH1F*)hman_data->GetPtHistogram1D("hHistPtRec",-1,-1))->Clone();
   //fraction of sec in MC
   TH1F *hPrimRec_mc=(TH1F*)((TH1F*)hman_mc->GetPtHistogram1D("hHistPtRecPrimary",-1,-1))->Clone();
@@ -255,17 +253,33 @@ void MainAnalysis()  {
     Double_t en_mc=hAllRec_mc->GetBinContent(ibin);
     Double_t prim_mc=hPrimRec_mc->GetBinContent(ibin);
     if(en_mc!=0)hChHad_data->SetBinContent(ibin,en_data-(en_data*(en_mc-prim_mc)*1.1/en_mc));
-    Printf("Before: %.0f After: %.0f  fraction: %.1f",en_data,hChHad_data->GetBinContent(ibin),hChHad_data->GetBinContent(ibin)/en_data);
+    //Printf("Before: %.0f After: %.0f  fraction: %.1f",en_data,hChHad_data->GetBinContent(ibin),hChHad_data->GetBinContent(ibin)/en_data);
   }
   hPrimRec_mc->Divide(hAllRec_mc);
   //efficiency for primaries
   TH1F *hEff_mc=(TH1F*)((TH1F*)hman_mc->GetPtHistogram1D("hHistPtRecPrimary",-1,-1))->Clone();
   hEff_mc->Divide((TH1F*)((TH1F*)hman_mc->GetPtHistogram1D("hHistPtGen",1,1))->Clone());
+  TCanvas *cAllChFactors=new TCanvas("cAllChFactors","cAllChFactors",700,500);
+  cAllChFactors->Divide(1,2);
+  cAllChFactors->cd(1);
+  gPad->SetGridy();
+  gPad->SetGridx();
+  hPrimRec_mc->SetTitle("Prim/All, charged hadron pure MC");
+  hPrimRec_mc->DrawClone("lhist");
+  gPad->BuildLegend();
+  cAllChFactors->cd(2);
+  gPad->SetGridy();
+  gPad->SetGridx();
+  hEff_mc->SetTitle("Efficiency for Primaries, charged hadron pure MC");
+  hEff_mc->DrawClone("lhist");
+  gPad->BuildLegend();
   //Printf("--------%f ",((TH1F*)hman_mc->GetPtHistogram1D("hHistPtGen",1,1))->GetEntries()/1.6/ecuts_mc->NumberOfEvents());
   hChHad_data->Scale(1./events_data,"width");//NORMALIZATION
   hChHad_data->Divide(hEff_mc);//Efficiency
   hChHad_data->Scale(1./(2*tcuts_data->GetEta()));
   hChHad_data->SetTitle("All Ch from AOD");
+  TCanvas *cAllCh=new TCanvas("cAllCh","cAllCh",700,500);
+  cAllCh->Divide(1,2);
   cAllCh->cd(1);
   gPad->SetGridy();
   gPad->SetGridx();
index b151d9dd60b1d8347c4a5598017c4aef06861dd8..c38f9223c7a6b44b2b134f33c507294f4bd25166 100644 (file)
@@ -1,4 +1,4 @@
-void runAODProof(Int_t c=1, const char * proofMode = "full")
+void runAODProof(Int_t c=2, const char * proofMode = "full")
 { //1 data AOD049
   //2 MC AOD048
   //3 data AOD086
@@ -26,10 +26,10 @@ void runAODProof(Int_t c=1, const char * proofMode = "full")
    //handler->SetAliROOTVersion("v5-03-11-AN");
    handler->SetAliROOTVersion("v5-03-17-AN");
    
-   //handler->SetNproofWorkers(28);
-   //handler->SetNproofWorkersPerSlave(1);
-   handler->SetProofCluster(Form("%s@alice-caf.cern.ch", gSystem->Getenv("CAFUSER")));
-   //handler->SetProofCluster(Form("%s@skaf.saske.sk",gSystem->Getenv("CAFUSER")));
+   //handler->SetNproofWorkers(5);
+   //handler->SetNproofWorkersPerSlave(5);
+   //handler->SetProofCluster(Form("%s@alice-caf.cern.ch", gSystem->Getenv("CAFUSER")));
+   handler->SetProofCluster(Form("%s@skaf.saske.sk",gSystem->Getenv("CAFUSER")));
    // Set handler for Real DATA:
    if (c == 1){
      //handler->SetProofDataSet("/alice/data/LHC10h_000138653_p2_AOD049#aodTree");
@@ -52,8 +52,8 @@ void runAODProof(Int_t c=1, const char * proofMode = "full")
    gROOT->LoadMacro("AliAnalysisTaskSpectraAOD.cxx+g");
 
    handler->SetAliRootMode("default");
-   handler->SetAdditionalLibs("AliSpectraAODHistoManager.cxx AliSpectraAODHistoManager.h AliSpectraAODPID.cxx AliSpectraAODPID.h AliSpectraAODEventCuts.cxx AliSpectraAODEventCuts.h AliSpectraAODTrackCuts.cxx AliSpectraAODTrackCuts.h AliAnalysisTaskSpectraAOD.cxx AliAnalysisTaskSpectraAOD.h");
-   handler->SetAnalysisSource("Histograms.h HistogramNames.h AliSpectraAODHistoManager.cxx+ AliSpectraAODEventCuts.cxx+ AliSpectraAODTrackCuts.cxx+ AliSpectraAODPID.cxx+ AliAnalysisTaskSpectraAOD.cxx+");
+   handler->SetAdditionalLibs("AliSpectraAODHistoManager.cxx AliSpectraAODHistoManager.h AliSpectraAODPID.cxx AliSpectraAODPID.h AliSpectraAODTrackCuts.cxx AliSpectraAODTrackCuts.h AliSpectraAODEventCuts.cxx AliSpectraAODEventCuts.h AliAnalysisTaskSpectraAOD.cxx AliAnalysisTaskSpectraAOD.h");
+   handler->SetAnalysisSource("Histograms.h HistogramNames.h AliSpectraAODHistoManager.cxx+ AliSpectraAODTrackCuts.cxx+ AliSpectraAODEventCuts.cxx+ AliSpectraAODPID.cxx+ AliAnalysisTaskSpectraAOD.cxx+");
    //   handler->SetFileForTestMode("filelist.txt"); // list of local files for testing
    //  handler->SetAliRootMode("");
    handler->SetClearPackages();
@@ -81,7 +81,7 @@ void runAODProof(Int_t c=1, const char * proofMode = "full")
    // Double_t QvecCutMax[4]={100,100,100,100};
    using namespace AliSpectraNameSpace;
    AliSpectraAODPID *pid = new AliSpectraAODPID(kNSigmaTPCTOF); 
-   pid->SetNSigmaCut(5.);
+   pid->SetNSigmaCut(3.);
    
    for(Int_t iCut=1;iCut<2;iCut++){
      AliAnalysisTaskSpectraAOD *task = new AliAnalysisTaskSpectraAOD("TaskAODExercise");