21.1.2011 Kamil Sedlak

This version contains many changes!
1) Optical photon simulation is now possible - some work still may need to be done
   (e.g. the manual is not updated yet), but it should basically work already now.
2) Changes in the musrSimAna - correction of some bugs (mainly in the coincidence
    of coincidence and veto detectors) and some other improvements
This commit is contained in:
2011-01-21 15:20:22 +00:00
parent dcc8c6119d
commit 4bfcc6aa29
17 changed files with 1266 additions and 169 deletions

View File

@ -22,6 +22,13 @@
class musrTH;
//#include "musrSimGlobal.hh"
typedef std::map<int,int> debugEventMapType;
extern debugEventMapType debugEventMap;
extern Bool_t bool_debugingRequired;
class musrAnalysis {
public :
TTree *fChain; //!pointer to the analyzed TTree or TChain
@ -199,7 +206,10 @@ public :
Double_t gen_time10;
Double_t det_time10_MINUS_gen_time10;
Double_t det_time20;
Double_t pileup_eventID;
Double_t pileup_muDecayDetID_double;
Double_t pileup_muDecayPosZ;
Double_t pileup_muDecayPosR;
typedef std::map<int, Bool_t*> conditionMapType;
@ -216,6 +226,18 @@ public :
Bool_t pileupEventCandidate;
Bool_t pileupEvent;
Bool_t goodEvent_det_AND_muonDecayedInSample_gen;
Bool_t goodEvent_F_det;
Bool_t goodEvent_B_det;
Bool_t goodEvent_U_det;
Bool_t goodEvent_D_det;
Bool_t goodEvent_L_det;
Bool_t goodEvent_R_det;
Bool_t goodEvent_F_det_AND_pileupEvent;
Bool_t goodEvent_B_det_AND_pileupEvent;
Bool_t goodEvent_U_det_AND_pileupEvent;
Bool_t goodEvent_D_det_AND_pileupEvent;
Bool_t goodEvent_L_det_AND_pileupEvent;
Bool_t goodEvent_R_det_AND_pileupEvent;
musrAnalysis(TTree *tree=0);
virtual ~musrAnalysis();
@ -234,6 +256,7 @@ public :
virtual void RemoveOldHitsFromCounters(Long64_t timeBinLimit);
// virtual void RewindAllTimeInfo(Double_t timeToRewind);
virtual void RewindAllTimeInfo(Long64_t timeBinsToRewind);
virtual void PrintHitsInAllCounters();
virtual void InitialiseEvent();
virtual Double_t PreprocessEvent(Long64_t iEn);
virtual Bool_t PositronCounterHit(Int_t evID, Long64_t dataBinMin, Long64_t dataBinMax, Long64_t& tBin1, Long64_t& tBin2, Int_t& kEntry, Int_t& idetP, Int_t& idetP_ID, Double_t& idetP_edep, Bool_t& doubleHit);
@ -247,6 +270,10 @@ public :
TH1D* hGeantParameters;
TH1D* hInfo;
// typedef std::map<int,int> debugEventMapType;
// debugEventMapType debugEventMap;
// Bool_t bool_debugingRequired;
static const Double_t pi=3.14159265358979324;
private:
@ -290,6 +317,8 @@ public :
counterMapType allCounterMap;
Int_t testIVar1;
Double_t omega;
Bool_t bool_muDecayTimeTransformation;
Double_t muDecayTime_Transformation_min, muDecayTime_Transformation_max, muDecayTime_t_min, muDecayTime_t_max;
static const Double_t microsecond=1.;
static const Double_t nanosecond=0.001;
@ -327,6 +356,19 @@ private:
typedef std::multimap<Int_t,Int_t> humanDecayMultimapType;
humanDecayMapType humanDecayMap;
humanDecayMultimapType humanDecayMultimap;
typedef std::multimap<int,int> clonedChannelsMultimapType;
clonedChannelsMultimapType clonedChannelsMultimap;
Bool_t bool_clonedChannelsMultimap_NotEmpty;
// List of group of detectors: F,B,U,D,L,R:
std::list <Int_t> F_posCounterList;
std::list <Int_t> B_posCounterList;
std::list <Int_t> U_posCounterList;
std::list <Int_t> D_posCounterList;
std::list <Int_t> L_posCounterList;
std::list <Int_t> R_posCounterList;
// std::list <Int_t>::iterator posCounterList_Iterator;
};
#endif
@ -399,7 +441,10 @@ musrAnalysis::musrAnalysis(TTree *tree)
variableMap["det_time10"]=&det_time10;
variableMap["gen_time10"]=&gen_time10;
variableMap["det_time10_MINUS_gen_time10"]=&det_time10_MINUS_gen_time10;
variableMap["pileup_eventID"]=&pileup_eventID;
variableMap["pileup_muDecayDetID"]=&pileup_muDecayDetID_double;
variableMap["pileup_muDecayPosZ"]=&pileup_muDecayPosZ;
variableMap["pileup_muDecayPosR"]=&pileup_muDecayPosR;
variableMap["det_time20"]=&det_time20;
testIVar1=0;
@ -407,6 +452,9 @@ musrAnalysis::musrAnalysis(TTree *tree)
motherOfHumanDecayHistograms=NULL;
humanDecayPileupHistograms=NULL;
motherOfHumanDecayPileupHistograms=NULL;
bool_muDecayTimeTransformation = false;
bool_clonedChannelsMultimap_NotEmpty = false;
bool_debugingRequired = false;
// if parameter tree is not specified (or zero), connect the file
// used to generate this class and read the Tree.