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]
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
cout<<"the Event No is "<< i<< endl;{{if(hit_array->GetEntriesFast()!=mc_array->GetEntriesFast()) continue;PndSdsHit *hit=(PndSdsHit *) hit_array-> At(j)
TClonesArray * fInputArray