Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/root/RooSpHarmonic.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*****************************************************************************
0002  * Project: RooFit                                                           *
0003  * Package: RooFitModels                                                     *
0004  *    File: $Id$
0005  * Authors:                                                                  *
0006  *   GR, Gerhard Raven,   Nikhef & VU, Gerhard.Raven@nikhef.nl
0007  *                                                                           *
0008  * Copyright (c) 2010, Nikhef & VU. All rights reserved.
0009  *                                                                           *
0010  * Redistribution and use in source and binary forms,                        *
0011  * with or without modification, are permitted according to the terms        *
0012  * listed in LICENSE (http://roofit.sourceforge.net/license.txt)             *
0013  *****************************************************************************/
0014 #ifndef ROO_SPHARMONIC
0015 #define ROO_SPHARMONIC
0016 
0017 #include "RooLegendre.h"
0018 #include "RooRealProxy.h"
0019 
0020 class RooSpHarmonic : public RooLegendre {
0021 public:
0022   RooSpHarmonic() ;
0023   RooSpHarmonic(const char *name, const char *title, RooAbsReal& ctheta, RooAbsReal& phi, int l, int m);
0024   RooSpHarmonic(const char *name, const char *title, RooAbsReal& ctheta, RooAbsReal& phi, int l1, int m1, int l2, int m2);
0025 
0026   RooSpHarmonic(const RooSpHarmonic& other, const char *name = nullptr);
0027   TObject* clone(const char* newname) const override { return new RooSpHarmonic(*this, newname); }
0028 
0029   Int_t getAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars, const char* rangeName=nullptr) const override ;
0030   double analyticalIntegral(Int_t code, const char* rangeName=nullptr) const override ;
0031 
0032   Int_t getMaxVal( const RooArgSet& vars) const override;
0033   double maxVal( Int_t code) const override;
0034 
0035 private:
0036   RooRealProxy _phi;
0037   double _n;
0038   int _sgn1,_sgn2;
0039 
0040   double evaluate() const override;
0041 
0042   ClassDefOverride(RooSpHarmonic,1) // SpHarmonic polynomial
0043 };
0044 
0045 #endif