#include "QSigExPDFs.h"

QSigExPDFs


class description - header file - source file - inheritance tree (.pdf)

class QSigExPDFs : public QSigExDirHandler

Inheritance Chart:
TObject
<-
QSigExDirHandler
<-
QSigExPDFs
<-
QSigExStdPDFs
QSigExTTreePDF
 
    This is an abstract class, constructors will not be documented.
    Look at the header to check for available constructors.


    protected:
void CheckCuts() const virtual void FormatDir() virtual QSigExDis* GetFunction(const QList<TString>& pdfentry, TDirectory* fluxdir, const TCut& fgcuts, QList<TString>* inputs, Bool_t* pdfneedscuts) virtual const Char_t* GetPDFName(Int_t i) public:
virtual ~QSigExPDFs() virtual void AddPDF(Int_t flags, const Char_t* type, const Char_t* fgroup, const Char_t* sgroup, const Char_t* param1 = "NULL", const Char_t* param2 = "NULL", const Char_t* param3 = "NULL", const Char_t* param4 = "NULL", const Char_t* param5 = "NULL", const Char_t* param6 = "NULL", const Char_t* param7 = "NULL", const Char_t* param8 = "NULL") static TClass* Class() virtual void CleanDir() virtual void ClearCardBuf() virtual void DelPDF(const Char_t* fgroup, const Char_t* sgroup, const Char_t* pdfname) virtual Int_t Get() virtual TClass* IsA() const virtual void LoadCardFile(const Char_t* cardfilename = "NULL") virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b)

Data Members

    private:
TDirectory* fPDFsDir TDirectory that contains the pdfs protected:
QList<QList<TString> > fPDFCard List of pdfs in card file format

Class Description

                                                                      
 QSigExPDFs                                                           
                                                                      
 This abstract base class uses a card file to create a set of         
 marginal PDFs.  Binned/unbinned functions are loaded via derived     
 class GetFunction member function (GetFunction is a pure virtual     
 member function of QSigExPDFs) and returned to QSigExPDFs class.     
 Then, cuts defined in the TDirectory structure are applied (or not,  
 depending on the derived class) and the functions are normalized.    
                                                                      

void FormatDir()
This protected member function gives to the fMyDir TDirectory the structure
that is needed to store the information produced by this class. It creates
directory PDFs into fMyDir.
void CleanDir()
This public member function reinitializes the part of the fMyDir directory
structure that belongs to QSigExPDFs. It removes the PDFs directories owned
by the class and calls FormatDir.
void ClearCardBuf()
This member function clears the internal variables used to store the
configuration information of this class in card file format 
void LoadCardFile(const Char_t* cardfilename)
This public member function reads the card file with filename cardfilename
and saves the information in QSigExPDFs internal member variables.

For the sake of flexibility, the card file entry format is not entirely
defined by QSigExPDFs. Only the firt 5 fields, including the keyword, have a
fixed meaning. For documentation about the other fields, refer to the
GetFunction member function of the appropriate derived class.

Syntax of card file entries: 
pdf  [flags]  [typeid]  [fgroup]  [sgroup]  [...]
where [typeid] is the identifier used by derived classes validate
the PDF type, where [fgroup] is the flux group of the PDF and [sgroup] its
systematic group.

[flags] specifies different options related to PDF activation and normalization.
Flags can be combined using a bitwise "OR" operator. The following values are
implemented in QSigExPDFs:

1: The PDF entry is active
2: The PDF should not be normalized
More significant bits are passed to the function QSigExDis::Normalize. Please
refer to the documentation of the QSigExDis derived classes.

About the PDFs inputs:
Depending on the type of PDF, a pdf entry contains one ore more fields that
specify the inputs to the PDF. These fields can be of 2 types:
-They can be branch names of the data TTree
-They can be equivalence names
In both cases, for all QSigExPDFs derived classes that let QSigExPDFs
normalize the PDFs, it's IMPORTANT that all the cut expressions that contain
the PDFs input names don't contain ANY OTHER VARIABLE.
Int_t Get()
This function uses the PDF entries stored in the internal member variables
of this class to load, apply cuts, normalize and store a set of marginal
PDFs in a subfolder of "PDFs" TDirectory in the TDirectory structure. The
resulting PDFs are instances of a class derived from QSigExDis. 

Each PDF is located in a TDirectory having the same name than the PDF. This
TDirectory is stored in another TDirectory named according to the PDF
systematic group.  Finally, this systematic TDirectory is placed in another
TDirectory named according to the flux group of the PDF. 

The function returns the number of PDFs that have been loaded 
void DelPDF(const Char_t* fgroup, const Char_t* sgroup, const Char_t* pdfname)
This function removes a PDF from the TDirectory structure and from the card file entries in the
internal member variables, given its flux group, its systematics groups and its name
void AddPDF(Int_t flags, const Char_t* type, const Char_t* fgroup, const Char_t* sgroup, const Char_t* param1, const Char_t* param2, const Char_t* param3, const Char_t* param4, const Char_t* param5, const Char_t* param6, const Char_t* param7, const Char_t* param8)
This function adds a PDF entry in the internal member variables. The format of the arguments is descibed in QSigExFit::LoadCardFile.
void CheckCuts()
Check if the TDirectories "Cuts Expressions" and "Equivalences" exist
virtual ~QSigExPDFs()


{fPDFsDir=NULL;}
QSigExDis* GetFunction(const QList<TString>& pdfentry, TDirectory* fluxdir, const TCut& fgcuts, QList<TString>* inputs, Bool_t *pdfneedscuts)

const Char_t* GetPDFName(Int_t i)


Author: Pierre-Luc Drouin
Last update: Fri Nov 17 16:35:14 2006


ROOT page - Class index - Class Hierarchy - Top of the page

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.