11 #include "FairRootManager.h"
12 #include "FairDetector.h"
14 #include "FairRuntimeDb.h"
16 #include "TClonesArray.h"
25 fInputArray(), fPidChargedArray(), fPidNeutralArray(), fOutputArray(),
26 mapMCIndex(), fCleanMC(kFALSE), fTrackBranchNamePidHypo(
"")
38 cout <<
"-I- PndMcCloner2::Init: "
39 <<
"INITIALIZATION *********************" << endl;
51 FairRootManager* ioman = FairRootManager::Instance();
53 cout <<
"-E- PndMcCloner2::Init: "
54 <<
"RootManager not instantiated!" << endl;
59 fInputArray = (TClonesArray*) ioman->GetObject(
"MCTrack");
61 cout <<
"-E- PndMcCloner2::Init: "
62 <<
"No MCTrack array!" << endl;
65 bool anychargedtca =
false;
66 bool anyneutraltca =
false;
71 cout <<
"-E- PndMcCloner2::Init: "
72 <<
"No PidChargedCand"+
fPidHypoStr[
i]+
" array. Continue looking." << endl;
82 cout <<
"-E- PndMcCloner2::Init: "
83 <<
"No PidNeutralCand"+
fPidHypoStr[
i]+
" array. Continue looking." << endl;
93 cout <<
"-E- PndMcCloner2::Init: "
94 <<
"No PidChargedCand array found!" << endl;
98 cout <<
"-E- PndMcCloner2::Init: "
99 <<
"No PidNeutralCand array found!" << endl;
109 cout <<
"-I- PndMcCloner2: Intialization successfull" << endl;
147 for (Int_t iMC=0; iMC<nMCTracks; iMC++)
151 Int_t size = clref.GetEntriesFast();
165 for (Int_t imc=0; imc<nCands; imc++)
177 for (
int ihyp = 0; ihyp < 5;ihyp++){
181 for (Int_t iPid=0; iPid<nCands; iPid++)
184 for(
int i = 0;
i<5;
i++){
188 if (mcIndex !=-1)
break;
195 Error(
"FindUsedMCIndices",
"PndMCTrack is not existing!");
203 for (
int ihyp = 0; ihyp < 5;ihyp++){
207 for (Int_t iPid=0; iPid<nCands; iPid++)
211 for(
int i=0;
i<5;
i++){
215 if (mcIndex !=-1)
break;
222 Error(
"FindUsedMCIndices",
"PndMCTrack is not existing!");
241 Int_t size = clref.GetEntriesFast();
255 for (Int_t imc=0; imc<nmc; imc++)
271 for(
int i=0;
i<5;
i++){
274 for (Int_t iPid=0; iPid<nCands; iPid++)
282 for(
int i=0;
i<5;
i++){
285 for (Int_t iPid=0; iPid<nCands; iPid++)
virtual void Exec(Option_t *)
virtual InitStatus Init()
Bool_t fHypoFlagCharged[5]
cout<< "blue = Monte Carlo "<< endl;cout<< "red = Helix Hit "<< endl;cout<< "green = Center Of Tubes "<< endl;for(Int_t k=0;k< track->GetEntriesFast();k++){PndSttTrack *stttrack=(PndSttTrack *) track-> At(k)
TString fTrackBranchNamePidHypo
Flag to check which hypotheses are present.
TClonesArray * fOutputArray
TClonesArray * fPidNeutralArray[5]
Bool_t fHypoFlagNeutral[5]
Flag to check which hypotheses are present.
void CorrectMotherIndices()
Int_t GetSecondMotherID() const
void CloneAndCleanMCTrack()
TClonesArray * fPidChargedArray[5]
void SetSecondMotherID(Int_t id)
void SetMotherID(Int_t id)
Int_t GetMotherID() const
map< Int_t, Int_t > mapMCIndex
TClonesArray * fInputArray