]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/STRANGENESS/Cascades/AliAnalysisTaskStrangenessVsMultiplicity.h
Helper class: extra info commit
[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 AliESDEvent;
39 class AliPhysicsSelection;
40 class AliCFContainer;
41
42 //#include "TString.h"
43 //#include "AliESDtrackCuts.h"
44 //#include "AliAnalysisTaskSE.h"
45
46 class AliAnalysisTaskStrangenessVsMultiplicity : public AliAnalysisTaskSE {
47  public:
48   AliAnalysisTaskStrangenessVsMultiplicity();
49   AliAnalysisTaskStrangenessVsMultiplicity(const char *name);
50   virtual ~AliAnalysisTaskStrangenessVsMultiplicity();
51   
52   virtual void   UserCreateOutputObjects();
53   virtual void   UserExec(Option_t *option);
54   virtual void   Terminate(Option_t *);
55   Double_t MyRapidity(Double_t rE, Double_t rPz) const;
56
57   void SetSaveV0s                (Bool_t lSaveV0s        = kTRUE ) { fkSaveV0Tree        = lSaveV0s;        }
58   void SetSaveCascades           (Bool_t lSaveCascades   = kTRUE ) { fkSaveCascadeTree   = lSaveCascades;   }
59   
60 //---------------------------------------------------------------------------------------
61   //Task Configuration: Meant to enable quick re-execution of vertexer if needed
62   void SetRunVertexers ( Bool_t lRunVertexers = kTRUE) { fkRunVertexers = lRunVertexers; }
63 //---------------------------------------------------------------------------------------
64   //Task Configuration: Skip Event Selections after trigger (VZERO test) 
65   void SetSkipEventSelection ( Bool_t lSkipEventSelection = kTRUE) { fkSkipEventSelection = lSkipEventSelection; }
66 //---------------------------------------------------------------------------------------
67 //Setters for the V0 Vertexer Parameters
68   void SetV0VertexerMaxChisquare   ( Double_t lParameter ){ fV0VertexerSels[0] = lParameter; }
69   void SetV0VertexerDCAFirstToPV   ( Double_t lParameter ){ fV0VertexerSels[1] = lParameter; }
70   void SetV0VertexerDCASecondtoPV  ( Double_t lParameter ){ fV0VertexerSels[2] = lParameter; }
71   void SetV0VertexerDCAV0Daughters ( Double_t lParameter ){ fV0VertexerSels[3] = lParameter; }
72   void SetV0VertexerCosinePA       ( Double_t lParameter ){ fV0VertexerSels[4] = lParameter; }
73   void SetV0VertexerMinRadius      ( Double_t lParameter ){ fV0VertexerSels[5] = lParameter; }
74   void SetV0VertexerMaxRadius      ( Double_t lParameter ){ fV0VertexerSels[6] = lParameter; }
75 //---------------------------------------------------------------------------------------
76 //Setters for the Cascade Vertexer Parameters
77   void SetCascVertexerMaxChisquare         ( Double_t lParameter ){ fCascadeVertexerSels[0] = lParameter; } 
78   void SetCascVertexerMinV0ImpactParameter ( Double_t lParameter ){ fCascadeVertexerSels[1] = lParameter; } 
79   void SetCascVertexerV0MassWindow         ( Double_t lParameter ){ fCascadeVertexerSels[2] = lParameter; } 
80   void SetCascVertexerDCABachToPV          ( Double_t lParameter ){ fCascadeVertexerSels[3] = lParameter; } 
81   void SetCascVertexerDCACascadeDaughters  ( Double_t lParameter ){ fCascadeVertexerSels[4] = lParameter; }
82   void SetCascVertexerCascadeCosinePA      ( Double_t lParameter ){ fCascadeVertexerSels[5] = lParameter; }  
83   void SetCascVertexerCascadeMinRadius     ( Double_t lParameter ){ fCascadeVertexerSels[6] = lParameter; }  
84   void SetCascVertexerCascadeMaxRadius     ( Double_t lParameter ){ fCascadeVertexerSels[7] = lParameter; }  
85 //---------------------------------------------------------------------------------------
86   
87  private:
88         // Note : In ROOT, "//!" means "do not stream the data from Master node to Worker node" ...
89         // your data member object is created on the worker nodes and streaming is not needed.
90         // http://root.cern.ch/download/doc/11InputOutput.pdf, page 14
91   TList  *fListHist;  //! List of Cascade histograms
92   TTree  *fTreeEvent;              //! Output Tree, Events
93   TTree  *fTreeV0;              //! Output Tree, V0s
94   TTree  *fTreeCascade;              //! Output Tree, Cascades
95
96   AliPIDResponse *fPIDResponse;     // PID response object
97   AliESDtrackCuts *fESDtrackCuts;   // ESD track cuts used for primary track definition
98
99   //Objects Controlling Task Behaviour 
100   Bool_t fkSaveV0Tree;              //if true, save TTree
101   Bool_t fkSaveCascadeTree;         //if true, save TTree
102
103   //Objects Controlling Task Behaviour: has to be streamed! 
104   Bool_t    fkRunVertexers;           // if true, re-run vertexer with loose cuts *** only for CASCADES! *** 
105   Bool_t    fkSkipEventSelection;     // if true, will only perform TRIGGER selection (currently kMB, to change) 
106   Double_t  fV0VertexerSels[7];        // Array to store the 7 values for the different selections V0 related
107   Double_t  fCascadeVertexerSels[8];   // Array to store the 8 values for the different selections Casc. related
108
109 //===========================================================================================
110 //   Variables for Event Tree
111 //===========================================================================================
112   Float_t fAmplitude_V0A;   //!
113   Float_t fAmplitude_V0C;   //! 
114   Float_t fAmplitude_V0AEq; //!
115   Float_t fAmplitude_V0CEq; //! 
116   Float_t fCentrality_V0A;         //! 
117   Float_t fCentrality_V0C;         //! 
118   Float_t fCentrality_V0M;         //! 
119   Float_t fCentrality_V0AEq;       //! 
120   Float_t fCentrality_V0CEq;       //! 
121   Float_t fCentrality_V0MEq;       //! 
122   Int_t fRefMultEta5;              //!
123   Int_t fRefMultEta8;              //!   
124   Int_t fRunNumber;                //!
125     
126     //Event Characterization Variables - optional
127     Bool_t fEvSel_HasAtLeastSPDVertex;      //!
128     Bool_t fEvSel_VtxZCut;                  //!
129     Bool_t fEvSel_IsNotPileup;              //!
130     Bool_t fEvSel_IsNotPileupInMultBins;    //!
131     Bool_t fEvSel_HasVtxContributor;        //!
132     
133     //Other Selections: more dedicated filtering to be studied!
134     Int_t fEvSel_nTracklets;              //!
135     Int_t fEvSel_nSPDClusters;            //!
136     
137
138 //===========================================================================================
139 //   Variables for V0 Tree
140 //===========================================================================================
141         Float_t fTreeVariableChi2V0;         //!
142         Float_t fTreeVariableDcaV0Daughters; //!
143         Float_t fTreeVariableDcaV0ToPrimVertex; //!
144         Float_t fTreeVariableDcaPosToPrimVertex; //!
145         Float_t fTreeVariableDcaNegToPrimVertex; //!
146         Float_t fTreeVariableV0CosineOfPointingAngle; //!
147         Float_t fTreeVariableV0Radius; //!
148         Float_t fTreeVariablePt; //!
149         Float_t fTreeVariableRapK0Short; //!
150         Float_t fTreeVariableRapLambda; //!
151         Float_t fTreeVariableInvMassK0s; //!
152         Float_t fTreeVariableInvMassLambda; //!
153         Float_t fTreeVariableInvMassAntiLambda; //!
154         Float_t fTreeVariableAlphaV0; //!
155         Float_t fTreeVariablePtArmV0;//!
156         Float_t fTreeVariableNegEta; //!
157         Float_t fTreeVariablePosEta; //!
158
159         Float_t fTreeVariableNSigmasPosProton; //!
160         Float_t fTreeVariableNSigmasPosPion; //! 
161         Float_t fTreeVariableNSigmasNegProton; //!
162         Float_t fTreeVariableNSigmasNegPion; //! 
163         
164         Float_t fTreeVariableDistOverTotMom;//!
165         Int_t   fTreeVariableLeastNbrCrossedRows;//!
166         Float_t fTreeVariableLeastRatioCrossedRowsOverFindable;//!
167
168   //Event Multiplicity Variables 
169   Float_t fTreeVariableCentV0A;    //!
170   Float_t fTreeVariableCentV0C;    //!
171   Float_t fTreeVariableCentV0M;    //!
172   Float_t fTreeVariableCentV0AEq;  //!
173   Float_t fTreeVariableCentV0CEq;  //!
174   Float_t fTreeVariableCentV0MEq;  //!
175   Float_t fTreeVariableAmpV0A;     //!
176   Float_t fTreeVariableAmpV0C;     //!
177   Float_t fTreeVariableAmpV0AEq;   //!
178   Float_t fTreeVariableAmpV0CEq;   //!
179   Int_t   fTreeVariableRefMultEta8;  //!
180   Int_t   fTreeVariableRefMultEta5;  //!
181   Int_t   fTreeVariableRunNumber; //! //want to re-quantile per run? here's your ticket
182
183 //===========================================================================================
184 //   Variables for Cascade Candidate Tree
185 //===========================================================================================
186   Int_t fTreeCascVarCharge;         //! 
187   Float_t fTreeCascVarMassAsXi;     //! 
188   Float_t fTreeCascVarMassAsOmega;  //! 
189   Float_t fTreeCascVarPt;           //!
190   Float_t fTreeCascVarRapXi;        //!
191   Float_t fTreeCascVarRapOmega;     //!
192   Float_t fTreeCascVarNegEta;       //!
193   Float_t fTreeCascVarPosEta;       //!
194   Float_t fTreeCascVarBachEta;      //!
195   Float_t fTreeCascVarDCACascDaughters; //!
196   Float_t fTreeCascVarDCABachToPrimVtx; //!
197   Float_t fTreeCascVarDCAV0Daughters;   //!
198   Float_t fTreeCascVarDCAV0ToPrimVtx;   //!
199   Float_t fTreeCascVarDCAPosToPrimVtx;  //!
200   Float_t fTreeCascVarDCANegToPrimVtx;  //!
201   Float_t fTreeCascVarCascCosPointingAngle;         //!
202   Float_t fTreeCascVarCascRadius;                   //!
203   Float_t fTreeCascVarV0Mass;                       //!
204   Float_t fTreeCascVarV0CosPointingAngle;           //!
205   Float_t fTreeCascVarV0CosPointingAngleSpecial;    //!
206   Float_t fTreeCascVarV0Radius;                     //!
207   Int_t   fTreeCascVarLeastNbrClusters;             //!
208   Float_t fTreeCascVarDistOverTotMom;               //!
209
210   //TPC dEdx 
211   Float_t fTreeCascVarNegNSigmaPion;   //!
212   Float_t fTreeCascVarNegNSigmaProton; //!
213   Float_t fTreeCascVarPosNSigmaPion;   //! 
214   Float_t fTreeCascVarPosNSigmaProton; //! 
215   Float_t fTreeCascVarBachNSigmaPion;  //! 
216   Float_t fTreeCascVarBachNSigmaKaon;  //! 
217
218   //Event Multiplicity Variables 
219   Float_t fTreeCascVarCentV0A;    //!
220   Float_t fTreeCascVarCentV0C;    //!
221   Float_t fTreeCascVarCentV0M;    //!
222   Float_t fTreeCascVarCentV0AEq;  //!
223   Float_t fTreeCascVarCentV0CEq;  //!
224   Float_t fTreeCascVarCentV0MEq;  //!
225   Float_t fTreeCascVarAmpV0A;     //!
226   Float_t fTreeCascVarAmpV0C;     //!
227   Float_t fTreeCascVarAmpV0AEq;   //!
228   Float_t fTreeCascVarAmpV0CEq;   //!
229   Int_t fTreeCascVarRefMultEta8;  //!
230   Int_t fTreeCascVarRefMultEta5;  //!
231   Int_t fTreeCascVarRunNumber;    //! //want to re-quantile per run? here's your ticket
232   
233 //===========================================================================================
234 //   Histograms
235 //===========================================================================================
236
237   TH1D *fHistEventCounter; //! 
238
239    AliAnalysisTaskStrangenessVsMultiplicity(const AliAnalysisTaskStrangenessVsMultiplicity&);            // not implemented
240    AliAnalysisTaskStrangenessVsMultiplicity& operator=(const AliAnalysisTaskStrangenessVsMultiplicity&); // not implemented
241    
242    ClassDef(AliAnalysisTaskStrangenessVsMultiplicity, 11);
243 };
244
245 #endif