]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
changes from fzhou, mconnors and myself
authormcosenti <mcosenti@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 9 Jul 2012 12:47:29 +0000 (12:47 +0000)
committermcosenti <mcosenti@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 9 Jul 2012 12:47:29 +0000 (12:47 +0000)
PWGGA/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetHMEC.cxx
PWGGA/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetHMEC.h
PWGGA/EMCALTasks/AliAnalysisTaskEMCALIsoPhoton.cxx
PWGGA/EMCALTasks/AliAnalysisTaskEMCALIsoPhoton.h
PWGGA/EMCALTasks/AliAnalysisTaskPi0V2.cxx
PWGGA/EMCALTasks/AliAnalysisTaskPi0V2.h

index 422c85ab918060174a2b883779b953fbbb46790f..372c707540e423601d978e3c1901392c4a93d615 100644 (file)
@@ -48,8 +48,8 @@ AliAnalysisTaskEmcalJetHMEC::AliAnalysisTaskEmcalJetHMEC() :
   fEtamin(-0.9), 
   fEtamax(0.9),
   fAreacut(0.0),
-  fDoEventMixing(0),
-  fMixingTracks(50000),
+  fTrkBias(5),
+  fClusBias(5),
   fESD(0), 
   fPoolMgr(0x0), 
   fOutputList(0),
@@ -57,8 +57,7 @@ AliAnalysisTaskEmcalJetHMEC::AliAnalysisTaskEmcalJetHMEC() :
   fHistCentrality(0), 
   fHistJetEtaPhi(0), 
   fHistTrackEtaPhi(0), 
-  fHistJetHEtaPhi(0), 
-  fhnMixedEvents(0x0)
+  fHistJetHEtaPhi(0) 
 {
   // Default Constructor
 
@@ -87,6 +86,8 @@ AliAnalysisTaskEmcalJetHMEC::AliAnalysisTaskEmcalJetHMEC(const char *name) :
   fEtamin(-0.9), 
   fEtamax(0.9),
   fAreacut(0.0),
+  fTrkBias(5),
+  fClusBias(5),
   fDoEventMixing(0),
   fMixingTracks(50000),
   fESD(0), 
@@ -186,9 +187,10 @@ void AliAnalysisTaskEmcalJetHMEC::UserCreateOutputObjects()
      UInt_t cifras = 0; // bit coded, see GetDimParams() below 
      cifras = 1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<5 | 1<<7; 
      fhnMixedEvents = NewTHnSparseF("fhnMixedEvents", cifras);
-     }
 
-  fhnMixedEvents->Sumw2();
+     fhnMixedEvents->Sumw2();
+  }
+  
 
   fOutputList->Add(fHistTrackPt);
   fOutputList->Add(fHistCentrality);
@@ -403,6 +405,9 @@ void AliAnalysisTaskEmcalJetHMEC::UserExec(Option_t *)
       //prevents 0 area jets from sneaking by when area cut == 0
       if (jet->Area()==0)
        continue;
+      //exclude jets with extremely high pt tracks which are likely misreconstructed
+      if(jet->MaxTrackPt()>100)
+       continue;
 
       Double_t jetPt = jet->Pt();
 
@@ -424,10 +429,10 @@ void AliAnalysisTaskEmcalJetHMEC::UserExec(Option_t *)
     Double_t jetPt = jet->Pt();
     Double_t jeteta=jet->Eta();
 
-      fHistJetPt[centbin]->Fill(jet->Pt());
-
-      if ((jet->MaxTrackPt()>6) || (jet->MaxClusterPt()>6))
-       fHistJetPtBias[centbin]->Fill(jet->Pt());
+    fHistJetPt[centbin]->Fill(jet->Pt());
+    
+    if ((jet->MaxTrackPt()>fTrkBias) || (jet->MaxClusterPt()>fClusBias))
+      fHistJetPtBias[centbin]->Fill(jet->Pt());
 
 
       fHistJetEtaPhi->Fill(jet->Eta(),jetphi);
@@ -503,7 +508,7 @@ void AliAnalysisTaskEmcalJetHMEC::UserExec(Option_t *)
   Double_t fvertex[3]={0,0,0};
   InputEvent()->GetPrimaryVertex()->GetXYZ(fvertex);
   Double_t zVtx=fvertex[3];
-  
+
   if(fDoEventMixing>0){
     
     // event mixing
@@ -549,26 +554,30 @@ void AliAnalysisTaskEmcalJetHMEC::UserExec(Option_t *)
          
          Int_t nMix = pool->GetCurrentNEvents();
          
-         
-         // Fill mixed-event histos here  
-         for (Int_t jMix=0; jMix<nMix; jMix++) 
-           {
-             TObjArray* bgTracks = pool->GetEvent(jMix);
-             const Int_t Nbgtrks = bgTracks->GetEntries();
-             for(Int_t ibg=0; ibg<Nbgtrks; ibg++){
-               AliPicoTrack *part = static_cast<AliPicoTrack*>(bgTracks->At(ibg));         
-               if(!part) continue;
-               
-               Double_t DPhi = jetphi - part->Phi();
-               Double_t DEta = jeteta - part->Eta();
-               Double_t DR=TMath::Sqrt(DPhi*DPhi+DEta*DEta);
-               if(DPhi<-0.5*TMath::Pi()) DPhi+=2.*TMath::Pi();
-               if(DPhi>3./2.*TMath::Pi()) DPhi-=2.*TMath::Pi();
-               Double_t triggerEntries[7] = {fcent,jetPt,part->Pt(),DR,DEta,DPhi,0.0};                      
-               fhnMixedEvents->Fill(triggerEntries,1./nMix);
+         //Fill for biased jet triggers only
+         if ((jet->MaxTrackPt()>fTrkBias) || (jet->MaxClusterPt()>fClusBias)){
+
+           // Fill mixed-event histos here  
+           for (Int_t jMix=0; jMix<nMix; jMix++) 
+             {
+               TObjArray* bgTracks = pool->GetEvent(jMix);
+               const Int_t Nbgtrks = bgTracks->GetEntries();
+               for(Int_t ibg=0; ibg<Nbgtrks; ibg++){
+                 AliPicoTrack *part = static_cast<AliPicoTrack*>(bgTracks->At(ibg));         
+                 if(!part) continue;
+  
+                 Double_t DPhi = jetphi - part->Phi();
+                 Double_t DEta = jeteta - part->Eta();
+                 Double_t DR=TMath::Sqrt(DPhi*DPhi+DEta*DEta);
+                 if(DPhi<-0.5*TMath::Pi()) DPhi+=2.*TMath::Pi();
+                 if(DPhi>3./2.*TMath::Pi()) DPhi-=2.*TMath::Pi();
+                 Double_t triggerEntries[7] = {fcent,jetPt,part->Pt(),DR,DEta,DPhi,0.0};                      
+                 fhnMixedEvents->Fill(triggerEntries,1./nMix);
+                 
+                 
+               }
              }
-             
-           }
+         }
        }
     }
 
@@ -721,6 +730,9 @@ TObjArray* AliAnalysisTaskEmcalJetHMEC::CloneAndReduceTrackList(TObjArray* track
   for (Int_t i=0; i<tracks->GetEntriesFast(); i++)
   {
     AliVParticle* particle = (AliVParticle*) tracks->At(i);
+    if(TMath::Abs(particle->Eta())>0.9) continue;
+    if(particle->Pt()<0.15)continue;
+
     tracksClone->Add(new AliPicoTrack(particle->Pt(), particle->Eta(), particle->Phi(), particle->Charge(), 0, 0, 0, 0));
   }
   
index bcd64cdbee1facf09a41a379eaabfddf126a9766..aed5d67d72aed1310f63aa0d0c9420de74acea52 100644 (file)
@@ -25,14 +25,17 @@ class AliAnalysisTaskEmcalJetHMEC : public AliAnalysisTaskSE {
   virtual THnSparse*      NewTHnSparseF(const char* name, UInt_t entries);
   virtual void            GetDimParams(Int_t iEntry,TString &label, Int_t &nbins, Double_t &xmin, Double_t &xmax);
 
-  virtual void            SetTracksName(const char *n) {fTracksName=n;}
-  virtual void            SetJetsName(const char *jn) {fJetsName=jn;}
+  virtual void            SetTracksName(const char *n)             {fTracksName=n;}
+  virtual void            SetJetsName(const char *jn)              {fJetsName=jn;}
 
   virtual void            SetAreaCut(Double_t a)                   { fAreacut    = a; }
+  virtual void            SetTrkBias(Double_t b)                   { fTrkBias    = b; }  //require a track with pt > b in jet
+  virtual void            SetClusBias(Double_t b)                  { fClusBias   = b; }  //require a cluster with pt > b in jet
+
   virtual void            SetJetEta(Double_t emin, Double_t emax)  { fEtamin = emin; fEtamax = emax; }
   virtual void            SetJetPhi(Double_t pmin, Double_t pmax)  { fPhimin = pmin; fPhimax = pmax; }
-  virtual void            SetEventMixing(Int_t yesno){fDoEventMixing=yesno;}
-  virtual void            SetMixingTracks(Int_t tracks) { fMixingTracks = tracks; }
+  virtual void            SetEventMixing(Int_t yesno)              { fDoEventMixing=yesno;}
+  virtual void            SetMixingTracks(Int_t tracks)            { fMixingTracks = tracks; }
 
 
 
@@ -43,13 +46,15 @@ class AliAnalysisTaskEmcalJetHMEC : public AliAnalysisTaskSE {
   virtual Int_t          GetEtaBin(Double_t eta) const;
   virtual Int_t          GetpTjetBin(Double_t pt) const;
 
-  TString                fTracksName;  //name of tracks collection
-  TString                fJetsName;  //name of Jet collection
+  TString                fTracksName;              //name of tracks collection
+  TString                fJetsName;                //name of Jet collection
   Double_t               fPhimin;                  // phi min
   Double_t               fPhimax;                  // phi max
   Double_t               fEtamin;                  // eta min
   Double_t               fEtamax;                  // eta max
   Double_t               fAreacut;                 // area cut
+  Double_t               fTrkBias;
+  Double_t               fClusBias;
   Int_t                  fDoEventMixing;
   Int_t                 fMixingTracks;         // size of track buffer for event mixing
   TObjArray*             CloneAndReduceTrackList(TObjArray* tracks);
@@ -76,6 +81,6 @@ class AliAnalysisTaskEmcalJetHMEC : public AliAnalysisTaskSE {
   AliAnalysisTaskEmcalJetHMEC(const AliAnalysisTaskEmcalJetHMEC&); // not implemented
   AliAnalysisTaskEmcalJetHMEC& operator=(const AliAnalysisTaskEmcalJetHMEC&); // not implemented
   
-  ClassDef(AliAnalysisTaskEmcalJetHMEC, 5); 
+  ClassDef(AliAnalysisTaskEmcalJetHMEC, 6); 
 };
 #endif
index 1913f122e12d0da2ce89e3cfc594a17abf5ac932..b277087200d975aa4dd5e1aac16b25e4094e8c55 100644 (file)
@@ -7,6 +7,7 @@
 #include <TFile.h>
 #include <TH1F.h>
 #include <TH2F.h>
+#include <THnSparse.h>
 #include <TLorentzVector.h>
 #include <TTree.h>
 
@@ -47,6 +48,8 @@ AliAnalysisTaskEMCALIsoPhoton::AliAnalysisTaskEMCALIsoPhoton() :
   fIsTrain(0),
   fExoticCut(0.97),
   fIsoConeR(0.4),
+  fNDimensions(7),
+  fECut(3.),
   fESD(0),
   fOutputList(0),
   fEvtSel(0),
@@ -84,7 +87,8 @@ AliAnalysisTaskEMCALIsoPhoton::AliAnalysisTaskEMCALIsoPhoton() :
   fAllIsoVsEtPhoTM(0),    
   fCeIsoVsEtPi0TM(0),        
   fTrIsoVsEtPi0TM(0),        
-  fAllIsoVsEtPi0TM(0)    
+  fAllIsoVsEtPi0TM(0),
+  fHnOutput(0)
 {
   // Default constructor.
 }
@@ -103,6 +107,8 @@ AliAnalysisTaskEMCALIsoPhoton::AliAnalysisTaskEMCALIsoPhoton(const char *name) :
   fIsTrain(0),
   fExoticCut(0.97),
   fIsoConeR(0.4),
+  fNDimensions(7),
+  fECut(3.),
   fESD(0),
   fOutputList(0),
   fEvtSel(0),
@@ -140,7 +146,8 @@ AliAnalysisTaskEMCALIsoPhoton::AliAnalysisTaskEMCALIsoPhoton(const char *name) :
   fAllIsoVsEtPhoTM(0),       
   fCeIsoVsEtPi0TM(0),        
   fTrIsoVsEtPi0TM(0),        
-  fAllIsoVsEtPi0TM(0)    
+  fAllIsoVsEtPi0TM(0),    
+  fHnOutput(0)
 {
   // Constructor
 
@@ -307,6 +314,16 @@ void AliAnalysisTaskEMCALIsoPhoton::UserCreateOutputObjects()
   fAllIsoVsEtPi0TM->Sumw2();
   fOutputList->Add(fAllIsoVsEtPi0TM);
 
+  const Int_t ndims =   fNDimensions;
+  Int_t nEt=1000, nM02=400, nCeIso=1000, nTrIso=1000,  nAllIso=1000, nTrClDphi=200, nTrClDeta=100;
+  Int_t bins[] = {nEt, nM02, nCeIso, nTrIso, nAllIso, nTrClDphi, nTrClDeta};
+  Double_t xmin[] = { 0.,   0.,  -10.,   -10., -10., -0.1,-0.05};
+  Double_t xmax[] = { 100., 4., 190., 190., 190., 0.1, 0.05};
+  fHnOutput =  new THnSparseF("fHnOutput","Output matrix: E_{T},M02,CeIso,TrIso,AllIso, d#phi_{trk},d#eta_{trk}", ndims, bins, xmin, xmax);
+  fOutputList->Add(fHnOutput);
+
+
+
   PostData(1, fOutputList);
 }
 
@@ -396,6 +413,8 @@ void AliAnalysisTaskEMCALIsoPhoton::FillClusHists()
       continue;
     if(!c->IsEMCAL())
       continue;
+    if(c->E()<fECut)
+      continue;
     Short_t id;
     Double_t Emax = GetMaxCellEnergy( c, id);
     Double_t Ecross = GetCrossEnergy( c, id);
@@ -418,7 +437,17 @@ void AliAnalysisTaskEMCALIsoPhoton::FillClusHists()
     Float_t ceisoue =  cephiband/phibandArea*netConeArea;
     Float_t trisoue =  trphiband/phibandArea*netConeArea;
     Float_t allisoue =  allphiband/phibandArea*netConeArea;
-    Double_t dR = TMath::Sqrt(pow(c->GetTrackDx(),2)+pow(c->GetTrackDz(),2));
+    const Int_t ndims =   fNDimensions;
+    Double_t outputValues[ndims];
+    outputValues[0] = Et;
+    outputValues[1] = c->GetM02();
+    outputValues[2] = ceiso-cecore-ceisoue;
+    outputValues[3] = triso-trisoue;
+    outputValues[4] = alliso-cecore-allisoue;
+    outputValues[5] = c->GetTrackDx();
+    outputValues[6] = c->GetTrackDz();
+    fHnOutput->Fill(outputValues);
+    /* Double_t dR = TMath::Sqrt(pow(c->GetTrackDx(),2)+pow(c->GetTrackDz(),2));
     Double_t M02u;
     if(Et<12)
       M02u = 0.02486*Et*Et - 0.7289*Et + 6.266;
@@ -491,7 +520,7 @@ void AliAnalysisTaskEMCALIsoPhoton::FillClusHists()
        fTrIsoVsEtPi0TM->Fill(Et, triso - trcore - trisoue);
        fAllIsoVsEtPi0TM->Fill(Et, alliso - allcore - allisoue);
       }
-    }
+    }*/
     if(c->E()>maxE)
       maxE = c->E();
   }
index 35714e03c8a768136e9233dd9c24d08d7f866643..1775eae5b3540ad0bc59901d3b9e6ce7121abcfe 100644 (file)
@@ -5,6 +5,7 @@
 
 class TH1F;
 class TH2F;
+class THnSparse;
 class TObjArray;
 class AliEMCALGeometry;
 class AliESDCaloCells;
@@ -50,6 +51,8 @@ class AliAnalysisTaskEMCALIsoPhoton : public AliAnalysisTaskSE {
   Bool_t                 fIsTrain;               // variable to set train mode
   Double_t               fExoticCut;             // variable to set the cut on exotic clusters
   Double_t               fIsoConeR;              // variable to set the isolation cone radius
+  Int_t                  fNDimensions;           // variable to set the number of dimensions of n-sparse
+  Double_t               fECut;                  // variable to set the minimum E of a cluster
   
  private:
   AliESDEvent *fESD;      //! ESD object
@@ -92,7 +95,8 @@ class AliAnalysisTaskEMCALIsoPhoton : public AliAnalysisTaskSE {
   TH2F        *fCeIsoVsEtPi0TM;          //!Track-matched Neutral isolation Et vs. cluster Et, pi0 selection (BG)
   TH2F        *fTrIsoVsEtPi0TM;          //!Track-matched Charged isolation Et vs. cluster Et, pi0 selection (BG)
   TH2F        *fAllIsoVsEtPi0TM;         //!Track-matched Total isolation Et vs. cluster Et, pi0 selection (BG)
-   
+  THnSparse   *fHnOutput;                //!Output matrix with 7 dimensions
+
   AliAnalysisTaskEMCALIsoPhoton(const AliAnalysisTaskEMCALIsoPhoton&); // not implemented
   AliAnalysisTaskEMCALIsoPhoton& operator=(const AliAnalysisTaskEMCALIsoPhoton&); // not implemented
   
index 76bd5560a516cff247643b0133673fa619cecda0..aebf4ebf73180ffc0f81ffb17b23f2b45a207f34 100644 (file)
@@ -55,9 +55,9 @@ using std::endl;
 ClassImp(AliAnalysisTaskPi0V2)
 
 //________________________________________________________________________
-AliAnalysisTaskPi0V2::AliAnalysisTaskPi0V2() // All data members should be initialised here
- //  :AliAnalysisTaskSE(),
-   :AliAnalysisTaskSE(),
+//AliAnalysisTaskPi0V2::AliAnalysisTaskPi0V2() // All data members should be initialised here
+AliAnalysisTaskPi0V2::AliAnalysisTaskPi0V2(const char *name) // All data members should be initialised here
+   :AliAnalysisTaskSE(name),
     fOutput(0),
     fESD(0),
     fcheckEP2sub(1),
@@ -81,8 +81,9 @@ AliAnalysisTaskPi0V2::AliAnalysisTaskPi0V2() // All data members should be initi
 }
 
 //________________________________________________________________________
-AliAnalysisTaskPi0V2::AliAnalysisTaskPi0V2(const char *name) // All data members should be initialised here
-   :AliAnalysisTaskSE(name),
+//AliAnalysisTaskPi0V2::AliAnalysisTaskPi0V2(const char *name) // All data members should be initialised here
+AliAnalysisTaskPi0V2::AliAnalysisTaskPi0V2() // All data members should be initialised here
+   :AliAnalysisTaskSE(),
     fOutput(0),
     fESD(0),
     fcheckEP2sub(1),
@@ -168,7 +169,7 @@ Double_t AliAnalysisTaskPi0V2::GetCrossEnergy(const AliVCluster *cluster, Short_
   Int_t iphis   = -1;
   Int_t ietas   = -1;
 
-  Double_t crossEnergy = 0;
+  Double_t crossEnergy = 0.;
 
   geom->GetCellIndex(idmax,iSupMod,iTower,iIphi,iIeta);
   geom->GetCellPhiEtaIndexInSModule(iSupMod,iTower,iIphi, iIeta,iphis,ietas);
@@ -259,9 +260,10 @@ Bool_t AliAnalysisTaskPi0V2::IsGoodCluster(const AliESDCaloCluster *c) const
 
   Short_t id = -1;
   Double_t maxE = GetMaxCellEnergy(c, id); 
-  if((1. - GetCrossEnergy(c,id) / maxE) > 0.97)
+     if((1. - double(GetCrossEnergy(c,id))/maxE) > 0.97)
     return kFALSE;
 
+
   Float_t pos1[3];
   c->GetPosition(pos1);
   TVector3 clsPos(pos1);
@@ -538,7 +540,6 @@ void AliAnalysisTaskPi0V2::UserExec(Option_t *)
     }
 
     hEvtCount->Fill(3);
-
     AliEventplane *ep = fESD->GetEventplane();
       if (ep) {
       if (ep->GetQVector())
@@ -572,6 +573,8 @@ void AliAnalysisTaskPi0V2::UserExec(Option_t *)
     }
 //cout<<" fEPV0:"<<fEPV0<<" fEPV0A:"<<fEPV0A<<" fEPV0C:"<<fEPV0C<<" fEPV0Ar:"<<fEPV0Ar<<" fEPV0Cr:"<<fEPV0Cr<<" fEPV0r:"<<fEPV0AR4<<" fEPV0AR7:"<<fEPV0AR7<<" fEPV0CR0:"<<fEPV0CR0<<" fEPV0CR3:"<<fEPV0CR3<<"--------------------------------------------"<<endl;
     
+//cout<<" EPTPC: "<<fEPTPC<<" resoTPC: "<<fEPTPCreso<<"---------------"<<endl;
+
     hEvtCount->Fill(4);
 
     if(fcheckEP2sub){
@@ -633,9 +636,11 @@ void AliAnalysisTaskPi0V2::UserExec(Option_t *)
     Int_t nCluster =  fESD->GetNumberOfCaloClusters(); 
     for(Int_t i=0; i<nCluster; ++i){
       AliESDCaloCluster *c1 = fESD->GetCaloCluster(i);
+      if(!c1->IsEMCAL()) continue;
       if(!IsGoodCluster(c1)) continue;
       for(Int_t j=i+1; j<nCluster; ++j){
        AliESDCaloCluster *c2 = fESD->GetCaloCluster(j);
+        if(!c2->IsEMCAL()) continue;
         if(!IsGoodCluster(c2)) continue;
         TLorentzVector p1;
         GetMom(p1, c1, vertex);
index 19a5d31cfb377151ad6c5f220c04e5db9a269d8a..60d21f9e38baa10da13e0f9835ba6dce6a7bd8de 100644 (file)
@@ -28,8 +28,8 @@ class THnSparse;
 
 class AliAnalysisTaskPi0V2 : public AliAnalysisTaskSE {
  public:
-    AliAnalysisTaskPi0V2();
     AliAnalysisTaskPi0V2(const char *name);
+    AliAnalysisTaskPi0V2();
     virtual ~AliAnalysisTaskPi0V2();
     
     virtual void     UserCreateOutputObjects();