fCentralityEstimator("V0M"),
fkpAVertexSelection( kFALSE ),
fEtaRefMult ( 0.5 ),
+ fkRunVertexers ( kFALSE ),
//------------------------------------------------
// Tree Variables
//------------------------------------------------
fCentralityEstimator("V0M"),
fkpAVertexSelection( kFALSE ),
fEtaRefMult ( 0.5 ),
+ fkRunVertexers ( kFALSE ),
//------------------------------------------------
// Tree Variables
//------------------------------------------------
//Set Variables for re-running the cascade vertexers (as done for MS paper)
// New Loose : 1st step for the 7 TeV pp analysis
- /*
- fV0Sels[0] = 33. ; // max allowed chi2
- fV0Sels[1] = 0.02; // min allowed impact parameter for the 1st daughter (LHC09a4 : 0.05)
- fV0Sels[2] = 0.02; // min allowed impact parameter for the 2nd daughter (LHC09a4 : 0.05)
- fV0Sels[3] = 2.0 ; // max allowed DCA between the daughter tracks (LHC09a4 : 0.5)
- fV0Sels[4] = 0.95; // min allowed cosine of V0's pointing angle (LHC09a4 : 0.99)
- fV0Sels[5] = 1.0 ; // min radius of the fiducial volume (LHC09a4 : 0.2)
- fV0Sels[6] = 100. ; // max radius of the fiducial volume (LHC09a4 : 100.0)
- fCascSels[0] = 33. ; // max allowed chi2 (same as PDC07)
- fCascSels[1] = 0.05 ; // min allowed V0 impact parameter (PDC07 : 0.05 / LHC09a4 : 0.025 )
- fCascSels[2] = 0.010; // "window" around the Lambda mass (PDC07 : 0.008 / LHC09a4 : 0.010 )
- fCascSels[3] = 0.03 ; // min allowed bachelor's impact parameter (PDC07 : 0.035 / LHC09a4 : 0.025 )
- fCascSels[4] = 2.0 ; // max allowed DCA between the V0 and the bachelor (PDC07 : 0.1 / LHC09a4 : 0.2 )
- fCascSels[5] = 0.95 ; // min allowed cosine of the cascade pointing angle (PDC07 : 0.9985 / LHC09a4 : 0.998 )
- fCascSels[6] = 0.4 ; // min radius of the fiducial volume (PDC07 : 0.9 / LHC09a4 : 0.2 )
- fCascSels[7] = 100. ; // max radius of the fiducial volume (PDC07 : 100 / LHC09a4 : 100 )
- */
+ fV0VertexerSels[0] = 33. ; // max allowed chi2
+ fV0VertexerSels[1] = 0.02; // min allowed impact parameter for the 1st daughter (LHC09a4 : 0.05)
+ fV0VertexerSels[2] = 0.02; // min allowed impact parameter for the 2nd daughter (LHC09a4 : 0.05)
+ fV0VertexerSels[3] = 2.0 ; // max allowed DCA between the daughter tracks (LHC09a4 : 0.5)
+ fV0VertexerSels[4] = 0.95; // min allowed cosine of V0's pointing angle (LHC09a4 : 0.99)
+ fV0VertexerSels[5] = 1.0 ; // min radius of the fiducial volume (LHC09a4 : 0.2)
+ fV0VertexerSels[6] = 200. ; // max radius of the fiducial volume (LHC09a4 : 100.0)
+
+ fCascadeVertexerSels[0] = 33. ; // max allowed chi2 (same as PDC07)
+ fCascadeVertexerSels[1] = 0.05 ; // min allowed V0 impact parameter (PDC07 : 0.05 / LHC09a4 : 0.025 )
+ fCascadeVertexerSels[2] = 0.010; // "window" around the Lambda mass (PDC07 : 0.008 / LHC09a4 : 0.010 )
+ fCascadeVertexerSels[3] = 0.03 ; // min allowed bachelor's impact parameter (PDC07 : 0.035 / LHC09a4 : 0.025 )
+ fCascadeVertexerSels[4] = 2.0 ; // max allowed DCA between the V0 and the bachelor (PDC07 : 0.1 / LHC09a4 : 0.2 )
+ fCascadeVertexerSels[5] = 0.95 ; // min allowed cosine of the cascade pointing angle (PDC07 : 0.9985 / LHC09a4 : 0.998 )
+ fCascadeVertexerSels[6] = 0.4 ; // min radius of the fiducial volume (PDC07 : 0.9 / LHC09a4 : 0.2 )
+ fCascadeVertexerSels[7] = 100. ; // max radius of the fiducial volume (PDC07 : 100 / LHC09a4 : 100 )
+
// Output slot #0 writes into a TList container (Cascade)
DefineOutput(1, TList::Class());
DefineOutput(2, TTree::Class());
//------------------------------------------------
// Rerun cascade vertexer!
//------------------------------------------------
-/*
- lESDevent->ResetCascades();
- lESDevent->ResetV0s();
-
- AliV0vertexer lV0vtxer;
- AliCascadeVertexer lCascVtxer;
-
- lV0vtxer.SetDefaultCuts(fV0Sels);
- lCascVtxer.SetDefaultCuts(fCascSels);
-
- lV0vtxer.Tracks2V0vertices(lESDevent);
- lCascVtxer.V0sTracks2CascadeVertices(lESDevent);
-*/
+
+ if( fkRunVertexers ){
+ lESDevent->ResetCascades();
+ lESDevent->ResetV0s();
+
+ AliV0vertexer lV0vtxer;
+ AliCascadeVertexer lCascVtxer;
+
+ lV0vtxer.SetDefaultCuts(fV0VertexerSels);
+ lCascVtxer.SetDefaultCuts(fCascadeVertexerSels);
+
+ lV0vtxer.Tracks2V0vertices(lESDevent);
+ lCascVtxer.V0sTracks2CascadeVertices(lESDevent);
+ }
//------------------------------------------------
// After Trigger Selection
//------------------------------------------------
void SetCentralityEstimator (TString lCentralityEstimator = "V0M" ) { fCentralityEstimator = lCentralityEstimator; }
void SetpAVertexSelection (Bool_t lpAVertexSelection = kTRUE) {fkpAVertexSelection = lpAVertexSelection; }
void SetEtaRefMult ( Double_t lEtaRefMult = 0.5 ) { fEtaRefMult = lEtaRefMult; }
+
+//---------------------------------------------------------------------------------------
+ //Task Configuration: Meant to enable quick re-execution of vertexer if needed
+ void SetRunVertexers ( Bool_t lRunVertexers = kTRUE) { fkRunVertexers = lRunVertexers; }
+//---------------------------------------------------------------------------------------
+//Setters for the V0 Vertexer Parameters
+ void SetV0VertexerMaxChisquare ( Double_t lParameter ){ fV0VertexerSels[0] = lParameter; }
+ void SetV0VertexerDCAFirstToPV ( Double_t lParameter ){ fV0VertexerSels[1] = lParameter; }
+ void SetV0VertexerDCASecondtoPV ( Double_t lParameter ){ fV0VertexerSels[2] = lParameter; }
+ void SetV0VertexerDCAV0Daughters ( Double_t lParameter ){ fV0VertexerSels[3] = lParameter; }
+ void SetV0VertexerCosinePA ( Double_t lParameter ){ fV0VertexerSels[4] = lParameter; }
+ void SetV0VertexerMinRadius ( Double_t lParameter ){ fV0VertexerSels[5] = lParameter; }
+ void SetV0VertexerMaxRadius ( Double_t lParameter ){ fV0VertexerSels[6] = lParameter; }
+//---------------------------------------------------------------------------------------
+//Setters for the Cascade Vertexer Parameters
+ void SetCascVertexerMaxChisquare ( Double_t lParameter ){ fCascadeVertexerSels[0] = lParameter; }
+ void SetCascVertexerMinV0ImpactParameter ( Double_t lParameter ){ fCascadeVertexerSels[1] = lParameter; }
+ void SetCascVertexerV0MassWindow ( Double_t lParameter ){ fCascadeVertexerSels[2] = lParameter; }
+ void SetCascVertexerDCABachToPV ( Double_t lParameter ){ fCascadeVertexerSels[3] = lParameter; }
+ void SetCascVertexerDCACascadeDaughters ( Double_t lParameter ){ fCascadeVertexerSels[4] = lParameter; }
+ void SetCascVertexerCascadeCosinePA ( Double_t lParameter ){ fCascadeVertexerSels[5] = lParameter; }
+ void SetCascVertexerCascadeMinRadius ( Double_t lParameter ){ fCascadeVertexerSels[6] = lParameter; }
+ void SetCascVertexerCascadeMaxRadius ( Double_t lParameter ){ fCascadeVertexerSels[7] = lParameter; }
+//---------------------------------------------------------------------------------------
private:
// Note : In ROOT, "//!" means "do not stream the data from Master node to Worker node" ...
// http://root.cern.ch/download/doc/11InputOutput.pdf, page 14
TList *fListHist; //! List of Cascade histograms
TTree *fTreeCascade; //! Output Tree, Cascades
-
//Objects that have to be streamed:
AliPIDResponse *fPIDResponse; // PID response object
//Objects Controlling Task Behaviour
// (have to be streamed too or configuration is lost)
-
Bool_t fkIsNuclear; //if true, replace multiplicity est. by centrality (default FALSE)
Bool_t fkSwitchINT7; //if true, skip FASTOnly (default FALSE)
TString fCentralityEstimator; //Centrality Estimator String value (default V0M)
Bool_t fkpAVertexSelection; //if true, select vertex with pPb Methods
Double_t fEtaRefMult; //Reference multiplicity eta
+ //Objects Controlling Task Behaviour: has to be streamed!
+ Bool_t fkRunVertexers; // if true, re-run vertexer with loose cuts. CARE MUST BE TAKEN in PbPb!
+ Double_t fV0VertexerSels[7]; // Array to store the 7 values for the different selections V0 related
+ Double_t fCascadeVertexerSels[8]; // Array to store the 8 values for the different selections Casc. related
//Double_t fV0Sels[7]; // Array to store the 7 values for the different selections V0 related
//Double_t fCascSels[8]; // Array to store the 8 values for the different selections Casc. related
fCentralityEstimator("V0M"),
fkpAVertexSelection( kFALSE ),
fEtaRefMult ( 0.5 ),
+ fkRunVertexers ( kFALSE ),
//------------------------------------------------
// Tree Variables
//------------------------------------------------
fCentralityEstimator("V0M"),
fkpAVertexSelection( kFALSE ),
fEtaRefMult ( 0.5 ),
+ fkRunVertexers ( kFALSE ),
//------------------------------------------------
// Tree Variables
//------------------------------------------------
//Set Variables for re-running the cascade vertexers (as done for MS paper)
// New Loose : 1st step for the 7 TeV pp analysis
- /*
- fV0Sels[0] = 33. ; // max allowed chi2
- fV0Sels[1] = 0.02; // min allowed impact parameter for the 1st daughter (LHC09a4 : 0.05)
- fV0Sels[2] = 0.02; // min allowed impact parameter for the 2nd daughter (LHC09a4 : 0.05)
- fV0Sels[3] = 2.0 ; // max allowed DCA between the daughter tracks (LHC09a4 : 0.5)
- fV0Sels[4] = 0.95; // min allowed cosine of V0's pointing angle (LHC09a4 : 0.99)
- fV0Sels[5] = 1.0 ; // min radius of the fiducial volume (LHC09a4 : 0.2)
- fV0Sels[6] = 100. ; // max radius of the fiducial volume (LHC09a4 : 100.0)
- fCascSels[0] = 33. ; // max allowed chi2 (same as PDC07)
- fCascSels[1] = 0.05 ; // min allowed V0 impact parameter (PDC07 : 0.05 / LHC09a4 : 0.025 )
- fCascSels[2] = 0.010; // "window" around the Lambda mass (PDC07 : 0.008 / LHC09a4 : 0.010 )
- fCascSels[3] = 0.03 ; // min allowed bachelor's impact parameter (PDC07 : 0.035 / LHC09a4 : 0.025 )
- fCascSels[4] = 2.0 ; // max allowed DCA between the V0 and the bachelor (PDC07 : 0.1 / LHC09a4 : 0.2 )
- fCascSels[5] = 0.95 ; // min allowed cosine of the cascade pointing angle (PDC07 : 0.9985 / LHC09a4 : 0.998 )
- fCascSels[6] = 0.4 ; // min radius of the fiducial volume (PDC07 : 0.9 / LHC09a4 : 0.2 )
- fCascSels[7] = 100. ; // max radius of the fiducial volume (PDC07 : 100 / LHC09a4 : 100 )
- */
+ fV0VertexerSels[0] = 33. ; // max allowed chi2
+ fV0VertexerSels[1] = 0.02; // min allowed impact parameter for the 1st daughter (LHC09a4 : 0.05)
+ fV0VertexerSels[2] = 0.02; // min allowed impact parameter for the 2nd daughter (LHC09a4 : 0.05)
+ fV0VertexerSels[3] = 2.0 ; // max allowed DCA between the daughter tracks (LHC09a4 : 0.5)
+ fV0VertexerSels[4] = 0.95; // min allowed cosine of V0's pointing angle (LHC09a4 : 0.99)
+ fV0VertexerSels[5] = 1.0 ; // min radius of the fiducial volume (LHC09a4 : 0.2)
+ fV0VertexerSels[6] = 200. ; // max radius of the fiducial volume (LHC09a4 : 100.0)
+
+ fCascadeVertexerSels[0] = 33. ; // max allowed chi2 (same as PDC07)
+ fCascadeVertexerSels[1] = 0.05 ; // min allowed V0 impact parameter (PDC07 : 0.05 / LHC09a4 : 0.025 )
+ fCascadeVertexerSels[2] = 0.010; // "window" around the Lambda mass (PDC07 : 0.008 / LHC09a4 : 0.010 )
+ fCascadeVertexerSels[3] = 0.03 ; // min allowed bachelor's impact parameter (PDC07 : 0.035 / LHC09a4 : 0.025 )
+ fCascadeVertexerSels[4] = 2.0 ; // max allowed DCA between the V0 and the bachelor (PDC07 : 0.1 / LHC09a4 : 0.2 )
+ fCascadeVertexerSels[5] = 0.95 ; // min allowed cosine of the cascade pointing angle (PDC07 : 0.9985 / LHC09a4 : 0.998 )
+ fCascadeVertexerSels[6] = 0.4 ; // min radius of the fiducial volume (PDC07 : 0.9 / LHC09a4 : 0.2 )
+ fCascadeVertexerSels[7] = 100. ; // max radius of the fiducial volume (PDC07 : 100 / LHC09a4 : 100 )
+
// Output slot #0 writes into a TList container (Cascade)
DefineOutput(1, TList::Class());
DefineOutput(2, TTree::Class());
//------------------------------------------------
// Rerun cascade vertexer!
//------------------------------------------------
-/*
- lESDevent->ResetCascades();
- lESDevent->ResetV0s();
-
- AliV0vertexer lV0vtxer;
- AliCascadeVertexer lCascVtxer;
-
- lV0vtxer.SetDefaultCuts(fV0Sels);
- lCascVtxer.SetDefaultCuts(fCascSels);
-
- lV0vtxer.Tracks2V0vertices(lESDevent);
- lCascVtxer.V0sTracks2CascadeVertices(lESDevent);
-*/
+
+ if( fkRunVertexers ){
+ lESDevent->ResetCascades();
+ lESDevent->ResetV0s();
+
+ AliV0vertexer lV0vtxer;
+ AliCascadeVertexer lCascVtxer;
+
+ lV0vtxer.SetDefaultCuts(fV0VertexerSels);
+ lCascVtxer.SetDefaultCuts(fCascadeVertexerSels);
+
+ lV0vtxer.Tracks2V0vertices(lESDevent);
+ lCascVtxer.V0sTracks2CascadeVertices(lESDevent);
+ }
//------------------------------------------------
// After Trigger Selection
//------------------------------------------------
void SetpAVertexSelection (Bool_t lpAVertexSelection = kTRUE) {fkpAVertexSelection = lpAVertexSelection; }
void SetEtaRefMult ( Double_t lEtaRefMult = 0.5 ) { fEtaRefMult = lEtaRefMult; }
+//---------------------------------------------------------------------------------------
+ //Task Configuration: Meant to enable quick re-execution of vertexer if needed
+ void SetRunVertexers ( Bool_t lRunVertexers = kTRUE) { fkRunVertexers = lRunVertexers; }
+//---------------------------------------------------------------------------------------
+//Setters for the V0 Vertexer Parameters
+ void SetV0VertexerMaxChisquare ( Double_t lParameter ){ fV0VertexerSels[0] = lParameter; }
+ void SetV0VertexerDCAFirstToPV ( Double_t lParameter ){ fV0VertexerSels[1] = lParameter; }
+ void SetV0VertexerDCASecondtoPV ( Double_t lParameter ){ fV0VertexerSels[2] = lParameter; }
+ void SetV0VertexerDCAV0Daughters ( Double_t lParameter ){ fV0VertexerSels[3] = lParameter; }
+ void SetV0VertexerCosinePA ( Double_t lParameter ){ fV0VertexerSels[4] = lParameter; }
+ void SetV0VertexerMinRadius ( Double_t lParameter ){ fV0VertexerSels[5] = lParameter; }
+ void SetV0VertexerMaxRadius ( Double_t lParameter ){ fV0VertexerSels[6] = lParameter; }
+//---------------------------------------------------------------------------------------
+//Setters for the Cascade Vertexer Parameters
+ void SetCascVertexerMaxChisquare ( Double_t lParameter ){ fCascadeVertexerSels[0] = lParameter; }
+ void SetCascVertexerMinV0ImpactParameter ( Double_t lParameter ){ fCascadeVertexerSels[1] = lParameter; }
+ void SetCascVertexerV0MassWindow ( Double_t lParameter ){ fCascadeVertexerSels[2] = lParameter; }
+ void SetCascVertexerDCABachToPV ( Double_t lParameter ){ fCascadeVertexerSels[3] = lParameter; }
+ void SetCascVertexerDCACascadeDaughters ( Double_t lParameter ){ fCascadeVertexerSels[4] = lParameter; }
+ void SetCascVertexerCascadeCosinePA ( Double_t lParameter ){ fCascadeVertexerSels[5] = lParameter; }
+ void SetCascVertexerCascadeMinRadius ( Double_t lParameter ){ fCascadeVertexerSels[6] = lParameter; }
+ void SetCascVertexerCascadeMaxRadius ( Double_t lParameter ){ fCascadeVertexerSels[7] = lParameter; }
+//---------------------------------------------------------------------------------------
+
private:
// Note : In ROOT, "//!" means "do not stream the data from Master node to Worker node" ...
// your data member object is created on the worker nodes and streaming is not needed.
TString fCentralityEstimator; //Centrality Estimator String value (default V0M)
Bool_t fkpAVertexSelection; //if true, select vertex with pPb Methods
Double_t fEtaRefMult; //Reference multiplicity eta
+ //Objects Controlling Task Behaviour: has to be streamed!
+ Bool_t fkRunVertexers; // if true, re-run vertexer with loose cuts. CARE MUST BE TAKEN in PbPb!
+ Double_t fV0VertexerSels[7]; // Array to store the 7 values for the different selections V0 related
+ Double_t fCascadeVertexerSels[8]; // Array to store the 8 values for the different selections Casc. related
//Double_t fV0Sels[7]; // Array to store the 7 values for the different selections V0 related
//Double_t fCascSels[8]; // Array to store the 8 values for the different selections Casc. related