| 1 |
#ifndef PCUTCONTROL_H |
| 2 |
#define PCUTCONTROL_H |
| 3 |
|
| 4 |
#include <TObject.h> |
| 5 |
#include <iostream> |
| 6 |
#include <TVirtualMC.h> |
| 7 |
#include <TGeoManager.h> |
| 8 |
#include <TList.h> |
| 9 |
|
| 10 |
class pCutControl : public TObject { |
| 11 |
|
| 12 |
private: |
| 13 |
|
| 14 |
Int_t fid; // medium id |
| 15 |
Int_t fid_m ; //medium id in GeoManager |
| 16 |
|
| 17 |
Double_t fCUTGAM, fBCUTE, fCUTELE, fDCUTE, fCUTNEU, |
| 18 |
fCUTHAD, fCUTMUO, fDCUTM, fBCUTM, fPPCUTM, fPAIR, |
| 19 |
fCOMP, fPHOT, fPFIS, fDRAY, fANNI, fBREM, fHADR, |
| 20 |
fMUNU, fDCAY, fLOSS, fMULS; |
| 21 |
|
| 22 |
public: |
| 23 |
|
| 24 |
pCutControl(): |
| 25 |
fid(-1), // must be overwriten for specific media |
| 26 |
fCUTGAM(0.001), |
| 27 |
fBCUTE(0.001), |
| 28 |
fCUTELE(0.001), |
| 29 |
fDCUTE(10000.), |
| 30 |
fCUTNEU(0.01), |
| 31 |
fCUTHAD(0.01), |
| 32 |
fCUTMUO(0.01), |
| 33 |
fDCUTM(10000.), |
| 34 |
fBCUTM(0.001), |
| 35 |
fPPCUTM(0.01), |
| 36 |
fPAIR(1.), |
| 37 |
fCOMP(1.), |
| 38 |
fPHOT(1.), |
| 39 |
fPFIS(0.), |
| 40 |
fDRAY(1.), |
| 41 |
fANNI(1.), |
| 42 |
fBREM(1.), |
| 43 |
fHADR(1.), |
| 44 |
fMUNU(1.), |
| 45 |
fDCAY(1.), |
| 46 |
fLOSS(1.), |
| 47 |
fMULS(1.) |
| 48 |
{ |
| 49 |
fid_m = FindMedia(); |
| 50 |
}; |
| 51 |
|
| 52 |
virtual ~pCutControl(){; }; |
| 53 |
|
| 54 |
pCutControl(Int_t id, |
| 55 |
Double_t CUTGAM, Double_t BCUTE, Double_t CUTELE, Double_t DCUTE, |
| 56 |
Double_t CUTNEU, Double_t CUTHAD, Double_t CUTMUO, Double_t DCUTM, |
| 57 |
Double_t BCUTM, Double_t PPCUTM, Double_t PAIR, Double_t COMP, |
| 58 |
Double_t PHOT, Double_t PFIS, Double_t DRAY, Double_t ANNI, Double_t BREM, |
| 59 |
Double_t HADR, Double_t MUNU, Double_t DCAY, Double_t LOSS, Double_t MULS): |
| 60 |
fid(id), |
| 61 |
fCUTGAM(CUTGAM), |
| 62 |
fBCUTE(BCUTE), |
| 63 |
fCUTELE(CUTELE), |
| 64 |
fDCUTE(DCUTE), |
| 65 |
fCUTNEU(CUTNEU), |
| 66 |
fCUTHAD(CUTHAD), |
| 67 |
fCUTMUO(CUTMUO), |
| 68 |
fDCUTM(DCUTM), |
| 69 |
fBCUTM(BCUTM), |
| 70 |
fPPCUTM(PPCUTM), |
| 71 |
fPAIR(PAIR), |
| 72 |
fCOMP(COMP), |
| 73 |
fPHOT(PHOT), |
| 74 |
fPFIS(PFIS), |
| 75 |
fDRAY(DRAY), |
| 76 |
fANNI(ANNI), |
| 77 |
fBREM(BREM), |
| 78 |
fHADR(HADR), |
| 79 |
fMUNU(MUNU), |
| 80 |
fDCAY(DCAY), |
| 81 |
fLOSS(LOSS), |
| 82 |
fMULS(MULS) |
| 83 |
{ |
| 84 |
fid_m = FindMedia(); |
| 85 |
}; |
| 86 |
|
| 87 |
Int_t GetID(){ return fid; }; |
| 88 |
Double_t GetCUTGAM(){ return fCUTGAM; }; |
| 89 |
Double_t GetBCUTE(){ return fBCUTE; }; |
| 90 |
Double_t GetCUTELE(){ return fCUTELE; }; |
| 91 |
Double_t GetDCUTE(){ return fDCUTE; }; |
| 92 |
Double_t GetCUTNEU(){ return fCUTNEU; }; |
| 93 |
Double_t GetCUTHAD(){ return fCUTHAD; }; |
| 94 |
Double_t GetCUTMUO(){ return fCUTMUO; }; |
| 95 |
Double_t GetDCUTM(){ return fDCUTM; } |
| 96 |
Double_t GetBCUTM(){ return fBCUTM; } |
| 97 |
Double_t GetPPCUTM(){ return fPPCUTM; } |
| 98 |
Double_t GetPAIR(){ return fPAIR; } |
| 99 |
Double_t GetCOMP(){ return fCOMP; } |
| 100 |
Double_t GetPHOT(){ return fPHOT; } |
| 101 |
Double_t GetPFIS(){ return fPFIS; } |
| 102 |
Double_t GetDRAY(){ return fDRAY; } |
| 103 |
Double_t GetANNI(){ return fANNI; } |
| 104 |
Double_t GetBREM(){ return fBREM; } |
| 105 |
Double_t GetHADR(){ return fHADR; } |
| 106 |
Double_t GetMUNU(){ return fMUNU; } |
| 107 |
Double_t GetDCAY(){ return fDCAY; } |
| 108 |
Double_t GetLOSS(){ return fLOSS; } |
| 109 |
Double_t GetMULS(){ return fMULS; } |
| 110 |
|
| 111 |
|
| 112 |
void SetID(Int_t id){ fid = id; }; |
| 113 |
void SetCUTGAM(Double_t CUTGAM){ fCUTGAM = CUTGAM; }; |
| 114 |
void SetBCUTE(Double_t BCUTE ){ fBCUTE = BCUTE; }; |
| 115 |
void SetCUTELE(Double_t CUTELE){ fCUTELE = CUTELE; }; |
| 116 |
void SetDCUTE(Double_t DCUTE){ fDCUTE = DCUTE; }; |
| 117 |
void SetCUTNEU(Double_t CUTNEU){ fCUTNEU = CUTNEU; }; |
| 118 |
void SetCUTHAD(Double_t CUTHAD){ fCUTHAD = CUTHAD; }; |
| 119 |
void SetCUTMUO(Double_t CUTMUO){ fCUTMUO = CUTMUO; }; |
| 120 |
void SetDCUTM(Double_t DCUTM){ fDCUTM = DCUTM; } |
| 121 |
void SetBCUTM(Double_t BCUTM){ fBCUTM = BCUTM; } |
| 122 |
void SetPPCUTM(Double_t PPCUTM){ fPPCUTM = PPCUTM; } |
| 123 |
void SetPAIR(Double_t PAIR){ fPAIR = PAIR; } |
| 124 |
void SetCOMP(Double_t COMP){ fCOMP = COMP; } |
| 125 |
void SetPHOT(Double_t PHOT){ fPHOT = PHOT; } |
| 126 |
void SetPFIS(Double_t PFIS){ fPFIS = PFIS; } |
| 127 |
void SetDRAY(Double_t DRAY){ fDRAY = DRAY; } |
| 128 |
void SetANNI(Double_t ANNI){ fANNI = ANNI; } |
| 129 |
void SetBREM(Double_t BREM){ fBREM = BREM; } |
| 130 |
void SetHADR(Double_t HADR){ fHADR = HADR; } |
| 131 |
void SetMUNU(Double_t MUNU){ fMUNU = MUNU; } |
| 132 |
void SetDCAY(Double_t DCAY){ fDCAY = DCAY; } |
| 133 |
void SetLOSS(Double_t LOSS){ fLOSS = LOSS; } |
| 134 |
void SetMULS(Double_t MULS){ fMULS = MULS; } |
| 135 |
|
| 136 |
Int_t FindMedia(){ |
| 137 |
if(gGeoManager){ |
| 138 |
TList* ls = gGeoManager->GetListOfMedia(); |
| 139 |
for(Int_t i = 0; i<ls->GetEntries(); i++){ |
| 140 |
if( ((TGeoMedium*)ls->At(i))->GetId() == fid ) return i+1; |
| 141 |
} |
| 142 |
} |
| 143 |
return 0; |
| 144 |
} |
| 145 |
|
| 146 |
void SetCuts(){ |
| 147 |
|
| 148 |
|
| 149 |
gMC->Gstpar(fid_m,"CUTGAM",fCUTGAM); |
| 150 |
gMC->Gstpar(fid_m,"BCUTE",fBCUTE); |
| 151 |
gMC->Gstpar(fid_m,"CUTELE",fCUTELE); |
| 152 |
gMC->Gstpar(fid_m,"DCUTE",fDCUTE); |
| 153 |
gMC->Gstpar(fid_m,"CUTNEU",fCUTNEU); |
| 154 |
gMC->Gstpar(fid_m,"CUTHAD",fCUTHAD); |
| 155 |
gMC->Gstpar(fid_m,"CUTMUO",fCUTMUO); |
| 156 |
gMC->Gstpar(fid_m,"DCUTM",fDCUTM); |
| 157 |
gMC->Gstpar(fid_m,"BCUTM",fBCUTM); |
| 158 |
gMC->Gstpar(fid_m,"PPCUTM",fPPCUTM); |
| 159 |
gMC->Gstpar(fid_m,"PAIR",fPAIR); |
| 160 |
gMC->Gstpar(fid_m,"COMP",fCOMP); |
| 161 |
gMC->Gstpar(fid_m,"PHOT",fPHOT); |
| 162 |
gMC->Gstpar(fid_m,"PFIS",fPFIS); |
| 163 |
gMC->Gstpar(fid_m,"DRAY",fDRAY); |
| 164 |
gMC->Gstpar(fid_m,"ANNI",fANNI); |
| 165 |
gMC->Gstpar(fid_m,"BREM",fBREM); |
| 166 |
gMC->Gstpar(fid_m,"HADR",fHADR); |
| 167 |
gMC->Gstpar(fid_m,"MUNU",fMUNU); |
| 168 |
gMC->Gstpar(fid_m,"DCAY",fDCAY); |
| 169 |
gMC->Gstpar(fid_m,"LOSS",fLOSS); |
| 170 |
gMC->Gstpar(fid_m,"MULS",fMULS); |
| 171 |
} |
| 172 |
|
| 173 |
void Print(const Option_t* ="") const{ |
| 174 |
std::cout<<"ID: "<<fid_m<<std::endl; |
| 175 |
std::cout<<"CUTGAM: "<<fCUTGAM<<std::endl; |
| 176 |
std::cout<<"BCUTE: "<<fBCUTE<<std::endl; |
| 177 |
std::cout<<"DCUTE: "<<fDCUTE<<std::endl; |
| 178 |
std::cout<<"CUTNEU: "<<fCUTNEU<<std::endl; |
| 179 |
std::cout<<"CUTHAD: "<<fCUTHAD<<std::endl; |
| 180 |
std::cout<<"CUTMUO: "<<fCUTMUO<<std::endl; |
| 181 |
std::cout<<"DCUTM: "<<fDCUTM<<std::endl; |
| 182 |
std::cout<<"BCUTM: "<<fBCUTM<<std::endl; |
| 183 |
std::cout<<"PPCUTM: "<<fPPCUTM<<std::endl; |
| 184 |
std::cout<<"PAIR: "<<fPAIR<<std::endl; |
| 185 |
std::cout<<"COMP: "<<fCOMP<<std::endl; |
| 186 |
std::cout<<"PHOT: "<<fPHOT<<std::endl; |
| 187 |
std::cout<<"PFIS: "<<fPFIS<<std::endl; |
| 188 |
std::cout<<"DRAY: "<<fDRAY<<std::endl; |
| 189 |
std::cout<<"ANNI: "<<fANNI<<std::endl; |
| 190 |
std::cout<<"BREM: "<<fBREM<<std::endl; |
| 191 |
std::cout<<"HADR: "<<fHADR<<std::endl; |
| 192 |
std::cout<<"MUNU: "<<fMUNU<<std::endl; |
| 193 |
std::cout<<"DCAY: "<<fDCAY<<std::endl; |
| 194 |
std::cout<<"LOSS: "<<fLOSS<<std::endl; |
| 195 |
std::cout<<"MULS: "<<fMULS<<std::endl; |
| 196 |
} |
| 197 |
ClassDef(pCutControl,1) |
| 198 |
|
| 199 |
}; |
| 200 |
|
| 201 |
|
| 202 |
|
| 203 |
#endif //PCUTCONTROL |