]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGHF/correlationHF/AliHFAssociatedTrackCuts.h
Corrected end-of-line behavior
[u/mrichter/AliRoot.git] / PWGHF / correlationHF / AliHFAssociatedTrackCuts.h
index ec8961a2c372726389958d625c57a2fe289c4203..807047fc1db2649e9ddd16b2aaf9479faf97a8b2 100644 (file)
-#ifndef AliHFAssociatedTrackCuts_H\r
-#define AliHFAssociatedTrackCuts_H\r
-/**************************************************************************\r
- * Copyright(c) 1998-2010, ALICE Experiment at CERN, All rights reserved. *\r
- *                                                                        *\r
- * Author: The ALICE Off-line Project.                                    *\r
- * Contributors are mentioned in the code where appropriate.              *\r
- *                                                                        *\r
- * Permission to use, copy, modify and distribute this software and its   *\r
- * documentation strictly for non-commercial purposes is hereby granted   *\r
- * without fee, provided that the above copyright notice appears in all   *\r
- * copies and that both the copyright notice and this permission notice   *\r
- * appear in the supporting documentation. The authors make no claims     *\r
- * about the suitability of this software for any purpose. It is          *\r
- * provided "as is" without express or implied warranty.                  *\r
- **************************************************************************/\r
-\r
-/* $Id$ */\r
-\r
-////////////////////////////////////////////////////////////////////////\r
-//\r
-// Base class for cuts on Associated tracks for HF Correlation analysis\r
-//\r
-// Author: S.Bjelogrlic (Utrecht) sandro.bjelogrlic@cern.ch\r
-////////////////////////////////////////////////////////////////////////\r
-\r
-#include <TString.h>\r
-#include "AliAnalysisCuts.h"\r
-#include "AliESDtrackCuts.h"\r
-#include "AliESDVertex.h"\r
-#include "AliAODPidHF.h"\r
-#include "AliAODEvent.h"\r
-#include "AliAODRecoDecayHF2Prong.h"\r
-#include <TClonesArray.h>\r
-#include <TH3D.h>\r
-\r
-\r
-class AliAODTrack;\r
-class AliAODEvent;\r
-\r
-\r
-//\r
-class AliHFAssociatedTrackCuts : public AliAnalysisCuts\r
-{\r
-       public: \r
-       AliHFAssociatedTrackCuts();\r
-       AliHFAssociatedTrackCuts(const char* name, const char* title);\r
-       \r
-       \r
-       AliHFAssociatedTrackCuts(const AliHFAssociatedTrackCuts& source);\r
-       AliHFAssociatedTrackCuts& operator=(const AliHFAssociatedTrackCuts& source);\r
-       \r
-       virtual ~AliHFAssociatedTrackCuts(); // destructor\r
-       Bool_t IsSelected(TList*  list) {if(list) return kTRUE; return kFALSE;};\r
-       Bool_t IsSelected(TObject*  obj) {if(obj) return kTRUE; return kFALSE;};\r
-       Bool_t IsInAcceptance();\r
-       Bool_t IsHadronSelected(AliAODTrack * track,const AliESDVertex *primary=0x0, Double_t magfield=0);\r
-       Bool_t CheckHadronKinematic(Double_t pt, Double_t d0); \r
-       Bool_t Charge(Short_t charge, AliAODTrack* track);\r
-       Bool_t CheckKaonCompatibility(AliAODTrack * track, Bool_t useMc, TClonesArray* mcArray, Int_t method=1);\r
-       Bool_t IsKZeroSelected(AliAODv0 *vzero, AliAODVertex *vtx1);\r
-       Bool_t *IsMCpartFromHF(Int_t label, TClonesArray*mcArray);\r
-       Bool_t InvMassDstarRejection(AliAODRecoDecayHF2Prong* d, AliAODTrack *track, Int_t hypD0) const;\r
-       void SetPidAssociated();        \r
-       \r
-       // getters\r
-       AliESDtrackCuts * GetESDTrackCuts() const {return fESDTrackCuts;}\r
-       AliAODPidHF * GetPIDObject() const {return fPidObj;}\r
-       TH3D * GetEfficiencyWeight() const {return fEffWeights;}\r
-       \r
-       Int_t GetMaxNEventsInPool() const {return fPoolMaxNEvents;}\r
-       Int_t GetMinNTracksInPool() const {return fPoolMinNTracks;}\r
-       Int_t GetMinEventsToMix() const {return fMinEventsToMix;}\r
-       Int_t GetNZvtxPoolBins() const {return fNzVtxBins;}\r
-       Double_t *GetZvtxPoolBins() const {return fZvtxBins;}\r
-       Int_t GetNCentPoolBins() const {return fNCentBins;}\r
-       Double_t *GetCentPoolBins() const {return fCentBins;}\r
-       \r
-       Int_t GetNofMCEventType() const {return fNofMCEventType;}\r
-       Int_t *GetMCEventType() const {return fMCEventType;}\r
-    Int_t GetPoolBin(Double_t multorcent, Double_t zVtx) const;\r
-       \r
-       Int_t GetNTrackCuts() const {return fNTrackCuts;}\r
-       Float_t* GetAODTrackCuts() const {return fAODTrackCuts;}\r
-       TString * GetTrackCutNames() const {return fTrackCutsNames;}\r
-       Int_t GetNvZeroCuts() const {return fNvZeroCuts;}\r
-       Float_t * GetAODvZeroCuts() const {return fAODvZeroCuts;}\r
-       TString * GetvZeroCutNames() const {return fvZeroCutsNames;}\r
-       Int_t GetFilterBit() const {return fBit;}\r
-       Short_t GetCharge() const {return fCharge;}\r
-       TString GetDescription() const {return fDescription;}\r
-    \r
-\r
-       \r
-       \r
-       \r
-       void AddTrackCuts(const AliESDtrackCuts *cuts) {\r
-               delete fESDTrackCuts; \r
-               fESDTrackCuts=new AliESDtrackCuts(*cuts); \r
-               return;\r
-       }\r
-       \r
-       void AddDescription(TString description){fDescription=description;}\r
-       \r
-       //setters\r
-       //event pool settings\r
-       void SetMaxNEventsInPool(Int_t events){fPoolMaxNEvents=events;}\r
-       void SetMinNTracksInPool(Int_t tracks){fPoolMinNTracks=tracks;}\r
-       void SetMinEventsToMix(Int_t events){fMinEventsToMix=events;}\r
-       \r
-       void SetNofPoolBins(Int_t Nzvtxbins, Int_t Ncentbins){\r
-               fNzVtxBins=Nzvtxbins;\r
-               fNzVtxBinsDim=Nzvtxbins+1;\r
-               \r
-           fNCentBins=Ncentbins;\r
-               fNCentBinsDim=Ncentbins+1;\r
-       }\r
-       \r
-       void SetPoolBins(Double_t *ZvtxBins, Double_t* CentBins){\r
-               fZvtxBins=ZvtxBins; \r
-               fCentBins=CentBins;\r
-       }\r
-       \r
-       // set MC events to process\r
-       \r
-       void SetNofMCEventTypes(Int_t k) {fNofMCEventType=k;}\r
-       void SetMCEventTypes(Int_t *MCEventTypeArray);\r
-       \r
-       //cut settings\r
-       void SetAODTrackCuts(Float_t *cutsarray);\r
-       void SetTrackCutsNames(/*TString *namearray*/);\r
-       void SetAODvZeroCuts(Float_t *cutsarray);\r
-       void SetvZeroCutsNames(/*TString *namearray*/);\r
-       void SetPidHF(AliAODPidHF* pid) {fPidObj = pid; return;}\r
-       void SetCharge(Short_t charge) {fCharge = charge;}\r
-       void SetFilterBit(Int_t bit) {fBit = bit;}\r
-       void SetEfficiencyWeightMap(TH3D *hMap){if(fEffWeights)delete fEffWeights;fEffWeights=(TH3D*)hMap->Clone();}\r
-    \r
-    void SetTriggerEffWeightMapvspt(TH1D* hTrigMap) {if(fTrigEffWeightsvspt) delete fTrigEffWeightsvspt; fTrigEffWeightsvspt=(TH1D*)hTrigMap->Clone();}\r
-       void SetTriggerEffWeightMapvsptB(TH1D* hTrigMapB) {if(fTrigEffWeightsvsptB) delete fTrigEffWeightsvsptB; fTrigEffWeightsvsptB=(TH1D*)hTrigMapB->Clone();}\r
-    \r
-    void SetTriggerEffWeightMap(TH2D* hTrigMap) {if(fTrigEffWeights) delete fTrigEffWeights; fTrigEffWeights=(TH2D*)hTrigMap->Clone();}\r
-       void SetTriggerEffWeightMapB(TH2D* hTrigMapB) {if(fTrigEffWeightsB) delete fTrigEffWeightsB; fTrigEffWeightsB=(TH2D*)hTrigMapB->Clone();}\r
-    \r
-    \r
-       Double_t GetTrackWeight(Double_t pt, Double_t eta,Double_t zvtx);\r
-    Double_t GetTrigWeight(Double_t pt, Double_t mult=0);\r
-       Double_t GetTrigWeightB(Double_t pt, Double_t mult=0);\r
-    \r
-    Bool_t IsTrackEffMap(){if(fEffWeights) return kTRUE; else return kFALSE;}\r
-    Bool_t IsTrigEffMap1D(){ if(fTrigEffWeightsvspt) return kTRUE; else return kFALSE;}\r
-    Bool_t IsTrigEffMap1DB(){ if(fTrigEffWeightsvsptB) return kTRUE; else return kFALSE;}\r
-    Bool_t IsTrigEffMap2D(){ if(fTrigEffWeights) return kTRUE; else return kFALSE;}\r
-    Bool_t IsTrigEffMap2DB(){ if(fTrigEffWeightsB) return kTRUE; else return kFALSE;}\r
-    \r
-    \r
-       void Print(Option_t *option) const;\r
-       virtual void PrintAll() const;\r
-       virtual void PrintPoolParameters() const;\r
-       virtual void PrintSelectedMCevents() const;\r
-\r
-       \r
-       \r
-       \r
-       void SetNVarsTrack(Int_t nVars){fNTrackCuts=nVars;}\r
-       void SetNVarsVzero(Int_t nVars){fNvZeroCuts=nVars;}\r
-       \r
-       \r
-       \r
-private:\r
-       AliESDtrackCuts *fESDTrackCuts; // track cut object\r
-       AliAODPidHF * fPidObj;     /// PID object\r
-       TH3D *fEffWeights;     // weight map (pt,eta,zvtx) to account for single track efficiency\r
-    TH1D *fTrigEffWeightsvspt;     // weight map (pt,mult) to account for trigger efficiency (on data, from c)\r
-       TH1D *fTrigEffWeightsvsptB;     // weight map (pt,mult) to account for trigger efficiency (from b)\r
-    TH2D *fTrigEffWeights;     // weight map (pt,mult) to account for trigger efficiency (on data, from c)\r
-       TH2D *fTrigEffWeightsB;     // weight map (pt,mult) to account for trigger efficiency (from b)\r
-       Int_t fPoolMaxNEvents; // set maximum number of events in the pool\r
-       Int_t fPoolMinNTracks; // se minimum number of tracks in the pool\r
-       Int_t fMinEventsToMix; // set the minimum number of events you wanna mix\r
-       \r
-       Int_t fNzVtxBins; // number of z vrtx bins\r
-       Int_t fNzVtxBinsDim; // number of z vrtx bins +1 : necessary to initialize correctly the array\r
-       Double_t* fZvtxBins; // [fNzVtxBinsDim]\r
-       \r
-       \r
-       Int_t fNCentBins; //number of centrality bins\r
-       Int_t fNCentBinsDim; //number of centrality bins bins +1 : necessary to initialize correctly the array\r
-       Double_t* fCentBins; // [fNCentBinsDim]\r
-       \r
-       Int_t fNofMCEventType;// number of event types to be selected in MC simultaneously;\r
-       Int_t *fMCEventType;//[fNofMCEventType]\r
-       \r
-       Int_t fNTrackCuts;     // array dimension\r
-       Float_t* fAODTrackCuts;//[fNTrackCuts]\r
-       TString * fTrackCutsNames;//[fNTrackCuts]\r
-       Int_t fNvZeroCuts;// array dimension\r
-       Float_t *fAODvZeroCuts;//[fNvZeroCuts]\r
-       TString * fvZeroCutsNames;//[fNvZeroCuts]\r
-       Int_t fBit; // filterBit\r
-       Short_t fCharge; // charge (+1 or -1)\r
-       TString fDescription; // additional description to the cuts\r
-       \r
-       \r
-       ClassDef(AliHFAssociatedTrackCuts,6);\r
-};\r
-\r
-\r
-#endif\r
+#ifndef AliHFAssociatedTrackCuts_H
+#define AliHFAssociatedTrackCuts_H
+/**************************************************************************
+ * Copyright(c) 1998-2010, ALICE Experiment at CERN, All rights reserved. *
+ *                                                                        *
+ * Author: The ALICE Off-line Project.                                    *
+ * Contributors are mentioned in the code where appropriate.              *
+ *                                                                        *
+ * Permission to use, copy, modify and distribute this software and its   *
+ * documentation strictly for non-commercial purposes is hereby granted   *
+ * without fee, provided that the above copyright notice appears in all   *
+ * copies and that both the copyright notice and this permission notice   *
+ * appear in the supporting documentation. The authors make no claims     *
+ * about the suitability of this software for any purpose. It is          *
+ * provided "as is" without express or implied warranty.                  *
+ **************************************************************************/
+
+/* $Id$ */
+
+////////////////////////////////////////////////////////////////////////
+//
+// Base class for cuts on Associated tracks for HF Correlation analysis
+//
+// Author: S.Bjelogrlic (Utrecht) sandro.bjelogrlic@cern.ch
+////////////////////////////////////////////////////////////////////////
+
+#include <TString.h>
+#include "AliAnalysisCuts.h"
+#include "AliESDtrackCuts.h"
+#include "AliESDVertex.h"
+#include "AliAODPidHF.h"
+#include "AliAODEvent.h"
+#include "AliAODRecoDecayHF2Prong.h"
+#include <TClonesArray.h>
+#include <TH3D.h>
+
+
+class AliAODTrack;
+class AliAODEvent;
+
+
+//
+class AliHFAssociatedTrackCuts : public AliAnalysisCuts
+{
+       public: 
+       AliHFAssociatedTrackCuts();
+       AliHFAssociatedTrackCuts(const char* name, const char* title);
+       
+       
+       AliHFAssociatedTrackCuts(const AliHFAssociatedTrackCuts& source);
+       AliHFAssociatedTrackCuts& operator=(const AliHFAssociatedTrackCuts& source);
+       
+       virtual ~AliHFAssociatedTrackCuts(); // destructor
+       Bool_t IsSelected(TList*  list) {if(list) return kTRUE; return kFALSE;};
+       Bool_t IsSelected(TObject*  obj) {if(obj) return kTRUE; return kFALSE;};
+       Bool_t IsInAcceptance();
+       Bool_t IsHadronSelected(AliAODTrack * track,const AliESDVertex *primary=0x0, Double_t magfield=0);
+       Bool_t CheckHadronKinematic(Double_t pt, Double_t d0); 
+       Bool_t Charge(Short_t charge, AliAODTrack* track);
+       Bool_t CheckKaonCompatibility(AliAODTrack * track, Bool_t useMc, TClonesArray* mcArray, Int_t method=1);
+       Bool_t IsKZeroSelected(AliAODv0 *vzero, AliAODVertex *vtx1);
+       Bool_t *IsMCpartFromHF(Int_t label, TClonesArray*mcArray);
+       Bool_t InvMassDstarRejection(AliAODRecoDecayHF2Prong* d, AliAODTrack *track, Int_t hypD0) const;
+       void SetPidAssociated();        
+       
+       // getters
+       AliESDtrackCuts * GetESDTrackCuts() const {return fESDTrackCuts;}
+       AliAODPidHF * GetPIDObject() const {return fPidObj;}
+       TH3D * GetEfficiencyWeight() const {return fEffWeights;}
+       
+       Int_t GetMaxNEventsInPool() const {return fPoolMaxNEvents;}
+       Int_t GetMinNTracksInPool() const {return fPoolMinNTracks;}
+       Int_t GetMinEventsToMix() const {return fMinEventsToMix;}
+       Int_t GetNZvtxPoolBins() const {return fNzVtxBins;}
+       Double_t *GetZvtxPoolBins() const {return fZvtxBins;}
+       Int_t GetNCentPoolBins() const {return fNCentBins;}
+       Double_t *GetCentPoolBins() const {return fCentBins;}
+       
+       Int_t GetNofMCEventType() const {return fNofMCEventType;}
+       Int_t *GetMCEventType() const {return fMCEventType;}
+    Int_t GetPoolBin(Double_t multorcent, Double_t zVtx) const;
+       
+       Int_t GetNTrackCuts() const {return fNTrackCuts;}
+       Float_t* GetAODTrackCuts() const {return fAODTrackCuts;}
+       TString * GetTrackCutNames() const {return fTrackCutsNames;}
+       Int_t GetNvZeroCuts() const {return fNvZeroCuts;}
+       Float_t * GetAODvZeroCuts() const {return fAODvZeroCuts;}
+       TString * GetvZeroCutNames() const {return fvZeroCutsNames;}
+       Int_t GetFilterBit() const {return fBit;}
+       Short_t GetCharge() const {return fCharge;}
+       TString GetDescription() const {return fDescription;}
+    
+
+       
+       
+       
+       void AddTrackCuts(const AliESDtrackCuts *cuts) {
+               delete fESDTrackCuts; 
+               fESDTrackCuts=new AliESDtrackCuts(*cuts); 
+               return;
+       }
+       
+       void AddDescription(TString description){fDescription=description;}
+       
+       //setters
+       //event pool settings
+       void SetMaxNEventsInPool(Int_t events){fPoolMaxNEvents=events;}
+       void SetMinNTracksInPool(Int_t tracks){fPoolMinNTracks=tracks;}
+       void SetMinEventsToMix(Int_t events){fMinEventsToMix=events;}
+       
+       void SetNofPoolBins(Int_t Nzvtxbins, Int_t Ncentbins){
+               fNzVtxBins=Nzvtxbins;
+               fNzVtxBinsDim=Nzvtxbins+1;
+               
+           fNCentBins=Ncentbins;
+               fNCentBinsDim=Ncentbins+1;
+       }
+       
+       void SetPoolBins(Double_t *ZvtxBins, Double_t* CentBins){
+               fZvtxBins=ZvtxBins; 
+               fCentBins=CentBins;
+       }
+       
+       // set MC events to process
+       
+       void SetNofMCEventTypes(Int_t k) {fNofMCEventType=k;}
+       void SetMCEventTypes(Int_t *MCEventTypeArray);
+       
+       //cut settings
+       void SetAODTrackCuts(Float_t *cutsarray);
+       void SetTrackCutsNames(/*TString *namearray*/);
+       void SetAODvZeroCuts(Float_t *cutsarray);
+       void SetvZeroCutsNames(/*TString *namearray*/);
+       void SetPidHF(AliAODPidHF* pid) {fPidObj = pid; return;}
+       void SetCharge(Short_t charge) {fCharge = charge;}
+       void SetFilterBit(Int_t bit) {fBit = bit;}
+       void SetEfficiencyWeightMap(TH3D *hMap){if(fEffWeights)delete fEffWeights;fEffWeights=(TH3D*)hMap->Clone();}
+    
+    void SetTriggerEffWeightMapvspt(TH1D* hTrigMap) {if(fTrigEffWeightsvspt) delete fTrigEffWeightsvspt; fTrigEffWeightsvspt=(TH1D*)hTrigMap->Clone();}
+       void SetTriggerEffWeightMapvsptB(TH1D* hTrigMapB) {if(fTrigEffWeightsvsptB) delete fTrigEffWeightsvsptB; fTrigEffWeightsvsptB=(TH1D*)hTrigMapB->Clone();}
+    
+    void SetTriggerEffWeightMap(TH2D* hTrigMap) {if(fTrigEffWeights) delete fTrigEffWeights; fTrigEffWeights=(TH2D*)hTrigMap->Clone();}
+       void SetTriggerEffWeightMapB(TH2D* hTrigMapB) {if(fTrigEffWeightsB) delete fTrigEffWeightsB; fTrigEffWeightsB=(TH2D*)hTrigMapB->Clone();}
+    
+    
+       Double_t GetTrackWeight(Double_t pt, Double_t eta,Double_t zvtx);
+    Double_t GetTrigWeight(Double_t pt, Double_t mult=0);
+       Double_t GetTrigWeightB(Double_t pt, Double_t mult=0);
+    
+    Bool_t IsTrackEffMap(){if(fEffWeights) return kTRUE; else return kFALSE;}
+    Bool_t IsTrigEffMap1D(){ if(fTrigEffWeightsvspt) return kTRUE; else return kFALSE;}
+    Bool_t IsTrigEffMap1DB(){ if(fTrigEffWeightsvsptB) return kTRUE; else return kFALSE;}
+    Bool_t IsTrigEffMap2D(){ if(fTrigEffWeights) return kTRUE; else return kFALSE;}
+    Bool_t IsTrigEffMap2DB(){ if(fTrigEffWeightsB) return kTRUE; else return kFALSE;}
+    
+    
+       void Print(Option_t *option) const;
+       virtual void PrintAll() const;
+       virtual void PrintPoolParameters() const;
+       virtual void PrintSelectedMCevents() const;
+
+       
+       
+       
+       void SetNVarsTrack(Int_t nVars){fNTrackCuts=nVars;}
+       void SetNVarsVzero(Int_t nVars){fNvZeroCuts=nVars;}
+       
+       
+       
+private:
+       AliESDtrackCuts *fESDTrackCuts; // track cut object
+       AliAODPidHF * fPidObj;     /// PID object
+       TH3D *fEffWeights;     // weight map (pt,eta,zvtx) to account for single track efficiency
+    TH1D *fTrigEffWeightsvspt;     // weight map (pt,mult) to account for trigger efficiency (on data, from c)
+       TH1D *fTrigEffWeightsvsptB;     // weight map (pt,mult) to account for trigger efficiency (from b)
+    TH2D *fTrigEffWeights;     // weight map (pt,mult) to account for trigger efficiency (on data, from c)
+       TH2D *fTrigEffWeightsB;     // weight map (pt,mult) to account for trigger efficiency (from b)
+       Int_t fPoolMaxNEvents; // set maximum number of events in the pool
+       Int_t fPoolMinNTracks; // se minimum number of tracks in the pool
+       Int_t fMinEventsToMix; // set the minimum number of events you wanna mix
+       
+       Int_t fNzVtxBins; // number of z vrtx bins
+       Int_t fNzVtxBinsDim; // number of z vrtx bins +1 : necessary to initialize correctly the array
+       Double_t* fZvtxBins; // [fNzVtxBinsDim]
+       
+       
+       Int_t fNCentBins; //number of centrality bins
+       Int_t fNCentBinsDim; //number of centrality bins bins +1 : necessary to initialize correctly the array
+       Double_t* fCentBins; // [fNCentBinsDim]
+       
+       Int_t fNofMCEventType;// number of event types to be selected in MC simultaneously;
+       Int_t *fMCEventType;//[fNofMCEventType]
+       
+       Int_t fNTrackCuts;     // array dimension
+       Float_t* fAODTrackCuts;//[fNTrackCuts]
+       TString * fTrackCutsNames;//[fNTrackCuts]
+       Int_t fNvZeroCuts;// array dimension
+       Float_t *fAODvZeroCuts;//[fNvZeroCuts]
+       TString * fvZeroCutsNames;//[fNvZeroCuts]
+       Int_t fBit; // filterBit
+       Short_t fCharge; // charge (+1 or -1)
+       TString fDescription; // additional description to the cuts
+       
+       
+       ClassDef(AliHFAssociatedTrackCuts,6);
+};
+
+
+#endif