]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/STRANGENESS/Cascades/AliAnalysisTaskStrangenessVsMultiplicity.h
Fixes for coverity.
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / Cascades / AliAnalysisTaskStrangenessVsMultiplicity.h
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16 // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
17 //
18 // Modified version of AliAnalysisTaskCheckCascade.h
19 // Used bits of code from AliAnalysisTaskCheckPerformanceStrange
20 //
21 // --- David Dobrigkeit Chinellato
22 //
23 // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
24
25 #ifndef AliAnalysisTaskStrangenessVsMultiplicity_H
26 #define AliAnalysisTaskStrangenessVsMultiplicity_H
27
28 class TList;
29 class TH1F;
30 class TH2F;
31 class TH3F;
32 class TVector3;
33 class THnSparse;
34
35 class AliESDpid;
36 class AliESDtrackCuts;
37 class AliAnalysisUtils;
38 class AliPPVsMultUtils;
39 class AliESDEvent;
40 class AliPhysicsSelection;
41 class AliCFContainer;
42
43 //#include "TString.h"
44 //#include "AliESDtrackCuts.h"
45 //#include "AliAnalysisTaskSE.h"
46
47 class AliAnalysisTaskStrangenessVsMultiplicity : public AliAnalysisTaskSE {
48  public:
49   AliAnalysisTaskStrangenessVsMultiplicity();
50   AliAnalysisTaskStrangenessVsMultiplicity(const char *name);
51   virtual ~AliAnalysisTaskStrangenessVsMultiplicity();
52   
53   virtual void   UserCreateOutputObjects();
54   virtual void   UserExec(Option_t *option);
55   virtual void   Terminate(Option_t *);
56   Double_t MyRapidity(Double_t rE, Double_t rPz) const;
57
58   void SetSaveV0s                (Bool_t lSaveV0s        = kTRUE ) { fkSaveV0Tree        = lSaveV0s;        }
59   void SetSaveCascades           (Bool_t lSaveCascades   = kTRUE ) { fkSaveCascadeTree   = lSaveCascades;   }
60   
61 //---------------------------------------------------------------------------------------
62   //Task Configuration: Meant to enable quick re-execution of vertexer if needed
63   void SetRunVertexers ( Bool_t lRunVertexers = kTRUE) { fkRunVertexers = lRunVertexers; }
64 //---------------------------------------------------------------------------------------
65   //Task Configuration: Skip Event Selections after trigger (VZERO test) 
66   void SetSkipEventSelection ( Bool_t lSkipEventSelection = kTRUE) { fkSkipEventSelection = lSkipEventSelection; }
67 //---------------------------------------------------------------------------------------
68 //Setters for the V0 Vertexer Parameters
69   void SetV0VertexerMaxChisquare   ( Double_t lParameter ){ fV0VertexerSels[0] = lParameter; }
70   void SetV0VertexerDCAFirstToPV   ( Double_t lParameter ){ fV0VertexerSels[1] = lParameter; }
71   void SetV0VertexerDCASecondtoPV  ( Double_t lParameter ){ fV0VertexerSels[2] = lParameter; }
72   void SetV0VertexerDCAV0Daughters ( Double_t lParameter ){ fV0VertexerSels[3] = lParameter; }
73   void SetV0VertexerCosinePA       ( Double_t lParameter ){ fV0VertexerSels[4] = lParameter; }
74   void SetV0VertexerMinRadius      ( Double_t lParameter ){ fV0VertexerSels[5] = lParameter; }
75   void SetV0VertexerMaxRadius      ( Double_t lParameter ){ fV0VertexerSels[6] = lParameter; }
76 //---------------------------------------------------------------------------------------
77 //Setters for the Cascade Vertexer Parameters
78   void SetCascVertexerMaxChisquare         ( Double_t lParameter ){ fCascadeVertexerSels[0] = lParameter; } 
79   void SetCascVertexerMinV0ImpactParameter ( Double_t lParameter ){ fCascadeVertexerSels[1] = lParameter; } 
80   void SetCascVertexerV0MassWindow         ( Double_t lParameter ){ fCascadeVertexerSels[2] = lParameter; } 
81   void SetCascVertexerDCABachToPV          ( Double_t lParameter ){ fCascadeVertexerSels[3] = lParameter; } 
82   void SetCascVertexerDCACascadeDaughters  ( Double_t lParameter ){ fCascadeVertexerSels[4] = lParameter; }
83   void SetCascVertexerCascadeCosinePA      ( Double_t lParameter ){ fCascadeVertexerSels[5] = lParameter; }  
84   void SetCascVertexerCascadeMinRadius     ( Double_t lParameter ){ fCascadeVertexerSels[6] = lParameter; }  
85   void SetCascVertexerCascadeMaxRadius     ( Double_t lParameter ){ fCascadeVertexerSels[7] = lParameter; }  
86 //---------------------------------------------------------------------------------------
87   
88  private:
89         // Note : In ROOT, "//!" means "do not stream the data from Master node to Worker node" ...
90         // your data member object is created on the worker nodes and streaming is not needed.
91         // http://root.cern.ch/download/doc/11InputOutput.pdf, page 14
92   TList  *fListHist;  //! List of Cascade histograms
93   TTree  *fTreeEvent;              //! Output Tree, Events
94   TTree  *fTreeV0;              //! Output Tree, V0s
95   TTree  *fTreeCascade;              //! Output Tree, Cascades
96
97   AliPIDResponse *fPIDResponse;     // PID response object
98   AliESDtrackCuts *fESDtrackCuts;   // ESD track cuts used for primary track definition
99   AliPPVsMultUtils *fPPVsMultUtils; //
100   AliAnalysisUtils *fUtils;         // analysis utils (for MV pileup selection)
101
102   //Objects Controlling Task Behaviour 
103   Bool_t fkSaveV0Tree;              //if true, save TTree
104   Bool_t fkSaveCascadeTree;         //if true, save TTree
105
106   //Objects Controlling Task Behaviour: has to be streamed! 
107   Bool_t    fkRunVertexers;           // if true, re-run vertexer with loose cuts *** only for CASCADES! *** 
108   Bool_t    fkSkipEventSelection;     // if true, will only perform TRIGGER selection (currently kMB, to change) 
109   Double_t  fV0VertexerSels[7];        // Array to store the 7 values for the different selections V0 related
110   Double_t  fCascadeVertexerSels[8];   // Array to store the 8 values for the different selections Casc. related
111
112 //===========================================================================================
113 //   Variables for Event Tree
114 //===========================================================================================
115   Float_t fAmplitude_V0A;   //!
116   Float_t fAmplitude_V0C;   //! 
117   Float_t fAmplitude_V0AEq; //!
118   Float_t fAmplitude_V0CEq; //! 
119   Float_t fCentrality_V0A;         //! 
120   Float_t fCentrality_V0C;         //! 
121   Float_t fCentrality_V0M;         //! 
122   Float_t fCentrality_V0AEq;       //! 
123   Float_t fCentrality_V0CEq;       //! 
124   Float_t fCentrality_V0MEq;       //!
125   Float_t fCustomCentrality_V0M; //!
126   Float_t fCustomCentrality_V0MEq; //!
127   Int_t fRefMultEta5;              //!
128   Int_t fRefMultEta8;              //!   
129   Int_t fRunNumber;                //!
130     
131     //Event Characterization Variables - optional
132     Bool_t fEvSel_HasAtLeastSPDVertex;      //!
133     Bool_t fEvSel_VtxZCut;                  //!
134     Bool_t fEvSel_IsNotPileup;              //!
135     Bool_t fEvSel_IsNotPileupMV;            //!
136     Bool_t fEvSel_IsNotPileupInMultBins;    //!
137     Bool_t fEvSel_HasVtxContributor;        //!
138     Bool_t fEvSel_Triggered;                //!
139     
140     //Other Selections: more dedicated filtering to be studied!
141     Int_t fEvSel_nTracklets;              //!
142     Int_t fEvSel_nSPDClusters;            //!
143     Float_t fEvSel_VtxZ; //! the actual value
144     
145
146 //===========================================================================================
147 //   Variables for V0 Tree
148 //===========================================================================================
149         Float_t fTreeVariableChi2V0;         //!
150         Float_t fTreeVariableDcaV0Daughters; //!
151         Float_t fTreeVariableDcaV0ToPrimVertex; //!
152         Float_t fTreeVariableDcaPosToPrimVertex; //!
153         Float_t fTreeVariableDcaNegToPrimVertex; //!
154         Float_t fTreeVariableV0CosineOfPointingAngle; //!
155         Float_t fTreeVariableV0Radius; //!
156         Float_t fTreeVariablePt; //!
157         Float_t fTreeVariableRapK0Short; //!
158         Float_t fTreeVariableRapLambda; //!
159         Float_t fTreeVariableInvMassK0s; //!
160         Float_t fTreeVariableInvMassLambda; //!
161         Float_t fTreeVariableInvMassAntiLambda; //!
162         Float_t fTreeVariableAlphaV0; //!
163         Float_t fTreeVariablePtArmV0;//!
164         Float_t fTreeVariableNegEta; //!
165         Float_t fTreeVariablePosEta; //!
166
167         Float_t fTreeVariableNSigmasPosProton; //!
168         Float_t fTreeVariableNSigmasPosPion; //! 
169         Float_t fTreeVariableNSigmasNegProton; //!
170         Float_t fTreeVariableNSigmasNegPion; //! 
171         
172         Float_t fTreeVariableDistOverTotMom;//!
173         Int_t   fTreeVariableLeastNbrCrossedRows;//!
174         Float_t fTreeVariableLeastRatioCrossedRowsOverFindable;//!
175
176   //Event Multiplicity Variables 
177   Float_t fTreeVariableCentV0A;    //!
178   Float_t fTreeVariableCentV0C;    //!
179   Float_t fTreeVariableCentV0M;    //!
180   Float_t fTreeVariableCentV0AEq;  //!
181   Float_t fTreeVariableCentV0CEq;  //!
182   Float_t fTreeVariableCentV0MEq;  //!
183   Float_t fTreeVariableAmpV0A;     //!
184   Float_t fTreeVariableAmpV0C;     //!
185   Float_t fTreeVariableAmpV0AEq;   //!
186   Float_t fTreeVariableAmpV0CEq;   //!
187   Int_t   fTreeVariableRefMultEta8;  //!
188   Int_t   fTreeVariableRefMultEta5;  //!
189   Int_t   fTreeVariableRunNumber; //! //want to re-quantile per run? here's your ticket
190
191 //===========================================================================================
192 //   Variables for Cascade Candidate Tree
193 //===========================================================================================
194   Int_t fTreeCascVarCharge;         //! 
195   Float_t fTreeCascVarMassAsXi;     //! 
196   Float_t fTreeCascVarMassAsOmega;  //! 
197   Float_t fTreeCascVarPt;           //!
198   Float_t fTreeCascVarRapXi;        //!
199   Float_t fTreeCascVarRapOmega;     //!
200   Float_t fTreeCascVarNegEta;       //!
201   Float_t fTreeCascVarPosEta;       //!
202   Float_t fTreeCascVarBachEta;      //!
203   Float_t fTreeCascVarDCACascDaughters; //!
204   Float_t fTreeCascVarDCABachToPrimVtx; //!
205   Float_t fTreeCascVarDCAV0Daughters;   //!
206   Float_t fTreeCascVarDCAV0ToPrimVtx;   //!
207   Float_t fTreeCascVarDCAPosToPrimVtx;  //!
208   Float_t fTreeCascVarDCANegToPrimVtx;  //!
209   Float_t fTreeCascVarCascCosPointingAngle;         //!
210   Float_t fTreeCascVarCascRadius;                   //!
211   Float_t fTreeCascVarV0Mass;                       //!
212   Float_t fTreeCascVarV0CosPointingAngle;           //!
213   Float_t fTreeCascVarV0CosPointingAngleSpecial;    //!
214   Float_t fTreeCascVarV0Radius;                     //!
215   Int_t   fTreeCascVarLeastNbrClusters;             //!
216   Float_t fTreeCascVarDistOverTotMom;               //!
217
218   //TPC dEdx 
219   Float_t fTreeCascVarNegNSigmaPion;   //!
220   Float_t fTreeCascVarNegNSigmaProton; //!
221   Float_t fTreeCascVarPosNSigmaPion;   //! 
222   Float_t fTreeCascVarPosNSigmaProton; //! 
223   Float_t fTreeCascVarBachNSigmaPion;  //! 
224   Float_t fTreeCascVarBachNSigmaKaon;  //! 
225
226   //Event Multiplicity Variables 
227   Float_t fTreeCascVarCentV0A;    //!
228   Float_t fTreeCascVarCentV0C;    //!
229   Float_t fTreeCascVarCentV0M;    //!
230   Float_t fTreeCascVarCentV0AEq;  //!
231   Float_t fTreeCascVarCentV0CEq;  //!
232   Float_t fTreeCascVarCentV0MEq;  //!
233   Float_t fTreeCascVarAmpV0A;     //!
234   Float_t fTreeCascVarAmpV0C;     //!
235   Float_t fTreeCascVarAmpV0AEq;   //!
236   Float_t fTreeCascVarAmpV0CEq;   //!
237   Int_t fTreeCascVarRefMultEta8;  //!
238   Int_t fTreeCascVarRefMultEta5;  //!
239   Int_t fTreeCascVarRunNumber;    //! //want to re-quantile per run? here's your ticket
240   
241 //===========================================================================================
242 //   Histograms
243 //===========================================================================================
244
245   TH1D *fHistEventCounter; //! 
246
247    AliAnalysisTaskStrangenessVsMultiplicity(const AliAnalysisTaskStrangenessVsMultiplicity&);            // not implemented
248    AliAnalysisTaskStrangenessVsMultiplicity& operator=(const AliAnalysisTaskStrangenessVsMultiplicity&); // not implemented
249    
250    ClassDef(AliAnalysisTaskStrangenessVsMultiplicity, 11);
251 };
252
253 #endif