]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Correct crash with test plugin, other minor stuff (Renzhuo)
authorgconesab <gconesab@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 5 May 2010 14:52:35 +0000 (14:52 +0000)
committergconesab <gconesab@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 5 May 2010 14:52:35 +0000 (14:52 +0000)
PWG4/PartCorrDep/AliAnaOmegaToPi0Gamma.cxx
PWG4/PartCorrDep/AliAnaOmegaToPi0Gamma.h

index f5cbef6cc352347ac4d2433368f556fe7475796d..c471990e30fdc3a2486c9652fd6122a99f3f3bec 100644 (file)
@@ -42,11 +42,11 @@ ClassImp(AliAnaOmegaToPi0Gamma)
 \r
 //______________________________________________________________________________\r
 AliAnaOmegaToPi0Gamma::AliAnaOmegaToPi0Gamma() : AliAnaPartCorrBaseClass(),\r
-fInputAODGamma(0),fInputAODPi0(0), fInputAODGammaName(""),\r
-fEventsList(0),fNVtxZBin(1), fNCentBin(1), fNRpBin(1), fNBadChDistBin(3), fNpid(3),\r
-fNmaxMixEv(4), fVtxZCut(0), fCent(0), fRp(0), \r
-fPi0Mass(0.13498),fPi0MassWindow(0.015),fPi0OverOmegaPtCut(0.8),\r
-fGammaOverOmegaPtCut(0.3),\r
+fInputAODPi0(0), fInputAODGammaName(""),\r
+fEventsList(0),fNVtxZBin(0), fNCentBin(0), fNRpBin(0), fNBadChDistBin(0), fNpid(0),\r
+fNmaxMixEv(0), fVtxZCut(0), fCent(0), fRp(0), \r
+fPi0Mass(0),fPi0MassWindow(0),fPi0OverOmegaPtCut(0),\r
+fGammaOverOmegaPtCut(0),\r
 fhEtalon(0),\r
 fRealOmega0(0), fMixAOmega0(0),\r
 fMixBOmega0(0), fMixCOmega0(0),\r
@@ -57,11 +57,11 @@ fMixBOmega2(0), fMixCOmega2(0),
 fhOmegaPriPt(0)\r
 {\r
  //Default Ctor\r
+ InitParameters();\r
 }\r
 \r
 //______________________________________________________________________________\r
 AliAnaOmegaToPi0Gamma::AliAnaOmegaToPi0Gamma(const AliAnaOmegaToPi0Gamma & ex) : AliAnaPartCorrBaseClass(ex),\r
-fInputAODGamma(new TClonesArray (*ex.fInputAODGamma)), \r
 fInputAODPi0(new TClonesArray (*ex.fInputAODPi0)),\r
 fInputAODGammaName(ex.fInputAODGammaName),\r
 fEventsList(ex.fEventsList), \r
@@ -93,10 +93,7 @@ AliAnaOmegaToPi0Gamma & AliAnaOmegaToPi0Gamma::operator = (const AliAnaOmegaToPi
   \r
  if(this == &ex)return *this;\r
    ((AliAnaPartCorrBaseClass *)this)->operator=(ex);\r
-   fInputAODGamma = new TClonesArray(*ex.fInputAODGamma);\r
    fInputAODPi0 = new TClonesArray(*ex.fInputAODPi0);\r
-//   fInputAODGamma=ex.fInputAODGamma;\r
-//   fInputAODPi0=ex.fInputAODPi0;\r
    fInputAODGammaName = ex.fInputAODGammaName;\r
    fEventsList = ex.fEventsList;\r
 \r
@@ -134,14 +131,11 @@ AliAnaOmegaToPi0Gamma & AliAnaOmegaToPi0Gamma::operator = (const AliAnaOmegaToPi
        \r
 }\r
 \r
+\r
 //______________________________________________________________________________\r
 AliAnaOmegaToPi0Gamma::~AliAnaOmegaToPi0Gamma() {\r
 \r
   //dtor\r
-  if(fInputAODGamma){\r
-    fInputAODGamma->Clear();\r
-    delete fInputAODGamma;\r
-  }\r
   \r
   if(fInputAODPi0){\r
     fInputAODPi0->Clear();\r
@@ -172,6 +166,25 @@ void AliAnaOmegaToPi0Gamma::InitParameters()
 {\r
 //Init parameters when first called the analysis\r
 //Set default parameters\r
+ fInputAODGammaName="PhotonsDetector";  \r
+ fNVtxZBin=1;              \r
+ fNCentBin=1;               \r
+ fNRpBin=1;                 \r
+ fNBadChDistBin=3;          \r
+ fNpid=9;                   \r
+ fNmaxMixEv=8;              \r
\r
+ fPi0Mass=0.1348;             \r
+ fPi0MassWindow=0.015;       \r
+ fPi0OverOmegaPtCut=0.8;   \r
+ fGammaOverOmegaPtCut=0.2; \r
+}\r
+\r
+\r
+//______________________________________________________________________________\r
+TList * AliAnaOmegaToPi0Gamma::GetCreateOutputObjects()\r
+{\r
+  //\r
   fVtxZCut = new Double_t [fNVtxZBin];\r
   for(Int_t i=0;i<fNVtxZBin;i++) fVtxZCut[i]=10*(i+1);\r
 \r
@@ -180,15 +193,7 @@ void AliAnaOmegaToPi0Gamma::InitParameters()
 \r
   fRp=new Double_t[fNRpBin];\r
   for(int i = 0;i<fNRpBin;i++)fRp[i]=0;\r
-\r
-}\r
-\r
-\r
-//______________________________________________________________________________\r
-TList * AliAnaOmegaToPi0Gamma::GetCreateOutputObjects()\r
-{\r
-  InitParameters();\r
-\r
+  //\r
   Int_t nptbins   = GetHistoPtBins();\r
   Float_t ptmax   = GetHistoPtMax();\r
   Float_t ptmin  = GetHistoPtMin();\r
@@ -210,7 +215,6 @@ TList * AliAnaOmegaToPi0Gamma::GetCreateOutputObjects()
          }\r
      }\r
  }\r
-\r
        \r
  TList * outputContainer = new TList() ; \r
  outputContainer->SetName(GetName());\r
@@ -451,14 +455,17 @@ void AliAnaOmegaToPi0Gamma::MakeAnalysisFillHistograms()
 \r
  if(ivtxzbin==-1) return; \r
  curEventBin = ivtxzbin*fNCentBin*fNRpBin + icentbin*fNRpBin + irpbin;\r
-\r
-  fInputAODGamma = GetAODBranch(fInputAODGammaName); //photon array\r
- //fInputAODGamma = (TClonesArray *) GetReader()->GetOutputEvent()->FindListObject(fInputAODGammaName); //photon array\r
- Int_t nphotons = fInputAODGamma->GetEntries();\r
+  TClonesArray *aodGamma = (TClonesArray*) GetAODBranch(fInputAODGammaName); //photon array\r
+//  TClonesArray *aodGamma = (TClonesArray *) GetReader()->GetOutputEvent()->FindListObject(fInputAODGammaName); //photon array\r
+ Int_t nphotons =0;\r
+ if(aodGamma) nphotons= aodGamma->GetEntries(); \r
+ else return;\r
 \r
  fInputAODPi0 = (TClonesArray*)GetInputAODBranch();  //pi0 array\r
- Int_t npi0s = fInputAODPi0 ->GetEntries();\r
\r
+ Int_t npi0s = 0;\r
+ if(fInputAODPi0) npi0s= fInputAODPi0 ->GetEntries();\r
+ else return;\r
+\r
  if(nphotons<3 || npi0s<1)return; //for pi0, eta and omega->pi0+gamma->3gamma reconstruction\r
 \r
  //reconstruction of omega(782)->pi0+gamma->3gamma\r
@@ -475,8 +482,8 @@ void AliAnaOmegaToPi0Gamma::MakeAnalysisFillHistograms()
      AliAODPWG4Particle * photon2 =0;\r
      for(Int_t d1=0;d1<nphotons;d1++){\r
          for(Int_t d2=0;d2<nphotons;d2++){\r
-             AliAODPWG4Particle * dp1 = (AliAODPWG4Particle*) (fInputAODGamma->At(d1));\r
-             AliAODPWG4Particle * dp2 = (AliAODPWG4Particle*) (fInputAODGamma->At(d2));\r
+             AliAODPWG4Particle * dp1 = (AliAODPWG4Particle*) (aodGamma->At(d1));\r
+             AliAODPWG4Particle * dp2 = (AliAODPWG4Particle*) (aodGamma->At(d2));\r
              Int_t dlab1=dp1->GetCaloLabel(0);\r
              Int_t dlab2=dp2->GetCaloLabel(0);\r
              if(dlab1==lab1 && dlab2==lab2){\r
@@ -516,7 +523,7 @@ void AliAnaOmegaToPi0Gamma::MakeAnalysisFillHistograms()
 \r
         //loop the pi0 with third gamma\r
         for(Int_t j=0;j<nphotons;j++){\r
-             AliAODPWG4Particle *photon3 = (AliAODPWG4Particle*) (fInputAODGamma->At(j));\r
+             AliAODPWG4Particle *photon3 = (AliAODPWG4Particle*) (aodGamma->At(j));\r
             TLorentzVector dph3(photon3->Px(),photon3->Py(),photon3->Pz(),photon3->E());\r
             Int_t lab3=photon3->GetCaloLabel(0);\r
              Double_t pi0gammapt=(vpi0+dph3).Pt();\r
@@ -602,7 +609,7 @@ void AliAnaOmegaToPi0Gamma::MakeAnalysisFillHistograms()
  //\r
  if(GetDebug() >0)printf("MixB:  (r1_event1+r2_event2)+r3_event2 \n");\r
  for(Int_t i=0;i<nphotons;i++){\r
-     AliAODPWG4Particle *ph1 = (AliAODPWG4Particle*) (fInputAODGamma->At(i)); \r
+     AliAODPWG4Particle *ph1 = (AliAODPWG4Particle*) (aodGamma->At(i)); \r
      TLorentzVector vph1(ph1->Px(),ph1->Py(),ph1->Pz(),ph1->E());\r
 \r
      Int_t nMixed = fEventsList[curEventBin]->GetSize();\r
@@ -692,7 +699,7 @@ void AliAnaOmegaToPi0Gamma::MakeAnalysisFillHistograms()
 \r
 \r
  //event buffer \r
- TClonesArray *currentEvent = new TClonesArray(*fInputAODGamma);\r
+ TClonesArray *currentEvent = new TClonesArray(*aodGamma);\r
  if(currentEvent->GetEntriesFast()>0){\r
         fEventsList[curEventBin]->AddFirst(currentEvent) ;\r
         currentEvent=0 ; \r
@@ -706,6 +713,7 @@ void AliAnaOmegaToPi0Gamma::MakeAnalysisFillHistograms()
        delete currentEvent ;\r
        currentEvent=0 ;\r
  }\r
+ aodGamma->Clear();\r
 }\r
 \r
 //______________________________________________________________________________\r
index 13bd37ed232b66e8d9f4bf437244130f8d95ad00..a2ff59e7e4c779517fdad122b3c8cc001cc0cd47 100644 (file)
@@ -23,10 +23,13 @@ class AliAnaOmegaToPi0Gamma : public AliAnaPartCorrBaseClass {
   
   AliAnaOmegaToPi0Gamma() ; // default ctor
   AliAnaOmegaToPi0Gamma(const char *name) ; // default ctor
-  AliAnaOmegaToPi0Gamma(const AliAnaOmegaToPi0Gamma & g) ; // cpy ctor
-  AliAnaOmegaToPi0Gamma & operator = (const AliAnaOmegaToPi0Gamma & api0) ;//cpy assignment
+  AliAnaOmegaToPi0Gamma(const AliAnaOmegaToPi0Gamma & ex) ; // cpy ctor
   virtual ~AliAnaOmegaToPi0Gamma() ;//virtual dtor
+
+  private:
+  AliAnaOmegaToPi0Gamma & operator = (const AliAnaOmegaToPi0Gamma & ex) ;//cpy assignment
+
+  public: 
   TList * GetCreateOutputObjects(); 
   void Print(const Option_t * opt) const;
   
@@ -35,7 +38,7 @@ class AliAnaOmegaToPi0Gamma : public AliAnaPartCorrBaseClass {
   void Terminate(TList * outList);
 
   TString GetInputAODPhotonName() const {return fInputAODGammaName;}
-  void SetInputAODPhotonName(TString name) {fInputAODGammaName=name;}
+  void SetInputAODPhotonName(TString name) { fInputAODGammaName = name; }
   Bool_t IsBadRun(Int_t /*iRun*/) const {return kFALSE;} //Tests if this run bad according to private list
 
   void SetNEventsMixed(Int_t nevents) { fNmaxMixEv=nevents;} //events to be mixed
@@ -50,41 +53,40 @@ class AliAnaOmegaToPi0Gamma : public AliAnaPartCorrBaseClass {
 
   private:
 
-  TClonesArray * fInputAODGamma; //!Input AOD gamma array 
-  TClonesArray * fInputAODPi0;   //!Input AOD pi0 array
-  TString fInputAODGammaName;    //!Input AOD gamma name
-  TList ** fEventsList;          //!event list for mixing 
+  TClonesArray * fInputAODPi0;   //Input AOD pi0 array
+  TString fInputAODGammaName;    //Input AOD gamma name
+  TList ** fEventsList;          //event list for mixing 
  
-  Int_t fNVtxZBin;               //!Number of vertex z cut
-  Int_t fNCentBin;               //!Number of centrality cut
-  Int_t fNRpBin;                 //!Number of reaction plane cut
-  Int_t fNBadChDistBin;          //!Number of bad channel dist cut
-  Int_t fNpid;                   //!Number of PID cut
-  Int_t fNmaxMixEv;              //!buffer size events to be mixed
+  Int_t fNVtxZBin;               //Number of vertex z cut
+  Int_t fNCentBin;               //Number of centrality cut
+  Int_t fNRpBin;                 //Number of reaction plane cut
+  Int_t fNBadChDistBin;          //Number of bad channel dist cut
+  Int_t fNpid;                   //Number of PID cut
+  Int_t fNmaxMixEv;              //buffer size events to be mixed
 
   Double_t *fVtxZCut;            //![fNVtxZBin] vtertx z cut
   Double_t *fCent;               //![fNCentBin] centrality cut
   Double_t *fRp;                 //![fNRpBin] reaction plane cut
   
-  Double_t fPi0Mass;             //!nominal pi0 mass
-  Double_t fPi0MassWindow;       //!pi0 mass windows
-  Double_t fPi0OverOmegaPtCut;   //!pi0 Pt over omega pt cut
-  Double_t fGammaOverOmegaPtCut; //!gamma pt over omega pt cut
-
-  TH2F * fhEtalon;               //!an etalon of 3D histograms
-  TH2F **fRealOmega0;             //!real omega IVM(asy, pt, m), with Asy_pi0<1 
-  TH2F **fMixAOmega0;             //!mixA omega IVM(asy, pt, m) 
-  TH2F **fMixBOmega0;             //!mixB omega IVM(asy, pt, m) 
-  TH2F **fMixCOmega0;             //!mixC omega IVM(asy, pt, m) 
-  TH2F **fRealOmega1;            //!real omega IVM(asy, pt, m), with Asy_pi0<0.7
-  TH2F **fMixAOmega1;            //!mixA omega IVM(asy, pt, m)
-  TH2F **fMixBOmega1;            //!mixB omega IVM(asy, pt, m)
-  TH2F **fMixCOmega1;            //!mixC omega IVM(asy, pt, m)
-  TH2F **fRealOmega2;            //!real omega IVM(asy, pt, m), with Asy_pi0<0.8
-  TH2F **fMixAOmega2;            //!mixA omega IVM(asy, pt, m)
-  TH2F **fMixBOmega2;            //!mixB omega IVM(asy, pt, m)
-  TH2F **fMixCOmega2;            //!mixC omega IVM(asy, pt, m)
-  TH1F *fhOmegaPriPt;            //!MC primary omega pt in 2pi and |y|<0.5
+  Double_t fPi0Mass;             //nominal pi0 mass
+  Double_t fPi0MassWindow;       //pi0 mass windows
+  Double_t fPi0OverOmegaPtCut;   //pi0 Pt over omega pt cut
+  Double_t fGammaOverOmegaPtCut; //gamma pt over omega pt cut
+
+  TH2F * fhEtalon;               //an etalon of 3D histograms
+  TH2F **fRealOmega0;             //real omega IVM(asy, pt, m), with Asy_pi0<1 
+  TH2F **fMixAOmega0;             //mixA omega IVM(asy, pt, m) 
+  TH2F **fMixBOmega0;             //mixB omega IVM(asy, pt, m) 
+  TH2F **fMixCOmega0;             //mixC omega IVM(asy, pt, m) 
+  TH2F **fRealOmega1;            //real omega IVM(asy, pt, m), with Asy_pi0<0.7
+  TH2F **fMixAOmega1;            //mixA omega IVM(asy, pt, m)
+  TH2F **fMixBOmega1;            //mixB omega IVM(asy, pt, m)
+  TH2F **fMixCOmega1;            //mixC omega IVM(asy, pt, m)
+  TH2F **fRealOmega2;            //real omega IVM(asy, pt, m), with Asy_pi0<0.8
+  TH2F **fMixAOmega2;            //mixA omega IVM(asy, pt, m)
+  TH2F **fMixBOmega2;            //mixB omega IVM(asy, pt, m)
+  TH2F **fMixCOmega2;            //mixC omega IVM(asy, pt, m)
+  TH1F *fhOmegaPriPt;            //MC primary omega pt in 2pi and |y|<0.5
 
   ClassDef(AliAnaOmegaToPi0Gamma,2)
 } ;