]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGJE/AliAnalysisTaskJetCore.h
coverity fix
[u/mrichter/AliRoot.git] / PWGJE / AliAnalysisTaskJetCore.h
index 1dadd8293299b23e180df590cd076e34aa3d9f95..45ce882d6f1961bcadd42ca56e8c6772e6d213a9 100644 (file)
 // *******************************************
 
 class TH1F;
+class TH1I;
 class TH2F;
 class TH3F;
 class THnSparse;
+class TRandom3;
 class AliESDEvent;
 class AliAODExtension;
 class AliAODEvent;
@@ -35,9 +37,12 @@ public:
    virtual void     Terminate(const Option_t*);
 
    virtual Int_t      GetNInputTracks();
-  
+     // Rongrong
+   virtual void     SetRunAzimuthalCorrelation(Bool_t run) {fRunAnaAzimuthalCorrelation=run;}  
    Double_t RelativePhi(Double_t angle1,Double_t angle2);     
-
+   Int_t   GetPhiBin(Double_t phi);
+   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 AliVEvent::EOfflineTriggerTypes GetOfflineTrgMask() const { return fOfflineTrgMask; }
    virtual void     GetBranchNames(TString &branch1, TString &branch2) const { branch1 = fJetBranchName[0]; branch2 = fJetBranchName[1]; }
    virtual Bool_t   GetIsPbPb() const { return fIsPbPb; }
@@ -64,6 +69,9 @@ public:
    virtual void     SetVtxZMax(Float_t z) { fVtxZMax = z; }
    virtual void     SetEvtClassMin(Int_t evtClass) { fEvtClassMin = evtClass; }
    virtual void     SetEvtClassMax(Int_t evtClass) { fEvtClassMax = evtClass; }
+   virtual void     SetFilterMask(UInt_t i){fFilterMask = i;}
+   virtual void     SetFilterMaskBestPt(UInt_t i){fFilterMaskBestPt = i;}
+   virtual void     SetFilterType(Int_t iType){fFilterType=iType;}
    virtual void     SetRadioFrac(Float_t radiofrac) { fRadioFrac = radiofrac; }
    virtual void     SetMinDist(Float_t minDist) { fMinDist = minDist; }
    virtual void     SetCentMin(Float_t cent) { fCentMin = cent; }
@@ -71,6 +79,25 @@ public:
    virtual void     SetNInputTracksMin(Int_t nTr) { fNInputTracksMin = nTr; }
    virtual void     SetNInputTracksMax(Int_t nTr) { fNInputTracksMax = nTr; }
    virtual void     SetAngStructCloseTracks(Int_t yesno){fAngStructCloseTracks=yesno;}
+   virtual void     SetCheckMethods(Int_t yesno){fCheckMethods=yesno;}
+   virtual void     SetEventMixing(Int_t yesno){fDoEventMixing=yesno;}
+   virtual void     SetFlagPhiBkg(Int_t yesno){fFlagPhiBkg=yesno;}
+   virtual void     SetFlagEtaBkg(Int_t yesno){fFlagEtaBkg=yesno;}
+   virtual void     SetFlagJetHadron(Int_t yesno){fFlagJetHadron=yesno;}
+   virtual void     SetFlagFrac(Float_t fraction){fFrac=fraction;} 
+   virtual void     SetTTLowRef(Float_t ttlow){fTTLowRef=ttlow;}
+   virtual void     SetTTUpRef(Float_t ttup){fTTUpRef=ttup;}
+   virtual void     SetTTLowSig(Float_t ttlows){fTTLowSig=ttlows;}
+   virtual void     SetTTUpSig(Float_t ttups){fTTUpSig=ttups;}
+   virtual void     SetFlagHardest(Int_t yesno){fHardest=yesno;}
+   virtual void     SetFlagRandom(Int_t yesno){fFlagRandom=yesno;}
+   virtual void     SetFlagOnlyRecoil(Int_t yesno){fFlagOnlyRecoil=yesno;}
+   virtual void     SetFlagOnlyHardest(Int_t yesno){fFlagOnlyHardest=yesno;} 
+   virtual void     SetNRPBins(Int_t bins){fNRPBins=bins;}
+   virtual void     SetSemigoodCorrect(Int_t yesno){fSemigoodCorrect=yesno;}
+   virtual void     SetHolePos(Float_t poshole) { fHolePos = poshole; }
+   virtual void     SetHoleWidth(Float_t holewidth) { fHoleWidth = holewidth; }
+   virtual void     SetTrackTypeRec(Int_t i){fTrackTypeRec = i;}
    virtual void     SetJetEtaMin(Float_t eta) { fJetEtaMin = eta; }
    virtual void     SetJetEtaMax(Float_t eta) { fJetEtaMax = eta; }
    virtual void     SetJetPtMin(Float_t pt) { fJetPtMin = pt; }
@@ -79,15 +106,18 @@ public:
    virtual void     SetNMatchJets(Int_t n) { fNMatchJets = n; }
    virtual void     SetFillEvent(Bool_t b) { fbEvent = b; }
    virtual void     SetKeepJets(Bool_t b = kTRUE) { fKeepJets = b; }
-   virtual void SetNonStdFile(char* c){fNonStdFile = c;} 
-
+   virtual void     SetNonStdFile(char* c){fNonStdFile = c;} 
+    enum {kTrackUndef = 0, kTrackAOD, kTrackKineAll,kTrackKineCharged, kTrackAODMCAll, kTrackAODMCCharged, kTrackAODMCChargedAcceptance};
 
 private:
    // ESD/AOD events
    AliESDEvent *fESD;    //! ESD object
-   AliAODEvent *fAOD;    //! AOD event
+   AliAODEvent *fAODIn;    //! AOD event for AOD input tracks
+    AliAODEvent *fAODOut;    //! AOD event 
     AliAODExtension  *fAODExtension; //! where we take the jets from can be input or output AOD
-   Int_t   GetListOfTracks(TList *list);
+    Int_t   GetListOfTracks(TList *list);
+   Int_t   SelectTrigger(TList *list,Double_t minT,Double_t maxT);
+   Int_t   GetHardestTrackBackToJet(AliAODJet *jet);
    Int_t   GetListOfTracksCloseToJet(TList *list,AliAODJet *jet);
    // jets to compare
    TString fJetBranchName[2]; //  name of jet branches to compare
@@ -103,6 +133,9 @@ private:
    Float_t fVtxZMax;     // upper bound on vertex z
    Int_t   fEvtClassMin;         // lower bound on event class
    Int_t   fEvtClassMax;         // upper bound on event class
+   UInt_t  fFilterMask;            // filter bit for slecected tracks
+   UInt_t  fFilterMaskBestPt;      // filter bit for selected hig pt tracks (best quality)
+   UInt_t  fFilterType;           // type of slected tracks parrallel to filtermask
    Float_t fRadioFrac;                          //!size of the concentric cone
    Float_t fMinDist;   
    Float_t fCentMin;     // lower bound on centrality
@@ -110,15 +143,39 @@ private:
    Int_t   fNInputTracksMin;  // lower bound of nb. of input tracks
    Int_t   fNInputTracksMax;  // upper bound of nb. of input tracks
    Int_t   fAngStructCloseTracks;//only constituents or all tracks with R<0.8 for the angular structure
-   Float_t fJetEtaMin;     // lower bound on eta for found jets
-   Float_t fJetEtaMax;     // upper bound on eta for found jets
-   Float_t fJetPtMin;      // minimum jet pT
+   Int_t   fCheckMethods;     //to look into more detail into the core
+   Int_t   fDoEventMixing;
+   Int_t   fFlagPhiBkg;
+   Int_t   fFlagEtaBkg;
+   Int_t   fFlagJetHadron;
+   Float_t fFrac;               //fraction of events to evaluate signal
+   Float_t fTTLowRef;
+   Float_t fTTUpRef;
+   Float_t fTTLowSig;
+   Float_t fTTUpSig;
+   Int_t   fHardest;
+   Int_t   fFlagRandom;
+   Int_t   fFlagOnlyRecoil;
+   Int_t   fFlagOnlyHardest;
+   Int_t   fTrackTypeRec;
+   Float_t   fRPAngle;
+   Int_t   fNRPBins;
+   Int_t   fSemigoodCorrect;
+   Float_t fHolePos;
+   Float_t fHoleWidth; 
+   Float_t fJetEtaMin;        // lower bound on eta for found jets
+   Float_t fJetEtaMax;        // upper bound on eta for found jets
+   Int_t   fNevents;          // number of events
+   Int_t   fTindex;           // index reference
+   Int_t   fTrigBufferIndex;  //index for the buffering
+   Int_t   fCountAgain;       //index for the buffering
+   Float_t fJetPtMin;         // minimum jet pT
    UChar_t fJetTriggerExcludeMask; // mask for jet triggeres to exclude
    Float_t fJetPtFractionMin; // minimum fraction for positiv match of jets
    Int_t   fNMatchJets;       // maximal nb. of jets taken for matching
    Double_t fMatchMaxDist;     // maximal distance of matching jets
    Bool_t  fKeepJets;          // keep jets with negative pt after background subtraction
-  
+   Bool_t fRunAnaAzimuthalCorrelation;        // Flag to run azimuthal correlation between trigger track and recoil jets (Rongrong)  
 
    // output objects
    const Int_t fkNbranches;                   //! number of branches to be read
@@ -127,91 +184,21 @@ private:
    TList *fOutputList;                        //! output data container
    Bool_t fbEvent;                            // fill fhnEvent
    TH1I  *fHistEvtSelection;                  //! event selection statistic
-   TH1I  *fHistJetSelection;                  //! jet selection statistic
-   TH2F  *fh2JetSelection;                    //! jet selection statistic, with 
-     
+   THnSparse *fhnDeltaR;                     //! variables per jet
+   THnSparse *fhnMixedEvents;                //!mixed events matrix
 
    TH2F      *fh2JetCoreMethod1C10;          //Energy fraction in the core C10 method 1
    TH2F      *fh2JetCoreMethod2C10;          //Energy fraction in the core C10 method 2
-   TH2F      *fh2JetCoreMethod3C10;          //Energy fraction in the core C10 method 3
    TH2F      *fh2JetCoreMethod1C20;          //Energy fraction in the core C20 method 1 
    TH2F      *fh2JetCoreMethod2C20;          //Energy fraction in the core C20 method 2
-   TH2F      *fh2JetCoreMethod3C20;          //Energy fraction in the core C20 method 3
    TH2F      *fh2JetCoreMethod1C30;          //Energy fraction in the core C30 method 1
    TH2F      *fh2JetCoreMethod2C30;          //Energy fraction in the core C30 method 2
-   TH2F      *fh2JetCoreMethod3C30;          //Energy fraction in the core C30 method 3
    TH2F      *fh2JetCoreMethod1C60;          //Energy fraction in the core C60 method 1
    TH2F      *fh2JetCoreMethod2C60;          //Energy fraction in the core C60 method 2
-   TH2F      *fh2JetCoreMethod3C60;          //Energy fraction in the core C60 method 3
-   TH2F      *fh2SumPtInC10;                  //energy fraction in inner corona C10
-   TH2F      *fh2SumPtInC20;                  //energy fraction in inner corona C20 
-   TH2F      *fh2SumPtInC30;                  //energy fraction in inner corona C30
-   TH2F      *fh2SumPtInC60;                  //energy fraction in inner corona C60
-   TH2F      *fh2SumPtOutC10;                 //energy fraction in outer corona C10
-   TH2F      *fh2SumPtOutC10b;                //energy fraction in outer corona C10b
-   TH2F      *fh2SumPtOutC20;                 //energy fraction in outer corona C20 
-   TH2F      *fh2SumPtOutC30;                 //energy fraction in outer corona C30
-   TH2F      *fh2SumPtOutC60;                 //energy fraction in outer corona C60
-   TH2F      *fh2SumPtInC10bkg;        //expected from background inner C10
-   TH2F      *fh2SumPtInC20bkg;        //expected from background inner C20
-   TH2F      *fh2SumPtInC30bkg;        //expected from background inner C30
-   TH2F      *fh2SumPtInC60bkg;        //expected from background inner C60
-   TH2F      *fh2SumPtOutC10bkg;       //expected from background outer C10
-   TH2F      *fh2SumPtOutC20bkg;       //expected from background outer C10
-   TH2F      *fh2SumPtOutC30bkg;       //expected from background outer C10
-   TH2F      *fh2SumPtOutC60bkg;       //expected from background outer C10
-
-  
-   
-     TH2F*      fh2DeltaRC10pt1;            //Jet track R distance:C10 pt1
-     TH2F*      fh2DeltaRC20pt1;            //C20 pt1 
-     TH2F*      fh2DeltaRC30pt1;            //C30 pt1
-     TH2F*      fh2DeltaRC60pt1;            //C60 pt1
-     TH2F*      fh2DeltaRC10pt2;            //C10 pt2   
-     TH2F*      fh2DeltaRC20pt2;            //C20 pt2
-     TH2F*      fh2DeltaRC30pt2;            //C30 pt2
-     TH2F*      fh2DeltaRC60pt2;            //C60 pt2 
-     TH2F*      fh2DeltaRC10pt3;            //C10 pt3
-     TH2F*      fh2DeltaRC20pt3;            //C20 pt3
-     TH2F*      fh2DeltaRC30pt3;            //C30 pt3
-     TH2F*      fh2DeltaRC60pt3;            //C60 pt3
-     TH2F*      fh2DeltaRC10pt4;            //C10 pt4
-     TH2F*      fh2DeltaRC20pt4;            //C20 pt4
-     TH2F*      fh2DeltaRC30pt4;            //C30 pt4
-     TH2F*      fh2DeltaRC60pt4;            //C60 pt4 
-     TH2F*      fh2DeltaEtaC10pt1;          //The same but eta distance:C10 pt1
-     TH2F*      fh2DeltaEtaC20pt1;          //C20 pt1
-     TH2F*      fh2DeltaEtaC30pt1;          //C30 pt1
-     TH2F*      fh2DeltaEtaC60pt1;          //C60 pt1
-     TH2F*      fh2DeltaEtaC10pt2;          //C10 pt2  
-     TH2F*      fh2DeltaEtaC20pt2;          //C20 pt2
-     TH2F*      fh2DeltaEtaC30pt2;          //C30 pt2
-     TH2F*      fh2DeltaEtaC60pt2;          //C60 pt2
-     TH2F*      fh2DeltaEtaC10pt3;          //C10 pt3
-     TH2F*      fh2DeltaEtaC20pt3;          //C20 pt3
-     TH2F*      fh2DeltaEtaC30pt3;          //C30 pt3
-     TH2F*      fh2DeltaEtaC60pt3;          //C60 pt3
-     TH2F*      fh2DeltaEtaC10pt4;          //C10 pt4
-     TH2F*      fh2DeltaEtaC20pt4;          //C20 pt4
-     TH2F*      fh2DeltaEtaC30pt4;          //C30 pt4
-     TH2F*      fh2DeltaEtaC60pt4;          //C60 pt4
-     TH2F*      fh2DeltaPhiC10pt1;          //The same but phi distance:C10 pt1
-     TH2F*      fh2DeltaPhiC20pt1;          //C20 pt1
-     TH2F*      fh2DeltaPhiC30pt1;          //C30 pt1
-     TH2F*      fh2DeltaPhiC60pt1;          //C60 pt1
-     TH2F*      fh2DeltaPhiC10pt2;          //C10 pt2
-     TH2F*      fh2DeltaPhiC20pt2;          //C20 pt2 
-     TH2F*      fh2DeltaPhiC30pt2;          //C30 pt2
-     TH2F*      fh2DeltaPhiC60pt2;          //C60 pt2 
-     TH2F*      fh2DeltaPhiC10pt3;          //C10 pt3
-     TH2F*      fh2DeltaPhiC20pt3;          //C20 pt3
-     TH2F*      fh2DeltaPhiC30pt3;          //C30 pt3
-     TH2F*      fh2DeltaPhiC60pt3;          //C60 pt3
-     TH2F*      fh2DeltaPhiC10pt4;          //C10 pt4
-     TH2F*      fh2DeltaPhiC20pt4;          //C20 pt4
-     TH2F*      fh2DeltaPhiC30pt4;          //C30 pt4
-     TH2F*      fh2DeltaPhiC60pt4;          //C60 pt4
-     TH2F*      fh2AngStructpt1C10;         //Average two particle correlation function:C10 pt1
+     TH3F*      fh3JetTrackC3060;           //C3060 pt2
+     TH3F*      fh3JetTrackC20;             //C10 pt2
+     TH2F*      fh2AngStructpt1C10;         //Average 
      TH2F*      fh2AngStructpt2C10;         //C10 pt2
      TH2F*      fh2AngStructpt3C10;         //C10 pt3
      TH2F*      fh2AngStructpt4C10;         //C10 pt4
@@ -227,14 +214,27 @@ private:
      TH2F*      fh2AngStructpt2C60;         //C60 pt2
      TH2F*      fh2AngStructpt3C60;         //C60 pt3
      TH2F*      fh2AngStructpt4C60;         //C60 pt4
-
-
-
+  
+     TH2F*      fh2Ntriggers;              //triggers
+     TH2F*      fh2Ntriggers2C10;             //centrality bias of triggers 
+     TH2F*      fh2Ntriggers2C20;             //centrality bias of triggers 
+     TH3F*      fh3JetDensity;             //jet density
+     TH3F*      fh3JetDensityA4;           //jet density
+     TH2F*      fh2RPJetsC10;                  //reaction plane Jets
+     TH2F*      fh2RPJetsC20;
+     TH2F*      fh2RPTC10;                     //reaction plane TT 
+     TH2F*      fh2RPTC20; 
+     THnSparse   *fHJetSpec;               //Recoil jet spectrum
+
+     Double_t            fTrigBuffer[10][7];      //!buffer for triggers   
+     TH2F        *fhTTPt;                     //! Trigger track pt for normalization (Rongrong)
+     THnSparse   *fHJetPhiCorr;               //! Azimuthal correlation between trigger track and recoil jets (Rongrong)
+       TRandom3*                   fRandom;          // TRandom3  
 
    AliAnalysisTaskJetCore(const AliAnalysisTaskJetCore&); // not implemented
    AliAnalysisTaskJetCore& operator=(const AliAnalysisTaskJetCore&); // not implemented
 
-   ClassDef(AliAnalysisTaskJetCore, 4);
+   ClassDef(AliAnalysisTaskJetCore, 6);
 };
 
 #endif