#ifndef HCHANNELLISTMAKER_H
#define HCHANNELLISTMAKER_H
#include "TObject.h"
#include "TH1.h"
#include "hhypbljvpidlist.h"
class HChannelListMaker : public TObject
{
enum {codeMul = 50};
enum {limProng = 10,
chNmbMaxTmp = 15000
};
enum {decayNmbMax = 10, maxDecayedParticles = 30};
enum tChannelType {charged,neutral};
protected:
HHypBljvPidList bLib;
public:
HChannelListMaker ();
virtual ~HChannelListMaker (void);
Bool_t makeChannelList (Int_t maxProng, Int_t beamN, Float_t Ek, Int_t targN,
Float_t regDist, Bool_t allChargedParticlesAreRegistered,
Int_t maxChNmb, Int_t* numberOfChannels, Double_t* chCodeList, TString* chLineList,
Int_t* pNmb, Int_t* posPID, Int_t* nNmb, Int_t* negPID, Int_t* tNmb, Int_t* totPID);
Double_t getChannelCode (Int_t prong, Int_t* digit, Int_t missaPid);
Int_t getMissaPid (Double_t chCode);
private:
tPhysProp Phys;
struct tChannel
{tChannelType channelType;
Int_t prong;
Double_t code;
Int_t pID[limProng+2];
};
struct tChList
{Int_t chNmb;
tChannel ch[chNmbMaxTmp+1];
};
Int_t idx,idxNew;
tChList chList[2];
Int_t prong,nLngth;
Int_t num,neutralIndex;
Int_t ndex[limProng+1];
Double_t newCodeOut,newCode;
struct tDecay
{Int_t prong;
Int_t pID[limProng+1];
};
struct tDecPart
{Int_t pID;
Float_t cTau;
Int_t decaysNmb;
tDecay decay[decayNmbMax+1];
};
Int_t decPartsNmb;
tDecPart decPart[maxDecayedParticles+1];
Int_t getPid (const Char_t* nomen);
Int_t getNextCharged (Int_t pid);
void addPart (Int_t partIndex, Int_t* dim, Int_t* pidList);
Double_t sqr (Double_t value);
void getDecayList ();
Bool_t newChannelFound (Double_t newCodeOut);
void sortDigit (Int_t n, Int_t* A);
void addNewChannel (Int_t prong, Int_t* digit, Double_t newCodeOut,
tChannelType channelType, Float_t massSum, FILE* otp);
void copyChString (Int_t idxFrom, Int_t chNFrom, Int_t idxTo, Int_t chNTo);
void printChString (const Char_t* marker, Int_t idx, Int_t chN, FILE* otp);
void typeChString (const Char_t* marker, Int_t idx, Int_t chN);
void shiftParticleToEnde (Int_t idxNew, Int_t newChN, Int_t pos);
void printChannelCodes (Int_t idx, Int_t chN, FILE* otp);
void printChannelList (Int_t idx, FILE* otp);
void typeChannelCodes (Int_t idx, Int_t chN);
void typeChannelList (Int_t idx);
void copyChannel (tChannel* chFrom, tChannel* chTo);
Bool_t validParticle (Int_t pid);
ClassDef(HChannelListMaker,0)
};
#endif
Last change: Sat May 22 12:53:48 2010
Last generated: 2010-05-22 12:53
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.